fui / fui-kk

Course evaluation software for courses in informatics at the University of Oslo.
MIT License
9 stars 7 forks source link

Automatisere oppretting av nye skjemaer #19

Open olehermanse opened 7 years ago

olehermanse commented 7 years ago

Dette er noe vi hadde håpet å få hjelp av USIT og nettskjema api til å gjøre, men burde ikke være en stor jobb å gjøre i selenium.

Hvert semester må undervisningsansvarlig opprette rundt 60 skjemaer manuelt i nettskjema.

Dette består i hovedsak av:

  1. Gå inn på listen over skjemaer: https://nettskjema.uio.no/user/form/list.html
  2. Hold nede cmd og trykk på kopier knappen 60 ganger. Dette åpner nye skjemaer i hver sin fane.
  3. Trykk deg gjennom alle tabs og trykk på endre tittel, skriv inn tittel med kurskode(fjern "kopi") og trykk på lagre.

Scriptet download-course-list.py laster ned en liste over alle kursene som skal opprettes.

Denne oppgaven ligner download-reports.py:

  1. Innlogging i nettskjema og naviger til listen
  2. Finn source skjema, enten spesifisert ved id eller tittel (det som er lettest)
  3. Iterer over course-list.json og gjør jobben som man ville gjort manuelt.

Advarsel: Denne nettsiden har en liste over alle skjemaene for innlogget bruker https://nettskjema.uio.no/user/form/list.html FUI har flere hundre skjemaer som gjør at denne nettsiden tar tid å laste inn, og søkefunksjonen er treg. Det bør derfor kun gjøres på starten av scriptet, og ikke for hver iterasjon(hvert kurs).

evestera commented 7 years ago

Hvilket skjema sin kopier-knapp skal det trykkes på? Samme hvilket?

olehermanse commented 7 years ago

Spesifiseres med argparse, enten eksakt string match på tittel, eller form id, hvis det er lettere.

olehermanse commented 7 years ago
python3 ./scripts/create-forms.py --user fui --source "Kursevaluering INF**** - H2016" --courses ./resources/course_list.json
evestera commented 7 years ago

Hvis vi skal starte fra listevisningen ser det ut som vi kan slite litt med ytelse (det ser ikke ut som om selenium liker tabs, og heller ikke POST requests uten et faktisk skjema). Men er også en kopier-knapp på siden for enkeltskjema ( https://nettskjema.uio.no/user/form/preview.html?id=12345 , samme som man endrer navn fra), så hvis vi tar inn en skjema-id som base kan vi bare bruke den knappen i stedet (og da kopiere det kopierte skjemaet etter man har endret navn).

olehermanse commented 7 years ago

Høres bra ut, er flere måter å gjøre det på, og ja listevisningen har forferdelig ytelse.

olehermanse commented 7 years ago

@evestera Burde spesifisere inputskjema med form id. Flere skjemaer kan ha samme navn og som du sier er listevisningen treg.