Portal holder gruppene selv: invitasjon med telefonnummer, lista er hvem som er med

Hver pult inviterer med navn og telefonnummer (e-post om de har), og
lista over invitasjoner er lista over medlemmer: invitert til de
logger inn, så med, tatt ut av pulten. Lint med iris v0.5.10.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt
This commit is contained in:
bl
2026-09-30 14:12:23 +02:00
co-authored by Claude Fable 5.1
parent 02752b2651
commit ac60619c7f
10 changed files with 235 additions and 163 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
# portalen vel-et kjører (PORTAL_RELEASE i infrastructure/.env).
- name: lint
env:
IRIS_RELEASE: v0.5.6
IRIS_RELEASE: v0.5.10
run: |
curl -sfL "https://project.uhhm.no/uhhm/iris/releases/download/$IRIS_RELEASE/iris" -o iris && chmod +x iris
./iris check --path checkout/questions
+20 -16
View File
@@ -40,33 +40,37 @@ alternatives:
group: arrangementer
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
- name: Sendte invitasjoner
description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.
optional: true
- name: Medlemmer og invitasjoner
description: Alle som er invitert inn i en gruppe denne pulten kan fylle, og om de har kommet.
action: /arrangementer
consequence:
- Lagre
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.
- name: Hvem som er med
description: 'Hver rad er én person i én gruppe: invitert til de logger inn, så med. Å ta noen ut beholder raden, så de kan inviteres igjen.'
resource:
source:
kind: kv
bucket: portal_invites
bucket: portal_memberships
requires_group: arrangementer
transitions:
- from: open
to: done
label: Er inne
- from: expired
to: open
label: Send på nytt
- from: expired
to: done
label: Er inne
- from: invited
to: removed
label: Trekk tilbake
- from: active
to: removed
label: Ta ut
- from: removed
to: invited
label: Inviter igjen
+20 -16
View File
@@ -34,33 +34,37 @@ alternatives:
group: horingsinstans
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
- name: Sendte invitasjoner
description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.
optional: true
- name: Medlemmer og invitasjoner
description: Alle som er invitert inn i en gruppe denne pulten kan fylle, og om de har kommet.
action: /horingsinstans
consequence:
- Send svar
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.
- name: Hvem som er med
description: 'Hver rad er én person i én gruppe: invitert til de logger inn, så med. Å ta noen ut beholder raden, så de kan inviteres igjen.'
resource:
source:
kind: kv
bucket: portal_invites
bucket: portal_memberships
requires_group: horingsinstans
transitions:
- from: open
to: done
label: Er inne
- from: expired
to: open
label: Send på nytt
- from: expired
to: done
label: Er inne
- from: invited
to: removed
label: Trekk tilbake
- from: active
to: removed
label: Ta ut
- from: removed
to: invited
label: Inviter igjen
+20 -16
View File
@@ -77,33 +77,37 @@ alternatives:
group: kasserer
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
- name: Sendte invitasjoner
description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.
optional: true
- name: Medlemmer og invitasjoner
description: Alle som er invitert inn i en gruppe denne pulten kan fylle, og om de har kommet.
action: /kasserer
consequence:
- Lagre
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.
- name: Hvem som er med
description: 'Hver rad er én person i én gruppe: invitert til de logger inn, så med. Å ta noen ut beholder raden, så de kan inviteres igjen.'
resource:
source:
kind: kv
bucket: portal_invites
bucket: portal_memberships
requires_group: kasserer
transitions:
- from: open
to: done
label: Er inne
- from: expired
to: open
label: Send på nytt
- from: expired
to: done
label: Er inne
- from: invited
to: removed
label: Trekk tilbake
- from: active
to: removed
label: Ta ut
- from: removed
to: invited
label: Inviter igjen
+20 -16
View File
@@ -19,33 +19,37 @@ alternatives:
group: komiteer
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
- name: Sendte invitasjoner
description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.
optional: true
- name: Medlemmer og invitasjoner
description: Alle som er invitert inn i en gruppe denne pulten kan fylle, og om de har kommet.
action: /komiteer
consequence:
- Confirm
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.
- name: Hvem som er med
description: 'Hver rad er én person i én gruppe: invitert til de logger inn, så med. Å ta noen ut beholder raden, så de kan inviteres igjen.'
resource:
source:
kind: kv
bucket: portal_invites
bucket: portal_memberships
requires_group: komiteer
transitions:
- from: open
to: done
label: Er inne
- from: expired
to: open
label: Send på nytt
- from: expired
to: done
label: Er inne
- from: invited
to: removed
label: Trekk tilbake
- from: active
to: removed
label: Ta ut
- from: removed
to: invited
label: Inviter igjen
+20 -16
View File
@@ -34,33 +34,37 @@ alternatives:
group: lekeplasser
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
- name: Sendte invitasjoner
description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.
optional: true
- name: Medlemmer og invitasjoner
description: Alle som er invitert inn i en gruppe denne pulten kan fylle, og om de har kommet.
action: /lekeplasser
consequence:
- Lagre
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.
- name: Hvem som er med
description: 'Hver rad er én person i én gruppe: invitert til de logger inn, så med. Å ta noen ut beholder raden, så de kan inviteres igjen.'
resource:
source:
kind: kv
bucket: portal_invites
bucket: portal_memberships
requires_group: lekeplasser
transitions:
- from: open
to: done
label: Er inne
- from: expired
to: open
label: Send på nytt
- from: expired
to: done
label: Er inne
- from: invited
to: removed
label: Trekk tilbake
- from: active
to: removed
label: Ta ut
- from: removed
to: invited
label: Inviter igjen
+20 -16
View File
@@ -69,33 +69,37 @@ alternatives:
group: nabohjelp
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
- name: Sendte invitasjoner
description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.
optional: true
- name: Medlemmer og invitasjoner
description: Alle som er invitert inn i en gruppe denne pulten kan fylle, og om de har kommet.
action: /nabohjelp
consequence:
- Lagre
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.
- name: Hvem som er med
description: 'Hver rad er én person i én gruppe: invitert til de logger inn, så med. Å ta noen ut beholder raden, så de kan inviteres igjen.'
resource:
source:
kind: kv
bucket: portal_invites
bucket: portal_memberships
requires_group: nabohjelp
transitions:
- from: open
to: done
label: Er inne
- from: expired
to: open
label: Send på nytt
- from: expired
to: done
label: Er inne
- from: invited
to: removed
label: Trekk tilbake
- from: active
to: removed
label: Ta ut
- from: removed
to: invited
label: Inviter igjen
+20 -16
View File
@@ -48,33 +48,37 @@ alternatives:
group: redaktor
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
- name: Sendte invitasjoner
description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.
optional: true
- name: Medlemmer og invitasjoner
description: Alle som er invitert inn i en gruppe denne pulten kan fylle, og om de har kommet.
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.
- name: Hvem som er med
description: 'Hver rad er én person i én gruppe: invitert til de logger inn, så med. Å ta noen ut beholder raden, så de kan inviteres igjen.'
resource:
source:
kind: kv
bucket: portal_invites
bucket: portal_memberships
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
- from: invited
to: removed
label: Trekk tilbake
- from: active
to: removed
label: Ta ut
- from: removed
to: invited
label: Inviter igjen
+74 -34
View File
@@ -84,13 +84,17 @@ alternatives:
group: arrangementer
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
optional: true
- name: Inviter noen inn i Høringsinstans
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.
action: /styret
@@ -100,13 +104,17 @@ alternatives:
group: horingsinstans
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
optional: true
- name: Inviter noen inn i kassereren
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.
action: /styret
@@ -116,13 +124,17 @@ alternatives:
group: kasserer
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
optional: true
- name: Inviter noen inn i komiteene
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.
action: /styret
@@ -132,13 +144,17 @@ alternatives:
group: komiteer
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
optional: true
- name: Inviter noen inn i Leke- og møteplasser
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.
action: /styret
@@ -148,13 +164,17 @@ alternatives:
group: lekeplasser
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
optional: true
- name: Legg til en husstand som medlem uten kontingent via siden
description: For en husstand som har betalt på annen måte. De får en konto og plass blant medlemmene, og en engangslenke der de selv velger passord eller passnøkkel.
action: /styret
@@ -164,13 +184,17 @@ alternatives:
group: medlemmer
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
optional: true
- name: Inviter noen inn i nabohjelpen
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.
action: /styret
@@ -180,13 +204,17 @@ alternatives:
group: nabohjelp
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
optional: true
- 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
@@ -196,13 +224,17 @@ alternatives:
group: redaktor
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
optional: true
- 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
@@ -212,13 +244,17 @@ alternatives:
group: styret
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
optional: true
- name: Inviter noen inn i Trafikkforhold
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.
action: /styret
@@ -228,36 +264,40 @@ alternatives:
group: trafikk
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
- name: Sendte invitasjoner
description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.
optional: true
- name: Medlemmer og invitasjoner
description: Alle som er invitert inn i en gruppe denne pulten kan fylle, og om de har kommet.
action: /styret
consequence:
- Lagre
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.
- name: Hvem som er med
description: 'Hver rad er én person i én gruppe: invitert til de logger inn, så med. Å ta noen ut beholder raden, så de kan inviteres igjen.'
resource:
source:
kind: kv
bucket: portal_invites
bucket: portal_memberships
requires_group: styret
transitions:
- from: open
to: done
label: Er inne
- from: expired
to: open
label: Send på nytt
- from: expired
to: done
label: Er inne
- from: invited
to: removed
label: Trekk tilbake
- from: active
to: removed
label: Ta ut
- from: removed
to: invited
label: Inviter igjen
- 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
+20 -16
View File
@@ -40,33 +40,37 @@ alternatives:
group: trafikk
features:
- name: Hvem
description: Navnet deres, og adressen kontoen og engangslenken går til.
description: Navnet og telefonnummeret deres, og e-post om de har. Plassen er der når de logger inn.
requirements:
- name: name
label: Navn
- name: phone
label: Telefon
type: tel
- name: email
label: E-post
label: E-post (om de har)
type: email
- name: Sendte invitasjoner
description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.
optional: true
- name: Medlemmer og invitasjoner
description: Alle som er invitert inn i en gruppe denne pulten kan fylle, og om de har kommet.
action: /trafikk
consequence:
- Lagre
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.
- name: Hvem som er med
description: 'Hver rad er én person i én gruppe: invitert til de logger inn, så med. Å ta noen ut beholder raden, så de kan inviteres igjen.'
resource:
source:
kind: kv
bucket: portal_invites
bucket: portal_memberships
requires_group: trafikk
transitions:
- from: open
to: done
label: Er inne
- from: expired
to: open
label: Send på nytt
- from: expired
to: done
label: Er inne
- from: invited
to: removed
label: Trekk tilbake
- from: active
to: removed
label: Ta ut
- from: removed
to: invited
label: Inviter igjen