Merge pull request 'Invitasjoner som kan sendes på nytt, forslag til endringer, og oppslagstavla svart fra tavla' (#1) from invitasjoner-og-forslag into main
lint-and-reload / lint (push) Successful in 1s

This commit was merged in pull request #1.
This commit is contained in:
bl
2026-09-30 08:02:25 +02:00
19 changed files with 310 additions and 63 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.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
+33 -6
View File
@@ -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:
+23 -7
View File
@@ -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
+8 -2
View File
@@ -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
+8 -2
View File
@@ -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
+6 -2
View File
@@ -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
+8 -2
View File
@@ -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
+8 -2
View File
@@ -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
+8 -2
View File
@@ -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
+3 -3
View File
@@ -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.
+8 -2
View File
@@ -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
+7 -7
View File
@@ -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
+5
View File
@@ -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.
+1
View File
@@ -0,0 +1 @@
qualifies: redaktor
+79
View File
@@ -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
+38
View File
@@ -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.
+5 -1
View File
@@ -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
+53 -22
View File
@@ -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
+8 -2
View File
@@ -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