- Henter en liste med alle IFI-emner fra Vortex/nettsidene til UiO
- Sorterer de mellom bachelor/master, så master-emnene kan få engelsk skjema
- Genererer et "script" man paster i konsollen inne på Nettskjema. Det scriptet
vil for hvert emne:
- Opprette skjema fra mal som ligger i scriptet
- Sende ut invitasjoner til alle studentene, til en spesifisert tid
- Gå på IFI, vær i FUI, og ha tilgang til emneevalueringsfunksjonaliteten til Nettskjema.
- Åpne main.py i din editor of choice
- Tilpass
BLAKCLISTED_COURSESutifra hva som måtte ligge på Vortex, som du ikke ønsker å sende ut KE for - Sett hardkodet semester øverst i filen. Du skriver det semesteret du vil sende KE for, ikke det semesteret som nødvendigvis er nå.
- Tilpass
- Kjør
$ python main.py. Dette vil hente alle emnene, og skrive de til courses.js, sortert. Du vil måtte innstallere BeautifulSoup hvis du ikke har det fra før,$ pip install beautifulsoup4. Dette er en pakke som brukes for å ekstrahere info fra nettsidene til UiO.- En liste med
{ code: 'IN5700', name: 'Tåke og Sky Databehandling', level: 'master', semester: 'h25' },, for alle emner - course_codes.py er en ressursfil, som gjør det faktiske arbeidet. Den kjøres aldri direkte. Der kan man også endre IFI-spesifikke ting for å bruke dette opplegget et annet sted på UiO.
- En liste med
- Tilpass console.js utifra din kontekst. NB: Alle
endringer må gjøres både for
console.jsog console-ENGELSK.js (fortrinnsvis med forskjellige emner).- Lim inn kursene fra forrige steg nederst i filen.
- Sett verdi på
INVITE_TIMESTAMP-konstanten. Invitasjonene vil scheduleres til dette tidspunktet. - Endre
commonHeaderstil å være dine faktiske Nettskjema-headers- Litt usikker på hvor nødvendig dette er, kanskje det ikke trengs 🤷
- Legg inn riktig semester (1) i
payloadog (2) der tittelen på det nye skjemaet blir satt.
- Gå til nettskjema.no, og paste
console.jsi konsollen. Dette vil sende ut invitasjoner til samtlige emner.- Samme for den engelske versjonen, hvis relevant.
- Profit
Alle Nettskjema™-skjemaer, er JSON. Du vil få tak i relevant JSON, og legge den øverst i console.js. Den greieste måten å få tak i JSON, er å bygge et skjema på Nettskjema, og kopiere det, når det er ferdigbygget. Når du kopierer det, vil det gå ut en request, som har den JSONen du er ute etter som payload. Finn requesten i nettverksfanen, og kopier payloaden.
Denne JSONen inneholder både info om skjemaets innhold og innstillinger, og dermed ogå hvilke brukere/API-klienter som har tilgang til det. Du ønsker naturligvis at riktige folk skal ha tilgang til skjemaet ditt. Dette sikrer dét. NB: Hvis du kjører scriptet sånn det ligger nå uten å endre på skjema-definisjonen, vil jeg få tilgang til skjemaet ditt 😈
Husk å se over både (1) skjema-innhold, og (2) skjema-innstillinger. Viktig.
Dette er basically hackathon-kode laget for å slukke branner. Det gjorde jobben H25 OG V26(!), men det er ikke vakkert :)
All bruk på eget ansvar.
oliverrj@fui, januar 2026.