From c551273fc263395e6eab5223375ab1013b125526 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 23 Sep 2026 12:39:01 +0200 Subject: [PATCH] Desks invite members: one form per group the desk may fill Regenerated from the plan with every existing word lifted back out of this repo (the diff is additions only): each committee's desk invites into itself, styret's desk into every group, and each inviting desk lists the invites it sent (portal_invites, open -> done). Portal creates the account, the group membership and a one-time credential link; the desk shows the link to pass on. Needs portal 0.3.40+ on the instance and KANIDM_API_TOKEN in its env. Lint pinned to iris 0.3.41. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH --- .gitea/workflows/lint-and-reload.yml | 2 +- questions/arrangementer/index.yaml | 33 ++++++ questions/horingsinstans/index.yaml | 33 ++++++ questions/kasserer/index.yaml | 33 ++++++ questions/komiteer/index.yaml | 33 ++++++ questions/lekeplasser/index.yaml | 33 ++++++ questions/nabohjelp/index.yaml | 33 ++++++ questions/styret/index.yaml | 145 +++++++++++++++++++++++++++ questions/trafikk/index.yaml | 33 ++++++ 9 files changed, 377 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/lint-and-reload.yml b/.gitea/workflows/lint-and-reload.yml index e0d209f..f4a8182 100644 --- a/.gitea/workflows/lint-and-reload.yml +++ b/.gitea/workflows/lint-and-reload.yml @@ -17,7 +17,7 @@ jobs: # runs (v0.3.36 on kasse). - name: lint env: - IRIS_RELEASE: v0.3.39 + IRIS_RELEASE: v0.3.41 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/questions/arrangementer/index.yaml b/questions/arrangementer/index.yaml index 00eb3a9..13a990e 100644 --- a/questions/arrangementer/index.yaml +++ b/questions/arrangementer/index.yaml @@ -25,6 +25,39 @@ alternatives: label: Takket nei to: takket_nei name: Frivillige til arrangementer og dugnad +- action: /arrangementer + consequence: + - Inviter + description: De får en konto, plass i Arrangementer, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: arrangementer + name: Inviter noen inn i Arrangementer +- action: /arrangementer + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: arrangementer + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner description: Oversikt over folk som vil hjelpe til, slik at du kan følge opp og sette dem opp på noe som passer. name: Hvem har meldt seg, og hvor langt har jeg kommet med å sette dem opp? responsible: diff --git a/questions/horingsinstans/index.yaml b/questions/horingsinstans/index.yaml index baff123..b5c4abb 100644 --- a/questions/horingsinstans/index.yaml +++ b/questions/horingsinstans/index.yaml @@ -19,6 +19,39 @@ alternatives: label: Ikke tatt med to: ikke_tatt_med name: Innspill til høringssvar +- action: /horingsinstans + consequence: + - Inviter + description: De får en konto, plass i Høringsinstans, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: horingsinstans + name: Inviter noen inn i Høringsinstans +- action: /horingsinstans + consequence: + - Send svar + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: horingsinstans + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner description: Her samler du innspillene og ser hva som er tatt med i velets høringssvar. name: Hva sier vi i høringssvaret? responsible: diff --git a/questions/kasserer/index.yaml b/questions/kasserer/index.yaml index 1143154..8dda085 100644 --- a/questions/kasserer/index.yaml +++ b/questions/kasserer/index.yaml @@ -62,6 +62,39 @@ alternatives: label: Avvis utlegg to: avvist name: Utlegg som venter på deg +- action: /kasserer + consequence: + - Inviter + description: De får en konto, plass i kassereren, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: kasserer + name: Inviter noen inn i kassereren +- action: /kasserer + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: kasserer + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner description: Her har du oversikt over medlemmer, endringer og utlegg som venter på deg som kasserer. name: Hva venter på meg som kasserer akkurat nå? responsible: diff --git a/questions/komiteer/index.yaml b/questions/komiteer/index.yaml index 1375cf1..ccf6e5e 100644 --- a/questions/komiteer/index.yaml +++ b/questions/komiteer/index.yaml @@ -4,6 +4,39 @@ alternatives: - Send utlegg description: Har du lagt ut for noe til komiteen? Send det inn så kasserer kan betale deg tilbake. name: Få tilbake det du har lagt ut +- action: /komiteer + consequence: + - Inviter + description: De får en konto, plass i komiteene, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: komiteer + name: Inviter noen inn i komiteene +- action: /komiteer + consequence: + - Confirm + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: komiteer + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner description: Her holder du oversikt over sakene komiteen din har ansvar for, og flytter dem videre etter hvert som de blir fulgt opp. name: Hva står ubehandlet i komiteen din nå? responsible: diff --git a/questions/lekeplasser/index.yaml b/questions/lekeplasser/index.yaml index 3f9dd93..215a9bc 100644 --- a/questions/lekeplasser/index.yaml +++ b/questions/lekeplasser/index.yaml @@ -19,6 +19,39 @@ alternatives: label: Merk som utbedret to: utbedret name: Det som er meldt inn av skader +- action: /lekeplasser + consequence: + - Inviter + description: De får en konto, plass i Leke- og møteplasser, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: lekeplasser + name: Inviter noen inn i Leke- og møteplasser +- action: /lekeplasser + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: lekeplasser + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner description: Her følger komiteen for lekeplassene opp det som er meldt inn av skader, til det er fikset. name: Hva må fikses på lekeplassene og stien nå? responsible: diff --git a/questions/nabohjelp/index.yaml b/questions/nabohjelp/index.yaml index f4fa53f..ab4db6b 100644 --- a/questions/nabohjelp/index.yaml +++ b/questions/nabohjelp/index.yaml @@ -45,6 +45,39 @@ alternatives: label: Meld trukket to: trukket name: Naboer som kan stille opp +- action: /nabohjelp + consequence: + - Inviter + description: De får en konto, plass i nabohjelpen, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: nabohjelp + name: Inviter noen inn i nabohjelpen +- action: /nabohjelp + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: nabohjelp + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner description: Her kobler du naboer som trenger hjelp med dem som kan stille opp. name: Hvem trenger hjelp, og hvem kan stille opp? responsible: diff --git a/questions/styret/index.yaml b/questions/styret/index.yaml index bfad0cd..1a27364 100644 --- a/questions/styret/index.yaml +++ b/questions/styret/index.yaml @@ -67,6 +67,151 @@ alternatives: kind: kv transitions: [] name: Meldinger om trafikkfarer +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i Arrangementer, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: arrangementer + name: Inviter noen inn i Arrangementer +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i Høringsinstans, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: horingsinstans + name: Inviter noen inn i Høringsinstans +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i kassereren, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: kasserer + name: Inviter noen inn i kassereren +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i komiteene, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: komiteer + name: Inviter noen inn i komiteene +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i Leke- og møteplasser, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: lekeplasser + name: Inviter noen inn i Leke- og møteplasser +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i nabohjelpen, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: nabohjelp + name: Inviter noen inn i nabohjelpen +- action: /styret + consequence: + - Inviter + 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. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: styret + name: Inviter noen inn i styret +- action: /styret + consequence: + - Inviter + description: De får en konto, plass i Trafikkforhold, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: trafikk + name: Inviter noen inn i Trafikkforhold +- action: /styret + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: styret + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner description: 'Herfra følger styret opp det som ikke hører under en enkelt komité: høringssvar, komitéplasser og oppslag fra naboer.' name: Hva venter på styret akkurat nå? responsible: diff --git a/questions/trafikk/index.yaml b/questions/trafikk/index.yaml index fa01bbc..d14490e 100644 --- a/questions/trafikk/index.yaml +++ b/questions/trafikk/index.yaml @@ -25,6 +25,39 @@ alternatives: label: Avvis meldingen to: avvist name: Farlige steder i trafikken +- action: /trafikk + consequence: + - Inviter + description: De får en konto, plass i Trafikkforhold, og en engangslenke der de selv velger passord eller passnøkkel. Send lenken videre til dem. + features: + - description: '' + name: Hvem + requirements: + - label: Navn + name: name + - label: E-post + name: email + type: email + invite: + group: trafikk + name: Inviter noen inn i Trafikkforhold +- action: /trafikk + consequence: + - Lagre + description: Hver invitasjon med lenken som ble laget. Marker som ferdig når personen er inne. + features: + - description: '' + name: '' + resource: + requires_group: trafikk + source: + bucket: portal_invites + kind: kv + transitions: + - from: open + label: Er inne + to: done + name: Sendte invitasjoner description: Her ser du meldinger om farlige steder i trafikken og følger dem opp overfor kommunen eller veieier. name: Hvilke trafikkfarer må følges opp? responsible: