UKMNorge / UKMrapporter

0 stars 0 forks source link

Ekstra-spørsmål må luke ut avmeldte personer #107

Closed mariusmandal closed 3 years ago

mariusmandal commented 3 years ago

I rapporten for ekstra spørsmål til deltakere, kan admin nå få en rapport med svarene til personer som har meldt seg av igjen. Svarene kan godt ligge lagret i databasen, men når vi henter ut rapporten, bør den fjerne svarene til de som er avmeldt.

OBS: samme rapport brukes også for videresendingsskjema, som ikke har samme problemstilling, så vi må ikke ødelegge for denne.

mariusmandal commented 3 years ago

Gjenskape problemet

Legg til testdata

Gå tilbake til arrangementssystemet

Her vil du nå se svarene fra påmeldingen du akkurat gjennomførte, selv om du har meldt deg av. Arrangøren har ikke lenger bruk for svarene dine når du ikke er påmeldt, og rapporten skal derfor hoppe over de.

mariusmandal commented 3 years ago

Løsningsforslag

Tilnærming: Programmering

Endre rapporten slik at svar fra avmeldte innslag hoppes over. Vi skal ikke slette svarene, vi skal bare hoppe over de.

For hvert svar i skjemaet, hent ut innslaget, sjekk om innslaget er påmeldt (UKMNorge\Innslag\Innslag->erPameldt()) og hopp over hvis ikke.

OBS:

Vi har to ulike typer skjema: deltakerskjema og infoskjema.
Begge to bruker samme twig-fil twig/Skjema/rapport.html.twig

For å skille mellom hvilket skjema du har, kan du bruke skjema.getType() som vil gi enten arrangement eller person tilbake.

For å finne innslaget til en respondent i et person-skjema kan du bruke følgende:

{% if arrangement.getInnslag().harKontaktPameldingFor('person', respondent.getPerson() ) %}

Deltakerskjema:

Infoskjema

mariusmandal commented 3 years ago

OBS: arrangement.getInnslag().harKontaktPameldingFor() er ikke implementert enda

mariusmandal commented 3 years ago

UKMNorge/UKMapi#135 innfører ønsket funksjonalitet, bare på en litt annen måte enn først tenkt @slogan-15 . Koden er ikke merget til master enda, men du kan sjekke ut pull requesten mens du utvikler 😊

Ny metode:

{% if respondent.getPerson().harInnslagFor( type ) %}

Dette krever at type er sendt inn til twig, noe ca sånn (husker ikke hvordan view data settes i dette tilfellet)

use UKMNorge\Innslag\Typer\Typer;
$view_data['type'] = Typer::getByKey('person');