diff --git a/plans/assets/gullberg-wordmark.svg b/plans/assets/gullberg-wordmark.svg new file mode 100644 index 0000000..90755de --- /dev/null +++ b/plans/assets/gullberg-wordmark.svg @@ -0,0 +1,26 @@ + + GULLBERG sanatorium + + + + + diff --git a/plans/documents/gullberg-aksjonaeravtale-punkter.md b/plans/documents/gullberg-aksjonaeravtale-punkter.md new file mode 100644 index 0000000..a7409bb --- /dev/null +++ b/plans/documents/gullberg-aksjonaeravtale-punkter.md @@ -0,0 +1,61 @@ +# Aksjonæravtalen for Gullberg AS: punkter å dekke + +Ikke en avtale, og ikke på siden. En liste over det aksjonæravtalen bør +svare på, til samtale mellom de fire og med advokat eller regnskapsfører. +Lånet går over lang tid (rundt 100 000 kr i året mot 1,6 millioner), så +avtalen må tåle at livene til de fire endrer seg underveis. + +## Eierskapet + +- Hvem de fire aksjonærene er, med 25 % hver, og hva hver har skutt inn. +- Hvordan huset går fra dødsboet til selskapet: skjøte, takst som legges + til grunn, og hvem som betaler dokumentavgiften. +- Hva søsknene som løses ut får, når, og at de ikke har noe krav etterpå. + +## Lånet + +- Hvem som står for lånet overfor banken, og om noen har kausjonert + personlig. Hvis bare noen kausjonerer: hvordan de holdes skadesløse av + de andre. +- Hva som skjer hvis husleia ikke dekker avdraget en måned, eller et + halvår: hvem skyter inn, i hvilket forhold, og som lån eller kapital. +- Hva som skjer hvis renta stiger mye. + +## Driften + +- Hva styret avgjør alene, og hva som krever alle fire (nye lån, salg av + huset, store utbedringer over et beløp, endring av husleia, ny eier). +- Hva som skjer ved stemmelikhet, to mot to: hvem eller hva som bryter. +- Klingenberg Bygg som forvalter, og som den som gir overslag og gjør + arbeidet: hvordan overslag godkjennes, og hvordan en mulig + interessekonflikt håndteres. +- Et vedlikeholdsfond: hvor mye av overskuddet som settes av før noe + deles ut. + +## Bruken av huset + +- Hvordan sommerukene fordeles mellom de fire, hvem som velger først, og + hva som skjer med uker ingen bruker. +- Om uker kan leies ut til andre, og hvem som får inntekten. +- Hva aksjonærene betaler for egne uker, om noe. + +## Når noe endrer seg + +- En aksjonær vil selge: forkjøpsrett for de andre, hvordan prisen + fastsettes (takst, formel), og hvor lang tid de andre har. +- En aksjonær dør eller skiller seg: om aksjene går til arvinger eller + ektefelle, eller om de andre kan løse dem ut. +- En aksjonær klarer ikke sin del: hva som skjer med andelen. +- Huset skal selges: hvordan, og hvordan pengene fordeles etter lånet. +- Brann, stor skade, eller at huset ikke kan leies ut: forsikring, og + hva som skjer med lånet. + +## Utbytte og innsyn + +- Når det deles ut utbytte, og i hvilken rekkefølge (lån, fond, utbytte). +- Hva hver aksjonær har rett til å se (rapportene på siden, regnskapet). + +## Tvister og varighet + +- Hvordan uenighet løses før noen går til retten (mekling). +- Når avtalen tas opp igjen, for eksempel hvert femte år. diff --git a/plans/documents/gullberg-forretningsplan.md b/plans/documents/gullberg-forretningsplan.md new file mode 100644 index 0000000..ec6791f --- /dev/null +++ b/plans/documents/gullberg-forretningsplan.md @@ -0,0 +1,27 @@ +# Huset + +Utkast, skrives av eierne: hva huset er, hvor det ligger, hvor mange rom det har og i hvilken stand. + +# Forretningen + +Utkast, skrives av eierne: de to inntektene, romleie til studenter og timeshare-uker, og hva hver av dem gir i året. + +# Eierne + +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. + +# Lånet + +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. + +# Budsjettet + +Utkast, skrives av eierne: inntekter, drift, renter og avdrag for et normalår, og hvor rapportene står. + +# Det som mangler + +Utkast, skrives av eierne: de største manglene ved huset, hva de koster å rette, og planen for det. Lista på siden holdes oppdatert. + +# Forvaltningen + +Utkast, skrives av eierne: at Klingenberg Bygg forvalter huset, og hva det innebærer. diff --git a/plans/gullberg.yaml b/plans/gullberg.yaml new file mode 100644 index 0000000..4355dec --- /dev/null +++ b/plans/gullberg.yaml @@ -0,0 +1,327 @@ +# GULLBERG sanatorium - et Klingenberg Bygg-prosjekt på +# gullberg.klingenbergbygg.no. UTKAST 2026-09-30, til samtale; ikke +# bygget eller satt ut. +# +# Oppsettet (samtale 2026-10-01): hele huset legges i Gullberg AS, som +# eies av fire aksjonærer med 25 % hver. Selskapet låner 1,6 millioner i +# banken for å løse ut de to søsknene som ikke blir med (800 000 kr hver), +# og overtar huset (skjøte tinglyst på selskapet). Dokumentavgiften, +# normalt 2,5 % av verdien, må med i lånet eller budsjettet. Rundt +# 100 000 kr i året til banken er en lang nedbetaling: alt som kan gå +# galt underveis hører hjemme i aksjonæravtalen (se +# documents/gullberg-aksjonaeravtale-punkter.md, ikke på siden). +# +# Huset ligger bak Ås kirke, i Syverudveien (17?), et kort stykke fra +# NMBU. Rommene er for alle, men studenter går foran. +# +# Siden er huset i drift: rom til leie, feil meldt til Klingenberg +# Bygg som forvalter, styrets liste over det som er bra, mangler og er +# planlagt, husleia måned for måned, kvartalsrapporter, nedbetalingsplanen +# alle fire står bak, og eierskiftet steg for steg. Banken er ikke en egen +# gruppe på siden ennå; styret sender rapportene. +# +# Pengene: 3 soverom à 8 000 kr er 24 000 kr i måneden, rundt 264 000 i +# året over 11 måneder; sommeren er timeshare-uker. Husleia går som fast +# trekk eller AvtaleGiro til selskapets konto; Vipps eller Stripe bare for +# engangsbeløp. Depositum på egen depositumskonto (husleieloven). +# +# Åpne spørsmål: +# - hvem de fire aksjonærene er, og om nye medeiere søkes ved siden av +# lånet (medeier-tilbudet er tatt ut av forsiden til det er avgjort) +# - bankens tilbud: rente, løpetid, sikkerhet, kausjon +# - takst; hvem som sitter i styret +# - antall måneder studentene leier; timeshare bare for aksjonærene? +# - regnskapsfører/advokat: skiftet, dokumentavgift, skatt på husleie +# - kontakt og avsender (under er plassholdere) +business: GULLBERG sanatorium +language: no +# Plassholder til styret har en adresse. +contact: { name: Styret i Gullberg, email: bl@klingenbergbygg.no, group: styret } +people: memberships +mail: { from: "Gullberg ", reply_to: bl@klingenbergbygg.no } +about: > + Et gammelt hus bak Ås kirke, i Syverudveien, med rimelige rom til leie; + studenter ved NMBU går foran, men alle kan søke, + og uker om sommeren for dem som eier det. Drevet av eierne, forvaltet + av Klingenberg Bygg; det som mangler, står på lista med planen for + det, og tallene ligger åpent. + +groups: + - { id: styret, label: Styret } + - { id: aksjonaerer, label: Aksjonærer } + - { id: leietakere, label: Leietakere } + - { id: klingenberg, label: Klingenberg Bygg } +invites_by: [styret] + +does: + - id: rom + for: leie-rom + text: > + Rimelige rom bak Ås kirke, et kort stykke fra NMBU. Studenter går + foran, men alle kan søke. Du søker her, kommer på visning og sier + selv ja til tilbudet. + +# Forretningsplanen, ord for ord: ett kort per del. Skal skrives av +# eierne; filen har bare delene og hva som hører hjemme i dem. +documents: + - id: forretningsplan + question: Hvordan går Gullberg rundt? + description: Forretningsplanen for Gullberg, slik eierne har lagt den fram for banken. + file: documents/gullberg-forretningsplan.md + +needs: + # Offentlig: noen søker rom. Studenter går foran; styret ser hva den + # som søker gjør til daglig, og velger etter det. + - id: leie-rom + who: en som trenger et rimelig rom på Ås, oftest en student ved NMBU + wants: et rom å bo på til en leie som går opp, med studenter først i køen + lands_in: romsoknader + handled_by: styret + stages: [open, visning, tilbud, akseptert, signert, avslatt] + stages_text: { open: "mottatt", visning: "visning avtalt", tilbud: "tilbud sendt", akseptert: "tilbud godtatt", signert: "kontrakt signert", avslatt: "avsluttet uten leie" } + done_when: [signert, avslatt] + success: [signert] + turned_down_from: [open, visning, tilbud] + moves_by: { akseptert: [submitter], avslatt: [submitter, styret] } + mails: { open: submitter, visning: submitter, tilbud: submitter, akseptert: bl@klingenbergbygg.no, signert: submitter } + grants: { signert: leietakere } + max_fields: 4 + collects: + - { name: name } + - { name: email, type: email } + - { name: telefon, type: tel } + - { name: situasjon, type: select, options: [Student ved NMBU, Student et annet sted, Jobber eller annet] } + - { name: innflytting, type: date, optional: true } + - { name: om, type: textarea, optional: true } + + # Rommene som er ledige, som bildekort styret legger inn og tar ned. + - id: ledig-rom + who: styret, når et rom blir ledig + wants: at de som søker ser rommet før de søker + enters_as: styret + lands_in: rom + handled_by: styret + watched_by: [public] + presents: true + public_states: [open] + stages: [open, utleid] + stages_text: { open: "ledig", utleid: "leid ut" } + done_when: [utleid] + success: [utleid] + leaves_after: { utleid: { minutes: 10 } } + max_fields: 3 + collects: + - { name: tittel } + - { name: bilde, type: picture } + - { name: om, type: textarea } + + # Styrets liste: det som er bra, det som mangler, det som er planlagt. + # Aksjonærene ser alt; allmennheten bare planene styret har publisert, + # og de står som kunngjøringer. + - 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_as: styret + lands_in: liste + handled_by: styret + watched_by: [aksjonaerer, public] + public_states: [publisert] + stages: [open, vedtatt, publisert, forkastet] + stages_text: { open: "utkast", vedtatt: "vedtatt", publisert: "publisert", forkastet: "forkastet" } + done_when: [publisert, forkastet] + success: [publisert] + max_fields: 3 + collects: + - { name: tittel } + - { name: slag, type: select, options: [Kvalitet, Mangel, Plan] } + - { name: beskrivelse, type: textarea } + - { name: kostnad, optional: true } + - { name: naar, optional: true } + + # Budsjettrapporten: tallene i felt, ikke bare en PDF. Aksjonærene ser + # den her; styret sender den til banken og fører inn at den er sendt. + - 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_as: styret + lands_in: rapporter + handled_by: styret + watched_by: [aksjonaerer] + stages: [open, sendt] + stages_text: { open: "lagt fram for aksjonærene", sendt: "sendt til banken" } + done_when: [sendt] + success: [sendt] + max_fields: 7 + collects: + - { name: periode } + - { name: leieinntekter } + - { name: timeshare } + - { name: driftskostnader } + - { name: renter-og-avdrag } + - { name: saldo } + - { name: kommentar, type: textarea } + - { name: dokument, type: file, optional: true } + + # Nedbetalingsplanen: hvordan pengene går og hva banken får. Styret + # legger den fram, BEGGE aksjonærene må godkjenne før den går til + # banken, og styret fører inn bankens svar. "Alle i gruppa" finnes ikke + # i portal ennå: i dag holder det at én trykker. Ny portal-funksjon før + # dette brukes. + - 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_as: styret + lands_in: nedbetalingsplaner + handled_by: styret + watched_by: [aksjonaerer] + stages: [open, godkjent, sendt, innvilget, endringer] + stages_text: { open: "til godkjenning hos aksjonærene", godkjent: "godkjent av aksjonærene", sendt: "sendt til banken", innvilget: "innvilget av banken", endringer: "banken ber om endringer" } + reached_from: { godkjent: [open], sendt: [godkjent], innvilget: [sendt], endringer: [sendt] } + done_when: [innvilget, endringer] + success: [innvilget] + moves_by: { godkjent: [aksjonaerer], sendt: [styret], innvilget: [styret], endringer: [styret] } + max_fields: 6 + collects: + - { name: tittel } + - { name: laanebelop } + - { name: maanedlig-avdrag } + - { name: forste-trekk, type: date } + - { name: pengestrom, type: textarea } + - { name: dokument, type: file, optional: true } + + # Husleia, måned for måned: forventet mot betalt, fra kontoutskriften. + # Aksjonærene og långiveren ser hvordan det går mellom rapportene. + - 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_as: styret + lands_in: husleie + handled_by: styret + watched_by: [aksjonaerer] + stages: [open, betalt, purret] + stages_text: { open: "forventet", betalt: "betalt", purret: "purret" } + reached_from: { purret: [open], betalt: [open, purret] } + done_when: [betalt] + success: [betalt] + max_fields: 4 + collects: + - { name: rom } + - { name: maaned } + - { name: belop } + - { name: betalt-dato, type: date, optional: true } + + # Feil i huset: en leietaker melder fra, Klingenberg Bygg ser på det og + # gir et overslag, styret godkjenner kostnaden før arbeidet gjøres. + - id: feil + who: en leietaker som har funnet noe som er galt i huset + wants: at det blir sett på og rettet + enters_as: leietakere + lands_in: feil + handled_by: klingenberg + # Leietakeren ser sine egne meldinger og hvor langt de har kommet. + followed_by: [leietakere] + watched_by: [styret] + stages: [open, befaring, overslag, godkjent, utbedret, avvist] + stages_text: { open: "meldt", befaring: "befaring avtalt", overslag: "overslag gitt", godkjent: "godkjent av styret", utbedret: "utbedret", avvist: "avvist" } + reached_from: { avvist: [open, befaring, overslag] } + done_when: [utbedret, avvist] + success: [utbedret] + moves_by: { godkjent: [styret], avvist: [styret, klingenberg] } + mails: { open: fredrik@klingenbergbygg.no, overslag: bl@klingenbergbygg.no, utbedret: submitter } + max_fields: 3 + collects: + - { name: hva } + - { name: hvor, optional: true } + - { name: beskrivelse, type: textarea } + - { name: email, type: email } + - { name: bilde, type: picture, optional: true } + + # Overslaget: Klingenberg Bygg gir et beløp for å rette en feil. Styret + # og aksjonærene ser det; godkjente overslag hører med i rapporten. + - 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_as: klingenberg + lands_in: overslag + handled_by: styret + watched_by: [aksjonaerer, klingenberg] + stages: [open, godkjent, avvist, fakturert] + stages_text: { open: "til styret", godkjent: "godkjent", avvist: "avvist", fakturert: "fakturert" } + reached_from: { avvist: [open], fakturert: [godkjent] } + done_when: [fakturert, avvist] + success: [fakturert] + moves_by: { fakturert: [klingenberg] } + mails: { open: bl@klingenbergbygg.no } + max_fields: 3 + collects: + - { name: gjelder } + - { name: belop } + - { name: hva-det-dekker, type: textarea } + - { name: dokument, type: file, optional: true } + + # Eierskiftet, steg for steg: fra selskapet stiftes til søsknene er + # utbetalt. Aksjonærene og banken ser hvor langt det har kommet. + - 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_as: styret + lands_in: eierskifte + handled_by: styret + watched_by: [aksjonaerer] + stages: [open, arbeid, ferdig] + stages_text: { open: "ikke startet", arbeid: "i gang", ferdig: "ferdig" } + done_when: [ferdig] + success: [ferdig] + max_fields: 2 + collects: + - { name: steg, 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, type: textarea, optional: true } + - { name: dokument, type: file, optional: true } + + # Aksjonærene: uker i huset, og saker til styret. + - id: uke + who: en aksjonær som vil bruke huset en periode + wants: en uke i huset, bekreftet av styret + enters_as: aksjonaerer + lands_in: uker + handled_by: styret + stages: [open, bekreftet, avslatt] + stages_text: { open: "ønsket", bekreftet: "bekreftet", avslatt: "ikke ledig" } + done_when: [bekreftet, avslatt] + success: [bekreftet] + max_fields: 3 + collects: + - { name: fra, type: date } + - { name: til, type: date } + - { name: merknad, type: textarea, optional: true } + + - id: sak + who: en aksjonær som vil ha noe avgjort + wants: at styret tar saken opp og avgjør den + enters_as: aksjonaerer + lands_in: saker + handled_by: styret + watched_by: [aksjonaerer] + stages: [open, sakslisten, vedtatt, avvist] + stages_text: { open: "meldt", sakslisten: "på sakslisten", vedtatt: "vedtatt", avvist: "avvist" } + done_when: [vedtatt, avvist] + success: [vedtatt] + max_fields: 2 + collects: + - { name: tittel } + - { name: sak, type: textarea } + +personas: + - { id: student-nmbu, need: leie-rom, text: "Jeg begynner på master på NMBU til høsten og har ikke råd til hybel i Ås sentrum. Et rimelig rom i et stort hus høres perfekt ut." } + - { id: ung-arbeider, need: leie-rom, text: "Jeg har fått jobb i Ås og trenger et rimelig sted å bo. Jeg er ikke student; kan jeg søke likevel?" } + - { 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?" } diff --git a/plans/words/gullberg.json b/plans/words/gullberg.json new file mode 100644 index 0000000..f5a52f6 --- /dev/null +++ b/plans/words/gullberg.json @@ -0,0 +1,985 @@ +{ + "aggregates.yaml": { + "feil": { + "open": { + "subject": "Ny feil meldt på Gullberg: {hva}", + "body": "En leietaker på Gullberg har meldt fra om {hva}. Se meldingen og avtal befaring: {link}" + }, + "overslag": { + "subject": "Overslag til styret: {hva}", + "body": "Klingenberg Bygg har sett på {hva} og gitt et overslag. Styret godkjenner eller avviser det før arbeidet settes i gang: {link}" + }, + "utbedret": { + "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}" + } + }, + "overslag": { + "open": { + "subject": "Nytt overslag fra Klingenberg Bygg: {gjelder}", + "body": "Klingenberg Bygg har sendt et overslag for {gjelder}. Det ligger hos styret til godkjenning: {link}" + } + }, + "romsoknader": { + "akseptert": { + "subject": "{name} har takket ja til rommet", + "body": "{name} har takket ja til tilbudet om rom på Gullberg. Neste steg er kontrakten og depositumet. {link}" + }, + "open": { + "subject": "Søknaden din om rom på Gullberg er mottatt", + "body": "Hei {name},\n\nsøknaden din om rom på Gullberg er mottatt. Styret går gjennom søknadene fortløpende; studenter går foran, men alle blir sett på. Du hører fra oss om visning. {link}\n\nDet du kan gjøre nå: {site}/decide/leie-rom?chain={chain}&email={email}\n\nHilsen styret i Gullberg" + }, + "signert": { + "subject": "Kontrakten er signert", + "body": "Kontrakten for rommet du søkte om er nå signert av begge parter. Rommet er ditt - velkommen inn. {link}" + }, + "tilbud": { + "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}\n\nDet du kan gjøre nå: {site}/decide/leie-rom?chain={chain}&email={email}" + }, + "visning": { + "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}\n\nDet du kan gjøre nå: {site}/decide/leie-rom?chain={chain}&email={email}" + } + } + }, + "questions/aksjonaerer/index.yaml": { + "question": "Hvordan ligger huset og driften an?", + "description": "Her ser aksjonærene hvordan huset og driften står: eierskiftet, husleia, lista, overslagene og sakene.", + "confirm": "Bekreft", + "buckets": { + "eierskifte": { + "heading": "Se hvor langt eierskiftet har kommet", + "description": "Hvert steg i overgangen til Gullberg AS, med dokumentene som hører til.", + "moves": {}, + "list_title": "Steg i eierskiftet", + "list_note": "Hver rad er et steg med merknad og dokument; flytt det videre når det er i arbeid eller ferdig." + }, + "husleie": { + "heading": "Se hvilke rom som har betalt", + "description": "Husleia for hvert rom, måned for måned, og hva som er purret på.", + "moves": {}, + "list_title": "Husleie", + "list_note": "Hver rad er ett rom for én måned, med beløp og betalingsdato; merk den betalt eller purret." + }, + "liste": { + "heading": "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.", + "moves": {}, + "list_title": "Lista", + "list_note": "Hver rad er ett punkt med kostnad og tidspunkt; vedta den, publiser den eller forkast den." + }, + "nedbetalingsplaner": { + "heading": "Godkjenn nedbetalingsplanen", + "description": "Planen for lånet, lagt fram for alle fire aksjonærene og banken.", + "moves": { + "open->godkjent": "Godkjenn planen" + }, + "list_title": "Nedbetalingsplaner", + "list_note": "Hver rad er en plan med lånebeløp og pengestrøm; følg den fra godkjent til innvilget hos banken." + }, + "overslag": { + "heading": "Se overslagene fra Klingenberg Bygg", + "description": "Beløpet Klingenberg Bygg har satt på en feil, klart til vedtak.", + "moves": {}, + "list_title": "Overslag", + "list_note": "Hver rad er ett overslag med beløp og hva det dekker; godkjenn, avvis eller fakturer det." + }, + "rapporter": { + "heading": "Se kvartalsrapportene", + "description": "Tallene aksjonærene og banken skal ha, kvartal for kvartal.", + "moves": {}, + "list_title": "Rapporter", + "list_note": "Hver rad er én periode med inntekter, kostnader og saldo; send den når den er klar." + }, + "saker": { + "heading": "Se sakene som er meldt til styret", + "description": "Det en aksjonær vil ha styrets ord på, samlet på ett sted.", + "moves": {}, + "list_title": "Saksliste", + "list_note": "Hver rad er én sak; sett den på sakslisten, vedta den eller avvis den." + } + }, + "links": { + "uke": { + "heading": "Be om en uke i huset", + "description": "Reserver en periode selv, bekreftet av styret.", + "button": "Søk om uke" + }, + "sak": { + "heading": "Få noe avgjort av styret", + "description": "Meld en sak du vil ha styrets ord på.", + "button": "Meld sak" + } + }, + "invites": { + "aksjonaerer": { + "heading": "Inviter en ny aksjonær inn", + "description": "De får en konto og en lenke som gjelder én gang.", + "button": "Send invitasjon", + "form_title": "Ny aksjonær", + "form_description": "Ha navn, e-post og telefon klart.", + "labels": { + "name": "Navn", + "phone": "Telefon", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Se hvem som er invitert", + "description": "Status på invitasjonene som er sendt ut.", + "done": "Aktiv", + "withdraw": "Trekk tilbake", + "again": "Send på nytt", + "list_title": "Invitasjoner", + "list_note": "Hver rad er én invitasjon; send den på nytt om lenken har gått ut, eller trekk den tilbake." + }, + "suggestions": null + }, + "questions/aksjonaerer/sak-sent.yaml": { + "question": "Hva skjer med saken jeg nettopp sendte inn?", + "description": "Saken er sendt til styret. Den havner på sakslisten og blir tatt opp der.", + "next_heading": "Følg saken videre", + "next_description": "Styret vurderer saken og vedtar eller avviser den. Du finner status på sakslisten." + }, + "questions/aksjonaerer/sak.yaml": { + "heading": "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.", + "button": "Send saken", + "encouragement": "Styret ser den og setter den på sakslisten.", + "icon": "vote", + "paused": "Pause mottak av saker", + "requires_title": "Krev tittel", + "requires_description": "Krev beskrivelse av saken", + "requires_icon": "Krev ikon", + "road_title": "Fra forslag til vedtak", + "road_description": "Saken kommer inn og settes på sakslisten, blir tatt opp av styret og ender med et vedtak eller en avvisning.", + "road_icon": "list", + "who_title": "Hvem som leser den", + "who_description": "Styret får saken og tar stilling til den; haster det, nå dem på bl@klingenbergbygg.no.", + "who_icon": "users", + "form_title": "Ny sak", + "form_description": "Skriv kort hva saken går ut på og hvorfor den bør opp.", + "labels": { + "tittel": "Tittel på saken", + "sak": "Hva gjelder saken" + }, + "hints": { + "tittel": "Fast eller flytende leie for sommeren", + "sak": "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." + }, + "question": "Er det noe som bør avgjøres av styret?", + "page_description": "Her melder du inn en sak du vil at styret skal ta opp og avgjøre." + }, + "questions/aksjonaerer/uke-sent.yaml": { + "question": "Hva skjer nå med ukesøknaden din?", + "description": "Den er sendt og ligger hos styret, som avgjør om uken blir bekreftet.", + "next_heading": "Styret ser på søknaden din", + "next_description": "De bekrefter eller avslår uken. Du finner svaret i oversikten når det er klart." + }, + "questions/aksjonaerer/uke.yaml": { + "heading": "Reserver en uke i huset", + "description": "Si fra når du vil bruke huset, så ser styret om datoene passer.", + "button": "Send ønske", + "encouragement": "Du hører fra styret så snart datoene er sjekket.", + "icon": "calendar", + "paused": "Tar vi ikke imot ukeønsker nå", + "requires_title": "Krever tittel", + "requires_description": "Krever beskrivelse", + "requires_icon": "Krever ikon", + "road_title": "Veien videre", + "road_description": "Styret ser på ønsket ditt og bekrefter eller avslår uken.", + "road_icon": "route", + "who_title": "Hvem leser dette", + "who_description": "Styret ser ønsket ditt; skriv til bl@klingenbergbygg.no om det haster.", + "who_icon": "users", + "form_title": "Ukeønske", + "form_description": "Fyll inn datoene du ønsker huset.", + "labels": { + "fra": "Fra dato", + "til": "Til dato", + "merknad": "Merknad" + }, + "hints": { + "fra": "f.eks. 6. juli 2027", + "til": "f.eks. 13. juli 2027", + "merknad": "f.eks. kommer med familie, trenger ekstra seng" + }, + "question": "Hvilken uke vil du bruke huset?", + "page_description": "Meld fra om uken du ønsker, så bekrefter styret den." + }, + "questions/decide/leie-rom.yaml": { + "question": "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.", + "moves": { + "akseptert": { + "heading": "Ta imot rommet", + "description": "Du sier ja til rommet du har fått tilbud om. Styret tar kontakt om innflytting og signering.", + "button": "Ta imot" + }, + "avslatt": { + "heading": "Takk nei til rommet", + "description": "Du sier nei til tilbudet, og rommet går videre til neste søker.", + "button": "Takk nei" + } + } + }, + "questions/hvem.yaml": { + "question": "Hva er Gullberg?", + "description": "Et gammelt hus bak Ås kirke, eid av fire aksjonærer og drevet av styret, med Klingenberg Bygg som forvalter. Her er rommene som er ledige nå.", + "presents": { + "rom": { + "heading": "Rommene som er ledige", + "description": "Rommene som står ledige for dem som søker et sted å bo.", + "empty": "Ingen rom er ledige akkurat nå, men nye kommer når noen flytter ut." + } + }, + "values": { + "heading": "Det styret har vedtatt", + "description": "Det som gjelder for huset og driften, slik styret har satt det.", + "items": {} + } + }, + "questions/index.yaml": { + "question": "Trenger du et rimelig rom på Ås?", + "description": "Gullberg er et gammelt hus bak Ås kirke, et kort stykke fra NMBU. Eierne driver det selv, og Klingenberg Bygg forvalter huset og vedlikeholdet.", + "opener": { + "heading": "Et rimelig sted å bo, nær NMBU", + "description": "Rommene leies ut for et år av gangen, til en pris som går opp med studielånet. Studenter går foran, men alle kan søke.", + "features": { + "rom": { + "heading": "Rom til leie, studenter først", + "description": "Du leier et rom i huset for et år av gangen. Studenter ved NMBU får rommene først; er det ledig, får andre også.", + "icon": "house" + } + } + }, + "who": { + "heading": "Hva er Gullberg?", + "description": "Fire aksjonærer eier huset sammen og driver det selv, med Klingenberg Bygg som forvalter.", + "button": "Se huset og rommene" + }, + "shopping": { + "heading": "Hva som er gjort, og hva som mangler", + "description": "Det styret har vedtatt for huset: planene, med pris og tid der det er kjent.", + "items": { + "status-liste": { + "heading": "Siste fra lista", + "description": "Punktene styret har tatt stilling til, ferskest øverst.", + "link": "Se hele lista", + "empty": "Snart kommer de første punktene på lista.", + "icon": "clipboard-list" + } + } + }, + "doors": {}, + "needs": { + "leie-rom": { + "heading": "Søk om et rom", + "description": "Fortell litt om deg og hva du gjør til daglig. Studenter går foran, men alle kan søke.", + "button": "Søk rom", + "encouragement": "Det tar bare et par minutter, og du hører fra styret så snart et rom er ledig.", + "icon": "key", + "paused": "Søknader er satt på pause", + "requires_title": "Dette trenger vi", + "requires_description": "Navn, e-post og hvilket lærested du går på.", + "requires_icon": "clipboard-list", + "road_title": "Veien videre", + "road_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.", + "road_icon": "route", + "who_title": "Hvem leser søknaden", + "who_description": "Styret i Gullberg leser søknaden din, og du når dem i mellomtiden på bl@klingenbergbygg.no.", + "who_icon": "users", + "form_title": "Søknadsskjema", + "form_description": "Fyll inn det du vet nå - resten kan vente til visningen.", + "labels": { + "name": "Navn", + "email": "E-post", + "telefon": "Telefon", + "innflytting": "Ønsket innflytting", + "om": "Litt om deg", + "situasjon": "Hva gjør du til daglig?" + }, + "hints": { + "name": "Kari Nordmann", + "email": "kari@student.no", + "telefon": "123 45 678", + "innflytting": "August 2026", + "om": "Jeg studerer medisin og trenger et rolig sted å bo nær campus.", + "situasjon": "" + } + } + } + }, + "questions/klingenberg/index.yaml": { + "question": "Hva trenger huset nå?", + "description": "Her samler Klingenberg Bygg det leietakerne melder inn, og styret ser overslagene før de godkjennes.", + "confirm": "Bekreft", + "buckets": { + "feil": { + "heading": "Se hva som er meldt inn av feil", + "description": "Her ser du det leietakerne har meldt, fra ny melding til den er utbedret.", + "moves": { + "befaring->overslag": "Lag overslag", + "befaring->avvist": "Avvis saken", + "godkjent->utbedret": "Meld utbedret", + "open->befaring": "Sett opp befaring", + "open->avvist": "Avvis saken", + "overslag->avvist": "Avvis overslaget" + }, + "list_title": "Meldte feil", + "list_note": "Hver rad er en feil som er meldt inn; knappene under flytter den videre til befaring, overslag eller utbedret." + }, + "overslag": { + "heading": "Følg opp overslagene dine", + "description": "Her ser du overslagene du har levert, og om styret har godkjent dem.", + "moves": { + "godkjent->fakturert": "Merk fakturert" + }, + "list_title": "Leverte overslag", + "list_note": "Hver rad er et overslag du har levert; marker det fakturert når regningen er sendt." + } + }, + "links": { + "overslag": { + "heading": "Se alle overslag i ett regnskap", + "description": "Her finner du overslagene samlet, uansett hvem som har meldt feilen.", + "button": "Åpne overslag" + } + }, + "invites": { + "klingenberg": { + "heading": "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.", + "button": "Send invitasjon", + "form_title": "Inviter ny person", + "form_description": "Ha navn, telefon og e-post klart.", + "labels": { + "name": "Navn", + "phone": "Telefon", + "email": "E-post" + } + } + }, + "invited": { + "heading": "Hold oversikt over inviterte", + "description": "Her ser du hvem som er invitert, og om de har tatt lenken i bruk.", + "done": "Tatt i bruk", + "withdraw": "Trekk tilbake", + "again": "Send på nytt", + "list_title": "Sendte invitasjoner", + "list_note": "Hver rad er en invitasjon; send den på nytt hvis lenken har gått ut, eller trekk den tilbake." + }, + "suggestions": null + }, + "questions/klingenberg/overslag-sent.yaml": { + "question": "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.", + "next_heading": "Styret vurderer overslaget", + "next_description": "Du hører fra dem hvis de trenger mer, ellers venter du på svar om det blir godkjent, avvist eller fakturert." + }, + "questions/klingenberg/overslag.yaml": { + "heading": "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.", + "button": "Send overslag", + "encouragement": "Styret ser det i løpet av kort tid, og det følger saken videre til regnskapet.", + "icon": "receipt", + "paused": "Ta ikke mot nye overslag nå", + "requires_title": "Krev tittel", + "requires_description": "Krev beskrivelse", + "requires_icon": "Krev ikon", + "road_title": "Veien videre", + "road_description": "Styret godkjenner eller avviser overslaget. Blir det godkjent og arbeidet utført, blir det fakturert.", + "road_icon": "route", + "who_title": "Hvem leser det", + "who_description": "Styret i Gullberg leser overslaget og tar stilling til det, du når dem på bl@klingenbergbygg.no i mellomtiden.", + "who_icon": "users", + "form_title": "Overslag på feil", + "form_description": "Ha prisen og hva den dekker klart før du sender.", + "labels": { + "gjelder": "Hva overslaget gjelder", + "belop": "Beløp", + "hva-det-dekker": "Hva beløpet dekker", + "dokument": "Dokument" + }, + "hints": { + "gjelder": "Lekkasje på badet i rom 4", + "belop": "12 500 kr", + "hva-det-dekker": "Ny membran, fliser og arbeidstid, to dagers arbeid", + "dokument": "overslag-rom4.pdf" + }, + "question": "Hva vil det koste å rette feilen?", + "page_description": "Overslaget går til styret, som godkjenner eller avviser det før det føres i regnskapet." + }, + "questions/leietakere/feil-sent.yaml": { + "question": "Hva skjer nå med feilen jeg meldte?", + "description": "Meldingen er sendt til Klingenberg Bygg, som drar på befaring og vurderer hva den koster å rette.", + "next_heading": "Klingenberg Bygg ser på saken", + "next_description": "De befarer feilen og lager et overslag som styret tar stilling til." + }, + "questions/leietakere/feil.yaml": { + "heading": "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.", + "button": "Send feilen", + "encouragement": "Tar et par minutter, og styret får beskjed med én gang.", + "icon": "wrench", + "paused": "Ta imot nye feilmeldinger", + "requires_title": "Overskrift", + "requires_description": "Forklaring", + "requires_icon": "Ikon", + "road_title": "Hva skjer videre", + "road_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.", + "road_icon": "route", + "who_title": "Hvem leser dette", + "who_description": "Styret i Gullberg får meldingen og følger den opp; haster det, send en e-post til bl@klingenbergbygg.no.", + "who_icon": "users", + "form_title": "Meld en feil", + "form_description": "Fortell hva som er galt og hvor, gjerne med bilde.", + "labels": { + "hva": "Hva er galt", + "hvor": "Hvor i huset", + "beskrivelse": "Beskriv feilen", + "email": "E-post", + "bilde": "Bilde" + }, + "hints": { + "hva": "Vannlekkasje under kjøkkenvasken", + "hvor": "Kjøkkenet i 2. etasje", + "beskrivelse": "Det drypper fra røret under vasken, har blitt verre siste uken", + "email": "navn@student.no", + "bilde": "Last opp et bilde av feilen" + }, + "question": "Har du funnet noe i huset som bør rettes opp?", + "page_description": "Meldingen går rett til Klingenberg Bygg, som forvalter huset. De ser på det, og styret godkjenner det som koster penger." + }, + "questions/leietakere/index.yaml": { + "question": "Hva kan vi gjøre for deg i huset?", + "description": "Feil leietakerne melder inn, og overslagene Klingenberg Bygg sender over, samlet på ett sted.", + "confirm": "Bekreft", + "buckets": {}, + "links": { + "feil": { + "heading": "Har du funnet noe som er galt i huset?", + "description": "Meld fra, så går det rett til Klingenberg Bygg.", + "button": "Meld fra" + } + }, + "invites": {}, + "invited": null, + "suggestions": null + }, + "questions/received/leie-rom.yaml": { + "question": "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.", + "next_heading": "Du hører fra styret om en visning", + "next_description": "Styret tar kontakt på e-post eller telefon for å avtale tid. Får du tilbud om rommet, får du beskjed rett etter." + }, + "questions/status/liste/index.yaml": { + "question": "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.", + "heading": "Det som er vedtatt og gjort", + "list_description": "Åpen liste over det styret har vedtatt for huset.", + "list_title": "Vedtatt og gjort", + "list_note": "Hver rad er én sak, med hva den gjelder, kostnad og tidspunkt der det er satt.", + "empty": "Ingen saker er publisert ennå.", + "answer": "Svar" + }, + "questions/status/rom/index.yaml": { + "question": "Hvilke rom er ledige nå?", + "description": "Her finner du rommene som er ledige for innflytting, med bilde og en kort beskrivelse av hvert rom.", + "heading": "Ledige rom i huset", + "list_description": "Rommene som er ledige akkurat nå.", + "list_title": "Ledige rom", + "list_note": "Hver rad er et rom du kan søke på.", + "empty": "Ingen rom er ledige akkurat nå, men se gjerne innom igjen senere.", + "answer": "Svar" + }, + "questions/styret/eierskifte-sent.yaml": { + "question": "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.", + "next_heading": "Følg eierskiftet videre", + "next_description": "Du finner status og alle steg i oversikten over eierskiftet, og kan legge inn mer når noe nytt skjer." + }, + "questions/styret/eierskifte.yaml": { + "heading": "Se hvor eierskiftet står", + "description": "Meld fra om neste steg i overgangen til selskapet, så ser aksjonærene og banken fremgangen.", + "button": "Legg inn steg", + "encouragement": "Tar et minutt, og listen oppdateres med én gang.", + "icon": "file-text", + "paused": "Satt på vent", + "requires_title": "Krever tittel", + "requires_description": "Krever beskrivelse", + "requires_icon": "Krever ikon", + "road_title": "Fra melding til ferdig", + "road_description": "Steget legges inn, så arbeides det med, og til slutt merkes det som ferdig.", + "road_icon": "route", + "who_title": "Hvem leser det", + "who_description": "Styret følger eierskiftet her; ring styret i mellomtiden hvis noe ikke kan vente.", + "who_icon": "users", + "form_title": "Nytt steg i eierskiftet", + "form_description": "Skriv hva som er gjort, og legg ved dokumentet hvis det finnes et.", + "labels": { + "steg": "Hva er gjort", + "merknad": "Merknad", + "dokument": "Dokument" + }, + "hints": { + "steg": "Skjøtet er sendt til tinglysing", + "merknad": "Megler venter på signatur fra den siste selgeren", + "dokument": "skjote-gullberg.pdf" + }, + "question": "Hvor langt har eierskiftet kommet?", + "page_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." + }, + "questions/styret/husleie-sent.yaml": { + "question": "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.", + "next_heading": "Følg med i husleielista", + "next_description": "Der ser dere hvilke rom som har betalt og hva som er purret på." + }, + "questions/styret/husleie.yaml": { + "heading": "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.", + "button": "Registrer husleie", + "encouragement": "Det tar et minutt per rom.", + "icon": "banknote", + "paused": "Tas ikke imot nå", + "requires_title": "Krever tittel", + "requires_description": "Krever beskrivelse", + "requires_icon": "Krever ikon", + "road_title": "Hva som skjer videre", + "road_description": "Du registrerer at husleia er betalt. Hvis et rom ikke har betalt, markeres det som purret til det kommer inn.", + "road_icon": "refresh-cw", + "who_title": "Hvem som ser dette", + "who_description": "Styret ser oversikten; har du spørsmål underveis, ta kontakt med styret på bl@klingenbergbygg.no.", + "who_icon": "users", + "form_title": "Registrer husleie", + "form_description": "Ha rom, måned og beløp klart.", + "labels": { + "rom": "Hvilket rom", + "maaned": "Hvilken måned", + "belop": "Beløp", + "betalt-dato": "Betalt dato" + }, + "hints": { + "rom": "Rom 2", + "maaned": "Oktober 2026", + "belop": "4500", + "betalt-dato": "2026-10-05" + }, + "question": "Hvilke rom har betalt husleie denne måneden?", + "page_description": "Her ser styret hvilke rom som har betalt husleia og hva som har gått til banken." + }, + "questions/styret/index.yaml": { + "question": "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.", + "confirm": "Bekreft", + "buckets": { + "eierskifte": { + "heading": "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.", + "moves": { + "arbeid->ferdig": "Merk steget ferdig", + "open->arbeid": "Start arbeidet" + }, + "list_title": "Steg i eierskiftet", + "list_note": "Hver rad er ett steg i overgangen, med merknad og dokument; knappen under flytter steget videre." + }, + "feil": { + "heading": "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.", + "moves": { + "befaring->avvist": "Avvis feilen", + "open->avvist": "Avvis feilen", + "overslag->godkjent": "Godkjenn overslaget", + "overslag->avvist": "Avvis overslaget" + }, + "list_title": "Meldte feil", + "list_note": "Hver rad er en feil meldt av en leietaker, med bilde og beskrivelse; knappene under sender den videre eller avviser den." + }, + "husleie": { + "heading": "Hold oversikt over husleia hver måned", + "description": "Se hvilke rom som har betalt, og purr dem som ikke har gjort det.", + "moves": { + "open->betalt": "Merk som betalt", + "open->purret": "Send purring", + "purret->betalt": "Merk som betalt" + }, + "list_title": "Husleie per rom", + "list_note": "Hver rad er husleia for ett rom én måned, med beløp og betalingsdato; knappene under merker betalt eller sender purring." + }, + "liste": { + "heading": "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.", + "moves": { + "open->vedtatt": "Vedta punktet", + "open->forkastet": "Forkast punktet", + "vedtatt->publisert": "Publiser punktet", + "vedtatt->forkastet": "Forkast punktet" + }, + "list_title": "Punkter på lista", + "list_note": "Hver rad er ett punkt med slag, beskrivelse, kostnad og tid; knappene under vedtar, publiserer eller forkaster det." + }, + "nedbetalingsplaner": { + "heading": "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.", + "moves": { + "godkjent->sendt": "Send til banken", + "sendt->endringer": "Be om endringer", + "sendt->innvilget": "Merk som innvilget" + }, + "list_title": "Nedbetalingsplaner", + "list_note": "Hver rad er en plan med lånebeløp, avdrag og pengestrøm; knappene under sender den til banken eller merker svaret." + }, + "overslag": { + "heading": "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.", + "moves": { + "open->godkjent": "Godkjenn overslaget", + "open->avvist": "Avvis overslaget" + }, + "list_title": "Overslag", + "list_note": "Hver rad er et overslag med beløp og hva det dekker; knappene under godkjenner eller avviser det." + }, + "rapporter": { + "heading": "Send kvartalsrapporten til aksjonærene og banken", + "description": "Samle tallene for kvartalet, og send rapporten videre når den er klar.", + "moves": { + "open->sendt": "Send rapporten" + }, + "list_title": "Kvartalsrapporter", + "list_note": "Hver rad er rapporten for ett kvartal, med leieinntekter, kostnader og saldo; knappen under sender den." + }, + "rom": { + "heading": "Vis ledige rom frem til studentene", + "description": "Legg ut rommet som er blitt ledig, og merk det utleid når noen har flyttet inn.", + "moves": { + "open->utleid": "Merk som utleid" + }, + "list_title": "Rom", + "list_note": "Hver rad er et rom med bilde og beskrivelse; knappen under merker det utleid." + }, + "romsoknader": { + "heading": "Følg opp søknader om rom", + "description": "Se hvem som har søkt og hva de gjør til daglig (studenter går foran), sett opp visning, og før søknaden frem til signert leieavtale.", + "moves": { + "akseptert->signert": "Merk som signert", + "open->visning": "Sett opp visning", + "open->avslatt": "Avslå søknaden", + "tilbud->avslatt": "Avslå søknaden", + "visning->tilbud": "Gi tilbud om rom", + "visning->avslatt": "Avslå søknaden" + }, + "list_title": "Søknader om rom", + "list_note": "Hver rad er en søknad, med hva søkeren gjør til daglig og ønsket innflytting. Studenter går foran. Knappene fører søknaden videre eller avslår den." + }, + "saker": { + "heading": "Saker aksjonærene har meldt", + "description": "Ta saker aksjonærene melder inn, sett dem på sakslisten, og vedta eller avvis dem.", + "moves": { + "open->sakslisten": "Sett på sakslisten", + "open->avvist": "Avvis saken", + "sakslisten->vedtatt": "Vedta saken", + "sakslisten->avvist": "Avvis saken" + }, + "list_title": "Saker", + "list_note": "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." + }, + "uker": { + "heading": "Bekreft ukene aksjonærene vil bruke huset", + "description": "Se hvem som har meldt seg på en uke, og bekreft eller avslå den.", + "moves": { + "open->bekreftet": "Bekreft uken", + "open->avslatt": "Avslå uken" + }, + "list_title": "Ønskede uker", + "list_note": "Hver rad er en uke en aksjonær har meldt seg på, med datoer og merknad; knappene under bekrefter eller avslår den." + } + }, + "links": { + "ledig-rom": { + "heading": "Legg ut et rom som er blitt ledig", + "description": "Skriv tittel, legg ved bilde og beskriv rommet, så studentene kan søke.", + "button": "Legg ut rom" + }, + "liste": { + "heading": "Legg til et nytt punkt på lista", + "description": "Skriv hva som er bra, mangler eller planlagt, med pris og tid om du har det.", + "button": "Legg til punkt" + }, + "rapport": { + "heading": "Lag kvartalets rapport", + "description": "Fyll inn tallene for kvartalet, så aksjonærene og banken får det de skal ha.", + "button": "Lag rapport" + }, + "nedbetalingsplan": { + "heading": "Lag en ny nedbetalingsplan", + "description": "Skriv lånebeløp, avdrag og pengestrøm, så banken har noe å ta stilling til.", + "button": "Lag plan" + }, + "husleie": { + "heading": "Registrer husleie for et rom", + "description": "Før inn beløp og måned når husleia for et rom er kommet inn.", + "button": "Registrer husleie" + }, + "eierskifte": { + "heading": "Legg til et steg i eierskiftet", + "description": "Beskriv steget og legg ved dokument, så aksjonærene ser fremgangen.", + "button": "Legg til steg" + } + }, + "invites": { + "aksjonaerer": { + "heading": "Gi en aksjonær tilgang til sin side", + "description": "Send en invitasjon så aksjonæren får konto og engangslenke.", + "button": "Send invitasjon", + "form_title": "Inviter aksjonær", + "form_description": "Ha navn, e-post og telefon klart.", + "labels": { + "name": "Navn", + "phone": "Telefon", + "email": "E-post" + } + }, + "klingenberg": { + "heading": "Gi Klingenberg Bygg tilgang til feilmeldinger", + "description": "Send en invitasjon så de får konto og engangslenke.", + "button": "Send invitasjon", + "form_title": "Inviter Klingenberg Bygg", + "form_description": "Ha navn, e-post og telefon klart.", + "labels": { + "name": "Navn", + "phone": "Telefon", + "email": "E-post" + } + }, + "leietakere": { + "heading": "Gi en leietaker tilgang til sin side", + "description": "Send en invitasjon så leietakeren får konto og engangslenke.", + "button": "Send invitasjon", + "form_title": "Inviter leietaker", + "form_description": "Ha navn, e-post og telefon klart.", + "labels": { + "name": "Navn", + "phone": "Telefon", + "email": "E-post" + } + }, + "styret": { + "heading": "Gi et styremedlem tilgang til desken", + "description": "Send en invitasjon så styremedlemmet får konto og engangslenke.", + "button": "Send invitasjon", + "form_title": "Inviter styremedlem", + "form_description": "Ha navn, e-post og telefon klart.", + "labels": { + "name": "Navn", + "phone": "Telefon", + "email": "E-post" + } + } + }, + "invited": { + "heading": "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.", + "done": "Tatt i bruk", + "withdraw": "Trekk tilbake", + "again": "Send på nytt", + "list_title": "Sendte invitasjoner", + "list_note": "Hver rad er en invitasjon sendt til en person; knappene under trekker den tilbake eller sender den på nytt." + }, + "suggestions": { + "heading": "Ta stilling til foreslåtte endringer", + "description": "Se hva andre har foreslått å endre på sidene de har ansvar for.", + "list_title": "Foreslåtte endringer", + "list_note": "Hver rad er en foreslått endring; knappene under tar den til vurdering, godtar eller avslår den.", + "looking": "Tar en titt", + "changed": "Endret", + "declined": "Avslått" + } + }, + "questions/styret/ledig-rom-sent.yaml": { + "question": "Hva skjer med rommet du nettopp la ut?", + "description": "Rommet er lagt inn og synlig for dem som søker. Dere ser det under ledige rom til det er leid ut.", + "next_heading": "Studenter kan søke på rommet nå", + "next_description": "Søknader kommer inn etter hvert, og dere i styret ser dem sammen med de andre søknadene.", + "see_all": { + "heading": "Se alle rommene og status", + "description": "Full oversikt over hvilke rom som er ledige og hvilke som er leid ut.", + "button": "Se rommene" + } + }, + "questions/styret/ledig-rom.yaml": { + "heading": "Meld inn et rom som er ledig", + "description": "Når et rom står tomt, legger du det ut her, så ser de som søker det først.", + "button": "Legg ut rommet", + "encouragement": "Så snart det er lagt ut, kan folk søke på det.", + "icon": "key", + "paused": "Ta rommet ned fra listen for nå", + "requires_title": "Krever tittel", + "requires_description": "Krever beskrivelse", + "requires_icon": "Krever bilde", + "road_title": "Fra ledig til utleid", + "road_description": "Rommet ligger ute til det er utleid.", + "road_icon": "key", + "who_title": "Hvem ser dette", + "who_description": "Studenter som søker rom ser dette, og styret kan nås på bl@klingenbergbygg.no i mellomtiden.", + "who_icon": "users", + "form_title": "Om rommet", + "form_description": "Et bilde og en kort beskrivelse er nok til at de som søker kan se seg om.", + "labels": { + "tittel": "Tittel på rommet", + "bilde": "Bilde av rommet", + "om": "Om rommet" + }, + "hints": { + "tittel": "Rom i 2. etasje, mot gata", + "bilde": "", + "om": "Lyst rom med eget bad, nær kjøkken og felles stue." + }, + "question": "Hvilket rom er ledig nå?", + "page_description": "Legg ut et rom som har blitt ledig, så de som søker kan se det." + }, + "questions/styret/liste-sent.yaml": { + "question": "Hva skjer med punktet nå?", + "description": "Forslaget ditt er lagret. Styret tar det opp til behandling.", + "next_heading": "Styret vedtar eller forkaster punktet", + "next_description": "Det blir stående til styret har tatt stilling, med pris og tid synlig for alle.", + "see_all": { + "heading": "Se hele lista", + "description": "Alt som er meldt inn, vedtatt eller publisert ligger samlet.", + "button": "Til lista" + } + }, + "questions/styret/liste.yaml": { + "heading": "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.", + "button": "Legg til punkt", + "encouragement": "Det havner på listen med en gang, og dere kan vedta det senere.", + "icon": "list", + "paused": "Listen er stengt for nye punkter", + "requires_title": "Krev tittel", + "requires_description": "Krev beskrivelse", + "requires_icon": "Krev ikon", + "road_title": "Fra forslag til vedtak", + "road_description": "Punktet legges inn, styret tar stilling til det og vedtar eller forkaster, og det som vedtas blir publisert på listen alle ser.", + "road_icon": "check-circle", + "who_title": "Hvem ser listen", + "who_description": "Styret fører og vedtar listen; ta kontakt på bl@klingenbergbygg.no om noe haster.", + "who_icon": "users", + "form_title": "Nytt punkt på listen", + "form_description": "Skriv kort hva det gjelder, og ta med pris og tid hvis dere har tall.", + "labels": { + "tittel": "Tittel", + "slag": "Hva slags punkt", + "beskrivelse": "Beskrivelse", + "kostnad": "Kostnad", + "naar": "Når" + }, + "hints": { + "tittel": "Nytt kjøkken i andre etasje", + "slag": "Mangler", + "beskrivelse": "Kjøkkenet er slitt og trenger nye hvitevarer og benkeplate.", + "kostnad": "ca. 45 000 kr", + "naar": "Våren 2027" + }, + "question": "Hva bør med på listen over huset og driften?", + "page_description": "Punktene går inn på listen styret fører over det som er bra, det som mangler og det som er planlagt." + }, + "questions/styret/nedbetalingsplan-sent.yaml": { + "question": "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.", + "next_heading": "Følg svaret fra banken", + "next_description": "Når banken svarer, oppdaterer dere planen med godkjent, innvilget eller endringer – så de andre aksjonærene ser hvor den står." + }, + "questions/styret/nedbetalingsplan.yaml": { + "heading": "Nedbetalingsplanen alle fire står bak", + "description": "Legg fram planen for lånet, så banken og aksjonærene vet hvordan det skal betales ned.", + "button": "Send plan", + "encouragement": "Styret tar den videre til banken så snart alle fire har sagt ja.", + "icon": "banknote", + "paused": "Satt på pause", + "requires_title": "Krever tittel", + "requires_description": "Krever beskrivelse", + "requires_icon": "Krever ikon", + "road_title": "Veien videre", + "road_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.", + "road_icon": "route", + "who_title": "Hvem ser den", + "who_description": "Styret og aksjonærene ser planen; spørsmål før den er sendt går til styret på bl@klingenbergbygg.no.", + "who_icon": "users", + "form_title": "Nedbetalingsplan", + "form_description": "Ha lånebeløp, avdrag og når det første trekket kommer, klart.", + "labels": { + "tittel": "Tittel", + "laanebelop": "Lånebeløp", + "maanedlig-avdrag": "Månedlig avdrag", + "forste-trekk": "Første trekk", + "pengestrom": "Hvordan pengene flyter", + "dokument": "Dokument" + }, + "hints": { + "tittel": "Nedbetalingsplan 2026", + "laanebelop": "2 400 000 kr", + "maanedlig-avdrag": "18 000 kr", + "forste-trekk": "1. desember 2026", + "pengestrom": "Husleie dekker avdraget, timeshare går til vedlikehold, overskudd settes av til buffer", + "dokument": "Last opp plan eller avtaleutkast" + }, + "question": "Hvordan skal lånet betales ned, og står alle fire bak det?", + "page_description": "Planen går til aksjonærene og banken, og viser hvordan lånet skal betales ned." + }, + "questions/styret/rapport-sent.yaml": { + "question": "Hvor går rapporten nå?", + "description": "Den er sendt. Aksjonærene får tallene, og det som skal til banken går dit.", + "next_heading": "Neste rapport venter til kvartalet er omme", + "next_description": "Neste rapport legger styret inn når kvartalet er omme." + }, + "questions/styret/rapport.yaml": { + "heading": "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.", + "button": "Send rapport", + "encouragement": "Så snart den er sendt, ligger den klar for aksjonærene og banken.", + "icon": "file-text", + "paused": "Sett rapportering på pause", + "requires_title": "Krev tittel", + "requires_description": "Krev beskrivelse", + "requires_icon": "Krev ikon", + "road_title": "Hva skjer videre", + "road_description": "Rapporten sendes til aksjonærene og banken. Når den er ute, merkes den som sendt.", + "road_icon": "send", + "who_title": "Hvem leser den", + "who_description": "Styret står for rapportene; har du spørsmål underveis, ta kontakt på bl@klingenbergbygg.no.", + "who_icon": "users", + "form_title": "Kvartalets tall", + "form_description": "Ha regnskapstallene for kvartalet klare før du fyller ut.", + "labels": { + "periode": "Hvilket kvartal gjelder dette", + "leieinntekter": "Leieinntekter", + "timeshare": "Inntekter fra ukene", + "driftskostnader": "Driftskostnader", + "renter-og-avdrag": "Renter og avdrag til banken", + "saldo": "Saldo ved kvartalets slutt", + "kommentar": "Kommentar til tallene", + "dokument": "Regnskapsdokument" + }, + "hints": { + "periode": "3. kvartal 2026", + "leieinntekter": "54 000", + "timeshare": "12 000", + "driftskostnader": "18 500", + "renter-og-avdrag": "22 000", + "saldo": "145 000", + "kommentar": "Ett rom stod tomt i juli, ellers som normalt", + "dokument": "kvartalsregnskap-q3-2026.pdf" + }, + "question": "Hvordan gikk kvartalet, i tall?", + "page_description": "Rapporten går til aksjonærene og banken, så de ser inntekter, kostnader og saldo for kvartalet." + }, + "site.yaml": { + "invite": { + "subject": "Du er invitert til Gullberg", + "body": "Hei {name},\n\nDu er invitert inn på Gullberg sin side, som {group}.\n\nVelg passord her før {expires}:\n{link}\n\nBrukernavnet ditt er {username}. Etterpå logger du inn på {site}.\n\nHilsen styret i Gullberg" + } + } +} diff --git a/src/trainer/build.rs b/src/trainer/build.rs index 2ee2cc7..35c343f 100644 --- a/src/trainer/build.rs +++ b/src/trainer/build.rs @@ -664,11 +664,14 @@ impl Plan { // small application and the firm's large one, and is one // page either way. A bucket only a role ever writes to has // its group's desk and nothing to publish. - // Unless it presents: the people are entered from inside - // precisely so that everyone can see them. + // Unless it presents - the people are entered from inside + // precisely so that everyone can see them - or publishes: + // a board's list whose public view is only the stages it + // has published (`public_states`) is announcements. if need.watched_by.iter().any(|g| g == PUBLIC) && need.enters_as.is_some() && !need.presents + && need.public_states.is_empty() && !self .needs .iter()