Maktsys
Maktsys er to applikasjoner på innsida. UKA bruker disse applikasjonene for å planlegge vakter og forpleining.
Matsys
Det er velferdsgjengen som styrer med matsys. Her mottas det bestillinger/forespørsler om mat fortløpende. En matforespørsel er egentlig bare et skift man ønsker å få noe form for mat på. Det opplyses om hvilke allergier som er knyttet til matbestillingen; alle brukere på Innsida må opplyse om sine egne allergier. Dersom allergien ikke finnes, kan velferd manuelt opprette og legge til allergier til folk. Dersom man får godkjent matbestillingen får man også en type forpleining. Dette varierer mellom alt fra brødmat og middag. Faktisk, det var løgn. Det står kun mellom de to alternativene.
Matsys automatikk-funksjonalitet
Matsys har funksjonalitet for å masse-godkjenne matbestillinger og gi de automatisk en forpleiningstype basert på skiftets lengde. Hør med velferd hva de har tenkt ut her! F.eks. dersom skiftet er mindre enn 4 timer: gi ingen forpleining. Mellom 4 og 5 timer: brødmat. Og så videre... dette er også litt hysjhysj og skal ikke diskuteres med andre enn velferd.
Vaktsys
Alle personalansvarlige styrer med admin-delen av vaktsys. De oppretter vakter for sin gjeng. På en vakt opplyses det om ting som når og hvor vakta er, hvem som skal jobbe, og om det ønskes mat. Dersom det ønskes mat, sendes en matbestilling til velferd (gjennom matsys). Vaktsys er også tilgjengelig for ikke-admins. Her kan den gjengse UKEfunken se hvilke vakter man er satt opp på, samt bytte vakter mellom hverandre.
Sentrale begreper
Schedule en vaktplan. En vaktplan har en eiergruppe, og alle som er med i denne eiergruppen (eller med i undergrupperinger av denne eiergruppen) kan settes opp på vakt. For eksempel: du velger eiergruppe Revy. Da kan f.eks. alle som er med i kulisse, videoteknikere, lysteknikere, ...., bli satt opp på vakta, siden de også er med i Revy.
Shift Et skift, som hører til en vaktplan. Inneholder skiftets detaljer, som hvor, når, osv.
ShiftWorker En arbeider som hører til et skift. Det er på dette nivå en arbeider kan markere et skift som uønsket.
Exchange brukes av byttemarkedet for å drive med bytting av skift. Det foregår i flere trinn:
- Bruker A markerer skiftet sitt som uønsket.
- Bruker B går inn på byttemarked og ser at skiftet er tilgjengelig. Bruker B tilbyr et skift for å bytte med. Bruker A mottar denne infoen på mail.
- Bruker A går inn og enten godkjenner eller avslår dette byttet.
Legge til brukere som skiftledere
En vanlig oppgave som dukker opp like før UKA starter er å legge til brukere som skiftledere. Den enkleste måten er nok å gjøre det gjennom django-shellen til innsida, men du kan også gjøre det rett i mdb2.
Legge til en bruker, typisk en nestleder som skiftleder i alle grupper. På cirkus;
$ cd /var/www/uka.no/innsida/ $ source venv/bin/activate $ python manage.py shell $ from innsida.authentication.models import User, Group $ u = User.objects.get(username="brukernavn") $ g = Group.objects.all() $ for i in g: $ ... i.shiftmanagers.add(u) $ u.flush_shift_admin_cache()
La brukere godkjenne mat
$ cd /var/www/uka.no/innsida/ $ source venv/bin/activate $ python manage.py shell $ from innsida.authentication.models import User $ u = User.objects.get(username="brukernavn") $ u.approves_foodrequests = True $ u.save()
Rapporter
UKA vil gjerne ha rapporter. Pass på at disse genereres før forrige UKEs data blir slettet. Hvis du lager en rapport gjerne gjør det som en ["kommando" | https://docs.djangoproject.com/en/4.1/howto/custom-management-commands/].
Rapportscriptet ligger i innsida/innsida/app/innsida/foodmanager/management/commands som kan kjøres sånn her (husk å gå inni riktig venv, og at det må kjøres fra prod):
$ python manage.py get_maktsys_statistic
evt.
$ python manage.py get_maktsys_statistic > rapport<år>.csv
for eksportering til csv fil. Formatteringen er komma som delimiter, dette kan settes i Excel for å få det inni et nais regneark.
Instrukser fra Mikkel etter UKA-23
Jeg (Mikkel) pussa opp maktsys en hel del før UKA-23. Resultatet er jeg meget fornøyd med, og det virket som resten av UKA også var. Det er likevel noen ting som kan forbedres med kodebasen:
- Få HTMX inn på innsida (og derunder maktsys). Slik Django fungerer i utgangspunktet er at du må laste inn hele siden på nytt dersom du ønsker og endre på HTML-en. Hvis ikke må du generere masse HTML i frontend gjennom javascript, og dermed har du to systemer og vedlikeholde. Jippi! Du ser jeg har gjort noe smart på visse steder i maktsys (f.eks. når vaktsysadmin skal redigere et skift). Der henter jeg HTML fra backenden gjennom en AJAX-spørring og limer det inn på klientsiden. Dette er nais, men er også akkurat det HTMX er laget for. Du kan dermed erstatte en del linjer Javascript kode ved å få HTMX oppe og gå! I tillegg blir sidene våre mye mer dynamiske, noe som sårt trengs :)
- Velferd hadde noen helt absurde krav til når man kan endre/opprette en matbestilling. Resultatet er at jeg validerer mot disse reglene både i frontend (gjennom shiftform.js) og i backend i shiftmanager/forms.py. Du må dermed vedlikeholde to sett med systemer. Dersom noen er keen på å forbedre dette er du en helt! Og også kanskje snakk med velferd for å streamline kravene sine litt :)
- Se gitea for mer issues.
Lenker: Start, innsida todo, til nye itkere, uka-no
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2023-11-29 16:01 | Revisjon: 27 (historie, blame) | Totalt: 1905 kB | Rediger