Commit graph

6 commits

Author SHA1 Message Date
Ramon
500cf6c558 Herstel installatie-instructies en hard deploy-script (v0.2.03 beta)
Some checks are pending
CI / backend (push) Waiting to run
CI / frontend (push) Waiting to run
De installatiestappen in de README waren niet uitvoerbaar en het
deploy-script kon stilzwijgend werk vernietigen.

README:
- `python manage.py migrate` liep vast op `RuntimeError: DJANGO_SECRET_KEY
  ontbreekt`. DEBUG staat standaard uit en dan is die sleutel verplicht;
  de instructies noemden `DJANGO_DEBUG` nergens. Nu toegevoegd, met uitleg.
- `createsuperuser` stond als "optioneel, voor /admin/". Dat klopt niet: de
  hele API staat op `IsAuthenticated`, dus zonder account kom je de app
  helemaal niet in. Nu gemarkeerd als verplichte stap.
- Stap voor een virtual environment toegevoegd (pip installeerde anders in
  de systeem-Python, wat op recente distributies afketst op PEP 668).
- Node-eis vermeld: Vite 8 vereist 20.19+ of 22.12+.
- Verouderde beschrijvingen bijgewerkt: de tabs van het roosterscherm
  (Week/Genereren/Instellingen in plaats van Weekrooster/Conflicten/
  Schooljaar/Instellingen), Groepsindeling is een eigen scherm en geen tab,
  en er zijn twaalf modules in plaats van "twee voorbeeldmodules".

DEPLOY.md:
- `git clone .../Roostersoftware.git` + `cd Roostersoftware` gebruikte de
  verkeerde repo-naam; dat is `roosterwijs`.
- CSRF-origin en FRONTEND_BASE_URL stonden als http-voorbeeld; achter TLS
  moet dat https zijn.
- Rechtgezet: `DJANGO_CSRF_TRUSTED_ORIGINS` blokkeert het inloggen in de app
  niet (DRF-views zijn `csrf_exempt`), maar wel de Django-admin.
- Vermeld dat er nergens automatisch een account wordt aangemaakt.

scripts/deploy.sh:
- Stopt nu als `.env` ontbreekt; anders start de stack met lege variabelen
  en faalt de backend met een onduidelijke fout.
- Stopt bij lokale wijzigingen in plaats van ze met `git reset --hard`
  weg te gooien; bewust overschrijven kan met `--force`.
- Controleert vooraf of Docker en de compose-plugin er zijn.
- Toont welke commits erbij komen (oud -> nieuw) in plaats van alleen de
  nieuwe HEAD.
- Controleert na afloop of de backend antwoordt en of er een actief account
  bestaat, met het createsuperuser-commando als dat er niet is.

frontend/Dockerfile:
- Bouwt op node:22-alpine in plaats van node:20-alpine, gelijk aan de CI en
  ruim binnen de Node-eis van Vite 8.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAQ4Np13v8fwbTtKHKnwDz
2026-08-19 14:57:49 +02:00
Ramon
1865de948e Fix redirect-lus achter TLS-proxy (v0.2.02 beta)
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
Inloggen mislukte met DJANGO_SECURE=1 achter een reverse proxy die TLS
afhandelt, terwijl het inlogscherm zelf wel laadde.

- nginx.conf gaf `X-Forwarded-Proto $scheme` door. Achter een TLS-proxy
  komt het verzoek als http binnen, dus overschreef nginx de `https` van
  de proxy met `http`. Django zag de verbinding daardoor als onveilig en
  stuurde elk verzoek naar /api en /admin door naar https, waarna de
  proxy het weer als http aanleverde: een oneindige redirect-lus.
- nginx neemt nu de X-Forwarded-Proto van de proxy over via een map, en
  valt alleen terug op $scheme als die header ontbreekt. Werkt daardoor
  zowel achter een externe proxy als bij TLS op nginx zelf.
- .env.example: voorbeelden voor CSRF-origin en frontend-URL op https
  gezet, DJANGO_SECURE standaard op 1, met uitleg waarom een http-origin
  het inloggen met een CSRF-fout laat stranden.
- DEPLOY.md: checklist "Draaien achter TLS" toegevoegd met de drie
  vereisten (proxy-header, CSRF-origin, allowed hosts), commando's om te
  controleren of de header aankomt, en het advies poort 8080 aan de
  loopback te binden zodat de app niet buiten TLS om bereikbaar is.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAQ4Np13v8fwbTtKHKnwDz
2026-08-13 21:41:47 +02:00
Ramon
4f0bc009bb Verfijn rooster naar minimalistische opmaak (v0.2.01 beta)
Some checks are pending
CI / backend (push) Waiting to run
CI / frontend (push) Waiting to run
Roostermaker en roosterweergave hebben een rustiger, moderne opmaak
gekregen zonder informatie te verliezen.

- Minder geneste kaders: kolom, tijdvak, splitsing en vakkaart stapelden
  vier randen; nu dragen alleen de dagkolom en de vakkaart een rand en
  scheiden de rest met witruimte en haarlijnen.
- Vakkaart groeit mee met de inhoud in plaats van een vaste hoogte, zodat
  lokaal, begeleiding en opmerkingen niet meer afgekapt worden.
- Meta-regel (locatie, lokaal, begeleiders) zonder pil-achtergronden;
  lange vaknamen lopen door over twee regels met tooltip.
- Bewerkknoppen (vervallen, bewerken, verwijderen) staan gebundeld
  rechtsboven op de kaart en verschijnen bij hover, zodat de vaknaam de
  volle breedte houdt; op aanraakschermen blijven ze zichtbaar.
- Tijdvak toont nu begin- en eindtijd; lege tijdvakken in de weergave
  krijgen een subtiele markering.
- Dagkop is compacter en markeert "vandaag"; dagacties verschijnen bij
  hover. Diagonale arcering bij vrije dagen vervangen door een getinte
  kolom met dagtype-label.
- Subgroep-vertakking en doelgroepkop in neutrale haarlijnen in plaats
  van blauwe kaders.
- Conflicten met een rode rand in plaats van een harde binnenschaduw;
  bij volledig gekleurde vakken blijft de vakkleur staan met rode ring.
- Toolbar, weeknavigatie, detailkeuze en scopebalk strakker uitgelijnd.
- Afdrukken meegenomen: geen sticky dagkop, neutrale randen, en bij
  "vakken in kleur" kleuren lokaal en begeleiding mee.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAQ4Np13v8fwbTtKHKnwDz
2026-08-13 09:16:22 +02:00
Ramon
c5e19eca6a Moderniseer interface naar v0.2.00 beta
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-14 20:09:14 +02:00
bes-r
c845588e5e Add roles modules audit logging and CI
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-04 23:01:06 +02:00
bes-r
f3373a9c2d Fase 1 + Bugfixes 2026-06-10 14:31:33 +02:00