diff --git a/.gitea/workflows/lint-and-reload.yml b/.gitea/workflows/lint-and-reload.yml index 91ca165..60ef463 100644 --- a/.gitea/workflows/lint-and-reload.yml +++ b/.gitea/workflows/lint-and-reload.yml @@ -18,7 +18,7 @@ jobs: # portalen vel-et kjører (PORTAL_RELEASE i infrastructure/.env). - name: lint env: - IRIS_RELEASE: v0.5.3 + IRIS_RELEASE: v0.5.5 run: | curl -sfL "https://project.uhhm.no/uhhm/iris/releases/download/$IRIS_RELEASE/iris" -o iris && chmod +x iris ./iris check --path checkout/questions diff --git a/aggregates.yaml b/aggregates.yaml index 590d28b..09aa611 100644 --- a/aggregates.yaml +++ b/aggregates.yaml @@ -142,18 +142,45 @@ aggregates: states: open: event: received - lagt_ut: - event: lagt_ut mail: - to: submitter - subject: Oppslaget er synlig for naboene - body: Oppslaget ditt er lagt ut, og naboene kan nå se det. + to: post@tomtervel.no + subject: 'Nytt oppslag på tavla: {hva}' + body: |- + Et nytt oppslag står på tavla fra nå av. + + {har_eller_trenger}: {hva} + + Det står der til den som la det ut tar det ned, til redaktøren gjør det, eller i en måned. Hører det ikke hjemme, tas det ned her: {site}/redaktor + after: + days: 30 + to: tatt_ned tatt_ned: event: tatt_ned transitions: open: - - lagt_ut - tatt_ned +- bucket: svar + initial: open + states: + open: + event: received + mail: + to: '{oppslag.email}' + subject: En nabo har svart på oppslaget ditt + body: |- + Hei, + + En nabo har svart på oppslaget ditt «{oppslag.hva}». Ta kontakt direkte: {email} + + {hilsen} + + Flere kan svare så lenge oppslaget står; du velger selv hvem du avtaler med. Når det er ordnet, tar du det ned her: + {site}/decide/dele-utstyr?chain={oppslag.id}&email={oppslag.email} + lest: + event: lest + transitions: + open: + - lest - bucket: trafikkmeldinger initial: open states: diff --git a/needs.yaml b/needs.yaml index 1d74b9a..45da519 100644 --- a/needs.yaml +++ b/needs.yaml @@ -201,26 +201,42 @@ needs: trukket: trukket - id: dele-utstyr who: en nabo som har noe å låne ut, eller trenger å låne noe - wants: et oppslag som naboene ser + wants: et oppslag naboene ser med en gang enters: / via: Få hjelp av naboer, eller gi en hånd selv lands_in: oppslag - handled_by: styret + handled_by: redaktor stages: - open - - lagt_ut - tatt_ned done_when: - - lagt_ut - tatt_ned success: - - lagt_ut + - tatt_ned max_steps: 2 max_fields: 4 stage_words: - open: mottatt - lagt_ut: lagt ut + open: ute tatt_ned: tatt ned +- id: melde-seg + who: en nabo som kan låne ut, eller vil låne, det et oppslag gjelder + wants: at den som la ut oppslaget får vite det + enters: /status/oppslag/[key] + via: Si fra til den som la ut oppslaget + lands_in: svar + handled_by: redaktor + stages: + - open + - lest + done_when: + - lest + success: + - lest + max_steps: 1 + max_fields: 2 + stage_words: + open: sendt + lest: lest - id: utlegg who: en i en komité som har lagt ut for noe wants: pengene tilbake diff --git a/questions/arrangementer/index.yaml b/questions/arrangementer/index.yaml index 8f0c49b..22d629e 100644 --- a/questions/arrangementer/index.yaml +++ b/questions/arrangementer/index.yaml @@ -47,13 +47,13 @@ alternatives: label: E-post type: email - name: Sendte invitasjoner - description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt. action: /arrangementer consequence: - Lagre features: - name: Hvem som er invitert - description: Hver rad er én invitasjon, med engangslenken så lenge den ikke er brukt. + description: Hver rad er én invitasjon. Den blir ferdig av seg selv når personen logger inn, og står som utløpt når lenken gikk ut ubrukt. resource: source: kind: kv @@ -63,3 +63,9 @@ alternatives: - from: open to: done label: Er inne + - from: expired + to: open + label: Send på nytt + - from: expired + to: done + label: Er inne diff --git a/questions/horingsinstans/index.yaml b/questions/horingsinstans/index.yaml index dad2664..623da7e 100644 --- a/questions/horingsinstans/index.yaml +++ b/questions/horingsinstans/index.yaml @@ -41,13 +41,13 @@ alternatives: label: E-post type: email - name: Sendte invitasjoner - description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt. action: /horingsinstans consequence: - Send svar features: - name: Hvem som er invitert - description: Hver rad er én invitasjon, med engangslenken så lenge den ikke er brukt. + description: Hver rad er én invitasjon. Den blir ferdig av seg selv når personen logger inn, og står som utløpt når lenken gikk ut ubrukt. resource: source: kind: kv @@ -57,3 +57,9 @@ alternatives: - from: open to: done label: Er inne + - from: expired + to: open + label: Send på nytt + - from: expired + to: done + label: Er inne diff --git a/questions/index.yaml b/questions/index.yaml index 327e15e..63111e0 100644 --- a/questions/index.yaml +++ b/questions/index.yaml @@ -28,16 +28,20 @@ alternatives: empty: Ingenting er meldt ødelagt akkurat nå. Ser du noe, si fra. jq: 'sort_by(.submitted_ms) | reverse | .[:3] | .[] | .responses |= {hva: .hva, hvor: .hvor}' - name: Oppslagstavla for naboer - description: Utstyr som er til låns, og det naboene leter etter. [Hele oppslagstavla](/status/oppslag) + description: Utstyr som er til låns, og det naboene leter etter. Svar rett fra oppslaget. [Hele oppslagstavla](/status/oppslag) icon: lucide:list resource: source: kind: kv bucket: oppslag public: true - states: [] + states: + - open empty: Tavla er tom nå. Legg gjerne ut det første oppslaget. jq: 'sort_by(.submitted_ms) | reverse | .[:3] | .[] | .responses |= {har_eller_trenger: .har_eller_trenger, hva: .hva}' + link: + to: /status/oppslag/{id} + label: Jeg kan låne ut eller låne denne - name: Farlige steder i trafikken description: Det naboer har meldt fra om, og hva velet har gjort med det. [Alle trafikkmeldinger](/status/trafikkmeldinger) icon: lucide:car diff --git a/questions/kasserer/index.yaml b/questions/kasserer/index.yaml index 0acf94d..72a0a62 100644 --- a/questions/kasserer/index.yaml +++ b/questions/kasserer/index.yaml @@ -84,13 +84,13 @@ alternatives: label: E-post type: email - name: Sendte invitasjoner - description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt. action: /kasserer consequence: - Lagre features: - name: Hvem som er invitert - description: Hver rad er én invitasjon, med engangslenken så lenge den ikke er brukt. + description: Hver rad er én invitasjon. Den blir ferdig av seg selv når personen logger inn, og står som utløpt når lenken gikk ut ubrukt. resource: source: kind: kv @@ -100,3 +100,9 @@ alternatives: - from: open to: done label: Er inne + - from: expired + to: open + label: Send på nytt + - from: expired + to: done + label: Er inne diff --git a/questions/komiteer/index.yaml b/questions/komiteer/index.yaml index 3016d12..fb2c528 100644 --- a/questions/komiteer/index.yaml +++ b/questions/komiteer/index.yaml @@ -26,13 +26,13 @@ alternatives: label: E-post type: email - name: Sendte invitasjoner - description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt. action: /komiteer consequence: - Confirm features: - name: Hvem som er invitert - description: Hver rad er én invitasjon, med engangslenken så lenge den ikke er brukt. + description: Hver rad er én invitasjon. Den blir ferdig av seg selv når personen logger inn, og står som utløpt når lenken gikk ut ubrukt. resource: source: kind: kv @@ -42,3 +42,9 @@ alternatives: - from: open to: done label: Er inne + - from: expired + to: open + label: Send på nytt + - from: expired + to: done + label: Er inne diff --git a/questions/lekeplasser/index.yaml b/questions/lekeplasser/index.yaml index a30dd6f..849a19d 100644 --- a/questions/lekeplasser/index.yaml +++ b/questions/lekeplasser/index.yaml @@ -41,13 +41,13 @@ alternatives: label: E-post type: email - name: Sendte invitasjoner - description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt. action: /lekeplasser consequence: - Lagre features: - name: Hvem som er invitert - description: Hver rad er én invitasjon, med engangslenken så lenge den ikke er brukt. + description: Hver rad er én invitasjon. Den blir ferdig av seg selv når personen logger inn, og står som utløpt når lenken gikk ut ubrukt. resource: source: kind: kv @@ -57,3 +57,9 @@ alternatives: - from: open to: done label: Er inne + - from: expired + to: open + label: Send på nytt + - from: expired + to: done + label: Er inne diff --git a/questions/naboer/index.yaml b/questions/naboer/index.yaml index 0a9eaab..9c89f62 100644 --- a/questions/naboer/index.yaml +++ b/questions/naboer/index.yaml @@ -94,10 +94,10 @@ alternatives: record_as: oppslag features: - name: Fra oppslag til avtale - description: Oppslaget legges ut for naboene å se. Når det er ordnet eller ikke lenger aktuelt, tas det ned igjen. + description: Oppslaget står på tavla til du tar det ned selv, redaktøren gjør det, eller en måned har gått. icon: lucide:clipboard-list - name: Hvem ser dette - description: Styret legger ut oppslaget og kan nås på post@tomtervel.no i mellomtiden. + description: Alle som åpner tavla, uten navn og e-post. Naboer som kan låne ut, eller vil låne, svarer deg rett på e-post. icon: lucide:users - name: Lån eller utlån requirements: @@ -122,4 +122,4 @@ alternatives: description: Skriv kort hva det gjelder, så folk skjønner det med en gang. icon: lucide:package encouragements: - - Vi legger det ut så naboene kan se det. + - Det står på tavla med en gang. diff --git a/questions/nabohjelp/index.yaml b/questions/nabohjelp/index.yaml index 8f574e8..075778c 100644 --- a/questions/nabohjelp/index.yaml +++ b/questions/nabohjelp/index.yaml @@ -67,13 +67,13 @@ alternatives: label: E-post type: email - name: Sendte invitasjoner - description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt. action: /nabohjelp consequence: - Lagre features: - name: Hvem som er invitert - description: Hver rad er én invitasjon, med engangslenken så lenge den ikke er brukt. + description: Hver rad er én invitasjon. Den blir ferdig av seg selv når personen logger inn, og står som utløpt når lenken gikk ut ubrukt. resource: source: kind: kv @@ -83,3 +83,9 @@ alternatives: - from: open to: done label: Er inne + - from: expired + to: open + label: Send på nytt + - from: expired + to: done + label: Er inne diff --git a/questions/received/dele-utstyr.yaml b/questions/received/dele-utstyr.yaml index 9559abd..eca5272 100644 --- a/questions/received/dele-utstyr.yaml +++ b/questions/received/dele-utstyr.yaml @@ -1,10 +1,10 @@ -name: Hva skjer med det jeg har lagt ut? -description: Takk for at du la ut noe naboene kan låne. Vi legger det ut på oppslaget så snart vi kan. +name: Hva skjer med oppslaget ditt? +description: Det står på tavla nå, uten navn og e-post. Naboer som kan låne ut, eller vil låne, svarer deg på e-post. alternatives: -- name: Styret legger det ut for deg - description: En i styret legger utstyret ut på naboenes oppslag, så andre kan se det og spørre om å låne. -- name: Se alt naboene deler - description: Se hva andre i Tomter har lagt ut til utlån akkurat nå. +- name: Naboene svarer deg direkte + description: Hvert svar kommer som e-post med naboens adresse. Du velger selv hvem du avtaler med, og tar ned oppslaget når det er ordnet; lenken står i e-posten. Spørsmål går til styret på post@tomtervel.no. +- name: Se oppslagstavla + description: Det som står ute akkurat nå. action: /status/oppslag consequence: - - Se hva naboer deler + - Til tavla diff --git a/questions/received/melde-seg.yaml b/questions/received/melde-seg.yaml new file mode 100644 index 0000000..599b878 --- /dev/null +++ b/questions/received/melde-seg.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå? +description: Svaret ditt er sendt til den som la ut oppslaget. +alternatives: +- name: Den som la ut oppslaget tar kontakt + description: E-posten din gikk rett til dem. Hører du ikke noe, kan det være at noen andre var først ute. Spørsmål går til styret på post@tomtervel.no. diff --git a/questions/redaktor/_section.yaml b/questions/redaktor/_section.yaml new file mode 100644 index 0000000..2439638 --- /dev/null +++ b/questions/redaktor/_section.yaml @@ -0,0 +1 @@ +qualifies: redaktor diff --git a/questions/redaktor/index.yaml b/questions/redaktor/index.yaml new file mode 100644 index 0000000..bb1d965 --- /dev/null +++ b/questions/redaktor/index.yaml @@ -0,0 +1,79 @@ +name: Hva står på oppslagstavla nå? +description: Redaktøren tar ned oppslag som er ordnet eller ikke hører hjemme, og ser svarene som har gått. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Oppslag som står ute + description: Det naboene har lagt ut om noe de har eller trenger. + action: /redaktor + consequence: + - Bekreft + features: + - name: Oppslag + description: Hver rad er ett oppslag. Ta det ned når det er ordnet eller ikke hører hjemme. + resource: + source: + kind: kv + bucket: oppslag + requires_group: redaktor + transitions: + - from: open + to: tatt_ned + label: Ta ned oppslaget +- name: Svar som har gått + description: Hvert svar gikk rett til den som la ut oppslaget; her ser du at det skjedde. + action: /redaktor + consequence: + - Bekreft + features: + - name: Svar + description: Hver rad er ett svar, med e-posten til den som svarte. Merk som lest når du har sett det. + resource: + source: + kind: kv + bucket: svar + requires_group: redaktor + transitions: + - from: open + to: lest + label: Lest +- name: Inviter noen inn som redaktør + description: De får en konto, plass blant redaktørene, og en engangslenke der de selv velger passord eller passnøkkel. + action: /redaktor + consequence: + - Inviter + invite: + group: redaktor + features: + - name: Hvem + description: Navnet deres, og adressen kontoen og engangslenken går til. + requirements: + - name: name + label: Navn + - name: email + label: E-post + type: email +- name: Sendte invitasjoner + description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt. + action: /redaktor + consequence: + - Bekreft + features: + - name: Hvem som er invitert + description: Hver rad er én invitasjon. Den blir ferdig av seg selv når personen logger inn, og står som utløpt når lenken gikk ut ubrukt. + resource: + source: + kind: kv + bucket: portal_invites + requires_group: redaktor + transitions: + - from: open + to: done + label: Er inne + - from: expired + to: open + label: Send på nytt + - from: expired + to: done + label: Er inne diff --git a/questions/status/oppslag/[key].yaml b/questions/status/oppslag/[key].yaml new file mode 100644 index 0000000..8e43987 --- /dev/null +++ b/questions/status/oppslag/[key].yaml @@ -0,0 +1,38 @@ +name: Vil du låne ut, eller låne, det som står i oppslaget? +description: Du svarer på ett oppslag. Den som la det ut får e-posten din med en gang, og tar kontakt. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Si fra til den som la ut oppslaget + description: Legg igjen e-posten din, så får de vite at du kan låne ut, eller vil låne. + action: /received/melde-seg + consequence: + - Send svar + record_as: svar + features: + - name: Hva skjer + description: E-posten din går rett til den som la ut oppslaget. Dere avtaler resten dere imellom. + icon: lucide:mail + - name: Hvem ser dette + description: Den som la ut oppslaget, og redaktøren. + icon: lucide:users + - name: Ditt svar + requirements: + - name: email + label: E-post + type: email + placeholder: ola@eksempel.no + value: '{user.email}' + - name: hilsen + label: En hilsen, om du vil + type: textarea + optional: true + placeholder: Jeg har en stige du kan låne i helga + - name: oppslag + type: record + of: oppslag + value: '{key}' + icon: lucide:package + encouragements: + - Flere kan svare; den som la ut velger selv. diff --git a/questions/status/oppslag/index.yaml b/questions/status/oppslag/index.yaml index dafe397..47add9f 100644 --- a/questions/status/oppslag/index.yaml +++ b/questions/status/oppslag/index.yaml @@ -14,6 +14,10 @@ alternatives: kind: kv bucket: oppslag public: true - states: [] + states: + - open empty: Ingenting her ennå. jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {har_eller_trenger: .har_eller_trenger, hva: .hva}' + link: + to: /status/oppslag/{id} + label: Jeg kan låne ut eller låne denne diff --git a/questions/styret/index.yaml b/questions/styret/index.yaml index 5b2a7f9..33594e4 100644 --- a/questions/styret/index.yaml +++ b/questions/styret/index.yaml @@ -38,26 +38,6 @@ alternatives: - from: open to: avslatt label: Avslå søknaden -- name: Utstyr til utlån blant naboer - description: Her ligger det naboer har å låne ut eller trenger å låne, klart til å legges ut. - action: /styret - consequence: - - Lagre - features: - - name: Oppslag - description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. - resource: - source: - kind: kv - bucket: oppslag - requires_group: styret - transitions: - - from: open - to: lagt_ut - label: Legg ut oppslaget - - from: open - to: tatt_ned - label: Ta ned oppslaget - name: Meldinger om trafikkfarer description: Her samles meldinger om farlige steder i trafikken, klare til å tas videre med kommunen eller veieier. action: /styret @@ -168,6 +148,22 @@ alternatives: - name: email label: E-post type: email +- name: Inviter noen inn som redaktør + description: De får en konto, plass blant redaktørene, og en engangslenke der de selv velger passord eller passnøkkel. + action: /styret + consequence: + - Inviter + invite: + group: redaktor + features: + - name: Hvem + description: Navnet deres, og adressen kontoen og engangslenken går til. + requirements: + - name: name + label: Navn + - name: email + label: E-post + type: email - name: Inviter noen inn i styret description: De får en konto, plass i styret, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. action: /styret @@ -201,13 +197,13 @@ alternatives: label: E-post type: email - name: Sendte invitasjoner - description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt. action: /styret consequence: - Lagre features: - name: Hvem som er invitert - description: Hver rad er én invitasjon, med engangslenken så lenge den ikke er brukt. + description: Hver rad er én invitasjon. Den blir ferdig av seg selv når personen logger inn, og står som utløpt når lenken gikk ut ubrukt. resource: source: kind: kv @@ -217,3 +213,38 @@ alternatives: - from: open to: done label: Er inne + - from: expired + to: open + label: Send på nytt + - from: expired + to: done + label: Er inne +- name: Forslag til endringer på siden + description: Det de som står som ansvarlige for et spørsmål, har foreslått å endre. De får beskjed når forslaget flyttes. + action: /styret + consequence: + - Lagre + features: + - name: Forslag + description: Hver rad er ett forslag, med siden det gjelder. Knappene fører opp det du nettopp har gjort med det. + resource: + source: + kind: kv + bucket: portal_edit_suggestions + requires_group: styret + transitions: + - from: open + to: discussed + label: Vi ser på det + - from: open + to: done + label: Endringen er gjort + - from: open + to: declined + label: Gjøres ikke + - from: discussed + to: done + label: Endringen er gjort + - from: discussed + to: declined + label: Gjøres ikke diff --git a/questions/trafikk/index.yaml b/questions/trafikk/index.yaml index 8fde653..1bb8e19 100644 --- a/questions/trafikk/index.yaml +++ b/questions/trafikk/index.yaml @@ -47,13 +47,13 @@ alternatives: label: E-post type: email - name: Sendte invitasjoner - description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt. action: /trafikk consequence: - Lagre features: - name: Hvem som er invitert - description: Hver rad er én invitasjon, med engangslenken så lenge den ikke er brukt. + description: Hver rad er én invitasjon. Den blir ferdig av seg selv når personen logger inn, og står som utløpt når lenken gikk ut ubrukt. resource: source: kind: kv @@ -63,3 +63,9 @@ alternatives: - from: open to: done label: Er inne + - from: expired + to: open + label: Send på nytt + - from: expired + to: done + label: Er inne