commit bbec51f4768ffd45b2b15217204bc4fec5ff3667 Author: Bendik Aagaard Lynghaug Date: Thu Oct 1 07:36:15 2026 +0200 GULLBERG sanatorium: første utkast, bygget av treneren Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..3bcf3ee --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,28 @@ +name: Deploy instance + +# This content repo owns its portal instance: which portal version runs +# on kasse for gullberg.klingenbergbygg.no. PORTAL_RELEASE pins it, so +# every rollout is a commit, revertable by reverting it. Content-only +# changes go through lint-and-reload instead. +# +# The one root action the runner may take is +# /usr/local/bin/deploy-portal-instance, which checks the instance +# against a fixed list and the tag against a release-tag shape. + +on: + workflow_dispatch: + push: + branches: [main] + paths: + - .gitea/workflows/deploy.yml + +env: + PORTAL_RELEASE: v0.6.10 + INSTANCE: gullberg-portal + +jobs: + deploy: + runs-on: fish + steps: + - name: Ship the pinned release and restart + run: sudo /usr/local/bin/deploy-portal-instance "$INSTANCE" "$PORTAL_RELEASE" diff --git a/.gitea/workflows/lint-and-reload.yml b/.gitea/workflows/lint-and-reload.yml new file mode 100644 index 0000000..db0deed --- /dev/null +++ b/.gitea/workflows/lint-and-reload.yml @@ -0,0 +1,22 @@ +name: lint-and-reload +on: + push: + branches: [main] +jobs: + lint: + runs-on: fish + steps: + - name: checkout + run: | + rm -rf checkout && git clone --depth 1 https://prosjekt.klingenbergbygg.no/klingenbergbygg/gullberg.git checkout + # The lint is portal itself, at the version this site runs + # (PORTAL_RELEASE in deploy.yml). + - name: lint + env: + PORTAL_RELEASE: v0.6.10 + run: | + curl -sfL "https://project.uhhm.no/uhhm/portal/releases/download/$PORTAL_RELEASE/portal-x86_64-linux" -o portal && chmod +x portal + ./portal lint --path checkout/questions + # Gullberg's own NATS, never the one the other sites share. + - name: reload + run: nats --server nats://127.0.0.1:4233 pub portal.content.reload "" diff --git a/README.md b/README.md new file mode 100644 index 0000000..85384fd --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# GULLBERG sanatorium + +Innholdet til gullberg.klingenbergbygg.no, et Klingenberg Bygg-prosjekt. +Bygget av treneren i portal fra `plans/gullberg.yaml` og +`plans/words/gullberg.json` i uhhm/portal; endres der og bygges på nytt. + +- `questions/`, `aggregates.yaml`, `needs.yaml`, `site.yaml`: sidene, sakene og innstillingene. +- `custom.css`, `images/`, `fonts/`: utseendet. +- `.gitea/workflows/`: lint og innlasting ved hver push, og utrulling av den portal-versjonen `deploy.yml` peker på. diff --git a/aggregates.yaml b/aggregates.yaml new file mode 100644 index 0000000..c517ca3 --- /dev/null +++ b/aggregates.yaml @@ -0,0 +1,239 @@ +aggregates: +- bucket: eierskifte + initial: open + states: + open: + event: received + arbeid: + event: arbeid + ferdig: + event: ferdig + transitions: + arbeid: + - ferdig + open: + - arbeid +- bucket: feil + initial: open + states: + open: + event: received + mail: + to: fredrik@klingenbergbygg.no + subject: Meldingen om {hva} er mottatt + body: Feilen du meldte om {hva} er registrert hos oss. Klingenberg Bygg ser på den og melder tilbake når de vet mer. {link} + befaring: + event: befaring + overslag: + event: overslag + mail: + to: bl@klingenbergbygg.no + subject: Overslag er på vei for {hva} + body: Klingenberg Bygg har sett på {hva} og styret har fått et overslag å ta stilling til. Du hører fra oss når det er avgjort. {link} + godkjent: + event: godkjent + utbedret: + event: utbedret + mail: + to: submitter + subject: '{hva} er rettet' + body: Feilen du meldte om, {hva}, er nå utbedret. Si gjerne til hvis noe fortsatt ikke er som det skal. {link} + avvist: + event: avvist + transitions: + befaring: + - overslag + - avvist + godkjent: + - utbedret + open: + - befaring + - avvist + overslag: + - godkjent + - avvist +- bucket: husleie + initial: open + states: + open: + event: received + betalt: + event: betalt + purret: + event: purret + transitions: + open: + - betalt + - purret + purret: + - betalt +- bucket: liste + initial: open + states: + open: + event: received + vedtatt: + event: vedtatt + publisert: + event: publisert + forkastet: + event: forkastet + transitions: + open: + - vedtatt + - forkastet + vedtatt: + - publisert + - forkastet +- bucket: nedbetalingsplaner + initial: open + states: + open: + event: received + godkjent: + event: godkjent + sendt: + event: sendt + innvilget: + event: innvilget + endringer: + event: endringer + transitions: + godkjent: + - sendt + open: + - godkjent + sendt: + - endringer + - innvilget +- bucket: overslag + initial: open + states: + open: + event: received + mail: + to: bl@klingenbergbygg.no + subject: Overslaget for {gjelder} er mottatt + body: Overslaget for {gjelder} er kommet inn til styret og ligger til vurdering. Du hører fra oss når det er avgjort. {link} + godkjent: + event: godkjent + avvist: + event: avvist + fakturert: + event: fakturert + transitions: + godkjent: + - fakturert + open: + - godkjent + - avvist +- bucket: rapporter + initial: open + states: + open: + event: received + sendt: + event: sendt + transitions: + open: + - sendt +- bucket: rom + initial: open + states: + open: + event: received + utleid: + event: utleid + leaves_after: + minutes: 10 + transitions: + open: + - utleid +- bucket: romsoknader + initial: open + states: + open: + event: received + mail: + to: submitter + subject: Søknaden til {studiested} er mottatt + body: |- + Søknaden din om rom, som student ved {studiested}, er registrert hos styret. Du hører fra oss når det er sett på. {link} + + Det du kan gjøre nå: {site}/decide/leie-rom?chain={chain}&email={email} + visning: + event: visning + mail: + to: submitter + subject: Visning av rommet er satt opp + body: |- + Søknaden din har kommet til visning - styret vil vise deg rommet før det avgjøres. Du hører fra oss om tid og sted. {link} + + Det du kan gjøre nå: {site}/decide/leie-rom?chain={chain}&email={email} + tilbud: + event: tilbud + mail: + to: submitter + subject: Du har fått tilbud om rom + body: |- + Styret har sett på søknaden din og kan tilby deg rommet. Svar her så snart du kan, så går vi videre med kontrakten. {link} + + Det du kan gjøre nå: {site}/decide/leie-rom?chain={chain}&email={email} + akseptert: + event: akseptert + mail: + to: bl@klingenbergbygg.no + subject: Du har fått rommet + body: Søknaden din om et rom til studieåret er godtatt. Vi tar kontakt om det videre, og du er velkommen til å svare her om du har spørsmål. {link} + signert: + event: signert + mail: + to: submitter + subject: Kontrakten er signert + body: Kontrakten for rommet du søkte om er nå signert av begge parter. Rommet er ditt - velkommen inn. {link} + grants: leietakere + avslatt: + event: avslatt + transitions: + akseptert: + - signert + open: + - visning + - avslatt + tilbud: + - akseptert + - avslatt + visning: + - tilbud + - avslatt +- bucket: saker + initial: open + states: + open: + event: received + sakslisten: + event: sakslisten + vedtatt: + event: vedtatt + avvist: + event: avvist + transitions: + open: + - sakslisten + - avvist + sakslisten: + - vedtatt + - avvist +- bucket: uker + initial: open + states: + open: + event: received + bekreftet: + event: bekreftet + avslatt: + event: avslatt + transitions: + open: + - bekreftet + - avslatt diff --git a/custom.css b/custom.css new file mode 100644 index 0000000..1e3a64f --- /dev/null +++ b/custom.css @@ -0,0 +1,215 @@ +/* GULLBERG sanatorium - the skin over portal's own stylesheet + (site.yaml `stylesheet`, loaded after main.css, so these rules win). + + One idea: a sanatorium from the thirties. Lime-washed plaster, pine + green for what is ruled and pressed, brass for what leads somewhere, + Futura capitals spaced like the wordmark for what is asked, and a + calm serif for what is said. Both colour schemes are drawn; the page + follows the reader's. */ + +@import url('https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,400;0,500;1,400&display=swap'); + +@font-face { + font-family: "FuturaNow"; + font-weight: 500; + font-display: swap; + src: url("/site/fonts/futura-medium.ttf") format("truetype"); +} + +/* ---- colour: light, then dark ---------------------------------- */ + +:root { + --pine: #2f4a3a; + --accent: #8a6420; + --accent-soft: rgba(138, 100, 32, 0.12); + --paper: #f3f1ea; + --ink: #1d2420; + --ink-dim: #5c625c; + --line: #d9d5c8; + --card-bg: #fbfaf6; + --card-bg-opaque: #fbfaf6; + --card-shadow: rgba(30, 45, 35, 0.08); + --field: #ffffff; + --hero-glow: rgba(243, 241, 234, 0.85); + --error: #9b2c1f; + --heading: "FuturaNow", "Futura", "Century Gothic", sans-serif; + --sans: "Spectral", Georgia, "Times New Roman", serif; + --radius: 0.25rem; + --measure: 46rem; + color-scheme: light; +} + +@media (prefers-color-scheme: dark) { + :root { + /* Pine is too dark to read as text on a dark ground; brass is the + accent there, and pine stays for what is filled. */ + --pine: #3d6150; + --accent: #d6b46a; + --accent-soft: rgba(214, 180, 106, 0.16); + --paper: #121614; + --ink: #ece8de; + --ink-dim: #a9aba3; + --line: #2c3430; + --card-bg: #1a201d; + --card-bg-opaque: #1a201d; + --card-shadow: rgba(0, 0, 0, 0.45); + --field: #121614; + --hero-glow: rgba(18, 22, 20, 0.85); + --error: #f08c7c; + color-scheme: dark; + } +} + +/* ---- type ------------------------------------------------------- */ + +body { + font-family: var(--sans); + font-size: 1.06rem; + line-height: 1.55; +} + +h1, h2, h3 { + font-family: var(--heading); + font-weight: 500; + line-height: 1.15; +} + +/* What is asked is set like the wordmark: capitals, spaced. */ +.hero-copy h1, +.alt-card h2 { + text-transform: uppercase; + letter-spacing: 0.12em; +} + +/* ---- the top ---------------------------------------------------- */ + +.hero { + align-items: stretch; + text-align: left; +} + +.hero:not(.hero-slides), +.hero-bar, +.hero-slides .hero-copy { + width: 100%; + max-width: var(--measure); + margin-inline: auto; + box-sizing: border-box; +} + +.wordmark { + opacity: 1; +} + +.session { + font-family: var(--heading); + font-size: 0.82rem; + letter-spacing: 0.06em; +} + +.hero-copy { + display: flex; + flex-direction: column; + align-items: flex-start; + text-align: left; + gap: 0.5rem; +} + +.hero-copy h1 { + margin: 0.4rem 0 0; + font-size: clamp(1.5rem, 1rem + 2.2vw, 2.2rem); +} + +.hero-copy p { + margin: 0; + max-width: 34rem; + font-size: 1.12rem; + color: var(--ink-dim); +} + +/* ---- the cards -------------------------------------------------- */ + +.alternatives { + max-width: var(--measure); + gap: 1.4rem; +} + +/* A card on the reading-room table: flat, a pine rule on its left. */ +.alt-card { + background: var(--card-bg); + border: 0.06rem solid var(--line); + border-left: 0.3rem solid var(--pine); + border-radius: var(--radius); + box-shadow: 0 0.4rem 1.2rem var(--card-shadow); + padding: 1.6rem 1.8rem 1.7rem; + backdrop-filter: none; +} + +.alt-card h2 { + font-size: 1.15rem; + margin: 0 0 0.45rem; +} + +.feature h3, +.feature-name { + font-family: var(--heading); + letter-spacing: 0.04em; +} + +.feature p a, +.alt-description a, +.hero-copy p a { + color: var(--accent); + border-bottom-color: var(--accent); +} + +.alt-encouragement { + color: var(--ink-dim); + font-style: italic; +} + +/* ---- forms ------------------------------------------------------ */ + +.field-label { + font-family: var(--heading); + font-size: 0.78em; + letter-spacing: 0.06em; + text-transform: uppercase; + color: var(--ink); +} + +input, +textarea, +.select-option { + background: var(--field); + border-color: var(--line); + border-radius: 0.2em; +} + +.select-option { + border-radius: 999rem; +} + +.select-option.selected { + background: var(--pine); + border-color: var(--pine); + color: #f3f1ea; +} + +.alt-submit { + font-family: var(--heading); + letter-spacing: 0.12em; + text-transform: uppercase; + background: var(--pine); + color: #f3f1ea; + border-radius: 0.2em; +} + +/* ---- the foot --------------------------------------------------- */ + +.question-nav, +.down-the-tree-foot, +.question-responsible { + font-family: var(--heading); + letter-spacing: 0.04em; +} diff --git a/fonts/futura-medium.ttf b/fonts/futura-medium.ttf new file mode 100644 index 0000000..80f3368 Binary files /dev/null and b/fonts/futura-medium.ttf differ diff --git a/images/favicon.svg b/images/favicon.svg new file mode 100644 index 0000000..abb274a --- /dev/null +++ b/images/favicon.svg @@ -0,0 +1,8 @@ + + + + G + diff --git a/images/wordmark.svg b/images/wordmark.svg new file mode 100644 index 0000000..9cfe919 --- /dev/null +++ b/images/wordmark.svg @@ -0,0 +1,13 @@ + + + GULLBERG + sanatorium + diff --git a/needs.yaml b/needs.yaml new file mode 100644 index 0000000..987bfcc --- /dev/null +++ b/needs.yaml @@ -0,0 +1,311 @@ +needs: +- id: leie-rom + who: en student som trenger et rimelig rom for studieåret + wants: et rom å bo på til en leie som går opp med studielånet + enters: / + via: Søk rom for studieåret + lands_in: romsoknader + handled_by: styret + stages: + - open + - visning + - tilbud + - akseptert + - signert + - avslatt + done_when: + - signert + - avslatt + success: + - signert + max_steps: 1 + max_fields: 4 + stage_words: + open: mottatt + visning: visning avtalt + tilbud: tilbud sendt + akseptert: tilbud godtatt + signert: kontrakt signert + avslatt: avsluttet uten leie +- id: ledig-rom + who: styret, når et rom blir ledig + wants: at studenter ser rommet før de søker + enters: /styret/ledig-rom + via: Meld inn et rom som er ledig + lands_in: rom + handled_by: styret + stages: + - open + - utleid + done_when: + - utleid + success: + - utleid + max_steps: 1 + max_fields: 3 + stage_words: + open: ledig + utleid: leid ut + enters_as: styret +- id: liste + who: styret, om huset og driften + wants: én liste over det som er bra, det som mangler og det som er planlagt, med pris og tid + enters: /styret/liste + via: Listen over huset og planene + lands_in: liste + handled_by: styret + stages: + - open + - vedtatt + - publisert + - forkastet + done_when: + - publisert + - forkastet + success: + - publisert + max_steps: 1 + max_fields: 3 + stage_words: + open: utkast + vedtatt: vedtatt + publisert: publisert + forkastet: forkastet + enters_as: styret +- id: rapport + who: styret, hvert kvartal + wants: at aksjonærene ser hvordan det går, i tall, og at banken får det den skal ha + enters: /styret/rapport + via: Rapporten som viser hvordan det går + lands_in: rapporter + handled_by: styret + stages: + - open + - sendt + done_when: + - sendt + success: + - sendt + max_steps: 1 + max_fields: 7 + stage_words: + open: lagt fram for aksjonærene + sendt: sendt til banken + enters_as: styret +- id: nedbetalingsplan + who: styret, når veien videre og pengestrømmen skal avtales + wants: en nedbetalingsplan alle fire aksjonærene står bak, som banken sier ja til + enters: /styret/nedbetalingsplan + via: Nedbetalingsplanen alle fire står bak + lands_in: nedbetalingsplaner + handled_by: styret + stages: + - open + - godkjent + - sendt + - innvilget + - endringer + done_when: + - innvilget + - endringer + success: + - innvilget + max_steps: 1 + max_fields: 6 + stage_words: + open: til godkjenning hos aksjonærene + godkjent: godkjent av aksjonærene + sendt: sendt til banken + innvilget: innvilget av banken + endringer: banken ber om endringer + enters_as: styret + also_moved_by: + - aksjonaerer +- id: husleie + who: styret, når husleia for en måned er kommet inn + wants: at aksjonærene ser hvilke rom som har betalt, og hva som gikk til banken + enters: /styret/husleie + via: Husleia for måneden, samlet ett sted + lands_in: husleie + handled_by: styret + stages: + - open + - betalt + - purret + done_when: + - betalt + success: + - betalt + max_steps: 1 + max_fields: 4 + stage_words: + open: forventet + betalt: betalt + purret: purret + enters_as: styret +- id: feil + who: en leietaker som har funnet noe som er galt i huset + wants: at det blir sett på og rettet + enters: /leietakere/feil + via: Meld fra om noe som er galt i huset + lands_in: feil + handled_by: klingenberg + stages: + - open + - befaring + - overslag + - godkjent + - utbedret + - avvist + done_when: + - utbedret + - avvist + success: + - utbedret + max_steps: 1 + max_fields: 3 + stage_words: + open: meldt + befaring: befaring avtalt + overslag: overslag gitt + godkjent: godkjent av styret + utbedret: utbedret + avvist: avvist + enters_as: leietakere + also_moved_by: + - styret +- id: overslag + who: Klingenberg Bygg, når en feil er sett på + wants: at styret får et beløp å ta stilling til, og at det havner i regnskapet + enters: /klingenberg/overslag + via: Overslaget går til styret + lands_in: overslag + handled_by: styret + stages: + - open + - godkjent + - avvist + - fakturert + done_when: + - fakturert + - avvist + success: + - fakturert + max_steps: 1 + max_fields: 3 + stage_words: + open: til styret + godkjent: godkjent + avvist: avvist + fakturert: fakturert + enters_as: klingenberg + also_moved_by: + - klingenberg +- id: eierskifte + who: styret, mens huset går over til selskapet + wants: at aksjonærene og banken ser hvor langt eierskiftet har kommet, med dokumentene + enters: /styret/eierskifte + via: Se hvor eierskiftet står + lands_in: eierskifte + handled_by: styret + stages: + - open + - arbeid + - ferdig + done_when: + - ferdig + success: + - ferdig + max_steps: 1 + max_fields: 2 + stage_words: + open: ikke startet + arbeid: i gang + ferdig: ferdig + enters_as: styret +- id: uke + who: en aksjonær som vil bruke huset en periode + wants: en uke i huset, bekreftet av styret + enters: /aksjonaerer/uke + via: Reserver en uke i huset + lands_in: uker + handled_by: styret + stages: + - open + - bekreftet + - avslatt + done_when: + - bekreftet + - avslatt + success: + - bekreftet + max_steps: 1 + max_fields: 3 + stage_words: + open: ønsket + bekreftet: bekreftet + avslatt: ikke ledig + enters_as: aksjonaerer +- id: sak + who: en aksjonær som vil ha noe avgjort + wants: at styret tar saken opp og avgjør den + enters: /aksjonaerer/sak + via: Få en sak opp i styret + lands_in: saker + handled_by: styret + stages: + - open + - sakslisten + - vedtatt + - avvist + done_when: + - vedtatt + - avvist + success: + - vedtatt + max_steps: 1 + max_fields: 2 + stage_words: + open: meldt + sakslisten: på sakslisten + vedtatt: vedtatt + avvist: avvist + enters_as: aksjonaerer +personas: +- id: student-bergen + need: leie-rom + text: Jeg begynner på master til høsten og har ikke råd til hybel i sentrum. Et rimelig rom i et stort hus høres perfekt ut. +- id: student-kort + need: leie-rom + text: Jeg skal på utveksling og trenger et rom bare for ett semester. Går det an? +- id: styret-rom + need: ledig-rom + text: Rommet i andre etasje blir ledig til jul, og jeg har et fint bilde av det. Det vil jeg legge ut. +- id: styret-mangel + need: liste + text: Taket på uthuset lekker. Det må stå på lista, og vi må ha en plan og en pris for det. +- id: styret-kvartal + need: rapport + text: Tredje kvartal er gjort opp. Leia kom inn, men strømmen ble dyrere enn vi trodde. Rapporten skal til banken. +- id: leietaker-vann + need: feil + text: Det drypper fra taket på badet i andre etasje når noen dusjer over. Hvem sier jeg fra til? +- id: klingenberg-overslag + need: overslag + text: Vi har sett på lekkasjen på badet. Det er en pakning og litt flis, rundt 6 500 kroner. Styret må si ja før vi setter i gang. +- id: styret-skjote + need: eierskifte + text: Skjøtet er tinglyst på selskapet i dag. Banken skal se det, og kopien skal ligge ved. +- id: aksjonaer-sommer + need: uke + text: Vi vil gjerne være i huset første uka i juli med barna. +- id: styret-plan + need: nedbetalingsplan + text: 'Vi har regnet på det: 24 000 i måneden fra rommene, og vi kan sette av en fast sum til långiveren hver måned. Alle fire må stå bak det før vi går til banken.' +- id: styret-husleie + need: husleie + text: Oktober er inne for to av rommene, det tredje mangler. Det må stå et sted alle ser. +- id: aksjonaer-sak + need: sak + text: Jeg mener vi bør se på solceller før vi tar opp mer lån. Kan styret ta det opp? +tones: [] diff --git a/questions/aksjonaerer/_section.yaml b/questions/aksjonaerer/_section.yaml new file mode 100644 index 0000000..de68c60 --- /dev/null +++ b/questions/aksjonaerer/_section.yaml @@ -0,0 +1 @@ +qualifies: aksjonaerer diff --git a/questions/aksjonaerer/index.yaml b/questions/aksjonaerer/index.yaml new file mode 100644 index 0000000..190faad --- /dev/null +++ b/questions/aksjonaerer/index.yaml @@ -0,0 +1,161 @@ +name: Hvordan ligger huset og driften an? +description: 'Her ser aksjonærene hvordan huset og driften står: eierskiftet, husleia, lista, overslagene og sakene.' +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Se hvor langt eierskiftet har kommet + description: Hvert steg i overgangen til Gullberg AS, med dokumentene som hører til. + action: /aksjonaerer + consequence: + - Bekreft + features: + - name: Steg i eierskiftet + description: Hver rad er et steg med merknad og dokument; flytt det videre når det er i arbeid eller ferdig. + resource: + source: + kind: kv + bucket: eierskifte + requires_group: aksjonaerer + transitions: [] +- name: Se hvilke rom som har betalt + description: Husleia for hvert rom, måned for måned, og hva som er purret på. + action: /aksjonaerer + consequence: + - Bekreft + features: + - name: Husleie + description: Hver rad er ett rom for én måned, med beløp og betalingsdato; merk den betalt eller purret. + resource: + source: + kind: kv + bucket: husleie + requires_group: aksjonaerer + transitions: [] +- name: Se det som er bra, mangler og planlagt + description: Én liste over tilstanden i huset, med pris og tid på det som står igjen. + action: /aksjonaerer + consequence: + - Bekreft + features: + - name: Lista + description: Hver rad er ett punkt med kostnad og tidspunkt; vedta den, publiser den eller forkast den. + resource: + source: + kind: kv + bucket: liste + requires_group: aksjonaerer + transitions: [] +- name: Godkjenn nedbetalingsplanen + description: Planen for lånet, lagt fram for alle fire aksjonærene og banken. + action: /aksjonaerer + consequence: + - Bekreft + features: + - name: Nedbetalingsplaner + description: Hver rad er en plan med lånebeløp og pengestrøm; følg den fra godkjent til innvilget hos banken. + resource: + source: + kind: kv + bucket: nedbetalingsplaner + requires_group: aksjonaerer + transitions: + - from: open + to: godkjent + label: Godkjenn planen +- name: Se overslagene fra Klingenberg Bygg + description: Beløpet Klingenberg Bygg har satt på en feil, klart til vedtak. + action: /aksjonaerer + consequence: + - Bekreft + features: + - name: Overslag + description: Hver rad er ett overslag med beløp og hva det dekker; godkjenn, avvis eller fakturer det. + resource: + source: + kind: kv + bucket: overslag + requires_group: aksjonaerer + transitions: [] +- name: Se kvartalsrapportene + description: Tallene aksjonærene og banken skal ha, kvartal for kvartal. + action: /aksjonaerer + consequence: + - Bekreft + features: + - name: Rapporter + description: Hver rad er én periode med inntekter, kostnader og saldo; send den når den er klar. + resource: + source: + kind: kv + bucket: rapporter + requires_group: aksjonaerer + transitions: [] +- name: Se sakene som er meldt til styret + description: Det en aksjonær vil ha styrets ord på, samlet på ett sted. + action: /aksjonaerer + consequence: + - Bekreft + features: + - name: Saksliste + description: Hver rad er én sak; sett den på sakslisten, vedta den eller avvis den. + resource: + source: + kind: kv + bucket: saker + requires_group: aksjonaerer + transitions: [] +- name: Be om en uke i huset + description: Reserver en periode selv, bekreftet av styret. + action: /aksjonaerer/uke + consequence: + - Søk om uke +- name: Få noe avgjort av styret + description: Meld en sak du vil ha styrets ord på. + action: /aksjonaerer/sak + consequence: + - Meld sak +- name: Inviter en ny aksjonær inn + description: De får en konto og en lenke som gjelder én gang. + action: /aksjonaerer + consequence: + - Send invitasjon + invite: + group: aksjonaerer + features: + - name: Ny aksjonær + description: Ha navn, e-post og telefon klart. + requirements: + - name: name + label: Navn + - name: phone + label: Telefon + type: tel + - name: email + label: E-post + type: email + optional: true +- name: Se hvem som er invitert + description: Status på invitasjonene som er sendt ut. + action: /aksjonaerer + consequence: + - Bekreft + features: + - name: Invitasjoner + description: Hver rad er én invitasjon; send den på nytt om lenken har gått ut, eller trekk den tilbake. + resource: + source: + kind: kv + bucket: portal_memberships + requires_group: aksjonaerer + transitions: + - from: invited + to: removed + label: Trekk tilbake + - from: active + to: removed + label: Aktiv + - from: removed + to: invited + label: Send på nytt diff --git a/questions/aksjonaerer/sak-sent.yaml b/questions/aksjonaerer/sak-sent.yaml new file mode 100644 index 0000000..e1c066d --- /dev/null +++ b/questions/aksjonaerer/sak-sent.yaml @@ -0,0 +1,5 @@ +name: Hva skjer med saken jeg nettopp sendte inn? +description: Saken er sendt til styret. Den havner på sakslisten og blir tatt opp der. +alternatives: +- name: Følg saken videre + description: Styret vurderer saken og vedtar eller avviser den. Du finner status på sakslisten. diff --git a/questions/aksjonaerer/sak.yaml b/questions/aksjonaerer/sak.yaml new file mode 100644 index 0000000..3297fae --- /dev/null +++ b/questions/aksjonaerer/sak.yaml @@ -0,0 +1,35 @@ +followup: false +name: Er det noe som bør avgjøres av styret? +description: Her melder du inn en sak du vil at styret skal ta opp og avgjøre. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Få en sak opp i styret + description: Noe som bør avgjøres, men ikke er ditt å avgjøre alene? Legg den fram, så tar styret den opp. + action: /aksjonaerer/sak-sent + consequence: + - Send saken + record_as: saker + features: + - name: Fra forslag til vedtak + description: Saken kommer inn og settes på sakslisten, blir tatt opp av styret og ender med et vedtak eller en avvisning. + icon: lucide:list + - name: Hvem som leser den + description: Styret får saken og tar stilling til den; haster det, nå dem på bl@klingenbergbygg.no. + icon: lucide:users + - name: Ny sak + requirements: + - name: tittel + label: Tittel på saken + type: text + placeholder: Fast eller flytende leie for sommeren + - name: sak + label: Hva gjelder saken + type: textarea + placeholder: Vi bør avklare om timeshare-ukene skal prises likt hele året, eller om sommeren skal koste mer. Foreslår at styret tar stilling til dette før neste sesong. + description: Skriv kort hva saken går ut på og hvorfor den bør opp. + icon: lucide:vote + encouragements: + - Styret ser den og setter den på sakslisten. diff --git a/questions/aksjonaerer/uke-sent.yaml b/questions/aksjonaerer/uke-sent.yaml new file mode 100644 index 0000000..53c15a8 --- /dev/null +++ b/questions/aksjonaerer/uke-sent.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå med ukesøknaden din? +description: Den er sendt og ligger hos styret, som avgjør om uken blir bekreftet. +alternatives: +- name: Styret ser på søknaden din + description: De bekrefter eller avslår uken. Du finner svaret i oversikten når det er klart. diff --git a/questions/aksjonaerer/uke.yaml b/questions/aksjonaerer/uke.yaml new file mode 100644 index 0000000..4a2304c --- /dev/null +++ b/questions/aksjonaerer/uke.yaml @@ -0,0 +1,40 @@ +followup: false +name: Hvilken uke vil du bruke huset? +description: Meld fra om uken du ønsker, så bekrefter styret den. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Reserver en uke i huset + description: Si fra når du vil bruke huset, så ser styret om datoene passer. + action: /aksjonaerer/uke-sent + consequence: + - Send ønske + record_as: uker + features: + - name: Veien videre + description: Styret ser på ønsket ditt og bekrefter eller avslår uken. + icon: lucide:route + - name: Hvem leser dette + description: Styret ser ønsket ditt; skriv til bl@klingenbergbygg.no om det haster. + icon: lucide:users + - name: Ukeønske + requirements: + - name: fra + label: Fra dato + type: date + placeholder: f.eks. 6. juli 2027 + - name: til + label: Til dato + type: date + placeholder: f.eks. 13. juli 2027 + - name: merknad + label: Merknad + type: textarea + optional: true + placeholder: f.eks. kommer med familie, trenger ekstra seng + description: Fyll inn datoene du ønsker huset. + icon: lucide:calendar + encouragements: + - Du hører fra styret så snart datoene er sjekket. diff --git a/questions/decide/leie-rom.yaml b/questions/decide/leie-rom.yaml new file mode 100644 index 0000000..7771d3c --- /dev/null +++ b/questions/decide/leie-rom.yaml @@ -0,0 +1,21 @@ +name: Vil du ta imot tilbudet om rom? +description: Styret har sett på søknaden din og tilbyr deg et rom. Si ja og det er ditt, si nei og det går videre til neste på lista. +alternatives: +- name: Ta imot rommet + description: Du sier ja til rommet du har fått tilbud om. Styret tar kontakt om innflytting og signering. + self_transition: + bucket: romsoknader + to: akseptert + from: + - tilbud + label: Ta imot +- name: Takk nei til rommet + description: Du sier nei til tilbudet, og rommet går videre til neste søker. + self_transition: + bucket: romsoknader + to: avslatt + from: + - open + - tilbud + - visning + label: Takk nei diff --git a/questions/forretningsplan.yaml b/questions/forretningsplan.yaml new file mode 100644 index 0000000..b54b7ca --- /dev/null +++ b/questions/forretningsplan.yaml @@ -0,0 +1,21 @@ +name: Hvordan går Gullberg rundt? +description: Forretningsplanen for Gullberg, slik eierne har lagt den fram for banken. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Huset + description: 'Utkast, skrives av eierne: hva huset er, hvor det ligger, hvor mange rom det har og i hvilken stand.' +- name: Forretningen + description: 'Utkast, skrives av eierne: de to inntektene, romleie til studenter og timeshare-uker, og hva hver av dem gir i året.' +- name: Eierne + description: 'Utkast, skrives av eierne: Gullberg AS eies av fire aksjonærer med 25 % hver. Hvem de er, hvordan styret er satt sammen, og hva som krever alle fire.' +- name: Lånet + description: 'Utkast, skrives av eierne: 1,6 millioner til å løse ut de to søsknene som ikke blir med (800 000 kr hver), og at selskapet overtar huset ved skjøte tinglyst på selskapet. Dokumentavgiften (normalt 2,5 % av verdien), rente, løpetid og sikkerhet slik banken tilbyr, og hvordan avdraget betjenes av husleia.' +- name: Budsjettet + description: 'Utkast, skrives av eierne: inntekter, drift, renter og avdrag for et normalår, og hvor rapportene står.' +- name: Det som mangler + description: 'Utkast, skrives av eierne: de største manglene ved huset, hva de koster å rette, og planen for det. Lista på siden holdes oppdatert.' +- name: Forvaltningen + description: 'Utkast, skrives av eierne: at Klingenberg Bygg forvalter huset, og hva det innebærer.' diff --git a/questions/hvem.yaml b/questions/hvem.yaml new file mode 100644 index 0000000..a3921bc --- /dev/null +++ b/questions/hvem.yaml @@ -0,0 +1,20 @@ +name: Hva er Gullberg? +description: Et gammelt hus eid av fire aksjonærer og drevet av styret, med Klingenberg Bygg som forvalter. Her er rommene som er ledige nå. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no +alternatives: +- name: Rommene som er ledige + description: Rommene som står åpne for studenter som søker om et sted å bo. + features: + - name: '' + description: '' + resource: + source: + kind: kv + bucket: rom + public: true + states: + - open + empty: Ingen rom er ledige akkurat nå, men nye kommer når noen flytter ut. + jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {tittel: .tittel, bilde: .bilde, om: .om}' diff --git a/questions/index.yaml b/questions/index.yaml new file mode 100644 index 0000000..a2ae51d --- /dev/null +++ b/questions/index.yaml @@ -0,0 +1,81 @@ +name: Trenger du et rimelig rom å bo i mens du studerer? +description: Gullberg er et gammelt hus med rom til studenter. Eierne driver det selv, og Klingenberg Bygg forvalter huset og vedlikeholdet. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Et rimelig sted å bo for studenter + description: Gullberg har rom til leie gjennom studieåret, til en pris som går opp med studielånet. + features: + - name: Rom til leie gjennom hele studieåret + description: Du leier et rom i huset så lenge studieåret varer, til en husleie satt for studenter. + icon: lucide:house +- name: Hva er Gullberg? + description: Fire aksjonærer eier huset sammen og driver det selv, med Klingenberg Bygg som forvalter. + action: /hvem + consequence: + - Se huset og rommene +- name: Hva som er gjort, og hva som mangler + description: 'Det styret har vedtatt for huset: planene, med pris og tid der det er kjent.' + features: + - name: Siste fra lista + description: Punktene styret har tatt stilling til, ferskest øverst. [Se hele lista](/status/liste) + icon: lucide:clipboard-list + resource: + source: + kind: kv + bucket: liste + public: true + states: + - publisert + empty: Snart kommer de første punktene på lista. + jq: 'sort_by(.submitted_ms) | reverse | .[:3] | .[] | .responses |= {tittel: .tittel, slag: .slag, beskrivelse: .beskrivelse, kostnad: .kostnad, naar: .naar}' + link: + to: /status/liste/{id} + label: Svar +- name: Søk rom for studieåret + description: Fortell oss litt om deg, så tar styret kontakt når et rom passer. + action: /received/leie-rom + consequence: + - Søk rom + record_as: romsoknader + features: + - name: Veien videre + description: Søknaden havner hos styret, som inviterer deg på visning av et ledig rom. Sier du ja til tilbudet, signerer du leieavtalen og flytter inn. + icon: lucide:route + - name: Hvem leser søknaden + description: Styret i Gullberg leser søknaden din, og du når dem i mellomtiden på bl@klingenbergbygg.no. + icon: lucide:users + - name: Søknadsskjema + requirements: + - name: name + label: Navn + type: text + placeholder: Kari Nordmann + - name: email + label: E-post + type: email + placeholder: kari@student.no + - name: telefon + label: Telefon + type: tel + placeholder: 123 45 678 + - name: studiested + label: Studiested + type: text + placeholder: NTNU + - name: innflytting + label: Ønsket innflytting + type: date + optional: true + placeholder: August 2026 + - name: om + label: Litt om deg + type: textarea + optional: true + placeholder: Jeg studerer medisin og trenger et rolig sted å bo nær campus. + description: Fyll inn det du vet nå - resten kan vente til visningen. + icon: lucide:key + encouragements: + - Det tar bare et par minutter, og du hører fra styret så snart et rom er ledig. diff --git a/questions/klingenberg/_section.yaml b/questions/klingenberg/_section.yaml new file mode 100644 index 0000000..b4c3b9e --- /dev/null +++ b/questions/klingenberg/_section.yaml @@ -0,0 +1 @@ +qualifies: klingenberg diff --git a/questions/klingenberg/index.yaml b/questions/klingenberg/index.yaml new file mode 100644 index 0000000..dda49b7 --- /dev/null +++ b/questions/klingenberg/index.yaml @@ -0,0 +1,104 @@ +name: Hva trenger huset nå? +description: Her samler Klingenberg Bygg det leietakerne melder inn, og styret ser overslagene før de godkjennes. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Se hva som er meldt inn av feil + description: Her ser du det leietakerne har meldt, fra ny melding til den er utbedret. + action: /klingenberg + consequence: + - Bekreft + features: + - name: Meldte feil + description: Hver rad er en feil som er meldt inn; knappene under flytter den videre til befaring, overslag eller utbedret. + resource: + source: + kind: kv + bucket: feil + requires_group: klingenberg + transitions: + - from: befaring + to: overslag + label: Lag overslag + - from: befaring + to: avvist + label: Avvis saken + - from: godkjent + to: utbedret + label: Meld utbedret + - from: open + to: befaring + label: Sett opp befaring + - from: open + to: avvist + label: Avvis saken + - from: overslag + to: avvist + label: Avvis overslaget +- name: Følg opp overslagene dine + description: Her ser du overslagene du har levert, og om styret har godkjent dem. + action: /klingenberg + consequence: + - Bekreft + features: + - name: Leverte overslag + description: Hver rad er et overslag du har levert; marker det fakturert når regningen er sendt. + resource: + source: + kind: kv + bucket: overslag + requires_group: klingenberg + transitions: + - from: godkjent + to: fakturert + label: Merk fakturert +- name: Se alle overslag i ett regnskap + description: Her finner du overslagene samlet, uansett hvem som har meldt feilen. + action: /klingenberg/overslag + consequence: + - Åpne overslag +- name: Gi noen hos Klingenberg Bygg tilgang + description: Personen får en konto og en lenke som gjelder én gang, så de kan logge inn og se feilene selv. + action: /klingenberg + consequence: + - Send invitasjon + invite: + group: klingenberg + features: + - name: Inviter ny person + description: Ha navn, telefon og e-post klart. + requirements: + - name: name + label: Navn + - name: phone + label: Telefon + type: tel + - name: email + label: E-post + type: email + optional: true +- name: Hold oversikt over inviterte + description: Her ser du hvem som er invitert, og om de har tatt lenken i bruk. + action: /klingenberg + consequence: + - Bekreft + features: + - name: Sendte invitasjoner + description: Hver rad er en invitasjon; send den på nytt hvis lenken har gått ut, eller trekk den tilbake. + resource: + source: + kind: kv + bucket: portal_memberships + requires_group: klingenberg + transitions: + - from: invited + to: removed + label: Trekk tilbake + - from: active + to: removed + label: Tatt i bruk + - from: removed + to: invited + label: Send på nytt diff --git a/questions/klingenberg/overslag-sent.yaml b/questions/klingenberg/overslag-sent.yaml new file mode 100644 index 0000000..769368f --- /dev/null +++ b/questions/klingenberg/overslag-sent.yaml @@ -0,0 +1,5 @@ +name: Hva skjer med overslaget du nettopp sendte inn? +description: Det ligger nå hos styret, med beløp og hva det dekker. De tar stilling til det og fører det videre i regnskapet. +alternatives: +- name: Styret vurderer overslaget + description: Du hører fra dem hvis de trenger mer, ellers venter du på svar om det blir godkjent, avvist eller fakturert. diff --git a/questions/klingenberg/overslag.yaml b/questions/klingenberg/overslag.yaml new file mode 100644 index 0000000..52e4081 --- /dev/null +++ b/questions/klingenberg/overslag.yaml @@ -0,0 +1,44 @@ +followup: false +name: Hva vil det koste å rette feilen? +description: Overslaget går til styret, som godkjenner eller avviser det før det føres i regnskapet. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Overslaget går til styret + description: Når du har sett på en feil og satt en pris, sender du overslaget hit, så styret kan ta stilling til det. + action: /klingenberg/overslag-sent + consequence: + - Send overslag + record_as: overslag + features: + - name: Veien videre + description: Styret godkjenner eller avviser overslaget. Blir det godkjent og arbeidet utført, blir det fakturert. + icon: lucide:route + - name: Hvem leser det + description: Styret i Gullberg leser overslaget og tar stilling til det, du når dem på bl@klingenbergbygg.no i mellomtiden. + icon: lucide:users + - name: Overslag på feil + requirements: + - name: gjelder + label: Hva overslaget gjelder + type: text + placeholder: Lekkasje på badet i rom 4 + - name: belop + label: Beløp + type: text + placeholder: 12 500 kr + - name: hva-det-dekker + label: Hva beløpet dekker + type: textarea + placeholder: Ny membran, fliser og arbeidstid, to dagers arbeid + - name: dokument + label: Dokument + type: file + optional: true + placeholder: overslag-rom4.pdf + description: Ha prisen og hva den dekker klart før du sender. + icon: lucide:receipt + encouragements: + - Styret ser det i løpet av kort tid, og det følger saken videre til regnskapet. diff --git a/questions/leietakere/_section.yaml b/questions/leietakere/_section.yaml new file mode 100644 index 0000000..b9ffeed --- /dev/null +++ b/questions/leietakere/_section.yaml @@ -0,0 +1 @@ +qualifies: leietakere diff --git a/questions/leietakere/feil-sent.yaml b/questions/leietakere/feil-sent.yaml new file mode 100644 index 0000000..e2613f1 --- /dev/null +++ b/questions/leietakere/feil-sent.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå med feilen jeg meldte? +description: Meldingen er sendt til Klingenberg Bygg, som drar på befaring og vurderer hva den koster å rette. +alternatives: +- name: Klingenberg Bygg ser på saken + description: De befarer feilen og lager et overslag som styret tar stilling til. diff --git a/questions/leietakere/feil.yaml b/questions/leietakere/feil.yaml new file mode 100644 index 0000000..a597a65 --- /dev/null +++ b/questions/leietakere/feil.yaml @@ -0,0 +1,51 @@ +followup: false +name: Har du funnet noe i huset som bør rettes opp? +description: Meldingen går rett til Klingenberg Bygg, som forvalter huset. De ser på det, og styret godkjenner det som koster penger. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Meld fra om noe som er galt i huset + description: Fant du noe som ikke virker eller er ødelagt? Si fra, så ser styret på det. + action: /leietakere/feil-sent + consequence: + - Send feilen + record_as: feil + features: + - name: Hva skjer videre + description: Styret ser på feilen og avtaler en befaring. Deretter henter de inn et overslag, godkjenner det, og feilen rettes opp – eller avvises, med beskjed om hvorfor. + icon: lucide:route + - name: Hvem leser dette + description: Styret i Gullberg får meldingen og følger den opp; haster det, send en e-post til bl@klingenbergbygg.no. + icon: lucide:users + - name: Meld en feil + requirements: + - name: hva + label: Hva er galt + type: text + placeholder: Vannlekkasje under kjøkkenvasken + - name: hvor + label: Hvor i huset + type: text + optional: true + placeholder: Kjøkkenet i 2. etasje + - name: beskrivelse + label: Beskriv feilen + type: textarea + placeholder: Det drypper fra røret under vasken, har blitt verre siste uken + - name: email + label: E-post + type: email + placeholder: navn@student.no + value: '{user.email}' + - name: bilde + label: Bilde + type: file + accept: image/jpeg,image/png,image/webp + optional: true + placeholder: Last opp et bilde av feilen + description: Fortell hva som er galt og hvor, gjerne med bilde. + icon: lucide:wrench + encouragements: + - Tar et par minutter, og styret får beskjed med én gang. diff --git a/questions/leietakere/index.yaml b/questions/leietakere/index.yaml new file mode 100644 index 0000000..fac74eb --- /dev/null +++ b/questions/leietakere/index.yaml @@ -0,0 +1,29 @@ +name: Hva kan vi gjøre for deg i huset? +description: Feil leietakerne melder inn, og overslagene Klingenberg Bygg sender over, samlet på ett sted. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Feil + description: Sent in by en leietaker som har funnet noe som er galt i huset. + action: /leietakere + consequence: + - Bekreft + features: + - name: Feil + description: Hver rad er én av dine egne saker og hvor langt den har kommet. + resource: + source: + kind: kv + bucket: feil + requires_group: leietakere + transitions: [] + where: + field: email + equals: '{user.email}' +- name: Har du funnet noe som er galt i huset? + description: Meld fra, så går det rett til Klingenberg Bygg. + action: /leietakere/feil + consequence: + - Meld fra diff --git a/questions/received/leie-rom.yaml b/questions/received/leie-rom.yaml new file mode 100644 index 0000000..36e09a9 --- /dev/null +++ b/questions/received/leie-rom.yaml @@ -0,0 +1,5 @@ +name: Hva skjer med søknaden min nå? +description: Styret går gjennom romsøknader fortløpende og svarer så snart det er en visning å tilby. +alternatives: +- name: Du hører fra styret om en visning + description: Styret tar kontakt på e-post eller telefon for å avtale tid. Får du tilbud om rommet, får du beskjed rett etter. diff --git a/questions/status/liste/index.yaml b/questions/status/liste/index.yaml new file mode 100644 index 0000000..59b2ce3 --- /dev/null +++ b/questions/status/liste/index.yaml @@ -0,0 +1,24 @@ +name: Hva er vedtatt og gjort for huset? +description: Her ligger det som styret har vedtatt og satt i verk, med pris og tid der det er kjent. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Det som er vedtatt og gjort + description: Åpen liste over det styret har vedtatt for huset. + features: + - name: Vedtatt og gjort + description: Hver rad er én sak, med hva den gjelder, kostnad og tidspunkt der det er satt. + resource: + source: + kind: kv + bucket: liste + public: true + states: + - publisert + empty: Ingen saker er publisert ennå. + jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {tittel: .tittel, slag: .slag, beskrivelse: .beskrivelse, kostnad: .kostnad, naar: .naar}' + link: + to: /status/liste/{id} + label: Svar diff --git a/questions/status/rom/index.yaml b/questions/status/rom/index.yaml new file mode 100644 index 0000000..873d008 --- /dev/null +++ b/questions/status/rom/index.yaml @@ -0,0 +1,24 @@ +name: Hvilke rom er ledige nå? +description: Her finner du rommene som er ledige for innflytting, med bilde og en kort beskrivelse av hvert rom. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Ledige rom i huset + description: Rommene som er ledige akkurat nå. + features: + - name: Ledige rom + description: Hver rad er et rom du kan søke på. + resource: + source: + kind: kv + bucket: rom + public: true + states: + - open + empty: Ingen rom er ledige akkurat nå, men se gjerne innom igjen senere. + jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {tittel: .tittel, bilde: .bilde, om: .om}' + link: + to: /status/rom/{id} + label: Svar diff --git a/questions/styret/_section.yaml b/questions/styret/_section.yaml new file mode 100644 index 0000000..5a34160 --- /dev/null +++ b/questions/styret/_section.yaml @@ -0,0 +1 @@ +qualifies: styret diff --git a/questions/styret/eierskifte-sent.yaml b/questions/styret/eierskifte-sent.yaml new file mode 100644 index 0000000..7d07199 --- /dev/null +++ b/questions/styret/eierskifte-sent.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå med eierskiftesaken du sendte inn? +description: Steget er registrert og legger seg på listen over eierskiftet. Aksjonærene ser det neste gang de ser på fremdriften. +alternatives: +- name: Følg eierskiftet videre + description: Du finner status og alle steg i oversikten over eierskiftet, og kan legge inn mer når noe nytt skjer. diff --git a/questions/styret/eierskifte.yaml b/questions/styret/eierskifte.yaml new file mode 100644 index 0000000..81c57ea --- /dev/null +++ b/questions/styret/eierskifte.yaml @@ -0,0 +1,49 @@ +followup: false +name: Hvor langt har eierskiftet kommet? +description: Her legger styret inn stegene i overgangen til selskapet, så aksjonærene kan følge med. Banken får det den skal ha fra styret. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Se hvor eierskiftet står + description: Meld fra om neste steg i overgangen til selskapet, så ser aksjonærene og banken fremgangen. + action: /styret/eierskifte-sent + consequence: + - Legg inn steg + record_as: eierskifte + features: + - name: Fra melding til ferdig + description: Steget legges inn, så arbeides det med, og til slutt merkes det som ferdig. + icon: lucide:route + - name: Hvem leser det + description: Styret følger eierskiftet her; ring styret i mellomtiden hvis noe ikke kan vente. + icon: lucide:users + - name: Nytt steg i eierskiftet + requirements: + - name: steg + label: Hva er gjort + type: select + options: + - Selskapet stiftet + - Takst + - Lånet innvilget + - Aksjonæravtale signert + - Skjøte signert + - Skjøte tinglyst + - Dokumentavgift betalt + - Søsknene utbetalt + - name: merknad + label: Merknad + type: textarea + optional: true + placeholder: Megler venter på signatur fra den siste selgeren + - name: dokument + label: Dokument + type: file + optional: true + placeholder: skjote-gullberg.pdf + description: Skriv hva som er gjort, og legg ved dokumentet hvis det finnes et. + icon: lucide:file-text + encouragements: + - Tar et minutt, og listen oppdateres med én gang. diff --git a/questions/styret/husleie-sent.yaml b/questions/styret/husleie-sent.yaml new file mode 100644 index 0000000..39c679b --- /dev/null +++ b/questions/styret/husleie-sent.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå med husleia jeg registrerte? +description: Betalingen er lagt inn og synlig for resten av styret, sammen med de andre rommenes status denne måneden. +alternatives: +- name: Følg med i husleielista + description: Der ser dere hvilke rom som har betalt og hva som er purret på. diff --git a/questions/styret/husleie.yaml b/questions/styret/husleie.yaml new file mode 100644 index 0000000..31fdd26 --- /dev/null +++ b/questions/styret/husleie.yaml @@ -0,0 +1,44 @@ +followup: false +name: Hvilke rom har betalt husleie denne måneden? +description: Her ser styret hvilke rom som har betalt husleia og hva som har gått til banken. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Husleia for måneden, samlet ett sted + description: Legg inn hva som er betalt per rom, så aksjonærene ser det og banken får sitt. + action: /styret/husleie-sent + consequence: + - Registrer husleie + record_as: husleie + features: + - name: Hva som skjer videre + description: Du registrerer at husleia er betalt. Hvis et rom ikke har betalt, markeres det som purret til det kommer inn. + icon: lucide:refresh-cw + - name: Hvem som ser dette + description: Styret ser oversikten; har du spørsmål underveis, ta kontakt med styret på bl@klingenbergbygg.no. + icon: lucide:users + - name: Registrer husleie + requirements: + - name: rom + label: Hvilket rom + type: text + placeholder: Rom 2 + - name: maaned + label: Hvilken måned + type: text + placeholder: Oktober 2026 + - name: belop + label: Beløp + type: text + placeholder: '4500' + - name: betalt-dato + label: Betalt dato + type: date + optional: true + placeholder: 2026-10-05 + description: Ha rom, måned og beløp klart. + icon: lucide:banknote + encouragements: + - Det tar et minutt per rom. diff --git a/questions/styret/index.yaml b/questions/styret/index.yaml new file mode 100644 index 0000000..50987ba --- /dev/null +++ b/questions/styret/index.yaml @@ -0,0 +1,419 @@ +name: Hva trenger styret å gjøre nå? +description: 'Her samler styret alt som skjer i huset: søknader, feil, økonomi og eierskiftet, med knappene som flytter hver sak videre.' +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Se hvor langt eierskiftet har kommet + description: Følg stegene når huset går over til selskapet, med dokumentene på plass for aksjonærer og bank. + action: /styret + consequence: + - Bekreft + features: + - name: Steg i eierskiftet + description: Hver rad er ett steg i overgangen, med merknad og dokument; knappen under flytter steget videre. + resource: + source: + kind: kv + bucket: eierskifte + requires_group: styret + transitions: + - from: arbeid + to: ferdig + label: Merk steget ferdig + - from: open + to: arbeid + label: Start arbeidet +- name: Følg opp feil som er meldt inn + description: Se hva leietakerne har funnet galt i huset, og send det videre til Klingenberg Bygg for befaring og overslag. + action: /styret + consequence: + - Bekreft + features: + - name: Meldte feil + description: Hver rad er en feil meldt av en leietaker, med bilde og beskrivelse; knappene under sender den videre eller avviser den. + resource: + source: + kind: kv + bucket: feil + requires_group: styret + transitions: + - from: befaring + to: avvist + label: Avvis feilen + - from: open + to: avvist + label: Avvis feilen + - from: overslag + to: godkjent + label: Godkjenn overslaget + - from: overslag + to: avvist + label: Avvis overslaget +- name: Hold oversikt over husleia hver måned + description: Se hvilke rom som har betalt, og purr dem som ikke har gjort det. + action: /styret + consequence: + - Bekreft + features: + - name: Husleie per rom + description: Hver rad er husleia for ett rom én måned, med beløp og betalingsdato; knappene under merker betalt eller sender purring. + resource: + source: + kind: kv + bucket: husleie + requires_group: styret + transitions: + - from: open + to: betalt + label: Merk som betalt + - from: open + to: purret + label: Send purring + - from: purret + to: betalt + label: Merk som betalt +- name: Styr lista over det som er bra, mangler og er planlagt + description: Vedta punktene, sett pris og tid, og publiser dem som leietakerne skal se. + action: /styret + consequence: + - Bekreft + features: + - name: Punkter på lista + description: Hver rad er ett punkt med slag, beskrivelse, kostnad og tid; knappene under vedtar, publiserer eller forkaster det. + resource: + source: + kind: kv + bucket: liste + requires_group: styret + transitions: + - from: open + to: vedtatt + label: Vedta punktet + - from: open + to: forkastet + label: Forkast punktet + - from: vedtatt + to: publisert + label: Publiser punktet + - from: vedtatt + to: forkastet + label: Forkast punktet +- name: Følg nedbetalingsplanen fra aksjonærene til banken + description: Følg planen fra forslag til bankens svar, med pengestrømmen alle fire aksjonærene står bak. + action: /styret + consequence: + - Bekreft + features: + - name: Nedbetalingsplaner + description: Hver rad er en plan med lånebeløp, avdrag og pengestrøm; knappene under sender den til banken eller merker svaret. + resource: + source: + kind: kv + bucket: nedbetalingsplaner + requires_group: styret + transitions: + - from: godkjent + to: sendt + label: Send til banken + - from: sendt + to: endringer + label: Be om endringer + - from: sendt + to: innvilget + label: Merk som innvilget +- name: Ta stilling til overslag fra Klingenberg Bygg + description: Se beløpet for hver feil som er sett på, og godkjenn det som skal inn i regnskapet. + action: /styret + consequence: + - Bekreft + features: + - name: Overslag + description: Hver rad er et overslag med beløp og hva det dekker; knappene under godkjenner eller avviser det. + resource: + source: + kind: kv + bucket: overslag + requires_group: styret + transitions: + - from: open + to: godkjent + label: Godkjenn overslaget + - from: open + to: avvist + label: Avvis overslaget +- name: Send kvartalsrapporten til aksjonærene og banken + description: Samle tallene for kvartalet, og send rapporten videre når den er klar. + action: /styret + consequence: + - Bekreft + features: + - name: Kvartalsrapporter + description: Hver rad er rapporten for ett kvartal, med leieinntekter, kostnader og saldo; knappen under sender den. + resource: + source: + kind: kv + bucket: rapporter + requires_group: styret + transitions: + - from: open + to: sendt + label: Send rapporten +- name: Vis ledige rom frem til studentene + description: Legg ut rommet som er blitt ledig, og merk det utleid når noen har flyttet inn. + action: /styret + consequence: + - Bekreft + features: + - name: Rom + description: Hver rad er et rom med bilde og beskrivelse; knappen under merker det utleid. + resource: + source: + kind: kv + bucket: rom + requires_group: styret + transitions: + - from: open + to: utleid + label: Merk som utleid +- name: Følg opp søknader om rom fra studenter + description: Se hvem som har søkt, sett opp visning, og før søknaden frem til signert leieavtale. + action: /styret + consequence: + - Bekreft + features: + - name: Søknader om rom + description: Hver rad er en søknad fra en student, med studiested og ønsket innflytting; knappene under fører den videre eller avslår den. + resource: + source: + kind: kv + bucket: romsoknader + requires_group: styret + transitions: + - from: akseptert + to: signert + label: Merk som signert + - from: open + to: visning + label: Sett opp visning + - from: open + to: avslatt + label: Avslå søknaden + - from: tilbud + to: avslatt + label: Avslå søknaden + - from: visning + to: tilbud + label: Gi tilbud om rom + - from: visning + to: avslatt + label: Avslå søknaden +- name: Saker aksjonærene har meldt + description: Ta saker aksjonærene melder inn, sett dem på sakslisten, og vedta eller avvis dem. + action: /styret + consequence: + - Bekreft + features: + - name: Saker + description: Hver rad er en sak meldt inn av en aksjonær, med tittel og beskrivelse; knappene under setter den på sakslisten, vedtar eller avviser den. + resource: + source: + kind: kv + bucket: saker + requires_group: styret + transitions: + - from: open + to: sakslisten + label: Sett på sakslisten + - from: open + to: avvist + label: Avvis saken + - from: sakslisten + to: vedtatt + label: Vedta saken + - from: sakslisten + to: avvist + label: Avvis saken +- name: Bekreft ukene aksjonærene vil bruke huset + description: Se hvem som har meldt seg på en uke, og bekreft eller avslå den. + action: /styret + consequence: + - Bekreft + features: + - name: Ønskede uker + description: Hver rad er en uke en aksjonær har meldt seg på, med datoer og merknad; knappene under bekrefter eller avslår den. + resource: + source: + kind: kv + bucket: uker + requires_group: styret + transitions: + - from: open + to: bekreftet + label: Bekreft uken + - from: open + to: avslatt + label: Avslå uken +- name: Legg ut et rom som er blitt ledig + description: Skriv tittel, legg ved bilde og beskriv rommet, så studentene kan søke. + action: /styret/ledig-rom + consequence: + - Legg ut rom +- name: Legg til et nytt punkt på lista + description: Skriv hva som er bra, mangler eller planlagt, med pris og tid om du har det. + action: /styret/liste + consequence: + - Legg til punkt +- name: Lag kvartalets rapport + description: Fyll inn tallene for kvartalet, så aksjonærene og banken får det de skal ha. + action: /styret/rapport + consequence: + - Lag rapport +- name: Lag en ny nedbetalingsplan + description: Skriv lånebeløp, avdrag og pengestrøm, så banken har noe å ta stilling til. + action: /styret/nedbetalingsplan + consequence: + - Lag plan +- name: Registrer husleie for et rom + description: Før inn beløp og måned når husleia for et rom er kommet inn. + action: /styret/husleie + consequence: + - Registrer husleie +- name: Legg til et steg i eierskiftet + description: Beskriv steget og legg ved dokument, så aksjonærene ser fremgangen. + action: /styret/eierskifte + consequence: + - Legg til steg +- name: Gi en aksjonær tilgang til sin side + description: Send en invitasjon så aksjonæren får konto og engangslenke. + action: /styret + consequence: + - Send invitasjon + invite: + group: aksjonaerer + features: + - name: Inviter aksjonær + description: Ha navn, e-post og telefon klart. + requirements: + - name: name + label: Navn + - name: phone + label: Telefon + type: tel + - name: email + label: E-post + type: email + optional: true +- name: Gi Klingenberg Bygg tilgang til feilmeldinger + description: Send en invitasjon så de får konto og engangslenke. + action: /styret + consequence: + - Send invitasjon + invite: + group: klingenberg + features: + - name: Inviter Klingenberg Bygg + description: Ha navn, e-post og telefon klart. + requirements: + - name: name + label: Navn + - name: phone + label: Telefon + type: tel + - name: email + label: E-post + type: email + optional: true +- name: Gi en leietaker tilgang til sin side + description: Send en invitasjon så leietakeren får konto og engangslenke. + action: /styret + consequence: + - Send invitasjon + invite: + group: leietakere + features: + - name: Inviter leietaker + description: Ha navn, e-post og telefon klart. + requirements: + - name: name + label: Navn + - name: phone + label: Telefon + type: tel + - name: email + label: E-post + type: email + optional: true +- name: Gi et styremedlem tilgang til desken + description: Send en invitasjon så styremedlemmet får konto og engangslenke. + action: /styret + consequence: + - Send invitasjon + invite: + group: styret + features: + - name: Inviter styremedlem + description: Ha navn, e-post og telefon klart. + requirements: + - name: name + label: Navn + - name: phone + label: Telefon + type: tel + - name: email + label: E-post + type: email + optional: true +- name: Se hvem som er invitert og hvor langt de har kommet + description: Følg med på invitasjoner som er sendt, og send en ny lenke om den gamle har løpt ut. + action: /styret + consequence: + - Bekreft + features: + - name: Sendte invitasjoner + description: Hver rad er en invitasjon sendt til en person; knappene under trekker den tilbake eller sender den på nytt. + resource: + source: + kind: kv + bucket: portal_memberships + requires_group: styret + transitions: + - from: invited + to: removed + label: Trekk tilbake + - from: active + to: removed + label: Tatt i bruk + - from: removed + to: invited + label: Send på nytt +- name: Ta stilling til foreslåtte endringer + description: Se hva andre har foreslått å endre på sidene de har ansvar for. + action: /styret + consequence: + - Bekreft + features: + - name: Foreslåtte endringer + description: Hver rad er en foreslått endring; knappene under tar den til vurdering, godtar eller avslår den. + resource: + source: + kind: kv + bucket: portal_edit_suggestions + requires_group: styret + transitions: + - from: open + to: discussed + label: Tar en titt + - from: open + to: done + label: Endret + - from: open + to: declined + label: Avslått + - from: discussed + to: done + label: Endret + - from: discussed + to: declined + label: Avslått diff --git a/questions/styret/ledig-rom-sent.yaml b/questions/styret/ledig-rom-sent.yaml new file mode 100644 index 0000000..142c96a --- /dev/null +++ b/questions/styret/ledig-rom-sent.yaml @@ -0,0 +1,10 @@ +name: Hva skjer med rommet du nettopp la ut? +description: Rommet er lagt inn og synlig for studenter som søker. Dere ser det under ledige rom til det er leid ut. +alternatives: +- name: Studenter kan søke på rommet nå + description: Søknader kommer inn etter hvert, og dere i styret ser dem sammen med de andre søknadene. +- name: Se alle rommene og status + description: Full oversikt over hvilke rom som er ledige og hvilke som er leid ut. + action: /status/rom + consequence: + - Se rommene diff --git a/questions/styret/ledig-rom.yaml b/questions/styret/ledig-rom.yaml new file mode 100644 index 0000000..52befd1 --- /dev/null +++ b/questions/styret/ledig-rom.yaml @@ -0,0 +1,39 @@ +followup: false +name: Hvilket rom er ledig nå? +description: Legg ut et rom som har blitt ledig, så studenter kan se det og søke. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Meld inn et rom som er ledig + description: Når et rom står tomt, legger du det ut her, så ser studenter det før de søker. + action: /styret/ledig-rom-sent + consequence: + - Legg ut rommet + record_as: rom + features: + - name: Fra ledig til utleid + description: Rommet ligger ute til det er utleid. + icon: lucide:key + - name: Hvem ser dette + description: Studenter som søker rom ser dette, og styret kan nås på bl@klingenbergbygg.no i mellomtiden. + icon: lucide:users + - name: Om rommet + requirements: + - name: tittel + label: Tittel på rommet + type: text + placeholder: Rom i 2. etasje, mot gata + - name: bilde + label: Bilde av rommet + type: file + accept: image/jpeg,image/png,image/webp + - name: om + label: Om rommet + type: textarea + placeholder: Lyst rom med eget bad, nær kjøkken og felles stue. + description: Et bilde og en kort beskrivelse er nok til at studenter kan se seg om. + icon: lucide:key + encouragements: + - Så snart det er lagt ut, kan studenter melde seg på. diff --git a/questions/styret/liste-sent.yaml b/questions/styret/liste-sent.yaml new file mode 100644 index 0000000..8276a40 --- /dev/null +++ b/questions/styret/liste-sent.yaml @@ -0,0 +1,10 @@ +name: Hva skjer med punktet nå? +description: Forslaget ditt er lagret. Styret tar det opp til behandling. +alternatives: +- name: Styret vedtar eller forkaster punktet + description: Det blir stående til styret har tatt stilling, med pris og tid synlig for alle. +- name: Se hele lista + description: Alt som er meldt inn, vedtatt eller publisert ligger samlet. + action: /status/liste + consequence: + - Til lista diff --git a/questions/styret/liste.yaml b/questions/styret/liste.yaml new file mode 100644 index 0000000..f6bb614 --- /dev/null +++ b/questions/styret/liste.yaml @@ -0,0 +1,52 @@ +followup: false +name: Hva bør med på listen over huset og driften? +description: Punktene går inn på listen styret fører over det som er bra, det som mangler og det som er planlagt. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Listen over huset og planene + description: Legg til det som er bra, det som mangler og det som er planlagt, med pris og tid der dere vet det. + action: /styret/liste-sent + consequence: + - Legg til punkt + record_as: liste + features: + - name: Fra forslag til vedtak + description: Punktet legges inn, styret tar stilling til det og vedtar eller forkaster, og det som vedtas blir publisert på listen alle ser. + icon: lucide:check-circle + - name: Hvem ser listen + description: Styret fører og vedtar listen; ta kontakt på bl@klingenbergbygg.no om noe haster. + icon: lucide:users + - name: Nytt punkt på listen + requirements: + - name: tittel + label: Tittel + type: text + placeholder: Nytt kjøkken i andre etasje + - name: slag + label: Hva slags punkt + type: select + options: + - Kvalitet + - Mangel + - Plan + - name: beskrivelse + label: Beskrivelse + type: textarea + placeholder: Kjøkkenet er slitt og trenger nye hvitevarer og benkeplate. + - name: kostnad + label: Kostnad + type: text + optional: true + placeholder: ca. 45 000 kr + - name: naar + label: Når + type: text + optional: true + placeholder: Våren 2027 + description: Skriv kort hva det gjelder, og ta med pris og tid hvis dere har tall. + icon: lucide:list + encouragements: + - Det havner på listen med en gang, og dere kan vedta det senere. diff --git a/questions/styret/nedbetalingsplan-sent.yaml b/questions/styret/nedbetalingsplan-sent.yaml new file mode 100644 index 0000000..d86579c --- /dev/null +++ b/questions/styret/nedbetalingsplan-sent.yaml @@ -0,0 +1,5 @@ +name: Hvor er nedbetalingsplanen nå? +description: Den ligger nå hos aksjonærene. Når alle fire har godkjent den, sender styret den til banken og fører inn svaret. +alternatives: +- name: Følg svaret fra banken + description: Når banken svarer, oppdaterer dere planen med godkjent, innvilget eller endringer – så de andre aksjonærene ser hvor den står. diff --git a/questions/styret/nedbetalingsplan.yaml b/questions/styret/nedbetalingsplan.yaml new file mode 100644 index 0000000..9cb5f3f --- /dev/null +++ b/questions/styret/nedbetalingsplan.yaml @@ -0,0 +1,52 @@ +followup: false +name: Hvordan skal lånet betales ned, og står alle fire bak det? +description: Planen går til aksjonærene og banken, og viser hvordan lånet skal betales ned. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Nedbetalingsplanen alle fire står bak + description: Legg fram planen for lånet, så banken og aksjonærene vet hvordan det skal betales ned. + action: /styret/nedbetalingsplan-sent + consequence: + - Send plan + record_as: nedbetalingsplaner + features: + - name: Veien videre + description: Planen går til godkjenning hos aksjonærene, så sendes den til banken. Sier banken ja, er den innvilget; ber den om endringer, kommer det en ny runde. + icon: lucide:route + - name: Hvem ser den + description: Styret og aksjonærene ser planen; spørsmål før den er sendt går til styret på bl@klingenbergbygg.no. + icon: lucide:users + - name: Nedbetalingsplan + requirements: + - name: tittel + label: Tittel + type: text + placeholder: Nedbetalingsplan 2026 + - name: laanebelop + label: Lånebeløp + type: text + placeholder: 2 400 000 kr + - name: maanedlig-avdrag + label: Månedlig avdrag + type: text + placeholder: 18 000 kr + - name: forste-trekk + label: Første trekk + type: date + placeholder: 1. desember 2026 + - name: pengestrom + label: Hvordan pengene flyter + type: textarea + placeholder: Husleie dekker avdraget, timeshare går til vedlikehold, overskudd settes av til buffer + - name: dokument + label: Dokument + type: file + optional: true + placeholder: Last opp plan eller avtaleutkast + description: Ha lånebeløp, avdrag og når det første trekket kommer, klart. + icon: lucide:banknote + encouragements: + - Styret tar den videre til banken så snart alle fire har sagt ja. diff --git a/questions/styret/rapport-sent.yaml b/questions/styret/rapport-sent.yaml new file mode 100644 index 0000000..a6a92ed --- /dev/null +++ b/questions/styret/rapport-sent.yaml @@ -0,0 +1,5 @@ +name: Hvor går rapporten nå? +description: Den er sendt. Aksjonærene får tallene, og det som skal til banken går dit. +alternatives: +- name: Neste rapport venter til kvartalet er omme + description: Neste rapport legger styret inn når kvartalet er omme. diff --git a/questions/styret/rapport.yaml b/questions/styret/rapport.yaml new file mode 100644 index 0000000..5a82d79 --- /dev/null +++ b/questions/styret/rapport.yaml @@ -0,0 +1,60 @@ +followup: false +name: Hvordan gikk kvartalet, i tall? +description: Rapporten går til aksjonærene og banken, så de ser inntekter, kostnader og saldo for kvartalet. +responsible: + name: Styret i Gullberg + contact: bl@klingenbergbygg.no + group: styret +alternatives: +- name: Rapporten som viser hvordan det går + description: Hvert kvartal legger styret inn tallene, så aksjonærene ser status og banken får det den skal ha. + action: /styret/rapport-sent + consequence: + - Send rapport + record_as: rapporter + features: + - name: Hva skjer videre + description: Rapporten sendes til aksjonærene og banken. Når den er ute, merkes den som sendt. + icon: lucide:send + - name: Hvem leser den + description: Styret står for rapportene; har du spørsmål underveis, ta kontakt på bl@klingenbergbygg.no. + icon: lucide:users + - name: Kvartalets tall + requirements: + - name: periode + label: Hvilket kvartal gjelder dette + type: text + placeholder: 3. kvartal 2026 + - name: leieinntekter + label: Leieinntekter + type: text + placeholder: 54 000 + - name: timeshare + label: Inntekter fra ukene + type: text + placeholder: 12 000 + - name: driftskostnader + label: Driftskostnader + type: text + placeholder: 18 500 + - name: renter-og-avdrag + label: Renter og avdrag til banken + type: text + placeholder: 22 000 + - name: saldo + label: Saldo ved kvartalets slutt + type: text + placeholder: 145 000 + - name: kommentar + label: Kommentar til tallene + type: textarea + placeholder: Ett rom stod tomt i juli, ellers som normalt + - name: dokument + label: Regnskapsdokument + type: file + optional: true + placeholder: kvartalsregnskap-q3-2026.pdf + description: Ha regnskapstallene for kvartalet klare før du fyller ut. + icon: lucide:file-text + encouragements: + - Så snart den er sendt, ligger den klar for aksjonærene og banken. diff --git a/site.yaml b/site.yaml new file mode 100644 index 0000000..3ec5762 --- /dev/null +++ b/site.yaml @@ -0,0 +1,22 @@ +title: GULLBERG sanatorium +wordmark: /site/images/wordmark.svg +wordmark_height: 3.2 +stylesheet: custom.css +favicon: images/favicon.svg +lang: no +mail: + from: Gullberg + reply_to: bl@klingenbergbygg.no + invite: + subject: Du er invitert til Gullberg + body: |- + Hei {name}, + + Du er invitert inn på Gullberg sin side, som {group}. + + Velg passord her før {expires}: + {link} + + Brukernavnet ditt er {username}. Etterpå logger du inn på {site}. + + Hilsen styret i Gullberg