diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/README.md b/runs/tomtervel-oppslagstavla-2026-09-30/README.md new file mode 100644 index 0000000..016a3bd --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/README.md @@ -0,0 +1,38 @@ +# Tomter Vel's lending board: answered from the board itself (not deployed) + +Rebuilt from `plans/tomtervel.yaml` with the words in use on +vel.klingenbergbygg.no, after the plan got its first need `about` +another: `melde-seg` answers one record of `dele-utstyr`. + +- A notice stands on the board from the moment it is sent + (`public_states: [open]`, no approval stage); styret is mailed. +- Every row on the board, on the front door and on the full list, + links to the notice's own page `/status/oppslag/[key]`, where a + neighbour leaves an email (filled and hidden when signed in) and a + line if they like. The answer is mailed straight to whoever posted + the notice, with the neighbour's address and the take-down link. + The queue is the poster's inbox; the site keeps no state about who + they picked. +- A notice comes down when the poster says so, when the redaktør + (`redaktor`, the group of the people named responsible) presses "Ta + ned oppslaget" at its own desk, or after 30 days. +- The redaktør desk also lists the answers, marked read by hand. + +Words: the model's pass (Sonnet, `--llm-for questions/status/oppslag/`) +read the answer page as the posting page and rewrote the board's tuned +headings, so the new pages' words are written by hand in +`words-board.json` instead, and `words_prompt` now says what that page +is. Also hand-written there: the two mails (a new notice to styret; an +answer to the poster), the front door's inline-list descriptions and +the invite-list lines, which the lift does not carry. + +Found on the way: the lift matched desk cards by `action`, which every +card on a desk shares, so when the notices left styret's desk their +words landed on the next card. A desk card is now identified by the +bucket its list shows. + +Lints green with iris built against portal's `answer-a-record` branch +(portal PR 4): 12 needs structurally met. On tomtervel/questions branch +`invitasjoner-og-forslag`, which needs portal v0.5.5 on the vel first. +Live records in `oppslag` at `lagt_ut` have no state after this; the +stage is gone. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/aggregates.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/aggregates.yaml new file mode 100644 index 0000000..09aa611 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/aggregates.yaml @@ -0,0 +1,219 @@ +aggregates: +- bucket: anleggsfeil + initial: open + states: + open: + event: received + tatt_tak_i: + event: tatt_tak_i + utbedret: + event: utbedret + transitions: + open: + - tatt_tak_i + tatt_tak_i: + - utbedret +- bucket: frivillige + initial: open + states: + open: + event: received + kontaktet: + event: kontaktet + satt_opp: + event: satt_opp + takket_nei: + event: takket_nei + transitions: + kontaktet: + - satt_opp + - takket_nei + open: + - kontaktet + - takket_nei +- bucket: hjelpebehov + initial: open + states: + open: + event: received + mail: + to: submitter + subject: Vi leter etter en nabo til deg + body: Vi har mottatt det du trenger hjelp til, og ser etter en nabo som kan stille opp. Du hører fra oss så snart vi har funnet noen. + formidlet: + event: formidlet + mail: + to: submitter + subject: En nabo er koblet på + body: |- + Vi har funnet en nabo som kan hjelpe. De tar kontakt med deg direkte. + + Det du kan gjøre nå: {site}/decide/trenger-hjelp?chain={chain}&email={email} + ordnet: + event: ordnet + mail: + to: submitter + subject: Bra det løste seg + body: Godt å høre at det ordnet seg. Takk for at du sa fra, og lykke til videre. + ikke_lost: + event: ikke_lost + transitions: + formidlet: + - ordnet + - ikke_lost + open: + - formidlet + - ikke_lost +- bucket: hjelpere + initial: open + states: + open: + event: received + registrert: + event: registrert + trukket: + event: trukket + transitions: + open: + - registrert + - trukket +- bucket: husstander + initial: open + states: + open: + event: received + mail: + to: submitter + subject: Nesten i mål som medlem + body: |- + Takk for at du vil bli medlem. Du får en betalingsoppfordring med kontonummer og beløp så snart kasserer har sett på saken. + + Det du kan gjøre nå: {site}/decide/bli-medlem?chain={chain}&email={email} + betalt: + event: betalt + mail: + to: submitter + subject: Medlemskapet er i orden + body: Kontingenten er registrert betalt. Du er nå medlem av Tomter Vel - velkommen med! + utmeldt: + event: utmeldt + transitions: + open: + - betalt + - utmeldt +- bucket: innspill + initial: open + states: + open: + event: received + tatt_med: + event: tatt_med + ikke_tatt_med: + event: ikke_tatt_med + transitions: + open: + - tatt_med + - ikke_tatt_med +- bucket: komitesoknader + initial: open + states: + open: + event: received + plassert: + event: plassert + avslatt: + event: avslatt + transitions: + open: + - plassert + - avslatt +- bucket: medlemsendringer + initial: open + states: + open: + event: received + oppdatert: + event: oppdatert + transitions: + open: + - oppdatert +- bucket: oppslag + initial: open + states: + open: + event: received + mail: + 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: + - 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: + open: + event: received + tatt_opp: + event: tatt_opp + ordnet: + event: ordnet + avvist: + event: avvist + transitions: + open: + - tatt_opp + - avvist + tatt_opp: + - ordnet + - avvist +- bucket: utlegg + initial: open + states: + open: + event: received + godkjent: + event: godkjent + utbetalt: + event: utbetalt + avvist: + event: avvist + transitions: + godkjent: + - utbetalt + - avvist + open: + - godkjent + - avvist diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/needs.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/needs.yaml new file mode 100644 index 0000000..45da519 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/needs.yaml @@ -0,0 +1,328 @@ +needs: +- id: bli-medlem + who: en husstand i Tomter + wants: å bli medlem og få betalt kontingenten + enters: / + via: Bli medlem eller endre opplysningene dine + lands_in: husstander + handled_by: kasserer + stages: + - open + - betalt + - utmeldt + done_when: + - betalt + - utmeldt + success: + - betalt + max_steps: 2 + max_fields: 3 + stage_words: + open: mottatt + betalt: betalt + utmeldt: meldt ut +- id: endre-medlemskap + who: et medlem som har flyttet, byttet e-post eller vil melde seg ut + wants: at velet har riktige opplysninger om dem + enters: / + via: Bli medlem eller endre opplysningene dine + lands_in: medlemsendringer + handled_by: kasserer + stages: + - open + - oppdatert + done_when: + - oppdatert + success: + - oppdatert + max_steps: 2 + max_fields: 3 + stage_words: + open: mottatt + oppdatert: oppdatert +- id: trafikkfare + who: en som har sett et farlig sted i trafikken + wants: at velet tar det opp med kommunen eller den som eier veien + enters: / + via: Meld fra om noe som bør fikses + lands_in: trafikkmeldinger + handled_by: trafikk + stages: + - open + - tatt_opp + - ordnet + - avvist + done_when: + - ordnet + - avvist + success: + - ordnet + max_steps: 2 + max_fields: 2 + stage_words: + open: mottatt + tatt_opp: tatt opp med kommunen + ordnet: ordnet + avvist: avvist +- id: anleggsfeil + who: en som ser at noe på lekeplassen eller stien er ødelagt + wants: at det blir fikset før noen skader seg + enters: / + via: Meld fra om noe som bør fikses + lands_in: anleggsfeil + handled_by: lekeplasser + stages: + - open + - tatt_tak_i + - utbedret + done_when: + - utbedret + success: + - utbedret + max_steps: 2 + max_fields: 2 + stage_words: + open: mottatt + tatt_tak_i: tatt tak i + utbedret: utbedret +- id: horingsinnspill + who: en beboer som har en mening om en sak kommunen har på høring + wants: at velet tar det med i sitt svar + enters: / + via: Få din mening med i høringssvaret + lands_in: innspill + handled_by: horingsinstans + stages: + - open + - tatt_med + - ikke_tatt_med + done_when: + - tatt_med + - ikke_tatt_med + success: + - tatt_med + max_steps: 1 + max_fields: 3 + stage_words: + open: mottatt + tatt_med: tatt med i høringssvaret + ikke_tatt_med: ikke tatt med +- id: hjelpe-til + who: en som vil hjelpe til på et arrangement eller en dugnad + wants: å bli satt opp på noe som passer dem + enters: / + via: Bli med og gjør en innsats + lands_in: frivillige + handled_by: arrangementer + stages: + - open + - kontaktet + - satt_opp + - takket_nei + done_when: + - satt_opp + - takket_nei + success: + - satt_opp + max_steps: 2 + max_fields: 3 + stage_words: + open: mottatt + kontaktet: kontaktet + satt_opp: satt opp + takket_nei: takket nei +- id: komite + who: en som vil sitte i en komité + wants: en plass i den komiteen som driver med det de bryr seg om + enters: / + via: Bli med og gjør en innsats + lands_in: komitesoknader + handled_by: styret + stages: + - open + - plassert + - avslatt + done_when: + - plassert + - avslatt + success: + - plassert + max_steps: 2 + max_fields: 3 + stage_words: + open: mottatt + plassert: plassert i en komité + avslatt: avslått +- id: trenger-hjelp + who: en beboer som ikke får til noe selv for tiden, som snømåking, handling eller en skyss + wants: at en nabo stiller opp + enters: / + via: Få hjelp av naboer, eller gi en hånd selv + lands_in: hjelpebehov + handled_by: nabohjelp + stages: + - open + - formidlet + - ordnet + - ikke_lost + done_when: + - ordnet + - ikke_lost + success: + - ordnet + max_steps: 2 + max_fields: 4 + stage_words: + open: mottatt + formidlet: formidlet til en nabo + ordnet: ordnet + ikke_lost: ikke løst +- id: kan-hjelpe + who: en nabo som kan stille opp når noen trenger det + wants: å bli spurt når det passer + enters: / + via: Få hjelp av naboer, eller gi en hånd selv + lands_in: hjelpere + handled_by: nabohjelp + stages: + - open + - registrert + - trukket + done_when: + - registrert + - trukket + success: + - registrert + max_steps: 2 + max_fields: 4 + stage_words: + open: mottatt + registrert: registrert som hjelper + trukket: trukket +- id: dele-utstyr + who: en nabo som har noe å låne ut, eller trenger å låne noe + 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: redaktor + stages: + - open + - tatt_ned + done_when: + - tatt_ned + success: + - tatt_ned + max_steps: 2 + max_fields: 4 + stage_words: + 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 + enters: /komiteer/utlegg + via: Få pengene tilbake + lands_in: utlegg + handled_by: kasserer + stages: + - open + - godkjent + - utbetalt + - avvist + done_when: + - utbetalt + - avvist + success: + - utbetalt + max_steps: 1 + max_fields: 3 + stage_words: + open: mottatt + godkjent: godkjent + utbetalt: utbetalt + avvist: avvist + enters_as: komiteer +personas: +- id: nyinnflyttet + need: bli-medlem + text: Vi flyttet til Tomter i mars og har hørt at det finnes et vel. Hvordan blir vi med, og hva koster det? +- id: glemte-a-betale + need: bli-medlem + text: Jeg har vært medlem før men fikk ikke betalt i fjor. Kan jeg bare vippse, og til hvem? +- id: ny-epost + need: endre-medlemskap + text: Vi har byttet e-postadresse og får ikke lenger noe fra dere. +- id: flytter + need: endre-medlemskap + text: Vi selger huset og flytter til Ski i august, så vi må ut av medlemslista. +- id: skolevei + need: trafikkfare + text: Bilene kjører altfor fort i svingen ved skolen om morgenen, og det er ikke fortau der ungene går. +- id: busslomme + need: trafikkfare + text: Det er umulig å se om det kommer noen når man skal ut fra busslomma ved butikken, hekken har blitt kjempehøy. +- id: huske + need: anleggsfeil + text: Huska på lekeplassen henger i én kjetting. Sønnen min dro i den i går og den holdt så vidt. +- id: bru + need: anleggsfeil + text: Planken på den lille brua på stien langs elva er råtten, jeg gikk nesten gjennom. +- id: blokker + need: horingsinnspill + text: Kommunen skal bygge blokker på jordet bak stasjonen, og jeg synes det er alt for høyt. Kan velet si ifra? +- id: togtider + need: horingsinnspill + text: Ruter vil kutte det tidlige toget. Jeg pendler til Oslo hver dag og vil at velet skriver til dem om det. +- id: vafler + need: hjelpe-til + text: Jeg kan steke vafler på 17. mai-frokosten hvis dere trenger folk. +- id: motorsag + need: hjelpe-til + text: Har motorsag og ledig helg, kan ta trær langs elvestien hvis det er en dugnad. +- id: pendler + need: komite + text: Jeg pendler og er lei av at ingen snakker med Ruter. Jeg vil gjerne være med i gjengen som jobber med det. +- id: planlegger + need: komite + text: Jeg er arealplanlegger av yrke og kunne bidratt når kommunen sender saker på høring. +- id: tilhenger + need: dele-utstyr + text: Jeg har en tilhenger som står ubrukt mesteparten av året, naboer kan gjerne låne den for en hundrelapp. +- id: stige + need: dele-utstyr + text: Trenger en lang stige en dag i helga for å rense takrenna, er det noen i nærheten som har? +- id: snomaking + need: trenger-hjelp + text: Jeg er 84 og klarer ikke å måke innkjørselen lenger. Er det noen som kan hjelpe meg når det snør? +- id: nyoperert + need: trenger-hjelp + text: Jeg er nyoperert i hofta og kommer meg ikke til butikken på noen uker. Kunne noen handlet for meg? +- id: hjemmekontor + need: kan-hjelpe + text: Jeg jobber hjemmefra og kan godt måke eller handle for noen som ikke får det til selv. +- id: pensjonert-elektriker + need: kan-hjelpe + text: Pensjonert elektriker, har bil og god tid. Si fra om noen trenger skyss eller en hånd med småting. +- id: kvittering + need: utlegg + text: Jeg kjøpte pølser og kakao til skøytedagen for 1 840 kroner, her er kvitteringa, vil ha det igjen. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/arrangementer/_section.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/arrangementer/_section.yaml new file mode 100644 index 0000000..94afa0f --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/arrangementer/_section.yaml @@ -0,0 +1 @@ +qualifies: arrangementer diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/arrangementer/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/arrangementer/index.yaml new file mode 100644 index 0000000..22d629e --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/arrangementer/index.yaml @@ -0,0 +1,71 @@ +name: Hvem har meldt seg, og hvor langt har jeg kommet med å sette dem opp? +description: Oversikt over folk som vil hjelpe til, slik at du kan følge opp og sette dem opp på noe som passer. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Frivillige til arrangementer og dugnad + description: Her ser du hvem som har meldt seg til dugnad, 17. mai eller andre arrangementer, og hvor langt du har kommet med hver av dem. + action: /arrangementer + consequence: + - Lagre + features: + - name: Frivillige + description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. + resource: + source: + kind: kv + bucket: frivillige + requires_group: arrangementer + transitions: + - from: kontaktet + to: satt_opp + label: Sett opp + - from: kontaktet + to: takket_nei + label: Takket nei + - from: open + to: kontaktet + label: Merk som kontaktet + - from: open + to: takket_nei + label: Takket nei +- name: Inviter noen inn i Arrangementer + 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. + action: /arrangementer + consequence: + - Inviter + invite: + group: arrangementer + 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: /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. + resource: + source: + kind: kv + bucket: portal_invites + 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 diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/bidra/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/bidra/index.yaml new file mode 100644 index 0000000..65dada0 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/bidra/index.yaml @@ -0,0 +1,82 @@ +name: Vil du hjelpe til i nabolaget? +description: Vil du stille opp for nabolaget? Her melder du deg til dugnad og arrangementer, eller til en av komiteene. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Bli med på dugnad eller arrangement + description: 17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer. + action: /received/hjelpe-til + consequence: + - Meld meg på + record_as: frivillige + features: + - name: Hva skjer videre + description: Arrangementskomiteen tar kontakt og finner ut hva som passer for deg. Sier du ja, blir du satt opp på en oppgave – sier du nei takk, er det helt greit. + icon: lucide:clipboard-list + - name: Hvem leser dette + description: Arrangementskomiteen leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden. + icon: lucide:users + - name: Meld deg som hjelper + requirements: + - name: navn + label: Navn + type: text + placeholder: Kari Nordmann + - name: telefon + label: Telefon + type: tel + placeholder: 912 34 567 + - name: hva + label: Hva kan du hjelpe til med? + type: select + options: + - 17. mai + - Juletregranstenning + - Skøytedag + - Dugnad på elvestien + - Det som trengs + multiple: true + description: Fortell kort hva du kan hjelpe til med. + icon: lucide:hand-helping + encouragements: + - Det holder med noen ord om hva du kan tenke deg – vi tar kontakt når det nærmer seg. +- name: Sitt i en komité som betyr noe for deg + description: Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i. + action: /received/komite + consequence: + - Meld interesse + record_as: komitesoknader + features: + - name: Hva skjer videre + description: Styret ser på ønsket ditt og finner en plass i komiteen du har meldt deg til, eller sier fra hvis det ikke er rom akkurat nå. + icon: lucide:clipboard-list + - name: Hvem leser dette + description: Styret leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden. + icon: lucide:handshake + - name: Meld deg til en komité + requirements: + - name: navn + label: Navn + type: text + placeholder: Kari Nordmann + - name: epost + label: E-post + type: email + placeholder: kari@eksempel.no + - name: komite + label: Hvilken komité? + type: select + options: + - Arrangementer + - Elvesti + - Høringsinstans + - Leke- og møteplasser + - Miljøgate + - Pendlerforhold + - Trafikkforhold + multiple: true + description: Skriv hvilken komité du er interessert i. + icon: lucide:users + encouragements: + - Det tar bare et minutt, og noen fra styret svarer deg. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/bli-medlem.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/bli-medlem.yaml new file mode 100644 index 0000000..2453aa6 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/bli-medlem.yaml @@ -0,0 +1,11 @@ +name: What would you like to do? +description: '' +alternatives: +- name: Utmeldt + description: '' + self_transition: + bucket: husstander + to: utmeldt + from: + - open + label: Utmeldt diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/dele-utstyr.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/dele-utstyr.yaml new file mode 100644 index 0000000..11765d8 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/dele-utstyr.yaml @@ -0,0 +1,11 @@ +name: Skal oppslaget om utstyret fortsatt stå ute? +description: Her sier du fra at utstyret er hentet eller ikke lenger tilgjengelig for utlån. +alternatives: +- name: Meld at utstyret er tatt ned + description: Oppslaget fjernes fra siden, så ingen flere spør om å låne det. + self_transition: + bucket: oppslag + to: tatt_ned + from: + - open + label: Ta ned oppslaget diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/kan-hjelpe.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/kan-hjelpe.yaml new file mode 100644 index 0000000..8205c75 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/kan-hjelpe.yaml @@ -0,0 +1,11 @@ +name: Vil du fortsatt kunne bli spurt om å hjelpe en nabo? +description: Her ser du naboer som har bedt om en hånd, og kan velge om du fortsatt kan bidra eller trekke deg for nå. +alternatives: +- name: Ta en pause fra nabohjelpen + description: Du blir tatt av lista over naboer som kan spørres, men kan melde deg på igjen når det passer bedre. + self_transition: + bucket: hjelpere + to: trukket + from: + - open + label: Trekk meg diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/trenger-hjelp.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/trenger-hjelp.yaml new file mode 100644 index 0000000..c7adb18 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/decide/trenger-hjelp.yaml @@ -0,0 +1,11 @@ +name: Har naboen fått hjelpen de trengte? +description: Her ser du henvendelsen fra naboen som trengte en hånd, og kan si fra når det er ordnet. +alternatives: +- name: Meld fra at hjelpen er gitt + description: Da vet vi at naboen har fått hjelpen sin, og saken lukkes. + self_transition: + bucket: hjelpebehov + to: ordnet + from: + - formidlet + label: Merk som ordnet diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/horingsinstans/_section.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/horingsinstans/_section.yaml new file mode 100644 index 0000000..ad97e31 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/horingsinstans/_section.yaml @@ -0,0 +1 @@ +qualifies: horingsinstans diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/horingsinstans/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/horingsinstans/index.yaml new file mode 100644 index 0000000..623da7e --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/horingsinstans/index.yaml @@ -0,0 +1,65 @@ +name: Hva sier vi i høringssvaret? +description: Her samler du innspillene og ser hva som er tatt med i velets høringssvar. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Innspill til høringssvar + description: Her ligger innspill fra beboere til saker kommunen har på høring. + action: /horingsinstans + consequence: + - Send svar + features: + - name: Innspill + description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. + resource: + source: + kind: kv + bucket: innspill + requires_group: horingsinstans + transitions: + - from: open + to: tatt_med + label: Tatt med i svaret + - from: open + to: ikke_tatt_med + label: Ikke tatt med +- 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: /horingsinstans + consequence: + - Inviter + invite: + group: horingsinstans + 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: /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. + resource: + source: + kind: kv + bucket: portal_invites + 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 diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/index.yaml new file mode 100644 index 0000000..63111e0 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/index.yaml @@ -0,0 +1,122 @@ +name: Hva gjør Tomter Vel, og hva kan du få her? +description: Velforeningen for Tomter, stiftet i 1947, drevet på fritida av naboene dine. Alt du kan be om her havner hos en komité eller styret, og du ser selv hvor saken står. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Velforeningen for Tomter siden 1947 + description: Vi er sju komiteer som jobber på fritida for bygda vår. 157 husstander er med. + features: + - name: 157 husstander er medlemmer + description: Kontingenten går til arrangementer, lekeplasser, elvestien og arbeidet for tryggere trafikk. + icon: lucide:users + - name: Naboer som stiller opp for hverandre + description: Trenger du hjelp med snømåking, handling eller skyss, finner vi en nabo som kan. Du kan også låne og låne ut utstyr. + icon: lucide:heart-handshake +- name: Siste fra bygda + description: Nye meldinger og oppslag, slik de står akkurat nå. + features: + - name: Feil på lekeplasser og sti + description: Det som er meldt inn, og hvor langt vi har kommet med å fikse det. [Alle feilmeldinger](/status/anleggsfeil) + icon: lucide:construction + resource: + source: + kind: kv + bucket: anleggsfeil + public: true + states: [] + 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. Svar rett fra oppslaget. [Hele oppslagstavla](/status/oppslag) + icon: lucide:list + resource: + source: + kind: kv + bucket: oppslag + public: true + 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 + resource: + source: + kind: kv + bucket: trafikkmeldinger + public: true + states: [] + empty: Ingen farlige steder er meldt inn nå. Har du sett et, fortell oss. + jq: 'sort_by(.submitted_ms) | reverse | .[:3] | .[] | .responses |= {hva: .hva, hvor: .hvor}' +- name: Bli medlem eller endre opplysningene dine + description: Meld deg inn, betal kontingenten, eller gi beskjed om flytting, ny e-post eller utmelding. + action: /medlem + consequence: + - Til medlemskap + features: + - name: Deg som bor i Tomter + description: Å bli medlem og få betalt kontingenten, at velet har riktige opplysninger om dem. + icon: lucide:house +- name: Meld fra om noe som bør fikses + description: Sett du noe farlig i trafikken, eller noe ødelagt på lekeplassen eller elvestien? Gi oss beskjed. + action: /melde-fra + consequence: + - Meld fra + features: + - name: Deg som har sett noe som bør fikses + description: At velet tar det opp med kommunen eller den som eier veien, at det blir fikset før noen skader seg. + icon: lucide:alert-triangle +- name: Bli med og gjør en innsats + description: Vi trenger folk på 17. mai, dugnader og i komiteene. Det trengs ikke mer enn litt tid du har å avse. + action: /bidra + consequence: + - Bli med + features: + - name: Deg som vil gjøre en innsats + description: Å bli satt opp på noe som passer dem, en plass i den komiteen som driver med det de bryr seg om. + icon: lucide:hand-helping +- name: Få hjelp av naboer, eller gi en hånd selv + description: Trenger du en hånd med snømåking, handling eller skyss? Eller kan du stille opp for en nabo? Her møtes dere. + action: /naboer + consequence: + - Til nabohjelp + features: + - name: Deg som trenger hjelp eller kan gi en hånd + description: At en nabo stiller opp, å bli spurt når det passer, et oppslag som naboene ser. + icon: lucide:heart-handshake +- name: Få din mening med i høringssvaret + description: Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar. + action: /received/horingsinnspill + consequence: + - Send innspill + record_as: innspill + features: + - name: Hva skjer videre + description: Innspillet ditt kommer inn hos høringsutvalget. De vurderer om det tas med i velets svar til kommunen, eller om det ikke passer inn denne gangen. + icon: lucide:route + - name: Hvem leser dette + description: Høringsutvalget i Tomter Vel leser innspillet ditt; i mellomtiden kan du nå styret på post@tomtervel.no. + icon: lucide:users + - name: Send et høringsinnspill + requirements: + - name: navn + label: Navn + type: text + placeholder: Kari Nordmann + - name: sak + label: Hvilken sak gjelder det? + type: text + placeholder: Reguleringsplan for Tomterveien + - name: innspill + label: Hva mener du? + type: textarea + placeholder: Jeg mener det bør settes opp fartsdumper langs den nye traseen, for barna krysser der til skolen. + description: Fortell hvilken sak det gjelder og hva du mener. + icon: lucide:megaphone + encouragements: + - Innspillet ditt blir lest av høringsutvalget vårt og veier inn i svaret vi sender kommunen. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/kasserer/_section.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/kasserer/_section.yaml new file mode 100644 index 0000000..2f8af2f --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/kasserer/_section.yaml @@ -0,0 +1 @@ +qualifies: kasserer diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/kasserer/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/kasserer/index.yaml new file mode 100644 index 0000000..72a0a62 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/kasserer/index.yaml @@ -0,0 +1,108 @@ +name: Hva venter på meg som kasserer akkurat nå? +description: Her har du oversikt over medlemmer, endringer og utlegg som venter på deg som kasserer. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Nye medlemmer som venter på registrering + description: Husstander som har meldt seg inn og venter på å bli registrert som betalende medlem. + action: /kasserer + consequence: + - Lagre + features: + - name: Husstander + description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. + resource: + source: + kind: kv + bucket: husstander + requires_group: kasserer + transitions: + - from: open + to: betalt + label: Registrer betaling + - from: open + to: utmeldt + label: Meld ut +- name: Endringer som venter på å bli registrert + description: Medlemmer som har flyttet, byttet e-post eller vil melde seg ut, og venter på at opplysningene blir oppdatert. + action: /kasserer + consequence: + - Lagre + features: + - name: Medlemsendringer + description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. + resource: + source: + kind: kv + bucket: medlemsendringer + requires_group: kasserer + transitions: + - from: open + to: oppdatert + label: Registrer endring +- name: Utlegg som venter på deg + description: Utlegg fra komitémedlemmer som venter på godkjenning eller utbetaling. + action: /kasserer + consequence: + - Lagre + features: + - name: Utlegg + description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. + resource: + source: + kind: kv + bucket: utlegg + requires_group: kasserer + transitions: + - from: godkjent + to: utbetalt + label: Merk som utbetalt + - from: godkjent + to: avvist + label: Avvis likevel + - from: open + to: godkjent + label: Godkjenn utlegg + - from: open + to: avvist + label: Avvis utlegg +- 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: /kasserer + consequence: + - Inviter + invite: + group: kasserer + 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: /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. + resource: + source: + kind: kv + bucket: portal_invites + 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 diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/_section.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/_section.yaml new file mode 100644 index 0000000..57e3295 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/_section.yaml @@ -0,0 +1 @@ +qualifies: komiteer diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/index.yaml new file mode 100644 index 0000000..fb2c528 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/index.yaml @@ -0,0 +1,50 @@ +name: Hva står ubehandlet i komiteen din nå? +description: Her holder du oversikt over sakene komiteen din har ansvar for, og flytter dem videre etter hvert som de blir fulgt opp. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Få tilbake det du har lagt ut + description: Har du lagt ut for noe til komiteen? Send det inn så kasserer kan betale deg tilbake. + action: /komiteer/utlegg + consequence: + - Send utlegg +- 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: /komiteer + consequence: + - Inviter + invite: + group: komiteer + 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: /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. + resource: + source: + kind: kv + bucket: portal_invites + 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 diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/utlegg-sent.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/utlegg-sent.yaml new file mode 100644 index 0000000..92f5c74 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/utlegg-sent.yaml @@ -0,0 +1,5 @@ +name: Hva skjer med utlegget mitt nå? +description: Utlegget er sendt til kasserer. Du får beskjed når det er sjekket. +alternatives: +- name: Pengene kommer på konto + description: Kasserer ser gjennom kvitteringen og overfører pengene til kontoen du oppga. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/utlegg.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/utlegg.yaml new file mode 100644 index 0000000..e419f0d --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/komiteer/utlegg.yaml @@ -0,0 +1,38 @@ +followup: false +name: Har du lagt ut penger for komiteen og vil ha dem tilbake? +description: Har du betalt for noe på vegne av en komité? Send inn utlegget, så får du pengene tilbake. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Få pengene tilbake + description: Har du lagt ut for noe til komiteen? Send det inn, så ordner kasserer resten. + action: /komiteer/utlegg-sent + consequence: + - Send inn + record_as: utlegg + features: + - name: Fra krav til utbetaling + description: Kasserer ser gjennom kravet og godkjenner det, og deretter blir pengene utbetalt til deg. Blir det avvist, hører du hvorfor. + icon: lucide:wallet + - name: Kasserer ser dette + description: Kasserer i styret leser kravet ditt, og kan nås på post@tomtervel.no om det haster. + icon: lucide:coins + - name: Krav om refusjon + requirements: + - name: navn + label: Navn + type: text + placeholder: Kari Nordmann + - name: belop + label: Beløp + type: text + placeholder: 450 kr + - name: hva + label: Hva gjaldt det + type: textarea + placeholder: Kaffe og kjeks til dugnaden + description: Ha kvittering eller bilag klart før du fyller ut. + icon: lucide:receipt + encouragements: + - Legg ved bilag om du har det, så går det raskere. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/lekeplasser/_section.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/lekeplasser/_section.yaml new file mode 100644 index 0000000..1652221 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/lekeplasser/_section.yaml @@ -0,0 +1 @@ +qualifies: lekeplasser diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/lekeplasser/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/lekeplasser/index.yaml new file mode 100644 index 0000000..849a19d --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/lekeplasser/index.yaml @@ -0,0 +1,65 @@ +name: Hva må fikses på lekeplassene og stien nå? +description: Her følger komiteen for lekeplassene opp det som er meldt inn av skader, til det er fikset. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Det som er meldt inn av skader + description: Meldinger om noe som er ødelagt på lekeplassen eller langs stien, og som bør fikses. + action: /lekeplasser + consequence: + - Lagre + features: + - name: Anleggsfeil + description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. + resource: + source: + kind: kv + bucket: anleggsfeil + requires_group: lekeplasser + transitions: + - from: open + to: tatt_tak_i + label: Ta tak i saken + - from: tatt_tak_i + to: utbedret + label: Merk som utbedret +- 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: /lekeplasser + consequence: + - Inviter + invite: + group: lekeplasser + 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: /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. + resource: + source: + kind: kv + bucket: portal_invites + 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 diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/medlem/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/medlem/index.yaml new file mode 100644 index 0000000..264baba --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/medlem/index.yaml @@ -0,0 +1,72 @@ +name: Vil du bli medlem, eller endre medlemskapet ditt? +description: Bli medlem av Tomter Vel, eller oppdater opplysningene dine hvis du allerede er medlem. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Bli medlem av Tomter Vel + description: Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet. + action: /received/bli-medlem + consequence: + - Bli medlem + record_as: husstander + features: + - name: Etter innmelding + description: Meldingen går til kasserer, som registrerer deg og sender deg kontingenten på e-post. Når den er betalt er du medlem. + icon: lucide:coins + - name: Hvem svarer deg + description: Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden. + icon: lucide:user + - name: Meld deg inn + requirements: + - name: navn + label: Navn + type: text + placeholder: Ola Nordmann + - name: adresse + label: Adresse + type: text + placeholder: Tomterveien 12 + - name: email + label: Email + type: email + - name: telefon + label: Telefon + type: tel + optional: true + placeholder: 123 45 678 + description: Ha adressen i Tomter og en e-post du bruker klar. + icon: lucide:user-plus + encouragements: + - Kasserer sender deg kontingenten på e-post rett etterpå. +- name: Oppdater eller avslutt medlemskapet + description: Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger. + action: /received/endre-medlemskap + consequence: + - Send endring + record_as: medlemsendringer + features: + - name: Etter du sender inn + description: Kasserer får beskjeden og oppdaterer medlemslisten, eller melder deg ut om det er det du ber om. + icon: lucide:refresh-cw + - name: Hvem svarer deg + description: Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden. + icon: lucide:user + - name: Endre medlemskap + requirements: + - name: navn + label: Navn + type: text + placeholder: Ola Nordmann + - name: adresse + label: Adresse + type: text + placeholder: Ny adresse i Tomter + - name: hva_er_nytt + label: Hva vil du endre? + type: textarea + placeholder: Ny e-post, ny adresse, eller ønske om utmelding + description: Skriv navnet ditt og hva som er nytt. + icon: lucide:pencil + encouragements: + - Det tar bare et par minutter, og kasserer ordner resten. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/melde-fra/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/melde-fra/index.yaml new file mode 100644 index 0000000..cee30e1 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/melde-fra/index.yaml @@ -0,0 +1,69 @@ +name: Hva vil du melde fra om? +description: Har du sett noe farlig i trafikken, eller noe ødelagt på lekeplassen eller stien? Her sier du fra til velet. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Meld fra om en trafikkfare + description: Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre. + action: /received/trafikkfare + consequence: + - Send inn + record_as: trafikkmeldinger + features: + - name: Hva skjer videre + description: Trafikkomiteen tar meldingen din opp med kommunen eller den som eier veien. Du får vite om saken blir ordnet eller avvist. + icon: lucide:route + - name: Hvem leser dette + description: Trafikkomiteen leser meldingen din; haster det, kan du nå styret på post@tomtervel.no. + icon: lucide:car + - name: Meld trafikkfare + requirements: + - name: hvor + label: Hvor var det + type: text + placeholder: Krysset Tomterveien / Elvestien + - name: hva + label: Hva så du + type: textarea + placeholder: Dårlig sikt i krysset, biler kjører fort + - name: epost + label: E-post (valgfritt) + type: email + optional: true + placeholder: ola.nordmann@epost.no + description: Fortell hva du så, hvor det var, og legg gjerne igjen e-posten din hvis vi trenger å spørre mer. + icon: lucide:alert-triangle + encouragements: + - Bare noen linjer om hva og hvor er nok til at vi kan følge opp. +- name: Meld fra om noe ødelagt + description: Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det. + action: /received/anleggsfeil + consequence: + - Send inn + record_as: anleggsfeil + features: + - name: Hva skjer videre + description: Meldingen går til lekeplasskomiteen, som ser på den og tar tak i saken. Når feilen er utbedret, er saken avsluttet. + icon: lucide:wrench + - name: Hvem leser dette + description: Lekeplasskomiteen leser meldingen din; til det haster kan du nå styret på post@tomtervel.no. + icon: lucide:hammer + - name: Meld anleggsfeil + requirements: + - name: hvor + label: Hvor er det + type: select + options: + - Lekeplassen + - Elvestien + - Skøytebanen + - Et annet sted + - name: hva + label: Hva er ødelagt + type: textarea + placeholder: Løs planke på gjerdet ved husken + description: Fortell hva som er ødelagt og omtrent hvor det er. + icon: lucide:construction + encouragements: + - Det holder med noen ord om hva du så og hvor. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/naboer/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/naboer/index.yaml new file mode 100644 index 0000000..9c89f62 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/naboer/index.yaml @@ -0,0 +1,125 @@ +name: Trenger du en hånd, eller kan du gi en? +description: Godt naboskap gjør hverdagen lettere. Trenger du en hånd, kan gi en, eller har noe å låne bort? +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Få en nabo til å stille opp + description: Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp. + action: /received/trenger-hjelp + consequence: + - Be om hjelp + record_as: hjelpebehov + features: + - name: Fra melding til hjelp + description: Nabohjelpen finner en nabo som kan stille opp. Er det ordnet, eller om det ikke lot seg løse, får du beskjed. + icon: lucide:hand-helping + - name: Hvem ser dette + description: Nabohjelpen tar imot og finner noen til deg, eller ring post@tomtervel.no i mellomtiden. + icon: lucide:users + - name: Be om en hånd + requirements: + - name: navn + label: Navn + type: text + placeholder: Kari Nordmann + - name: email + label: E-post + type: email + placeholder: kari@eksempel.no + - name: adresse + label: Adresse + type: text + placeholder: Tomterveien 12 + - name: hva + label: Hva trenger du hjelp til + type: textarea + placeholder: Måke snø på trappa, handle inn litt mat + - name: telefon + label: Telefon + type: tel + optional: true + placeholder: 123 45 678 + description: Skriv kort hva du trenger hjelp til. + icon: lucide:heart-handshake + encouragements: + - Vi finner en nabo som kan stille opp så fort som mulig. +- name: Bli spurt når en nabo trenger en hånd + description: Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer. + action: /received/kan-hjelpe + consequence: + - Meld deg + record_as: hjelpere + features: + - name: Fra påmelding til spørsmål + description: Du blir registrert som hjelper. Trekker du deg tilbake senere, er det bare å si fra. + icon: lucide:user-check + - name: Hvem ser dette + description: Nabohjelpen har oversikten og ringer deg direkte når det er noe, eller nås på post@tomtervel.no. + icon: lucide:heart-handshake + - name: Meld deg som hjelper + requirements: + - name: navn + label: Navn + type: text + placeholder: Kari Nordmann + - name: email + label: E-post + type: email + placeholder: kari@eksempel.no + - name: telefon + label: Telefon + type: tel + placeholder: 123 45 678 + - name: kan + label: Hva kan du hjelpe med + type: select + options: + - Snømåking + - Handling + - Kjøring + - Småfiks i huset + - En prat og litt selskap + - Det som trengs + multiple: true + description: Fortell kort hva du kan bidra med. + icon: lucide:hand-helping + encouragements: + - Du blir bare kontaktet når noe passer for deg. +- name: Lån ut eller lån av naboen + description: Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det. + action: /received/dele-utstyr + consequence: + - Legg ut oppslag + record_as: oppslag + features: + - name: Fra oppslag til avtale + 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: 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: + - name: navn + label: Navn + type: text + placeholder: Ola Nordmann + - name: email + label: E-post + type: email + placeholder: ola@eksempel.no + - name: har_eller_trenger + label: Har du eller trenger du + type: select + options: + - Jeg har noe å låne ut + - Jeg trenger å låne noe + - name: hva + label: Hva gjelder det + type: textarea + placeholder: Hengerfeste til bil, tilhenger, stige + description: Skriv kort hva det gjelder, så folk skjønner det med en gang. + icon: lucide:package + encouragements: + - Det står på tavla med en gang. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/nabohjelp/_section.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/nabohjelp/_section.yaml new file mode 100644 index 0000000..5b3a2ad --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/nabohjelp/_section.yaml @@ -0,0 +1 @@ +qualifies: nabohjelp diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/nabohjelp/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/nabohjelp/index.yaml new file mode 100644 index 0000000..075778c --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/nabohjelp/index.yaml @@ -0,0 +1,91 @@ +name: Hvem trenger hjelp, og hvem kan stille opp? +description: Her kobler du naboer som trenger hjelp med dem som kan stille opp. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Naboer som trenger en hånd + description: Naboer som trenger en hånd med snømåking, handling eller skyss – klare til å bli koblet med noen som kan hjelpe. + action: /nabohjelp + consequence: + - Lagre + features: + - name: Hjelpebehov + description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. + resource: + source: + kind: kv + bucket: hjelpebehov + requires_group: nabohjelp + transitions: + - from: formidlet + to: ordnet + label: Meld ordnet + - from: formidlet + to: ikke_lost + label: Meld ikke løst + - from: open + to: formidlet + label: Koble til nabo + - from: open + to: ikke_lost + label: Meld ikke løst +- name: Naboer som kan stille opp + description: Naboer som har sagt de kan stille opp – klare til å bli spurt når noen trenger dem. + action: /nabohjelp + consequence: + - Lagre + features: + - name: Hjelpere + description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. + resource: + source: + kind: kv + bucket: hjelpere + requires_group: nabohjelp + transitions: + - from: open + to: registrert + label: Registrer som hjelper + - from: open + to: trukket + label: Meld trukket +- 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: /nabohjelp + consequence: + - Inviter + invite: + group: nabohjelp + 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: /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. + resource: + source: + kind: kv + bucket: portal_invites + 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 diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/anleggsfeil.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/anleggsfeil.yaml new file mode 100644 index 0000000..ebedd65 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/anleggsfeil.yaml @@ -0,0 +1,10 @@ +name: Hva skjer med meldingen min nå? +description: Meldingen din om skaden er sendt til lekeplasskomiteen. De ser over det du har sendt. +alternatives: +- name: Komiteen tar tak i det + description: Lekeplasskomiteen ser på meldingen og tar tak i det som må fikses før noen skader seg. +- name: Se andre meldte feil + description: Se hva andre har meldt inn av skader på lekeplassene og stien, og hvor langt det har kommet. + action: /status/anleggsfeil + consequence: + - Se meldte feil diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/bli-medlem.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/bli-medlem.yaml new file mode 100644 index 0000000..5cab090 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/bli-medlem.yaml @@ -0,0 +1,5 @@ +name: Hva skjer etter at jeg har meldt meg inn? +description: Vi har mottatt innmeldingen din. Kasserer tar kontakt med betalingsinfo så snart medlemskapet er registrert. +alternatives: +- name: Kasserer sender deg betalingsinfo + description: Kasserer går gjennom nye innmeldinger og sender deg kontonummer og beløp for kontingenten. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/dele-utstyr.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/dele-utstyr.yaml new file mode 100644 index 0000000..eca5272 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/dele-utstyr.yaml @@ -0,0 +1,10 @@ +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: 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: + - Til tavla diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/endre-medlemskap.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/endre-medlemskap.yaml new file mode 100644 index 0000000..54f47ec --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/endre-medlemskap.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå med det jeg meldte inn? +description: Vi har mottatt beskjeden om at du har flyttet, byttet e-post eller vil melde deg ut. +alternatives: +- name: Kasserer retter opp opplysningene + description: Kasserer oppdaterer medlemslista og gir deg beskjed hvis det er noe mer vi trenger fra deg. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/hjelpe-til.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/hjelpe-til.yaml new file mode 100644 index 0000000..a1ec5b1 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/hjelpe-til.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå som jeg har meldt meg? +description: Takk for at du vil hjelpe til. Arrangementskomiteen har fått beskjed og tar kontakt med deg. +alternatives: +- name: Komiteen tar kontakt + description: Du hører fra noen i komiteen når de vet hva de trenger hjelp til, gjerne noen dager før arrangementet eller dugnaden. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/horingsinnspill.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/horingsinnspill.yaml new file mode 100644 index 0000000..e86afc6 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/horingsinnspill.yaml @@ -0,0 +1,5 @@ +name: Hva skjer med det jeg har sagt om saken? +description: Innspillet ditt er sendt til høringsinstansen i velet. +alternatives: +- name: Innspillet ditt inn i vurderingen + description: De ser på om det kan tas med i velets høringssvar til kommunen, og gir beskjed om det blir med. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/kan-hjelpe.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/kan-hjelpe.yaml new file mode 100644 index 0000000..15be94e --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/kan-hjelpe.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå som jeg har registrert meg? +description: Takk for at du sier fra at du kan stille opp. Nabohjelp-komiteen tar imot meldingen og legger deg inn på lista over naboer som kan hjelpe. +alternatives: +- name: Du blir kontaktet ved behov + description: Når en nabo trenger hjelp med noe du har sagt du kan bidra med, tar komiteen kontakt med deg direkte. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/komite.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/komite.yaml new file mode 100644 index 0000000..450a7c3 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/komite.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå som jeg har meldt interesse for en komité? +description: Takk for at du vil bidra! Styret har fått beskjed og ser på hvilken komité som passer best for deg. +alternatives: +- name: Vi finner riktig komité til deg + description: Noen fra styret tar kontakt for å høre mer om hva du liker å drive med, og finner en komité som passer. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/melde-seg.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/melde-seg.yaml new file mode 100644 index 0000000..599b878 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/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/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/trafikkfare.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/trafikkfare.yaml new file mode 100644 index 0000000..7fb87a9 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/trafikkfare.yaml @@ -0,0 +1,10 @@ +name: Hva skjer med meldingen min nå? +description: Meldingen din om trafikkfaren er sendt til komiteen for trafikk. +alternatives: +- name: Trafikkomiteen tar den videre + description: Trafikkomiteen ser gjennom meldinger jevnlig og tar det videre med kommunen eller den som eier veien der det trengs. +- name: Andre meldte trafikkfarer + description: Se hva andre har meldt inn, og status på sakene. + action: /status/trafikkmeldinger + consequence: + - Se andre trafikkfarer diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/trenger-hjelp.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/trenger-hjelp.yaml new file mode 100644 index 0000000..15f7ed8 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/received/trenger-hjelp.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå som jeg har bedt om hjelp? +description: Meldingen din er sendt til nabohjelpa. Vi ser etter en nabo som kan stille opp. +alternatives: +- name: Vi finner en nabo til deg + description: Vi tar kontakt med noen som kan hjelpe, så snart vi finner en som passer. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/redaktor/_section.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/redaktor/_section.yaml new file mode 100644 index 0000000..2439638 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/redaktor/_section.yaml @@ -0,0 +1 @@ +qualifies: redaktor diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/redaktor/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/redaktor/index.yaml new file mode 100644 index 0000000..bb1d965 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/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/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/anleggsfeil/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/anleggsfeil/index.yaml new file mode 100644 index 0000000..32a6199 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/anleggsfeil/index.yaml @@ -0,0 +1,19 @@ +name: Hva skjer med det jeg har meldt fra om? +description: Her ser du meldinger om ødelagt lekeutstyr og skader på elvestien, og hvor langt hver sak har kommet. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Status på meldte anleggsfeil + description: Alle meldinger er åpne for alle å se. + features: + - name: Anleggsfeil + description: Hver rad er én sak og hvor langt den har kommet. Navn og kontaktopplysninger vises ikke her. + resource: + source: + kind: kv + bucket: anleggsfeil + public: true + states: [] + empty: Ingenting her ennå. + jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {hva: .hva, hvor: .hvor}' diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/oppslag/[key].yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/oppslag/[key].yaml new file mode 100644 index 0000000..8e43987 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/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/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/oppslag/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/oppslag/index.yaml new file mode 100644 index 0000000..47add9f --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/oppslag/index.yaml @@ -0,0 +1,23 @@ +name: Hva er sendt inn, og hvor langt har det kommet? +description: Her ser du alt som er sendt inn og hvor langt hvert oppslag har kommet. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Oversikt over det som er meldt inn + description: Åpen liste – navn og detaljer vises ikke. + features: + - name: Oppslag + description: Hver rad er én sak og hvor langt den har kommet. Navn og kontaktopplysninger vises ikke her. + resource: + source: + kind: kv + bucket: oppslag + public: true + 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/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/trafikkmeldinger/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/trafikkmeldinger/index.yaml new file mode 100644 index 0000000..aa2c5ee --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/status/trafikkmeldinger/index.yaml @@ -0,0 +1,19 @@ +name: Er det meldt fra om noe farlig i trafikken der jeg bor? +description: Her ser du farlige steder i trafikken som er meldt inn, og hvor langt saken har kommet. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Trafikkmeldinger og status + description: Alle meldinger som er sendt inn, og hvor de står nå. + features: + - name: Trafikkmeldinger + description: Hver rad er én sak og hvor langt den har kommet. Navn og kontaktopplysninger vises ikke her. + resource: + source: + kind: kv + bucket: trafikkmeldinger + public: true + states: [] + empty: Ingenting her ennå. + jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {hva: .hva, hvor: .hvor}' diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/styret/_section.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/styret/_section.yaml new file mode 100644 index 0000000..5a34160 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/styret/_section.yaml @@ -0,0 +1 @@ +qualifies: styret diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/styret/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/styret/index.yaml new file mode 100644 index 0000000..33594e4 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/styret/index.yaml @@ -0,0 +1,250 @@ +name: Hva venter på styret akkurat nå? +description: 'Herfra følger styret opp det som ikke hører under en enkelt komité: høringssvar, komitéplasser og oppslag fra naboer.' +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Høringsinnspill fra beboerne + description: Her samles meninger fra beboerne om saker kommunen har på høring, klare til å tas med i velets svar. + action: /styret + consequence: + - Lagre + features: + - name: Innspill + description: Hver rad er én sak og hvor langt den har kommet. En annen pult flytter disse. + resource: + source: + kind: kv + bucket: innspill + requires_group: styret + transitions: [] +- name: Søknader til komiteene + description: Her ligger alle som har meldt seg til en komité og venter på en plass. + action: /styret + consequence: + - Lagre + features: + - name: Komitesoknader + description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. + resource: + source: + kind: kv + bucket: komitesoknader + requires_group: styret + transitions: + - from: open + to: plassert + label: Sett i komité + - from: open + to: avslatt + label: Avslå søknaden +- name: Meldinger om trafikkfarer + description: Her samles meldinger om farlige steder i trafikken, klare til å tas videre med kommunen eller veieier. + action: /styret + consequence: + - Lagre + features: + - name: Trafikkmeldinger + description: Hver rad er én sak og hvor langt den har kommet. En annen pult flytter disse. + resource: + source: + kind: kv + bucket: trafikkmeldinger + requires_group: styret + transitions: [] +- name: Inviter noen inn i Arrangementer + 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. + action: /styret + consequence: + - Inviter + invite: + group: arrangementer + 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 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 + consequence: + - Inviter + invite: + group: horingsinstans + 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 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 + consequence: + - Inviter + invite: + group: kasserer + 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 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 + consequence: + - Inviter + invite: + group: komiteer + 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 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 + consequence: + - Inviter + invite: + group: lekeplasser + 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 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 + consequence: + - Inviter + invite: + group: nabohjelp + 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 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 + consequence: + - Inviter + invite: + group: styret + 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 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 + consequence: + - Inviter + invite: + group: trafikk + 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: /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. + resource: + source: + kind: kv + bucket: portal_invites + 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 +- 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/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/trafikk/_section.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/trafikk/_section.yaml new file mode 100644 index 0000000..dbe5246 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/trafikk/_section.yaml @@ -0,0 +1 @@ +qualifies: trafikk diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/trafikk/index.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/trafikk/index.yaml new file mode 100644 index 0000000..1bb8e19 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/questions/trafikk/index.yaml @@ -0,0 +1,71 @@ +name: Hvilke trafikkfarer må følges opp? +description: Her ser du meldinger om farlige steder i trafikken og følger dem opp overfor kommunen eller veieier. +responsible: + name: Styret i Tomter Vel + contact: post@tomtervel.no +alternatives: +- name: Farlige steder i trafikken + description: Farlige steder i trafikken som naboer har meldt inn. + action: /trafikk + consequence: + - Lagre + features: + - name: Trafikkmeldinger + description: Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den. + resource: + source: + kind: kv + bucket: trafikkmeldinger + requires_group: trafikk + transitions: + - from: open + to: tatt_opp + label: Ta opp med kommunen + - from: open + to: avvist + label: Avvis meldingen + - from: tatt_opp + to: ordnet + label: Meld ordnet + - from: tatt_opp + to: avvist + label: Avvis meldingen +- 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: /trafikk + consequence: + - Inviter + invite: + group: trafikk + 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: /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. + resource: + source: + kind: kv + bucket: portal_invites + 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 diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/site.yaml b/runs/tomtervel-oppslagstavla-2026-09-30/site/site.yaml new file mode 100644 index 0000000..c264291 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/site.yaml @@ -0,0 +1,16 @@ +title: Tomter Vel +lang: no +mail: + from: Tomter Vel + reply_to: post@tomtervel.no + invite: + subject: Din konto hos {site_name} + body: |- + Hei {name}, + + {site_name} har laget en konto til deg og lagt deg til i {group}. Brukernavnet ditt er {username}. + + Velg passord her før {expires}: + {link} + + Etterpå logger du inn på {site}. diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/site/words.json b/runs/tomtervel-oppslagstavla-2026-09-30/site/words.json new file mode 100644 index 0000000..e1d79fa --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/site/words.json @@ -0,0 +1,1172 @@ +{ + "aggregates.yaml": { + "hjelpebehov": { + "formidlet": { + "subject": "En nabo er koblet på", + "body": "Vi har funnet en nabo som kan hjelpe. De tar kontakt med deg direkte.\n\nDet du kan gjøre nå: {site}/decide/trenger-hjelp?chain={chain}&email={email}" + }, + "open": { + "subject": "Vi leter etter en nabo til deg", + "body": "Vi har mottatt det du trenger hjelp til, og ser etter en nabo som kan stille opp. Du hører fra oss så snart vi har funnet noen." + }, + "ordnet": { + "subject": "Bra det løste seg", + "body": "Godt å høre at det ordnet seg. Takk for at du sa fra, og lykke til videre." + } + }, + "husstander": { + "betalt": { + "subject": "Medlemskapet er i orden", + "body": "Kontingenten er registrert betalt. Du er nå medlem av Tomter Vel - velkommen med!" + }, + "open": { + "subject": "Nesten i mål som medlem", + "body": "Takk for at du vil bli medlem. Du får en betalingsoppfordring med kontonummer og beløp så snart kasserer har sett på saken.\n\nDet du kan gjøre nå: {site}/decide/bli-medlem?chain={chain}&email={email}" + } + }, + "oppslag": { + "open": { + "subject": "Nytt oppslag på tavla: {hva}", + "body": "Et nytt oppslag står på tavla fra nå av.\n\n{har_eller_trenger}: {hva}\n\nDet 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" + } + }, + "svar": { + "open": { + "subject": "En nabo har svart på oppslaget ditt", + "body": "Hei,\n\nEn nabo har svart på oppslaget ditt «{oppslag.hva}». Ta kontakt direkte: {email}\n\n{hilsen}\n\nFlere kan svare så lenge oppslaget står; du velger selv hvem du avtaler med. Når det er ordnet, tar du det ned her:\n{site}/decide/dele-utstyr?chain={oppslag.id}&email={oppslag.email}" + } + } + }, + "questions/arrangementer/index.yaml": { + "question": "Hvem har meldt seg, og hvor langt har jeg kommet med å sette dem opp?", + "description": "Oversikt over folk som vil hjelpe til, slik at du kan følge opp og sette dem opp på noe som passer.", + "confirm": "Lagre", + "buckets": { + "frivillige": { + "heading": "Frivillige til arrangementer og dugnad", + "description": "Her ser du hvem som har meldt seg til dugnad, 17. mai eller andre arrangementer, og hvor langt du har kommet med hver av dem.", + "moves": { + "kontaktet->satt_opp": "Sett opp", + "kontaktet->takket_nei": "Takket nei", + "open->kontaktet": "Merk som kontaktet", + "open->takket_nei": "Takket nei" + }, + "list_title": "Frivillige", + "list_note": "Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den." + } + }, + "links": {}, + "invites": { + "arrangementer": { + "heading": "Inviter noen inn i Arrangementer", + "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Sendte invitasjoner", + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "done": "Er inne", + "again": "Send på nytt", + "list_title": "Hvem som er invitert", + "list_note": "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." + }, + "suggestions": null + }, + "questions/bidra/index.yaml": { + "question": "Vil du hjelpe til i nabolaget?", + "description": "Vil du stille opp for nabolaget? Her melder du deg til dugnad og arrangementer, eller til en av komiteene.", + "needs": { + "hjelpe-til": { + "heading": "Bli med på dugnad eller arrangement", + "description": "17. mai, dugnad eller andre arrangementer trenger folk som stiller opp. Si fra hva du kan bidra med, så setter vi deg opp på noe som passer.", + "button": "Meld meg på", + "encouragement": "Det holder med noen ord om hva du kan tenke deg – vi tar kontakt når det nærmer seg.", + "icon": "hand-helping", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Hva skjer videre", + "road_description": "Arrangementskomiteen tar kontakt og finner ut hva som passer for deg. Sier du ja, blir du satt opp på en oppgave – sier du nei takk, er det helt greit.", + "road_icon": "lucide:clipboard-list", + "who_title": "Hvem leser dette", + "who_description": "Arrangementskomiteen leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:users", + "form_title": "Meld deg som hjelper", + "form_description": "Fortell kort hva du kan hjelpe til med.", + "labels": { + "navn": "Navn", + "telefon": "Telefon", + "hva": "Hva kan du hjelpe til med?" + }, + "hints": { + "navn": "Kari Nordmann", + "telefon": "912 34 567", + "hva": "" + } + }, + "komite": { + "heading": "Sitt i en komité som betyr noe for deg", + "description": "Velet drives av sju komiteer på fritida, og alle trenger flere hender. Si hvilken komité du har lyst til å være med i.", + "button": "Meld interesse", + "encouragement": "Det tar bare et minutt, og noen fra styret svarer deg.", + "icon": "users", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Hva skjer videre", + "road_description": "Styret ser på ønsket ditt og finner en plass i komiteen du har meldt deg til, eller sier fra hvis det ikke er rom akkurat nå.", + "road_icon": "lucide:clipboard-list", + "who_title": "Hvem leser dette", + "who_description": "Styret leser det du sender, og du kan nå dem på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:handshake", + "form_title": "Meld deg til en komité", + "form_description": "Skriv hvilken komité du er interessert i.", + "labels": { + "navn": "Navn", + "epost": "E-post", + "komite": "Hvilken komité?" + }, + "hints": { + "navn": "Kari Nordmann", + "epost": "kari@eksempel.no", + "komite": "" + } + } + } + }, + "questions/decide/bli-medlem.yaml": { + "question": "What would you like to do?", + "description": "", + "moves": { + "utmeldt": { + "heading": "Utmeldt", + "description": "", + "button": "Utmeldt" + } + } + }, + "questions/decide/dele-utstyr.yaml": { + "question": "Skal oppslaget om utstyret fortsatt stå ute?", + "description": "Her sier du fra at utstyret er hentet eller ikke lenger tilgjengelig for utlån.", + "moves": { + "tatt_ned": { + "heading": "Meld at utstyret er tatt ned", + "description": "Oppslaget fjernes fra siden, så ingen flere spør om å låne det.", + "button": "Ta ned oppslaget" + } + } + }, + "questions/decide/kan-hjelpe.yaml": { + "question": "Vil du fortsatt kunne bli spurt om å hjelpe en nabo?", + "description": "Her ser du naboer som har bedt om en hånd, og kan velge om du fortsatt kan bidra eller trekke deg for nå.", + "moves": { + "trukket": { + "heading": "Ta en pause fra nabohjelpen", + "description": "Du blir tatt av lista over naboer som kan spørres, men kan melde deg på igjen når det passer bedre.", + "button": "Trekk meg" + } + } + }, + "questions/decide/trenger-hjelp.yaml": { + "question": "Har naboen fått hjelpen de trengte?", + "description": "Her ser du henvendelsen fra naboen som trengte en hånd, og kan si fra når det er ordnet.", + "moves": { + "ordnet": { + "heading": "Meld fra at hjelpen er gitt", + "description": "Da vet vi at naboen har fått hjelpen sin, og saken lukkes.", + "button": "Merk som ordnet" + } + } + }, + "questions/horingsinstans/index.yaml": { + "question": "Hva sier vi i høringssvaret?", + "description": "Her samler du innspillene og ser hva som er tatt med i velets høringssvar.", + "confirm": "Send svar", + "buckets": { + "innspill": { + "heading": "Innspill til høringssvar", + "description": "Her ligger innspill fra beboere til saker kommunen har på høring.", + "moves": { + "open->tatt_med": "Tatt med i svaret", + "open->ikke_tatt_med": "Ikke tatt med" + }, + "list_title": "Innspill", + "list_note": "Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den." + } + }, + "links": {}, + "invites": { + "horingsinstans": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Sendte invitasjoner", + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "done": "Er inne", + "again": "Send på nytt", + "list_title": "Hvem som er invitert", + "list_note": "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." + }, + "suggestions": null + }, + "questions/index.yaml": { + "question": "Hva gjør Tomter Vel, og hva kan du få her?", + "description": "Velforeningen for Tomter, stiftet i 1947, drevet på fritida av naboene dine. Alt du kan be om her havner hos en komité eller styret, og du ser selv hvor saken står.", + "opener": { + "heading": "Velforeningen for Tomter siden 1947", + "description": "Vi er sju komiteer som jobber på fritida for bygda vår. 157 husstander er med.", + "features": { + "medlem": { + "heading": "157 husstander er medlemmer", + "description": "Kontingenten går til arrangementer, lekeplasser, elvestien og arbeidet for tryggere trafikk.", + "icon": "users" + }, + "nabo": { + "heading": "Naboer som stiller opp for hverandre", + "description": "Trenger du hjelp med snømåking, handling eller skyss, finner vi en nabo som kan. Du kan også låne og låne ut utstyr.", + "icon": "heart-handshake" + } + } + }, + "shopping": { + "heading": "Siste fra bygda", + "description": "Nye meldinger og oppslag, slik de står akkurat nå.", + "items": { + "status-anleggsfeil": { + "heading": "Feil på lekeplasser og sti", + "description": "Det som er meldt inn, og hvor langt vi har kommet med å fikse det.", + "link": "Alle feilmeldinger", + "empty": "Ingenting er meldt ødelagt akkurat nå. Ser du noe, si fra.", + "icon": "construction" + }, + "status-oppslag": { + "heading": "Oppslagstavla for naboer", + "description": "Utstyr som er til låns, og det naboene leter etter. Svar rett fra oppslaget.", + "link": "Hele oppslagstavla", + "empty": "Tavla er tom nå. Legg gjerne ut det første oppslaget.", + "icon": "list" + }, + "status-trafikkmeldinger": { + "heading": "Farlige steder i trafikken", + "description": "Det naboer har meldt fra om, og hva velet har gjort med det.", + "link": "Alle trafikkmeldinger", + "empty": "Ingen farlige steder er meldt inn nå. Har du sett et, fortell oss.", + "icon": "car" + } + } + }, + "doors": { + "medlem": { + "heading": "Bli medlem eller endre opplysningene dine", + "description": "Meld deg inn, betal kontingenten, eller gi beskjed om flytting, ny e-post eller utmelding.", + "button": "Til medlemskap", + "icon": "house", + "for_whom": "Deg som bor i Tomter", + "behind": "Å bli medlem og få betalt kontingenten, at velet har riktige opplysninger om dem." + }, + "melde-fra": { + "heading": "Meld fra om noe som bør fikses", + "description": "Sett du noe farlig i trafikken, eller noe ødelagt på lekeplassen eller elvestien? Gi oss beskjed.", + "button": "Meld fra", + "icon": "alert-triangle", + "for_whom": "Deg som har sett noe som bør fikses", + "behind": "At velet tar det opp med kommunen eller den som eier veien, at det blir fikset før noen skader seg." + }, + "bidra": { + "heading": "Bli med og gjør en innsats", + "description": "Vi trenger folk på 17. mai, dugnader og i komiteene. Det trengs ikke mer enn litt tid du har å avse.", + "button": "Bli med", + "icon": "hand-helping", + "for_whom": "Deg som vil gjøre en innsats", + "behind": "Å bli satt opp på noe som passer dem, en plass i den komiteen som driver med det de bryr seg om." + }, + "naboer": { + "heading": "Få hjelp av naboer, eller gi en hånd selv", + "description": "Trenger du en hånd med snømåking, handling eller skyss? Eller kan du stille opp for en nabo? Her møtes dere.", + "button": "Til nabohjelp", + "icon": "heart-handshake", + "for_whom": "Deg som trenger hjelp eller kan gi en hånd", + "behind": "At en nabo stiller opp, å bli spurt når det passer, et oppslag som naboene ser." + } + }, + "needs": { + "horingsinnspill": { + "heading": "Få din mening med i høringssvaret", + "description": "Har kommunen en sak på høring du mener noe om? Send oss innspillet ditt, så tar vi det med i velets svar.", + "button": "Send innspill", + "encouragement": "Innspillet ditt blir lest av høringsutvalget vårt og veier inn i svaret vi sender kommunen.", + "icon": "megaphone", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Hva skjer videre", + "road_description": "Innspillet ditt kommer inn hos høringsutvalget. De vurderer om det tas med i velets svar til kommunen, eller om det ikke passer inn denne gangen.", + "road_icon": "lucide:route", + "who_title": "Hvem leser dette", + "who_description": "Høringsutvalget i Tomter Vel leser innspillet ditt; i mellomtiden kan du nå styret på post@tomtervel.no.", + "who_icon": "lucide:users", + "form_title": "Send et høringsinnspill", + "form_description": "Fortell hvilken sak det gjelder og hva du mener.", + "labels": { + "navn": "Navn", + "sak": "Hvilken sak gjelder det?", + "innspill": "Hva mener du?" + }, + "hints": { + "navn": "Kari Nordmann", + "sak": "Reguleringsplan for Tomterveien", + "innspill": "Jeg mener det bør settes opp fartsdumper langs den nye traseen, for barna krysser der til skolen." + } + } + } + }, + "questions/kasserer/index.yaml": { + "question": "Hva venter på meg som kasserer akkurat nå?", + "description": "Her har du oversikt over medlemmer, endringer og utlegg som venter på deg som kasserer.", + "confirm": "Lagre", + "buckets": { + "husstander": { + "heading": "Nye medlemmer som venter på registrering", + "description": "Husstander som har meldt seg inn og venter på å bli registrert som betalende medlem.", + "moves": { + "open->betalt": "Registrer betaling", + "open->utmeldt": "Meld ut" + }, + "list_title": "Husstander", + "list_note": "Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den." + }, + "medlemsendringer": { + "heading": "Endringer som venter på å bli registrert", + "description": "Medlemmer som har flyttet, byttet e-post eller vil melde seg ut, og venter på at opplysningene blir oppdatert.", + "moves": { + "open->oppdatert": "Registrer endring" + }, + "list_title": "Medlemsendringer", + "list_note": "Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den." + }, + "utlegg": { + "heading": "Utlegg som venter på deg", + "description": "Utlegg fra komitémedlemmer som venter på godkjenning eller utbetaling.", + "moves": { + "godkjent->utbetalt": "Merk som utbetalt", + "godkjent->avvist": "Avvis likevel", + "open->godkjent": "Godkjenn utlegg", + "open->avvist": "Avvis utlegg" + }, + "list_title": "Utlegg", + "list_note": "Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den." + } + }, + "links": {}, + "invites": { + "kasserer": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Sendte invitasjoner", + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "done": "Er inne", + "again": "Send på nytt", + "list_title": "Hvem som er invitert", + "list_note": "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." + }, + "suggestions": null + }, + "questions/komiteer/index.yaml": { + "question": "Hva står ubehandlet i komiteen din nå?", + "description": "Her holder du oversikt over sakene komiteen din har ansvar for, og flytter dem videre etter hvert som de blir fulgt opp.", + "confirm": "Confirm", + "buckets": {}, + "links": { + "utlegg": { + "heading": "Få tilbake det du har lagt ut", + "description": "Har du lagt ut for noe til komiteen? Send det inn så kasserer kan betale deg tilbake.", + "button": "Send utlegg" + } + }, + "invites": { + "komiteer": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Sendte invitasjoner", + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "done": "Er inne", + "again": "Send på nytt", + "list_title": "Hvem som er invitert", + "list_note": "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." + }, + "suggestions": null + }, + "questions/komiteer/utlegg-sent.yaml": { + "question": "Hva skjer med utlegget mitt nå?", + "description": "Utlegget er sendt til kasserer. Du får beskjed når det er sjekket.", + "next_heading": "Pengene kommer på konto", + "next_description": "Kasserer ser gjennom kvitteringen og overfører pengene til kontoen du oppga." + }, + "questions/komiteer/utlegg.yaml": { + "heading": "Få pengene tilbake", + "description": "Har du lagt ut for noe til komiteen? Send det inn, så ordner kasserer resten.", + "button": "Send inn", + "encouragement": "Legg ved bilag om du har det, så går det raskere.", + "icon": "receipt", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Fra krav til utbetaling", + "road_description": "Kasserer ser gjennom kravet og godkjenner det, og deretter blir pengene utbetalt til deg. Blir det avvist, hører du hvorfor.", + "road_icon": "lucide:wallet", + "who_title": "Kasserer ser dette", + "who_description": "Kasserer i styret leser kravet ditt, og kan nås på post@tomtervel.no om det haster.", + "who_icon": "lucide:coins", + "form_title": "Krav om refusjon", + "form_description": "Ha kvittering eller bilag klart før du fyller ut.", + "labels": { + "navn": "Navn", + "belop": "Beløp", + "hva": "Hva gjaldt det" + }, + "hints": { + "navn": "Kari Nordmann", + "belop": "450 kr", + "hva": "Kaffe og kjeks til dugnaden" + }, + "question": "Har du lagt ut penger for komiteen og vil ha dem tilbake?", + "page_description": "Har du betalt for noe på vegne av en komité? Send inn utlegget, så får du pengene tilbake." + }, + "questions/lekeplasser/index.yaml": { + "question": "Hva må fikses på lekeplassene og stien nå?", + "description": "Her følger komiteen for lekeplassene opp det som er meldt inn av skader, til det er fikset.", + "confirm": "Lagre", + "buckets": { + "anleggsfeil": { + "heading": "Det som er meldt inn av skader", + "description": "Meldinger om noe som er ødelagt på lekeplassen eller langs stien, og som bør fikses.", + "moves": { + "open->tatt_tak_i": "Ta tak i saken", + "tatt_tak_i->utbedret": "Merk som utbedret" + }, + "list_title": "Anleggsfeil", + "list_note": "Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den." + } + }, + "links": {}, + "invites": { + "lekeplasser": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Sendte invitasjoner", + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "done": "Er inne", + "again": "Send på nytt", + "list_title": "Hvem som er invitert", + "list_note": "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." + }, + "suggestions": null + }, + "questions/medlem/index.yaml": { + "question": "Vil du bli medlem, eller endre medlemskapet ditt?", + "description": "Bli medlem av Tomter Vel, eller oppdater opplysningene dine hvis du allerede er medlem.", + "needs": { + "bli-medlem": { + "heading": "Bli medlem av Tomter Vel", + "description": "Meld deg inn i velet, så holder vi deg oppdatert og du støtter arbeidet i nærmiljøet.", + "button": "Bli medlem", + "encouragement": "Kasserer sender deg kontingenten på e-post rett etterpå.", + "icon": "user-plus", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Etter innmelding", + "road_description": "Meldingen går til kasserer, som registrerer deg og sender deg kontingenten på e-post. Når den er betalt er du medlem.", + "road_icon": "lucide:coins", + "who_title": "Hvem svarer deg", + "who_description": "Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:user", + "form_title": "Meld deg inn", + "form_description": "Ha adressen i Tomter og en e-post du bruker klar.", + "labels": { + "navn": "Navn", + "adresse": "Adresse", + "email": "Email", + "telefon": "Telefon" + }, + "hints": { + "navn": "Ola Nordmann", + "adresse": "Tomterveien 12", + "email": "", + "telefon": "123 45 678" + } + }, + "endre-medlemskap": { + "heading": "Oppdater eller avslutt medlemskapet", + "description": "Har du flyttet, byttet e-post eller vil melde deg ut? Gi oss beskjed så vi har riktige opplysninger.", + "button": "Send endring", + "encouragement": "Det tar bare et par minutter, og kasserer ordner resten.", + "icon": "pencil", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Etter du sender inn", + "road_description": "Kasserer får beskjeden og oppdaterer medlemslisten, eller melder deg ut om det er det du ber om.", + "road_icon": "lucide:refresh-cw", + "who_title": "Hvem svarer deg", + "who_description": "Kasserer i styret leser dette, og du kan nå oss på post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:user", + "form_title": "Endre medlemskap", + "form_description": "Skriv navnet ditt og hva som er nytt.", + "labels": { + "navn": "Navn", + "adresse": "Adresse", + "hva_er_nytt": "Hva vil du endre?" + }, + "hints": { + "navn": "Ola Nordmann", + "adresse": "Ny adresse i Tomter", + "hva_er_nytt": "Ny e-post, ny adresse, eller ønske om utmelding" + } + } + } + }, + "questions/melde-fra/index.yaml": { + "question": "Hva vil du melde fra om?", + "description": "Har du sett noe farlig i trafikken, eller noe ødelagt på lekeplassen eller stien? Her sier du fra til velet.", + "needs": { + "trafikkfare": { + "heading": "Meld fra om en trafikkfare", + "description": "Sett du noe farlig i trafikken? Fortell trafikkomiteen om det, så tar de det videre.", + "button": "Send inn", + "encouragement": "Bare noen linjer om hva og hvor er nok til at vi kan følge opp.", + "icon": "alert-triangle", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Hva skjer videre", + "road_description": "Trafikkomiteen tar meldingen din opp med kommunen eller den som eier veien. Du får vite om saken blir ordnet eller avvist.", + "road_icon": "lucide:route", + "who_title": "Hvem leser dette", + "who_description": "Trafikkomiteen leser meldingen din; haster det, kan du nå styret på post@tomtervel.no.", + "who_icon": "lucide:car", + "form_title": "Meld trafikkfare", + "form_description": "Fortell hva du så, hvor det var, og legg gjerne igjen e-posten din hvis vi trenger å spørre mer.", + "labels": { + "hvor": "Hvor var det", + "hva": "Hva så du", + "epost": "E-post (valgfritt)" + }, + "hints": { + "hvor": "Krysset Tomterveien / Elvestien", + "hva": "Dårlig sikt i krysset, biler kjører fort", + "epost": "ola.nordmann@epost.no" + } + }, + "anleggsfeil": { + "heading": "Meld fra om noe ødelagt", + "description": "Se noe ødelagt på en lekeplass eller langs elvestien, så tar lekeplasskomiteen tak i det.", + "button": "Send inn", + "encouragement": "Det holder med noen ord om hva du så og hvor.", + "icon": "construction", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Hva skjer videre", + "road_description": "Meldingen går til lekeplasskomiteen, som ser på den og tar tak i saken. Når feilen er utbedret, er saken avsluttet.", + "road_icon": "lucide:wrench", + "who_title": "Hvem leser dette", + "who_description": "Lekeplasskomiteen leser meldingen din; til det haster kan du nå styret på post@tomtervel.no.", + "who_icon": "lucide:hammer", + "form_title": "Meld anleggsfeil", + "form_description": "Fortell hva som er ødelagt og omtrent hvor det er.", + "labels": { + "hvor": "Hvor er det", + "hva": "Hva er ødelagt" + }, + "hints": { + "hvor": "", + "hva": "Løs planke på gjerdet ved husken" + } + } + } + }, + "questions/naboer/index.yaml": { + "question": "Trenger du en hånd, eller kan du gi en?", + "description": "Godt naboskap gjør hverdagen lettere. Trenger du en hånd, kan gi en, eller har noe å låne bort?", + "needs": { + "trenger-hjelp": { + "heading": "Få en nabo til å stille opp", + "description": "Får du ikke til snømåking, en handletur eller skyss for tiden? Si fra, så finner vi en nabo som kan stille opp.", + "button": "Be om hjelp", + "encouragement": "Vi finner en nabo som kan stille opp så fort som mulig.", + "icon": "heart-handshake", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Fra melding til hjelp", + "road_description": "Nabohjelpen finner en nabo som kan stille opp. Er det ordnet, eller om det ikke lot seg løse, får du beskjed.", + "road_icon": "lucide:hand-helping", + "who_title": "Hvem ser dette", + "who_description": "Nabohjelpen tar imot og finner noen til deg, eller ring post@tomtervel.no i mellomtiden.", + "who_icon": "lucide:users", + "form_title": "Be om en hånd", + "form_description": "Skriv kort hva du trenger hjelp til.", + "labels": { + "navn": "Navn", + "email": "E-post", + "adresse": "Adresse", + "hva": "Hva trenger du hjelp til", + "telefon": "Telefon" + }, + "hints": { + "navn": "Kari Nordmann", + "email": "kari@eksempel.no", + "adresse": "Tomterveien 12", + "hva": "Måke snø på trappa, handle inn litt mat", + "telefon": "123 45 678" + } + }, + "kan-hjelpe": { + "heading": "Bli spurt når en nabo trenger en hånd", + "description": "Kan du stille opp med snømåking, en handletur eller skyss når en nabo trenger det? Meld deg, så blir du spurt når det passer.", + "button": "Meld deg", + "encouragement": "Du blir bare kontaktet når noe passer for deg.", + "icon": "hand-helping", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Fra påmelding til spørsmål", + "road_description": "Du blir registrert som hjelper. Trekker du deg tilbake senere, er det bare å si fra.", + "road_icon": "lucide:user-check", + "who_title": "Hvem ser dette", + "who_description": "Nabohjelpen har oversikten og ringer deg direkte når det er noe, eller nås på post@tomtervel.no.", + "who_icon": "lucide:heart-handshake", + "form_title": "Meld deg som hjelper", + "form_description": "Fortell kort hva du kan bidra med.", + "labels": { + "navn": "Navn", + "email": "E-post", + "telefon": "Telefon", + "kan": "Hva kan du hjelpe med" + }, + "hints": { + "navn": "Kari Nordmann", + "email": "kari@eksempel.no", + "telefon": "123 45 678", + "kan": "" + } + }, + "dele-utstyr": { + "heading": "Lån ut eller lån av naboen", + "description": "Har du noe naboene kan få låne, eller trenger du å låne noe selv? Legg ut et oppslag så ser de andre på Tomter det.", + "button": "Legg ut oppslag", + "encouragement": "Det står på tavla med en gang.", + "icon": "package", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Fra oppslag til avtale", + "road_description": "Oppslaget står på tavla til du tar det ned selv, redaktøren gjør det, eller en måned har gått.", + "road_icon": "lucide:clipboard-list", + "who_title": "Hvem ser dette", + "who_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.", + "who_icon": "lucide:users", + "form_title": "Lån eller utlån", + "form_description": "Skriv kort hva det gjelder, så folk skjønner det med en gang.", + "labels": { + "navn": "Navn", + "email": "E-post", + "har_eller_trenger": "Har du eller trenger du", + "hva": "Hva gjelder det" + }, + "hints": { + "navn": "Ola Nordmann", + "email": "ola@eksempel.no", + "har_eller_trenger": "", + "hva": "Hengerfeste til bil, tilhenger, stige" + } + } + } + }, + "questions/nabohjelp/index.yaml": { + "question": "Hvem trenger hjelp, og hvem kan stille opp?", + "description": "Her kobler du naboer som trenger hjelp med dem som kan stille opp.", + "confirm": "Lagre", + "buckets": { + "hjelpebehov": { + "heading": "Naboer som trenger en hånd", + "description": "Naboer som trenger en hånd med snømåking, handling eller skyss – klare til å bli koblet med noen som kan hjelpe.", + "moves": { + "formidlet->ordnet": "Meld ordnet", + "formidlet->ikke_lost": "Meld ikke løst", + "open->formidlet": "Koble til nabo", + "open->ikke_lost": "Meld ikke løst" + }, + "list_title": "Hjelpebehov", + "list_note": "Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den." + }, + "hjelpere": { + "heading": "Naboer som kan stille opp", + "description": "Naboer som har sagt de kan stille opp – klare til å bli spurt når noen trenger dem.", + "moves": { + "open->registrert": "Registrer som hjelper", + "open->trukket": "Meld trukket" + }, + "list_title": "Hjelpere", + "list_note": "Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den." + } + }, + "links": {}, + "invites": { + "nabohjelp": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Sendte invitasjoner", + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "done": "Er inne", + "again": "Send på nytt", + "list_title": "Hvem som er invitert", + "list_note": "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." + }, + "suggestions": null + }, + "questions/received/anleggsfeil.yaml": { + "question": "Hva skjer med meldingen min nå?", + "description": "Meldingen din om skaden er sendt til lekeplasskomiteen. De ser over det du har sendt.", + "next_heading": "Komiteen tar tak i det", + "next_description": "Lekeplasskomiteen ser på meldingen og tar tak i det som må fikses før noen skader seg.", + "see_all": { + "heading": "Se andre meldte feil", + "description": "Se hva andre har meldt inn av skader på lekeplassene og stien, og hvor langt det har kommet.", + "button": "Se meldte feil" + } + }, + "questions/received/bli-medlem.yaml": { + "question": "Hva skjer etter at jeg har meldt meg inn?", + "description": "Vi har mottatt innmeldingen din. Kasserer tar kontakt med betalingsinfo så snart medlemskapet er registrert.", + "next_heading": "Kasserer sender deg betalingsinfo", + "next_description": "Kasserer går gjennom nye innmeldinger og sender deg kontonummer og beløp for kontingenten." + }, + "questions/received/dele-utstyr.yaml": { + "question": "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.", + "next_heading": "Naboene svarer deg direkte", + "next_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.", + "see_all": { + "heading": "Se oppslagstavla", + "description": "Det som står ute akkurat nå.", + "button": "Til tavla" + } + }, + "questions/received/endre-medlemskap.yaml": { + "question": "Hva skjer nå med det jeg meldte inn?", + "description": "Vi har mottatt beskjeden om at du har flyttet, byttet e-post eller vil melde deg ut.", + "next_heading": "Kasserer retter opp opplysningene", + "next_description": "Kasserer oppdaterer medlemslista og gir deg beskjed hvis det er noe mer vi trenger fra deg." + }, + "questions/received/hjelpe-til.yaml": { + "question": "Hva skjer nå som jeg har meldt meg?", + "description": "Takk for at du vil hjelpe til. Arrangementskomiteen har fått beskjed og tar kontakt med deg.", + "next_heading": "Komiteen tar kontakt", + "next_description": "Du hører fra noen i komiteen når de vet hva de trenger hjelp til, gjerne noen dager før arrangementet eller dugnaden." + }, + "questions/received/horingsinnspill.yaml": { + "question": "Hva skjer med det jeg har sagt om saken?", + "description": "Innspillet ditt er sendt til høringsinstansen i velet.", + "next_heading": "Innspillet ditt inn i vurderingen", + "next_description": "De ser på om det kan tas med i velets høringssvar til kommunen, og gir beskjed om det blir med." + }, + "questions/received/kan-hjelpe.yaml": { + "question": "Hva skjer nå som jeg har registrert meg?", + "description": "Takk for at du sier fra at du kan stille opp. Nabohjelp-komiteen tar imot meldingen og legger deg inn på lista over naboer som kan hjelpe.", + "next_heading": "Du blir kontaktet ved behov", + "next_description": "Når en nabo trenger hjelp med noe du har sagt du kan bidra med, tar komiteen kontakt med deg direkte." + }, + "questions/received/komite.yaml": { + "question": "Hva skjer nå som jeg har meldt interesse for en komité?", + "description": "Takk for at du vil bidra! Styret har fått beskjed og ser på hvilken komité som passer best for deg.", + "next_heading": "Vi finner riktig komité til deg", + "next_description": "Noen fra styret tar kontakt for å høre mer om hva du liker å drive med, og finner en komité som passer." + }, + "questions/received/melde-seg.yaml": { + "question": "Hva skjer nå?", + "description": "Svaret ditt er sendt til den som la ut oppslaget.", + "next_heading": "Den som la ut oppslaget tar kontakt", + "next_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." + }, + "questions/received/trafikkfare.yaml": { + "question": "Hva skjer med meldingen min nå?", + "description": "Meldingen din om trafikkfaren er sendt til komiteen for trafikk.", + "next_heading": "Trafikkomiteen tar den videre", + "next_description": "Trafikkomiteen ser gjennom meldinger jevnlig og tar det videre med kommunen eller den som eier veien der det trengs.", + "see_all": { + "heading": "Andre meldte trafikkfarer", + "description": "Se hva andre har meldt inn, og status på sakene.", + "button": "Se andre trafikkfarer" + } + }, + "questions/received/trenger-hjelp.yaml": { + "question": "Hva skjer nå som jeg har bedt om hjelp?", + "description": "Meldingen din er sendt til nabohjelpa. Vi ser etter en nabo som kan stille opp.", + "next_heading": "Vi finner en nabo til deg", + "next_description": "Vi tar kontakt med noen som kan hjelpe, så snart vi finner en som passer." + }, + "questions/redaktor/index.yaml": { + "question": "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.", + "confirm": "Bekreft", + "buckets": { + "oppslag": { + "heading": "Oppslag som står ute", + "description": "Det naboene har lagt ut om noe de har eller trenger.", + "moves": { + "open->tatt_ned": "Ta ned oppslaget" + }, + "list_title": "Oppslag", + "list_note": "Hver rad er ett oppslag. Ta det ned når det er ordnet eller ikke hører hjemme." + }, + "svar": { + "heading": "Svar som har gått", + "description": "Hvert svar gikk rett til den som la ut oppslaget; her ser du at det skjedde.", + "moves": { + "open->lest": "Lest" + }, + "list_title": "Svar", + "list_note": "Hver rad er ett svar, med e-posten til den som svarte. Merk som lest når du har sett det." + } + }, + "links": {}, + "invites": { + "redaktor": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Sendte invitasjoner", + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "done": "Er inne", + "again": "Send på nytt", + "list_title": "Hvem som er invitert", + "list_note": "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." + }, + "suggestions": null + }, + "questions/status/anleggsfeil/index.yaml": { + "question": "Hva skjer med det jeg har meldt fra om?", + "description": "Her ser du meldinger om ødelagt lekeutstyr og skader på elvestien, og hvor langt hver sak har kommet.", + "heading": "Status på meldte anleggsfeil", + "list_description": "Alle meldinger er åpne for alle å se.", + "list_title": "Anleggsfeil", + "list_note": "Hver rad er én sak og hvor langt den har kommet. Navn og kontaktopplysninger vises ikke her.", + "empty": "Ingenting her ennå.", + "answer": "" + }, + "questions/status/oppslag/[key].yaml": { + "question": "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.", + "form": { + "heading": "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.", + "button": "Send svar", + "encouragement": "Flere kan svare; den som la ut velger selv.", + "icon": "package", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Hva skjer", + "road_description": "E-posten din går rett til den som la ut oppslaget. Dere avtaler resten dere imellom.", + "road_icon": "lucide:mail", + "who_title": "Hvem ser dette", + "who_description": "Den som la ut oppslaget, og redaktøren.", + "who_icon": "lucide:users", + "form_title": "Ditt svar", + "form_description": "", + "labels": { + "email": "E-post", + "hilsen": "En hilsen, om du vil" + }, + "hints": { + "email": "ola@eksempel.no", + "hilsen": "Jeg har en stige du kan låne i helga" + } + } + }, + "questions/status/oppslag/index.yaml": { + "question": "Hva er sendt inn, og hvor langt har det kommet?", + "description": "Her ser du alt som er sendt inn og hvor langt hvert oppslag har kommet.", + "heading": "Oversikt over det som er meldt inn", + "list_description": "Åpen liste – navn og detaljer vises ikke.", + "list_title": "Oppslag", + "list_note": "Hver rad er én sak og hvor langt den har kommet. Navn og kontaktopplysninger vises ikke her.", + "empty": "Ingenting her ennå.", + "answer": "Jeg kan låne ut eller låne denne" + }, + "questions/status/trafikkmeldinger/index.yaml": { + "question": "Er det meldt fra om noe farlig i trafikken der jeg bor?", + "description": "Her ser du farlige steder i trafikken som er meldt inn, og hvor langt saken har kommet.", + "heading": "Trafikkmeldinger og status", + "list_description": "Alle meldinger som er sendt inn, og hvor de står nå.", + "list_title": "Trafikkmeldinger", + "list_note": "Hver rad er én sak og hvor langt den har kommet. Navn og kontaktopplysninger vises ikke her.", + "empty": "Ingenting her ennå.", + "answer": "" + }, + "questions/styret/index.yaml": { + "question": "Hva venter på styret akkurat nå?", + "description": "Herfra følger styret opp det som ikke hører under en enkelt komité: høringssvar, komitéplasser og oppslag fra naboer.", + "confirm": "Lagre", + "buckets": { + "innspill": { + "heading": "Høringsinnspill fra beboerne", + "description": "Her samles meninger fra beboerne om saker kommunen har på høring, klare til å tas med i velets svar.", + "moves": {}, + "list_title": "Innspill", + "list_note": "Hver rad er én sak og hvor langt den har kommet. En annen pult flytter disse." + }, + "komitesoknader": { + "heading": "Søknader til komiteene", + "description": "Her ligger alle som har meldt seg til en komité og venter på en plass.", + "moves": { + "open->plassert": "Sett i komité", + "open->avslatt": "Avslå søknaden" + }, + "list_title": "Komitesoknader", + "list_note": "Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den." + }, + "trafikkmeldinger": { + "heading": "Meldinger om trafikkfarer", + "description": "Her samles meldinger om farlige steder i trafikken, klare til å tas videre med kommunen eller veieier.", + "moves": {}, + "list_title": "Trafikkmeldinger", + "list_note": "Hver rad er én sak og hvor langt den har kommet. En annen pult flytter disse." + } + }, + "links": {}, + "invites": { + "arrangementer": { + "heading": "Inviter noen inn i Arrangementer", + "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + }, + "horingsinstans": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + }, + "kasserer": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + }, + "komiteer": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + }, + "lekeplasser": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + }, + "nabohjelp": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + }, + "redaktor": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + }, + "styret": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + }, + "trafikk": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Sendte invitasjoner", + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "done": "Er inne", + "again": "Send på nytt", + "list_title": "Hvem som er invitert", + "list_note": "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." + }, + "suggestions": { + "heading": "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.", + "list_title": "Forslag", + "list_note": "Hver rad er ett forslag, med siden det gjelder. Knappene fører opp det du nettopp har gjort med det.", + "looking": "Vi ser på det", + "changed": "Endringen er gjort", + "declined": "Gjøres ikke" + } + }, + "questions/trafikk/index.yaml": { + "question": "Hvilke trafikkfarer må følges opp?", + "description": "Her ser du meldinger om farlige steder i trafikken og følger dem opp overfor kommunen eller veieier.", + "confirm": "Lagre", + "buckets": { + "trafikkmeldinger": { + "heading": "Farlige steder i trafikken", + "description": "Farlige steder i trafikken som naboer har meldt inn.", + "moves": { + "open->tatt_opp": "Ta opp med kommunen", + "open->avvist": "Avvis meldingen", + "tatt_opp->ordnet": "Meld ordnet", + "tatt_opp->avvist": "Avvis meldingen" + }, + "list_title": "Trafikkmeldinger", + "list_note": "Hver rad er én sak. Knappene fører opp det du nettopp har gjort med den." + } + }, + "links": {}, + "invites": { + "trafikk": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Sendte invitasjoner", + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "done": "Er inne", + "again": "Send på nytt", + "list_title": "Hvem som er invitert", + "list_note": "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." + }, + "suggestions": null + }, + "site.yaml": { + "invite": { + "subject": "Din konto hos {site_name}", + "body": "Hei {name},\n\n{site_name} har laget en konto til deg og lagt deg til i {group}. Brukernavnet ditt er {username}.\n\nVelg passord her før {expires}:\n{link}\n\nEtterpå logger du inn på {site}." + } + } +} \ No newline at end of file diff --git a/runs/tomtervel-oppslagstavla-2026-09-30/words-board.json b/runs/tomtervel-oppslagstavla-2026-09-30/words-board.json new file mode 100644 index 0000000..ebb5f14 --- /dev/null +++ b/runs/tomtervel-oppslagstavla-2026-09-30/words-board.json @@ -0,0 +1,203 @@ +{ + "aggregates.yaml": { + "oppslag": { + "open": { + "subject": "Nytt oppslag på tavla: {hva}", + "body": "Et nytt oppslag står på tavla fra nå av.\n\n{har_eller_trenger}: {hva}\n\nDet 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" + } + }, + "svar": { + "open": { + "subject": "En nabo har svart på oppslaget ditt", + "body": "Hei,\n\nEn nabo har svart på oppslaget ditt «{oppslag.hva}». Ta kontakt direkte: {email}\n\n{hilsen}\n\nFlere kan svare så lenge oppslaget står; du velger selv hvem du avtaler med. Når det er ordnet, tar du det ned her:\n{site}/decide/dele-utstyr?chain={oppslag.id}&email={oppslag.email}" + } + } + }, + "questions/status/oppslag/index.yaml": { + "answer": "Jeg kan låne ut eller låne denne" + }, + "questions/status/oppslag/[key].yaml": { + "question": "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.", + "form": { + "heading": "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.", + "button": "Send svar", + "encouragement": "Flere kan svare; den som la ut velger selv.", + "icon": "package", + "requires_title": "", + "requires_description": "", + "requires_icon": "", + "road_title": "Hva skjer", + "road_description": "E-posten din går rett til den som la ut oppslaget. Dere avtaler resten dere imellom.", + "road_icon": "lucide:mail", + "who_title": "Hvem ser dette", + "who_description": "Den som la ut oppslaget, og redaktøren.", + "who_icon": "lucide:users", + "form_title": "Ditt svar", + "form_description": "", + "labels": { + "email": "E-post", + "hilsen": "En hilsen, om du vil" + }, + "hints": { + "email": "ola@eksempel.no", + "hilsen": "Jeg har en stige du kan låne i helga" + } + } + }, + "questions/received/melde-seg.yaml": { + "question": "Hva skjer nå?", + "description": "Svaret ditt er sendt til den som la ut oppslaget.", + "next_heading": "Den som la ut oppslaget tar kontakt", + "next_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.", + "see_all": { + "heading": "Se oppslagstavla", + "description": "", + "button": "Til tavla" + } + }, + "questions/received/dele-utstyr.yaml": { + "question": "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.", + "next_heading": "Naboene svarer deg direkte", + "next_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.", + "see_all": { + "heading": "Se oppslagstavla", + "description": "Det som står ute akkurat nå.", + "button": "Til tavla" + } + }, + "questions/naboer/index.yaml": { + "needs": { + "dele-utstyr": { + "encouragement": "Det står på tavla med en gang.", + "road_description": "Oppslaget står på tavla til du tar det ned selv, redaktøren gjør det, eller en måned har gått.", + "who_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." + } + } + }, + "questions/redaktor/index.yaml": { + "question": "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.", + "confirm": "Bekreft", + "buckets": { + "oppslag": { + "heading": "Oppslag som står ute", + "description": "Det naboene har lagt ut om noe de har eller trenger.", + "moves": { + "open->tatt_ned": "Ta ned oppslaget" + }, + "list_title": "Oppslag", + "list_note": "Hver rad er ett oppslag. Ta det ned når det er ordnet eller ikke hører hjemme." + }, + "svar": { + "heading": "Svar som har gått", + "description": "Hvert svar gikk rett til den som la ut oppslaget; her ser du at det skjedde.", + "moves": { + "open->lest": "Lest" + }, + "list_title": "Svar", + "list_note": "Hver rad er ett svar, med e-posten til den som svarte. Merk som lest når du har sett det." + } + }, + "invites": { + "redaktor": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Sendte invitasjoner", + "done": "Er inne", + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "list_note": "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." + } + }, + "questions/styret/index.yaml": { + "invites": { + "redaktor": { + "heading": "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.", + "button": "Inviter", + "form_title": "Hvem", + "form_description": "Navnet deres, og adressen kontoen og engangslenken går til.", + "labels": { + "name": "Navn", + "email": "E-post" + } + } + }, + "invited": { + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "list_note": "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." + } + }, + "questions/arrangementer/index.yaml": { + "invited": { + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "list_note": "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." + } + }, + "questions/horingsinstans/index.yaml": { + "invited": { + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "list_note": "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." + } + }, + "questions/kasserer/index.yaml": { + "invited": { + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "list_note": "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." + } + }, + "questions/komiteer/index.yaml": { + "invited": { + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "list_note": "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." + } + }, + "questions/lekeplasser/index.yaml": { + "invited": { + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "list_note": "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." + } + }, + "questions/nabohjelp/index.yaml": { + "invited": { + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "list_note": "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." + } + }, + "questions/trafikk/index.yaml": { + "invited": { + "description": "Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt.", + "list_note": "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." + } + }, + "questions/index.yaml": { + "shopping": { + "items": { + "status-anleggsfeil": { + "description": "Det som er meldt inn, og hvor langt vi har kommet med å fikse det.", + "link": "Alle feilmeldinger" + }, + "status-oppslag": { + "description": "Utstyr som er til låns, og det naboene leter etter. Svar rett fra oppslaget.", + "link": "Hele oppslagstavla" + }, + "status-trafikkmeldinger": { + "description": "Det naboer har meldt fra om, og hva velet har gjort med det.", + "link": "Alle trafikkmeldinger" + } + } + } + } +} \ No newline at end of file diff --git a/src/build.rs b/src/build.rs index cf08673..cbfa386 100644 --- a/src/build.rs +++ b/src/build.rs @@ -2783,6 +2783,18 @@ fn identity(v: &serde_yaml::Value) -> Vec<(&'static str, String)> { } } } + // A desk card is its list: the bucket its feature reads is what + // the card is about, and the only thing that tells two cards on + // one desk apart, since they all lead back to the desk. + if let Some(features) = v.get("features").and_then(|f| f.as_sequence()) { + for feature in features { + if let Some(bucket) = feature.get("resource").and_then(|r| r.get("source")).and_then(|s| s.get("bucket")).and_then(|b| b.as_str()) { + if !bucket.starts_with('\u{1}') && !bucket.is_empty() { + id.push(("bucket", bucket.to_string())); + } + } + } + } id } @@ -2830,12 +2842,22 @@ fn collect_words(a: &serde_yaml::Value, b: &serde_yaml::Value, found: &mut std:: let mut used = vec![false; y.len()]; for (i, va) in x.iter().enumerate() { let ida = identity(va); + // What a card does is matched before where it points: + // on a desk every card's action is the desk itself, so + // a card with a bucket or a group of its own must not + // take the words of whichever card shares that action + // - when the vel's notices left the board's desk, the + // invite after them was handed their heading that way. + let strong: Vec<(&str, String)> = ida.iter().filter(|(k, v)| strong_identity(k, v)).cloned().collect(); + let matching = |keys: &[(&str, String)]| (0..y.len()).find(|&j| !used[j] && identity(&y[j]).iter().any(|k| keys.contains(k))); let hit = if ida.is_empty() { // A name is a word, never an identity that blocks a // positional match: a feature always carries one. (i < y.len() && !used[i] && identity(&y[i]).iter().all(|(k, _)| *k == "name")).then_some(i) + } else if !strong.is_empty() { + matching(&strong) } else { - (0..y.len()).find(|&j| !used[j] && identity(&y[j]).iter().any(|k| ida.contains(k))) + matching(&ida) }; if let Some(j) = hit { used[j] = true; @@ -2925,6 +2947,35 @@ mod invite_tests { assert!(orphan.validate().unwrap_err().to_string().contains("owner")); } + #[test] + fn a_card_that_left_a_desk_does_not_leave_its_words_on_the_next_card() { + // Live: the board handles expenses, and its card has words of + // its own. Then the plan moves expenses to traffic's desk: the + // invite that now sits where the card sat must not take them. + let live: Plan = serde_yaml::from_str(PLAN).unwrap(); + let mut words = fallback_words(&live); + words.get_mut("questions/board/index.yaml").unwrap()["buckets"]["expenses"]["heading"] = json!("Money people want back"); + let repo = std::env::temp_dir().join(format!("trainer-moved-{}", std::process::id())); + for (path, text) in render(&live, &words).unwrap() { + let full = repo.join(&path); + std::fs::create_dir_all(full.parent().unwrap()).unwrap(); + std::fs::write(full, text).unwrap(); + } + // Expenses go to traffic's desk; the board watches hazards + // instead, so its desk stays, with another bucket's card where + // the expenses card was. + let moved: Plan = serde_yaml::from_str(&PLAN.replace(" handled_by: board\n", " handled_by: traffic\n").replace(" handled_by: traffic\n stages: [open, fixed]", " handled_by: traffic\n watched_by: [board]\n stages: [open, fixed]")).unwrap(); + moved.validate().unwrap(); + let lifted = lift_words(&moved, &repo).unwrap(); + let board = &lifted["questions/board/index.yaml"]; + assert!(board["buckets"].get("expenses").is_none()); + assert_ne!(board["buckets"]["hazards"]["heading"], "Money people want back", "the hazards card took the moved card's heading"); + for (group, invite) in board["invites"].as_object().unwrap() { + assert_ne!(invite["heading"], "Money people want back", "the invite into {group} took the moved card's heading"); + } + let _ = std::fs::remove_dir_all(&repo); + } + #[test] fn inviting_desks_get_a_form_per_group_and_a_list_of_invites_sent() { let plan: Plan = serde_yaml::from_str(PLAN).unwrap();