From 172afef3590d57a71245a121d4acc6ea14dd93da Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 30 Sep 2026 17:49:08 +0200 Subject: [PATCH 01/11] =?UTF-8?q?Ny=20side,=20bygget=20av=20treneren:=20ti?= =?UTF-8?q?lstand,=20prosjekt=20og=20s=C3=B8knad,=20fra=20henvendelse=20ti?= =?UTF-8?q?l=20levert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fra plans/klingenbergbygg.yaml i uhhm/portal. Færre felt, én pult (kontor), og kunden får innlogging når tilbudet er godtatt: egne oppdrag og leverte dokumenter. Ordene er det gamle skjemaets der de fantes. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt --- aggregates.yaml | 293 ++++++++++++++- needs.yaml | 134 +++++++ questions/decide/prosjekt.yaml | 21 ++ questions/decide/soknad.yaml | 21 ++ questions/decide/tilstand.yaml | 21 ++ questions/index.yaml | 533 +++++++++++++-------------- questions/kontakt.yaml | 58 --- questions/kontor/_section.yaml | 1 + questions/kontor/index.yaml | 217 +++++++++++ questions/kontor/leveranse-sent.yaml | 5 + questions/kontor/leveranse.yaml | 38 ++ questions/kunder/_section.yaml | 1 + questions/kunder/index.yaml | 74 ++++ questions/received/prosjekt.yaml | 5 + questions/received/soknad.yaml | 5 + questions/received/tilstand.yaml | 5 + questions/takk.yaml | 11 - site.yaml | 17 + 18 files changed, 1105 insertions(+), 355 deletions(-) create mode 100644 needs.yaml create mode 100644 questions/decide/prosjekt.yaml create mode 100644 questions/decide/soknad.yaml create mode 100644 questions/decide/tilstand.yaml delete mode 100644 questions/kontakt.yaml create mode 100644 questions/kontor/_section.yaml create mode 100644 questions/kontor/index.yaml create mode 100644 questions/kontor/leveranse-sent.yaml create mode 100644 questions/kontor/leveranse.yaml create mode 100644 questions/kunder/_section.yaml create mode 100644 questions/kunder/index.yaml create mode 100644 questions/received/prosjekt.yaml create mode 100644 questions/received/soknad.yaml create mode 100644 questions/received/tilstand.yaml delete mode 100644 questions/takk.yaml diff --git a/aggregates.yaml b/aggregates.yaml index 1e5f3c6..1c8ade8 100644 --- a/aggregates.yaml +++ b/aggregates.yaml @@ -1,11 +1,284 @@ -# Henvendelser fra kundeportalen. Attended by nats kv on kasse until a -# review desk gets wired here (Kanidm auth exists on this instance). aggregates: - - bucket: kb_henvendelser - attended_by: Fredrik, via nats kv ls kb_henvendelser on kasse - initial: open - states: - open: { event: received } - answered: { event: answered } - transitions: - open: [answered] +- bucket: leveranser + initial: open + states: + open: + event: received + mail: + to: submitter + subject: '{hva} ligger klar til deg' + body: |- + Hei, + + {hva} er levert fra Klingenberg Bygg. Logg inn og hent dokumentet her: + {site}/kunder + + Svar på denne e-posten om noe mangler. + + Klingenberg Bygg + arkivert: + event: arkivert + transitions: + open: + - arkivert +- bucket: prosjekteringer + initial: open + states: + open: + event: received + mail: + to: submitter + subject: Vi har mottatt henvendelsen om {adresse} + body: |- + Hei {name}, + + Vi har mottatt henvendelsen din om prosjektering for {adresse}. Fredrik tar kontakt for å avtale befaring. + + Vil du trekke henvendelsen, gjør du det her: + {site}/decide/prosjekt?chain={chain}&email={email} + + Klingenberg Bygg + befaring: + event: befaring + mail: + to: submitter + subject: Befaring avtalt for {adresse} + body: |- + Hei {name}, + + Vi har avtalt befaring for {adresse}. Etter befaringen sender vi deg et tilbud. + + Vil du trekke henvendelsen, gjør du det her: + {site}/decide/prosjekt?chain={chain}&email={email} + + Klingenberg Bygg + tilbud: + event: tilbud + mail: + to: submitter + subject: Tilbud på prosjektering for {adresse} + body: |- + Hei {name}, + + Tilbudet på prosjektering for {adresse} er sendt deg i egen e-post. Si ja eller nei her: + {site}/decide/prosjekt?chain={chain}&email={email} + + Med et ja får du en innlogging der du følger oppdraget og henter dokumentene. Svar på denne e-posten om du lurer på noe. + + Klingenberg Bygg + akseptert: + event: akseptert + mail: + to: fredrik@klingenbergbygg.no + subject: Tilbudet for {adresse} er godtatt + body: |- + {name} ({email}) har godtatt tilbudet på prosjektering for {adresse}. + + Oppdraget ligger på pulten: {site}/kontor + grants: kunder + i_arbeid: + event: i_arbeid + levert: + event: levert + mail: + to: submitter + subject: Prosjektering for {adresse} er levert + body: |- + Hei {name}, + + Prosjektering for {adresse} er levert. Dokumentene henter du innlogget: + {site}/kunder + + Takk for oppdraget. + + Klingenberg Bygg + avslatt: + event: avslatt + transitions: + akseptert: + - i_arbeid + befaring: + - tilbud + - avslatt + i_arbeid: + - levert + open: + - befaring + - avslatt + tilbud: + - akseptert + - avslatt +- bucket: soknader + initial: open + states: + open: + event: received + mail: + to: submitter + subject: Vi har mottatt henvendelsen om {adresse} + body: |- + Hei {name}, + + Vi har mottatt henvendelsen din om byggesøknad for {adresse}. Fredrik tar kontakt for å avtale befaring. + + Vil du trekke henvendelsen, gjør du det her: + {site}/decide/soknad?chain={chain}&email={email} + + Klingenberg Bygg + befaring: + event: befaring + mail: + to: submitter + subject: Befaring avtalt for {adresse} + body: |- + Hei {name}, + + Vi har avtalt befaring for {adresse}. Etter befaringen sender vi deg et tilbud. + + Vil du trekke henvendelsen, gjør du det her: + {site}/decide/soknad?chain={chain}&email={email} + + Klingenberg Bygg + tilbud: + event: tilbud + mail: + to: submitter + subject: Tilbud på byggesøknad for {adresse} + body: |- + Hei {name}, + + Tilbudet på byggesøknad for {adresse} er sendt deg i egen e-post. Si ja eller nei her: + {site}/decide/soknad?chain={chain}&email={email} + + Med et ja får du en innlogging der du følger oppdraget og henter dokumentene. Svar på denne e-posten om du lurer på noe. + + Klingenberg Bygg + akseptert: + event: akseptert + mail: + to: fredrik@klingenbergbygg.no + subject: Tilbudet for {adresse} er godtatt + body: |- + {name} ({email}) har godtatt tilbudet på byggesøknad for {adresse}. + + Oppdraget ligger på pulten: {site}/kontor + grants: kunder + i_arbeid: + event: i_arbeid + levert: + event: levert + mail: + to: submitter + subject: Byggesøknad for {adresse} er levert + body: |- + Hei {name}, + + Byggesøknad for {adresse} er levert. Dokumentene henter du innlogget: + {site}/kunder + + Takk for oppdraget. + + Klingenberg Bygg + avslatt: + event: avslatt + transitions: + akseptert: + - i_arbeid + befaring: + - tilbud + - avslatt + i_arbeid: + - levert + open: + - befaring + - avslatt + tilbud: + - akseptert + - avslatt +- bucket: tilstandsrapporter + initial: open + states: + open: + event: received + mail: + to: submitter + subject: Vi har mottatt henvendelsen om {adresse} + body: |- + Hei {name}, + + Vi har mottatt henvendelsen din om tilstandsrapport for {adresse}. Fredrik tar kontakt for å avtale befaring. + + Vil du trekke henvendelsen, gjør du det her: + {site}/decide/tilstand?chain={chain}&email={email} + + Klingenberg Bygg + befaring: + event: befaring + mail: + to: submitter + subject: Befaring avtalt for {adresse} + body: |- + Hei {name}, + + Vi har avtalt befaring for {adresse}. Etter befaringen sender vi deg et tilbud. + + Vil du trekke henvendelsen, gjør du det her: + {site}/decide/tilstand?chain={chain}&email={email} + + Klingenberg Bygg + tilbud: + event: tilbud + mail: + to: submitter + subject: Tilbud på tilstandsrapport for {adresse} + body: |- + Hei {name}, + + Tilbudet på tilstandsrapport for {adresse} er sendt deg i egen e-post. Si ja eller nei her: + {site}/decide/tilstand?chain={chain}&email={email} + + Med et ja får du en innlogging der du følger oppdraget og henter dokumentene. Svar på denne e-posten om du lurer på noe. + + Klingenberg Bygg + akseptert: + event: akseptert + mail: + to: fredrik@klingenbergbygg.no + subject: Tilbudet for {adresse} er godtatt + body: |- + {name} ({email}) har godtatt tilbudet på tilstandsrapport for {adresse}. + + Oppdraget ligger på pulten: {site}/kontor + grants: kunder + i_arbeid: + event: i_arbeid + levert: + event: levert + mail: + to: submitter + subject: Tilstandsrapport for {adresse} er levert + body: |- + Hei {name}, + + Tilstandsrapport for {adresse} er levert. Dokumentene henter du innlogget: + {site}/kunder + + Takk for oppdraget. + + Klingenberg Bygg + avslatt: + event: avslatt + transitions: + akseptert: + - i_arbeid + befaring: + - tilbud + - avslatt + i_arbeid: + - levert + open: + - befaring + - avslatt + tilbud: + - akseptert + - avslatt diff --git a/needs.yaml b/needs.yaml new file mode 100644 index 0000000..3de3f3b --- /dev/null +++ b/needs.yaml @@ -0,0 +1,134 @@ +needs: +- id: tilstand + who: en eier eller forvalter som må vite hvilken forfatning bygget er i, for en kommune, et borettslag, en bedrift eller seg selv + wants: en tilstandsrapport å planlegge og beslutte ut fra + enters: / + via: Få kartlagt byggets tilstand + lands_in: tilstandsrapporter + handled_by: kontor + stages: + - open + - befaring + - tilbud + - akseptert + - i_arbeid + - levert + - avslatt + done_when: + - levert + - avslatt + success: + - levert + max_steps: 1 + max_fields: 4 + stage_words: + open: mottatt + befaring: befaring avtalt + tilbud: tilbud sendt + akseptert: tilbud godtatt + i_arbeid: i arbeid + levert: levert + avslatt: avsluttet uten oppdrag +- id: prosjekt + who: en byggherre som har planer for bygget og trenger dem prosjektert før noen kan bygge + wants: en arbeidsbeskrivelse og fremdriftsplan som gir det beste grunnlaget for utførelse + enters: / + via: Prosjektér dine planer med oss + lands_in: prosjekteringer + handled_by: kontor + stages: + - open + - befaring + - tilbud + - akseptert + - i_arbeid + - levert + - avslatt + done_when: + - levert + - avslatt + success: + - levert + max_steps: 1 + max_fields: 4 + stage_words: + open: mottatt + befaring: befaring avtalt + tilbud: tilbud sendt + akseptert: tilbud godtatt + i_arbeid: i arbeid + levert: levert + avslatt: avsluttet uten oppdrag +- id: soknad + who: en byggherre med et ferdig prosjektert bygg som trenger offentlig godkjenning før første spadetak + wants: en godkjent byggesøknad, med ansvarsrett der det kreves + enters: / + via: Ta det første spadetaket med en godkjent søknad + lands_in: soknader + handled_by: kontor + stages: + - open + - befaring + - tilbud + - akseptert + - i_arbeid + - levert + - avslatt + done_when: + - levert + - avslatt + success: + - levert + max_steps: 1 + max_fields: 4 + stage_words: + open: mottatt + befaring: forhåndskonferanse eller befaring avtalt + tilbud: tilbud sendt + akseptert: tilbud godtatt + i_arbeid: søknad under arbeid + levert: søknad levert + avslatt: avsluttet uten oppdrag +- id: leveranse + who: kontoret, når en rapport, tegninger eller et vedtak er klart til kunden + wants: at kunden får dokumentet og vet at det ligger der + enters: /kontor/leveranse + via: Lever et dokument til en kunde + lands_in: leveranser + handled_by: kontor + stages: + - open + - arkivert + done_when: + - arkivert + success: + - arkivert + max_steps: 1 + max_fields: 3 + stage_words: + open: levert + arkivert: arkivert + enters_as: kontor +personas: +- id: kommune-skole + need: tilstand + text: Vi i kommunen skal legge fram en sak om rehabilitering av en barneskole fra 1972 og trenger en tilstandsanalyse politikerne kan beslutte ut fra. +- id: borettslag + need: tilstand + text: Styret i borettslaget lurer på hva som haster mest av tak, fasade og rør. Vi trenger noen som kan gå over byggene og si hva det står til. +- id: sprekk + need: tilstand + text: Det har kommet en sprekk midt på stueveggen og jeg vet ikke om det er farlig. Kan noen komme og se på det? +- id: tilbygg + need: prosjekt + text: Vi vil bygge på et tilbygg på lageret vårt og trenger noen som kan beskrive arbeidet så vi kan hente inn priser fra entreprenører. +- id: skole-i-drift + need: prosjekt + text: Skolen skal utvides mens den er i drift. Vi trenger en beskrivelse og en fremdriftsplan med byggetrinn. +- id: soke-garasje + need: soknad + text: Tegningene til garasjen er ferdige, men jeg aner ikke hvordan jeg søker kommunen. Kan dere ta søknaden? +- id: ansvarsrett + need: soknad + text: Vi har prosjektert ombyggingen selv, men mangler noen med ansvarsrett som kan stå for søknaden. +tones: [] diff --git a/questions/decide/prosjekt.yaml b/questions/decide/prosjekt.yaml new file mode 100644 index 0000000..f364ec5 --- /dev/null +++ b/questions/decide/prosjekt.yaml @@ -0,0 +1,21 @@ +name: Vil du gå videre med tilbudet? +description: Tilbudet på prosjekteringen har du fått i egen e-post fra oss. Her sier du ja eller nei. +alternatives: +- name: Ja, jeg godtar tilbudet + description: Vi setter i gang. Du får en innlogging på e-post, der du følger oppdraget og henter dokumentene når de er klare. + self_transition: + bucket: prosjekteringer + to: akseptert + from: + - tilbud + label: Godta tilbudet +- name: Nei takk + description: Henvendelsen avsluttes hos oss uten oppdrag. Du kan når som helst sende en ny. + self_transition: + bucket: prosjekteringer + to: avslatt + from: + - befaring + - open + - tilbud + label: Takk nei diff --git a/questions/decide/soknad.yaml b/questions/decide/soknad.yaml new file mode 100644 index 0000000..b511d84 --- /dev/null +++ b/questions/decide/soknad.yaml @@ -0,0 +1,21 @@ +name: Vil du gå videre med tilbudet? +description: Tilbudet på byggesøknaden har du fått i egen e-post fra oss. Her sier du ja eller nei. +alternatives: +- name: Ja, jeg godtar tilbudet + description: Vi setter i gang. Du får en innlogging på e-post, der du følger oppdraget og henter dokumentene når de er klare. + self_transition: + bucket: soknader + to: akseptert + from: + - tilbud + label: Godta tilbudet +- name: Nei takk + description: Henvendelsen avsluttes hos oss uten oppdrag. Du kan når som helst sende en ny. + self_transition: + bucket: soknader + to: avslatt + from: + - befaring + - open + - tilbud + label: Takk nei diff --git a/questions/decide/tilstand.yaml b/questions/decide/tilstand.yaml new file mode 100644 index 0000000..175c7d9 --- /dev/null +++ b/questions/decide/tilstand.yaml @@ -0,0 +1,21 @@ +name: Vil du gå videre med tilbudet? +description: Tilbudet på tilstandsrapporten har du fått i egen e-post fra oss. Her sier du ja eller nei. +alternatives: +- name: Ja, jeg godtar tilbudet + description: Vi setter i gang. Du får en innlogging på e-post, der du følger oppdraget og henter dokumentene når de er klare. + self_transition: + bucket: tilstandsrapporter + to: akseptert + from: + - tilbud + label: Godta tilbudet +- name: Nei takk + description: Henvendelsen avsluttes hos oss uten oppdrag. Du kan når som helst sende en ny. + self_transition: + bucket: tilstandsrapporter + to: avslatt + from: + - befaring + - open + - tilbud + label: Takk nei diff --git a/questions/index.yaml b/questions/index.yaml index 557d388..ca3cb13 100644 --- a/questions/index.yaml +++ b/questions/index.yaml @@ -1,283 +1,264 @@ -# Klingenberg Bygg — carried over from the earliest lysbue -# (klingenbergbygg/kundeportal questions.ts), the ancestor of this -# whole question format. Wording kept verbatim. name: Hvordan inkluderer vi ditt bygg i framtiden? -description: > - Med vår erfaring får vi kartlagt **tilstand**, utarbeidet - **prosjekt** og godkjent **søknad** for ditt bygg. +description: Med vår erfaring får vi kartlagt **tilstand**, utarbeidet **prosjekt** og godkjent **søknad** for ditt bygg. responsible: name: Fredrik Borch Lynghaug contact: fredrik@klingenbergbygg.no -# Bildeserien: det vi har bygd og undersøkt, tvers over skjermen under -# spørsmålet. Bildetekstene er beskrivelsene som ligger i bildene selv. +alternatives: +- name: Dette gjør vi + description: For kommuner, borettslag, bedrifter og private. + features: + - name: Tilstand, målt og dokumentert + description: Vi utarbeider tilstandsrapporter etter NS-EN 3424 og NS 3423, med befaring, materialprøver og termofotografering. Skal bygget rives, leverer vi miljøsaneringsrapport; energibruk og besparelser hører med i vurderingen. Vi har samarbeidet med [Drammen Kommune](https://drammen.kommune.no), [Nordre Follo Kommune](https://nordrefollo.kommune.no) og [Bølerskogens Borettslag](https://bolerskogenborettslag.no/). + - name: Prosjekt og søknad, med ansvarsrett + description: 'Vi lager arbeidsbeskrivelse opp mot [NS 3420](https://standard.no/fagomrader/ns-3420-/) og fremdriftsplan, og utarbeider byggesøknaden. Vi har sentral [godkjenning](https://sgregister.dibk.no/enterprises/976015711) innen flere fagområder og kan stå med det offentligrettslige ansvaret. Samarbeidspartner: [Westra Engineering AS](https://www.westra-engineering.no/).' +- name: Få kartlagt byggets tilstand + description: Vi utarbeider tilstandsrapporter som representerer bygget med hensyn til fremtidige mål. + action: /received/tilstand + consequence: + - Kom i gang + record_as: tilstandsrapporter + features: + - name: Slik går det videre + description: Vi avtaler befaring og sender deg et tilbud. Du sier selv ja eller nei, og med et ja får du en innlogging der du følger oppdraget og henter dokumentene. + icon: lucide:route + - name: Hvem leser dette + description: Fredrik på kontoret leser henvendelsen og tar kontakt. Du når ham også på fredrik@klingenbergbygg.no. + icon: lucide:users + - name: Om bygget + requirements: + - name: name + label: Navn + type: text + placeholder: Navn + - name: email + label: E-post + type: email + placeholder: bruker@eksempel.no + - name: telefon + label: Telefon + type: tel + optional: true + placeholder: Telefonnummer + - name: eiendom + label: Hva slags eiendom er det? + type: select + options: + - Skole eller annet offentlig bygg + - Borettslag eller sameie + - Næringsbygg + - Enebolig + - Leilighet + - Fritidsbolig + - Annet + - name: adresse + label: Hvor ligger eiendommen? + type: text + placeholder: Adresse + - name: mangler + label: Hvilke mangler ønskes adressert? + type: textarea + optional: true + placeholder: Forfall, skader eller annet… + - name: tegninger + label: Bilder, tegninger, skisser eller video + type: file + optional: true + description: Det vi trenger for å komme på befaring. Har du tegninger, bilder eller video, tar vi gjerne imot dem. + icon: lucide:clipboard-list + encouragements: + - Mindre stillstand etter dette. +- name: Prosjektér dine planer med oss + description: Ivareta eksisterende ressurser for et velfungerende og helhetlig bygg. + action: /received/prosjekt + consequence: + - Start samarbeidet + record_as: prosjekteringer + features: + - name: Slik går det videre + description: Vi avtaler befaring og sender deg et tilbud. Du sier selv ja eller nei, og med et ja får du en innlogging der du følger oppdraget og henter dokumentene. + icon: lucide:route + - name: Hvem leser dette + description: Fredrik på kontoret leser henvendelsen og tar kontakt. Du når ham også på fredrik@klingenbergbygg.no. + icon: lucide:users + - name: Om planene + requirements: + - name: name + label: Navn + type: text + placeholder: Navn + - name: email + label: E-post + type: email + placeholder: bruker@eksempel.no + - name: telefon + label: Telefon + type: tel + optional: true + placeholder: Telefonnummer + - name: adresse + label: Hvor ligger eiendommen? + type: text + placeholder: Adresse + - name: planer + label: Hva er dine planer for bygget? + type: textarea + placeholder: Ønsker for bygget… + - name: oppstart + label: Ønsket start + type: date + optional: true + - name: skisser + label: Bilder, CAD-filer og skisser + type: file + optional: true + description: Beskriv hva du ønsker for bygget. Har du noe digitalt å vise oss, blir det lettere å vite hvor vi skal starte. + icon: lucide:ruler + encouragements: + - Gi det beste grunnlaget for utførelse. +- name: Ta det første spadetaket med en godkjent søknad + description: Er bygget ferdig prosjektert, kan vi utarbeide en byggesøknad og utførelsesbeskrivelse for offentlig godkjenning. + action: /received/soknad + consequence: + - Send henvendelse + record_as: soknader + features: + - name: Slik går det videre + description: Vi går gjennom det du har, avtaler befaring eller forhåndskonferanse, og sender deg et tilbud. Du sier selv ja eller nei, og med et ja får du en innlogging der du følger søknaden og henter dokumentene. + icon: lucide:route + - name: Hvem leser dette + description: Fredrik på kontoret leser henvendelsen og tar kontakt. Du når ham også på fredrik@klingenbergbygg.no. + icon: lucide:users + - name: Om tiltaket + requirements: + - name: name + label: Navn + type: text + placeholder: Navn + - name: email + label: E-post + type: email + placeholder: bruker@eksempel.no + - name: telefon + label: Telefon + type: tel + optional: true + placeholder: Telefonnummer + - name: adresse + label: Hvor ligger eiendommen? + type: text + placeholder: Adresse + - name: tiltak + label: Hva går tiltaket ut på? + type: textarea + placeholder: Tilbygg, ombygging, nybygg… + - name: tegninger + label: Tegninger og prosjektering + type: file + optional: true + description: Hva skal bygges, og hvor. Avhengig av størrelsen kan vi holde forhåndskonferanse med kommunen først. + icon: lucide:file-text + encouragements: + - Nesten som å ha gravemaskin! slideshow: max_height: 60 slides: - - image: images/bildeserie/01.webp - width: 1867 - height: 1400 - caption: Tilstandsanalyse for politisk vurdering. - - image: images/bildeserie/02.webp - width: 2365 - height: 1400 - caption: Tilleggsisolert fasade uten fasadeendring. Tanum skole. - - image: images/bildeserie/03.webp - width: 1867 - height: 1400 - caption: Fundamenteringen av brannstasjonen i Ytre Enebakk - - image: images/bildeserie/04.webp - width: 1867 - height: 1400 - caption: Gammel stjernehimmel skal fornyes - - image: images/bildeserie/05.webp - width: 1050 - height: 1400 - caption: Sprekk midt på stuevegg - - image: images/bildeserie/06.webp - width: 1867 - height: 1400 - caption: Snart klart for overlevering! Løvenstad omsorgsboliger. - - image: images/bildeserie/07.webp - width: 1867 - height: 1400 - caption: Omlegging av vannforsyning før etablering av nye boliger - - image: images/bildeserie/08.webp - width: 1777 - height: 1400 - caption: Utbedring parkett i gymsal, sliping og lakking. - - image: images/bildeserie/09.webp - width: 3629 - height: 1400 - caption: Tilbygg på skole i drift, i Ås - - image: images/bildeserie/10.webp - width: 3207 - height: 1400 - caption: Fornying kantine Det Norske Teatret - - image: images/bildeserie/11.webp - width: 1050 - height: 1400 - caption: Solid veggprofil tilpasset lyd- og brannkrav - - image: images/bildeserie/12.webp - width: 1867 - height: 1400 - caption: Nye vinduer med tradisjonelt utseende «Restover»-glass som avslører utsikten fra Munkeramme på Hvitsten - - image: images/bildeserie/13.webp - width: 2571 - height: 1400 - caption: Kjerneved til verandaen og inngangspartiet til Muncheramme - - image: images/bildeserie/14.webp - width: 1050 - height: 1400 - caption: Drenering og riktige rammer før kunstgressbanen legges mesterfullt ned helt uten gummikuler - - image: images/bildeserie/15.webp - width: 2098 - height: 1400 - caption: Navnebror sprenger plass til ny brannstasjon - - image: images/bildeserie/16.webp - width: 1283 - height: 1400 - caption: Kontroll av betong før støping - - image: images/bildeserie/17.webp - width: 1050 - height: 1400 - caption: Etablering av ny byggekran - - image: images/bildeserie/18.webp - width: 1050 - height: 1400 - caption: Armeringskontroll før støping - - image: images/bildeserie/19.webp - width: 1867 - height: 1400 - caption: Brannstasjonens tårn under oppføring blir også klatrevegg - - image: images/bildeserie/20.webp - width: 1867 - height: 1400 - caption: Her heises Moelvens modulskole i Vestby på plass. Den blir stående i 10 år. - - image: images/bildeserie/21.webp - width: 1867 - height: 1400 - caption: Nyetablering av vei. - - image: images/bildeserie/22.webp - width: 838 - height: 1400 - caption: Støpefeil med frosset treverk i søyle fra 1960, avdekket og utbedret - - image: images/bildeserie/23.webp - width: 2095 - height: 1400 - caption: Nytt kunstgress med varme på Fredrikstad stasjon. - - image: images/bildeserie/24.webp - width: 1050 - height: 1400 - caption: Sydvendte fasader er utsatt for slagregn. Dette bygget er på byantikvarens gule liste. - - image: images/bildeserie/25.webp - width: 1487 - height: 1400 - caption: pH-test av borprøver i mur fra forskjellige dybder -alternatives: - - name: Få kartlagt byggets tilstand - description: > - Vi utarbeider tilstandsrapporter som representerer bygget med - hensyn til fremtidige mål. - action: /kontakt - consequence: [Kom i gang] - record_as: kb_henvendelser - encouragements: - - Mindre stillstand etter dette. - features: - - name: Befaring - description: > - For å utarbeide en rapport kreves det befaring hvor en rekke - undersøkelser for å måle hvilken forfatning bygget er i må - til, ved hjelp av materialprøver, termofotografering og andre - fremgangsmåter. - icon: lucide:clipboard-check - requirements: - - name: building - label: Hva slags eiendom er det? - type: select - options: [Leilighet, Enebolig, Fritidsbolig, Næringsbygg, Annet] - - name: adresse - label: Hvor ligger eiendommen? - placeholder: Adresse - optional: true - - name: Tegninger - description: > - Om byggtekniske tegninger mangler kan vi etterspørre dem fra - det lokale bygningskontoret, og om du sitter på egne er de - også ønskelig å få med. Vi kan også ta imot en filmsnutt av - huset eller relevante rom for – om mulig – å lage en punktsky - å ta utgangspunkt i. - icon: lucide:pencil-ruler - requirements: - - name: tegninger - label: Bilder, CAD-filer, skisser eller video - type: file - optional: true - - name: Dokumentasjon - description: > - Vi tar imot all mulig tilgjengelig dokumentasjon av - vedlikehold og endringer som er gjort på bygget i nyere tid, - med takk. - icon: lucide:file-text - requirements: - - name: dokumentasjon - label: Vedlegg - type: file - optional: true - - name: Vedlikeholdsvurdering - description: > - Beskriv hva som behøves av kartlegging, vedlikehold og - utbedringer i rapporten. - icon: lucide:wrench - requirements: - - name: damage - label: Hvilke mangler ønskes adressering? - placeholder: Forfall, skader eller annet… - type: textarea - - name: Standarder - description: > - Med rikelig kompetanse innen mange prosjekter vet vi å følge - godkjente standarder for rapportering. - icon: lucide:book-check - requirements: - - name: standard - label: Velg en standard vi vet å levere - type: select - options: [NS-EN 3424, NS-3423:2004, Egendefinert] - - name: Rivning - description: > - Om bygg skal rives, kan vi levere en utarbeidet - miljøsaneringsrapport. - icon: lucide:hammer - - name: Energibruk - description: > - Energiforbruk og besparelser ved endringer i bygget er også - en naturlig del av vår vurdering. - icon: lucide:zap - - name: Vi har samarbeidet med - description: > - [Drammen Kommune](https://drammen.kommune.no) · - [Nordre Follo Kommune](https://nordrefollo.kommune.no) · - [Bølerskogens Borettslag](https://bolerskogenborettslag.no/) - icon: lucide:handshake - - name: Prosjektér dine planer med oss - description: > - Ivareta eksisterende ressurser for et velfungerende og helhetlig - bygg. - action: /kontakt - consequence: [Start samarbeidet] - record_as: kb_henvendelser - encouragements: - - Gi det beste grunnlaget for utførelse. - features: - - name: Tegninger - description: > - Om du allerede har noe digitalt du kan vise oss, blir det - lettere å vite hvor vi skal starte. - icon: lucide:pencil-ruler - requirements: - - name: sketches - label: Bilder, CAD-filer og skisser - type: file - optional: true - - name: Arbeidsbeskrivelse - description: > - For en enklest mulig utførelse lager vi en så detaljert - beskrivelse av arbeidsmengdene som nødvendig, gjerne opp mot - standarden [NS 3420](https://standard.no/fagomrader/ns-3420-/). - icon: lucide:list-checks - requirements: - - name: wishes - label: Hva er din arbeidsbeskrivelse for prosjektet? - placeholder: Ønsker for bygget… - type: textarea - - name: Fremdriftsplan - description: > - Beskrivelse av prosjektets byggetrinn skaper ryddige - kontraktsmessige forhold og klare tidsrammer. - icon: lucide:calendar-range - requirements: - - name: start - label: Ønsket start - type: date - optional: true - - name: end - label: Ønsket ferdigstilt - type: date - optional: true - - name: Samarbeidspartner - description: > - [Westra Engineering AS](https://www.westra-engineering.no/) - icon: lucide:users - - name: Ta det første spadetaket med en godkjent søknad - description: > - Er bygget ferdig prosjektert så kan vi utarbeide en byggesøknad - og utførelsesbeskrivelse for offentlig godkjenning. - action: /kontakt - consequence: [Send henvendelse] - record_as: kb_henvendelser - encouragements: - - Nesten som å ha gravemaskin! - features: - - name: Ansvarsrett i byggesaker - description: > - Vi kan stå med det offentligrettslige ansvaret for de - fagområdene som kreves for utførelse. - icon: lucide:shield-check - - name: Sentral godkjenning - description: > - Vi har sentral - [godkjenning](https://sgregister.dibk.no/enterprises/976015711) - innen flere fagområder. - icon: lucide:badge-check - - name: Lokal godkjenning - description: > - Etter behov skaffer vi godkjenning for valgte fagområder, om - vi har den selv eller om vi henter den eksternt. - icon: lucide:map-pin - - name: Forhåndskonferanse - description: > - Avhengig av prosjektstørrelse kan det være avklarende å holde - forhåndskonferanse som redegjør for hvilke krav kommunen kan - sette for ønsket prosjekt. - icon: lucide:messages-square + - image: images/bildeserie/01.webp + width: 1867 + height: 1400 + caption: Tilstandsanalyse for politisk vurdering. + - image: images/bildeserie/02.webp + width: 2365 + height: 1400 + caption: Tilleggsisolert fasade uten fasadeendring. Tanum skole. + - image: images/bildeserie/03.webp + width: 1867 + height: 1400 + caption: Fundamenteringen av brannstasjonen i Ytre Enebakk + - image: images/bildeserie/04.webp + width: 1867 + height: 1400 + caption: Gammel stjernehimmel skal fornyes + - image: images/bildeserie/05.webp + width: 1050 + height: 1400 + caption: Sprekk midt på stuevegg + - image: images/bildeserie/06.webp + width: 1867 + height: 1400 + caption: Snart klart for overlevering! Løvenstad omsorgsboliger. + - image: images/bildeserie/07.webp + width: 1867 + height: 1400 + caption: Omlegging av vannforsyning før etablering av nye boliger + - image: images/bildeserie/08.webp + width: 1777 + height: 1400 + caption: Utbedring parkett i gymsal, sliping og lakking. + - image: images/bildeserie/09.webp + width: 3629 + height: 1400 + caption: Tilbygg på skole i drift, i Ås + - image: images/bildeserie/10.webp + width: 3207 + height: 1400 + caption: Fornying kantine Det Norske Teatret + - image: images/bildeserie/11.webp + width: 1050 + height: 1400 + caption: Solid veggprofil tilpasset lyd- og brannkrav + - image: images/bildeserie/12.webp + width: 1867 + height: 1400 + caption: Nye vinduer med tradisjonelt utseende «Restover»-glass som avslører utsikten fra Munkeramme på Hvitsten + - image: images/bildeserie/13.webp + width: 2571 + height: 1400 + caption: Kjerneved til verandaen og inngangspartiet til Muncheramme + - image: images/bildeserie/14.webp + width: 1050 + height: 1400 + caption: Drenering og riktige rammer før kunstgressbanen legges mesterfullt ned helt uten gummikuler + - image: images/bildeserie/15.webp + width: 2098 + height: 1400 + caption: Navnebror sprenger plass til ny brannstasjon + - image: images/bildeserie/16.webp + width: 1283 + height: 1400 + caption: Kontroll av betong før støping + - image: images/bildeserie/17.webp + width: 1050 + height: 1400 + caption: Etablering av ny byggekran + - image: images/bildeserie/18.webp + width: 1050 + height: 1400 + caption: Armeringskontroll før støping + - image: images/bildeserie/19.webp + width: 1867 + height: 1400 + caption: Brannstasjonens tårn under oppføring blir også klatrevegg + - image: images/bildeserie/20.webp + width: 1867 + height: 1400 + caption: Her heises Moelvens modulskole i Vestby på plass. Den blir stående i 10 år. + - image: images/bildeserie/21.webp + width: 1867 + height: 1400 + caption: Nyetablering av vei. + - image: images/bildeserie/22.webp + width: 838 + height: 1400 + caption: Støpefeil med frosset treverk i søyle fra 1960, avdekket og utbedret + - image: images/bildeserie/23.webp + width: 2095 + height: 1400 + caption: Nytt kunstgress med varme på Fredrikstad stasjon. + - image: images/bildeserie/24.webp + width: 1050 + height: 1400 + caption: Sydvendte fasader er utsatt for slagregn. Dette bygget er på byantikvarens gule liste. + - image: images/bildeserie/25.webp + width: 1487 + height: 1400 + caption: pH-test av borprøver i mur fra forskjellige dybder diff --git a/questions/kontakt.yaml b/questions/kontakt.yaml deleted file mode 100644 index 9e7f644..0000000 --- a/questions/kontakt.yaml +++ /dev/null @@ -1,58 +0,0 @@ -# The contact-method question — /tilstand, /prosjekter and /godkjent -# all led here in the original; the service choice is already recorded, -# so one page serves them all. -name: Hvordan ønsker du at vi skal høre fra deg? -description: > - Takk for henvendelsen og at du velger å jobbe med oss! -alternatives: - - name: Vi skriver en e-post til deg - description: > - Legg igjen din e-postadresse og vi følger deg opp videre. - action: /takk - consequence: [Fullfør] - record_as: kb_henvendelser - features: - - name: Hvem? - description: > - Hvem skal ha en tilbakemelding? - icon: lucide:mail - requirements: - - name: name - label: Navn - placeholder: Navn - - name: email - label: E-post - type: email - placeholder: bruker@eksempel.no - - name: Vi ringer deg - description: > - Vi gleder oss til å gi deg tilbakemelding. - action: /takk - consequence: [Fullfør] - record_as: kb_henvendelser - features: - - name: Hvem - description: > - Gi oss et telefonnummer vi kan gi tilbakemelding på. - icon: lucide:phone - requirements: - - name: name - label: Navn - placeholder: Navn - - name: phonenumber - label: Telefonnummer - type: tel - placeholder: Telefonnummer - - name: Når - description: > - Hvilket tidsvindu kan passe best for deg? - icon: lucide:clock - requirements: - - name: weekday - label: Dag - type: select - options: [Umiddelbart, Mandag, Tirsdag, Onsdag, Torsdag, Fredag] - - name: time - label: Tid på dagen - type: select - options: [Formiddag, Ettermiddag, Kveld] diff --git a/questions/kontor/_section.yaml b/questions/kontor/_section.yaml new file mode 100644 index 0000000..1b990a5 --- /dev/null +++ b/questions/kontor/_section.yaml @@ -0,0 +1 @@ +qualifies: kontor diff --git a/questions/kontor/index.yaml b/questions/kontor/index.yaml new file mode 100644 index 0000000..2d796cc --- /dev/null +++ b/questions/kontor/index.yaml @@ -0,0 +1,217 @@ +name: Hva ligger på pulten nå? +description: Alle henvendelser og oppdrag, fra første melding til levert dokument. +responsible: + name: Fredrik Borch Lynghaug + contact: fredrik@klingenbergbygg.no +alternatives: +- name: Leverte dokumenter + description: Rapporter, tegninger og vedtak som er sendt til kunder. + action: /kontor + consequence: + - Bekreft + features: + - name: Leveranser + description: Hver rad er ett dokument en kunde har fått. Arkiver når saken er avsluttet. + resource: + source: + kind: kv + bucket: leveranser + requires_group: kontor + transitions: + - from: open + to: arkivert + label: Arkiver +- name: Prosjekteringer + description: Henvendelser om prosjektering, fra mottatt til levert. + action: /kontor + consequence: + - Bekreft + features: + - name: Prosjekteringer + description: Hver rad er én henvendelse. Knappene fører opp det du nettopp har gjort; kunden får e-post ved befaring, tilbud og levering, og sier selv ja til tilbudet. + resource: + source: + kind: kv + bucket: prosjekteringer + requires_group: kontor + transitions: + - from: akseptert + to: i_arbeid + label: Arbeidet er i gang + - from: befaring + to: tilbud + label: Tilbud sendt + - from: befaring + to: avslatt + label: Avslutt uten oppdrag + - from: i_arbeid + to: levert + label: Levert + - from: open + to: befaring + label: Befaring avtalt + - from: open + to: avslatt + label: Avslutt uten oppdrag + - from: tilbud + to: avslatt + label: Avslutt uten oppdrag +- name: Byggesøknader + description: Henvendelser om byggesøknad, fra mottatt til levert. + action: /kontor + consequence: + - Bekreft + features: + - name: Byggesøknader + description: Hver rad er én henvendelse. Knappene fører opp det du nettopp har gjort; kunden får e-post ved befaring, tilbud og levering, og sier selv ja til tilbudet. + resource: + source: + kind: kv + bucket: soknader + requires_group: kontor + transitions: + - from: akseptert + to: i_arbeid + label: Arbeidet er i gang + - from: befaring + to: tilbud + label: Tilbud sendt + - from: befaring + to: avslatt + label: Avslutt uten oppdrag + - from: i_arbeid + to: levert + label: Levert + - from: open + to: befaring + label: Befaring avtalt + - from: open + to: avslatt + label: Avslutt uten oppdrag + - from: tilbud + to: avslatt + label: Avslutt uten oppdrag +- name: Tilstandsrapporter + description: Henvendelser om tilstandsrapport, fra mottatt til levert. + action: /kontor + consequence: + - Bekreft + features: + - name: Tilstandsrapporter + description: Hver rad er én henvendelse. Knappene fører opp det du nettopp har gjort; kunden får e-post ved befaring, tilbud og levering, og sier selv ja til tilbudet. + resource: + source: + kind: kv + bucket: tilstandsrapporter + requires_group: kontor + transitions: + - from: akseptert + to: i_arbeid + label: Arbeidet er i gang + - from: befaring + to: tilbud + label: Tilbud sendt + - from: befaring + to: avslatt + label: Avslutt uten oppdrag + - from: i_arbeid + to: levert + label: Levert + - from: open + to: befaring + label: Befaring avtalt + - from: open + to: avslatt + label: Avslutt uten oppdrag + - from: tilbud + to: avslatt + label: Avslutt uten oppdrag +- name: Lever et dokument til en kunde + description: Rapporten, tegningene eller vedtaket. Kunden får e-post og henter det innlogget. + action: /kontor/leveranse + consequence: + - Ny leveranse +- name: Gi en kollega tilgang + description: De får en konto og plass på kontoret, og ser de samme sakene som deg. + action: /kontor + consequence: + - Inviter + invite: + group: kontor + features: + - name: Hvem + description: Navnet deres, og adressen kontoen og engangslenken går til. + requirements: + - name: name + label: Navn + - name: email + label: E-post + type: email +- name: Gi en kunde tilgang + description: For en kunde som ikke kom inn gjennom et tilbud. De får en konto og ser sine egne oppdrag. + action: /kontor + consequence: + - Inviter + invite: + group: kunder + features: + - name: Hvem + description: Navnet deres, og adressen kontoen og engangslenken går til. + requirements: + - name: name + label: Navn + - name: email + label: E-post + type: email +- name: Sendte invitasjoner + description: Hver invitasjon og hvor den står. En lenke som går ut ubrukt, kan sendes på nytt. + action: /kontor + consequence: + - Bekreft + features: + - name: Hvem som er invitert + description: Hver rad er én invitasjon. Den blir ferdig av seg selv når personen logger inn, og står som utløpt når lenken gikk ut ubrukt. + resource: + source: + kind: kv + bucket: portal_invites + requires_group: kontor + transitions: + - from: open + to: done + label: Er inne + - from: expired + to: open + label: Send på nytt + - from: expired + to: done + label: Er inne +- name: Forslag til endringer på siden + description: Det de som står som ansvarlige for et spørsmål, har foreslått å endre. + action: /kontor + consequence: + - Bekreft + features: + - name: Forslag + description: Hver rad er ett forslag, med siden det gjelder. + resource: + source: + kind: kv + bucket: portal_edit_suggestions + requires_group: kontor + transitions: + - from: open + to: discussed + label: Vi ser på det + - from: open + to: done + label: Endringen er gjort + - from: open + to: declined + label: Gjøres ikke + - from: discussed + to: done + label: Endringen er gjort + - from: discussed + to: declined + label: Gjøres ikke diff --git a/questions/kontor/leveranse-sent.yaml b/questions/kontor/leveranse-sent.yaml new file mode 100644 index 0000000..7c0e187 --- /dev/null +++ b/questions/kontor/leveranse-sent.yaml @@ -0,0 +1,5 @@ +name: Hva skjer nå? +description: Dokumentet er levert. +alternatives: +- name: Kunden har fått beskjed + description: Kunden har fått e-post og finner dokumentet på sin side. Leveransen ligger i listen på pulten til du arkiverer den. diff --git a/questions/kontor/leveranse.yaml b/questions/kontor/leveranse.yaml new file mode 100644 index 0000000..d7bd53e --- /dev/null +++ b/questions/kontor/leveranse.yaml @@ -0,0 +1,38 @@ +followup: false +name: Hvilket dokument er klart til kunden? +description: Ferdige rapporter, tegninger og vedtak leveres her. +responsible: + name: Fredrik Borch Lynghaug + contact: fredrik@klingenbergbygg.no +alternatives: +- name: Lever et dokument til en kunde + description: Last opp rapporten, tegningene eller vedtaket. Kunden får e-post og henter dokumentet innlogget. + action: /kontor/leveranse-sent + consequence: + - Lever + record_as: leveranser + features: + - name: Hva skjer + description: Dokumentet legges på kundens side, og kunden får e-post om at det ligger der. + icon: lucide:route + - name: Hvem ser dette + description: Kunden med den e-postadressen du oppgir, og kontoret. + icon: lucide:users + - name: Leveransen + requirements: + - name: email + label: Kundens e-post + type: email + placeholder: kunde@eksempel.no + value: '{user.email}' + - name: hva + label: Hva er levert + type: text + placeholder: Tilstandsrapport for Storgata 12 + - name: dokument + label: Dokument + type: file + description: Bruk den e-postadressen kunden logger inn med. + icon: lucide:send + encouragements: + - Kunden får beskjed med en gang. diff --git a/questions/kunder/_section.yaml b/questions/kunder/_section.yaml new file mode 100644 index 0000000..3c26dae --- /dev/null +++ b/questions/kunder/_section.yaml @@ -0,0 +1 @@ +qualifies: kunder diff --git a/questions/kunder/index.yaml b/questions/kunder/index.yaml new file mode 100644 index 0000000..08f9800 --- /dev/null +++ b/questions/kunder/index.yaml @@ -0,0 +1,74 @@ +name: Hvor står oppdraget ditt? +description: Her følger du dine egne oppdrag hos Klingenberg Bygg og henter dokumentene vi har levert. +responsible: + name: Fredrik Borch Lynghaug + contact: fredrik@klingenbergbygg.no +alternatives: +- name: Dokumenter til deg + description: Rapporter, tegninger og vedtak vi har levert. Trykk på filnavnet for å hente dokumentet. + action: /kunder + consequence: + - Bekreft + features: + - name: Dokumenter + description: Hver rad er ett dokument vi har levert til deg. + resource: + source: + kind: kv + bucket: leveranser + requires_group: kunder + transitions: [] + where: + field: email + equals: '{user.email}' +- name: Prosjekteringer + description: Dine oppdrag om prosjektering, og hvor langt de har kommet. + action: /kunder + consequence: + - Bekreft + features: + - name: Prosjekteringer + description: Hver rad er ett av dine egne oppdrag og hvor langt det har kommet. + resource: + source: + kind: kv + bucket: prosjekteringer + requires_group: kunder + transitions: [] + where: + field: email + equals: '{user.email}' +- name: Byggesøknader + description: Dine oppdrag om byggesøknad, og hvor langt de har kommet. + action: /kunder + consequence: + - Bekreft + features: + - name: Byggesøknader + description: Hver rad er ett av dine egne oppdrag og hvor langt det har kommet. + resource: + source: + kind: kv + bucket: soknader + requires_group: kunder + transitions: [] + where: + field: email + equals: '{user.email}' +- name: Tilstandsrapporter + description: Dine oppdrag om tilstandsrapport, og hvor langt de har kommet. + action: /kunder + consequence: + - Bekreft + features: + - name: Tilstandsrapporter + description: Hver rad er ett av dine egne oppdrag og hvor langt det har kommet. + resource: + source: + kind: kv + bucket: tilstandsrapporter + requires_group: kunder + transitions: [] + where: + field: email + equals: '{user.email}' diff --git a/questions/received/prosjekt.yaml b/questions/received/prosjekt.yaml new file mode 100644 index 0000000..7e5b681 --- /dev/null +++ b/questions/received/prosjekt.yaml @@ -0,0 +1,5 @@ +name: Vent på svar på din henvendelse! +description: Vi vil gå gjennom din henvendelse og om mulig komme med et tilbud så fort vi kan. +alternatives: +- name: Vi tar kontakt for befaring + description: Du har fått en e-post som bekrefter at henvendelsen om prosjektering er mottatt. Fredrik tar kontakt for å avtale befaring; spørsmål i mellomtiden går til fredrik@klingenbergbygg.no. diff --git a/questions/received/soknad.yaml b/questions/received/soknad.yaml new file mode 100644 index 0000000..673ac16 --- /dev/null +++ b/questions/received/soknad.yaml @@ -0,0 +1,5 @@ +name: Vent på svar på din henvendelse! +description: Vi vil gå gjennom din henvendelse og om mulig komme med et tilbud så fort vi kan. +alternatives: +- name: Vi tar kontakt for befaring + description: Du har fått en e-post som bekrefter at henvendelsen om byggesøknad er mottatt. Fredrik tar kontakt for å avtale befaring; spørsmål i mellomtiden går til fredrik@klingenbergbygg.no. diff --git a/questions/received/tilstand.yaml b/questions/received/tilstand.yaml new file mode 100644 index 0000000..33827b0 --- /dev/null +++ b/questions/received/tilstand.yaml @@ -0,0 +1,5 @@ +name: Vent på svar på din henvendelse! +description: Vi vil gå gjennom din henvendelse og om mulig komme med et tilbud så fort vi kan. +alternatives: +- name: Vi tar kontakt for befaring + description: Du har fått en e-post som bekrefter at henvendelsen om tilstandsrapport er mottatt. Fredrik tar kontakt for å avtale befaring; spørsmål i mellomtiden går til fredrik@klingenbergbygg.no. diff --git a/questions/takk.yaml b/questions/takk.yaml deleted file mode 100644 index 26e84a1..0000000 --- a/questions/takk.yaml +++ /dev/null @@ -1,11 +0,0 @@ -followup: true -name: Vent på svar på din henvendelse! -description: > - Vi vil gå gjennom din henvendelse og om mulig komme med et tilbud så - fort vi kan. -alternatives: - - name: Tilbake til start - description: > - Der spørsmålet begynner. - action: / - consequence: [Tilbake] diff --git a/site.yaml b/site.yaml index 0922faf..208f1b8 100644 --- a/site.yaml +++ b/site.yaml @@ -4,3 +4,20 @@ wordmark_height: 2.6 lang: no stylesheet: custom.css favicon: images/logo.svg +# Avsenderen for e-post fra siden (gdo på kasse leverer). Svar går til +# Fredrik. +mail: + from: Klingenberg Bygg + reply_to: fredrik@klingenbergbygg.no + invite: + subject: Din innlogging hos {site_name} + body: 'Hei {name}, + + + Du har fått en konto hos {site_name}, med plass blant {group}. Velg passord eller passnøkkel her, lenken virker fram til {expires}: + + + {link} + + + Brukernavnet ditt er {username}. Etterpå logger du inn på {site}.' -- 2.56.0 From cad5d52481bbb8a41e5604c83f32a43ca4248dde Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 30 Sep 2026 19:18:42 +0200 Subject: [PATCH 02/11] =?UTF-8?q?Hvem=20best=C3=A5r=20Klingenberg=20Bygg?= =?UTF-8?q?=20av:=20erfaringene=20og=20menneskene,=20lagt=20inn=20fra=20ko?= =?UTF-8?q?ntoret=20med=20portrett?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt --- aggregates.yaml | 10 ++++++++ needs.yaml | 20 +++++++++++++++ questions/index.yaml | 17 ++++++++++++ questions/kontor/ansatt-sent.yaml | 10 ++++++++ questions/kontor/ansatt.yaml | 40 +++++++++++++++++++++++++++++ questions/kontor/index.yaml | 22 ++++++++++++++++ questions/status/ansatte/index.yaml | 20 +++++++++++++++ 7 files changed, 139 insertions(+) create mode 100644 questions/kontor/ansatt-sent.yaml create mode 100644 questions/kontor/ansatt.yaml create mode 100644 questions/status/ansatte/index.yaml diff --git a/aggregates.yaml b/aggregates.yaml index 1c8ade8..d6a46cc 100644 --- a/aggregates.yaml +++ b/aggregates.yaml @@ -1,4 +1,14 @@ aggregates: +- bucket: ansatte + initial: open + states: + open: + event: received + sluttet: + event: sluttet + transitions: + open: + - sluttet - bucket: leveranser initial: open states: diff --git a/needs.yaml b/needs.yaml index 3de3f3b..4783293 100644 --- a/needs.yaml +++ b/needs.yaml @@ -109,6 +109,26 @@ needs: open: levert arkivert: arkivert enters_as: kontor +- id: ansatt + who: kontoret, når noen begynner hos oss eller skal ha nytt portrett + wants: at den som vurderer oss ser hvem som gjør jobben + enters: /kontor/ansatt + via: Legg inn en ansatt + lands_in: ansatte + handled_by: kontor + stages: + - open + - sluttet + done_when: + - sluttet + success: + - sluttet + max_steps: 1 + max_fields: 4 + stage_words: + open: vises på forsiden + sluttet: sluttet + enters_as: kontor personas: - id: kommune-skole need: tilstand diff --git a/questions/index.yaml b/questions/index.yaml index ca3cb13..aedb0b4 100644 --- a/questions/index.yaml +++ b/questions/index.yaml @@ -11,6 +11,23 @@ alternatives: description: Vi utarbeider tilstandsrapporter etter NS-EN 3424 og NS 3423, med befaring, materialprøver og termofotografering. Skal bygget rives, leverer vi miljøsaneringsrapport; energibruk og besparelser hører med i vurderingen. Vi har samarbeidet med [Drammen Kommune](https://drammen.kommune.no), [Nordre Follo Kommune](https://nordrefollo.kommune.no) og [Bølerskogens Borettslag](https://bolerskogenborettslag.no/). - name: Prosjekt og søknad, med ansvarsrett description: 'Vi lager arbeidsbeskrivelse opp mot [NS 3420](https://standard.no/fagomrader/ns-3420-/) og fremdriftsplan, og utarbeider byggesøknaden. Vi har sentral [godkjenning](https://sgregister.dibk.no/enterprises/976015711) innen flere fagområder og kan stå med det offentligrettslige ansvaret. Samarbeidspartner: [Westra Engineering AS](https://www.westra-engineering.no/).' +- name: Hvem består Klingenberg Bygg av? + description: Mennesker, verdier og erfaringer. + features: + - name: Erfaringene + description: Skoler i drift, brannstasjoner, omsorgsboliger, kantina på Det Norske Teatret og en Munch-eiendom på Hvitsten. Vi har gått over, prosjektert og fulgt opp bygg for kommuner, borettslag, bedrifter og private, fra borprøver i gammel mur til kunstgress på Fredrikstad stasjon. + - name: Menneskene + description: De som går befaringene, skriver rapportene og står for søknadene. + icon: lucide:users + resource: + source: + kind: kv + bucket: ansatte + public: true + states: + - open + empty: Snart presenterer vi oss her. + jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {name: .name, rolle: .rolle, erfaring: .erfaring, portrett: .portrett}' - name: Få kartlagt byggets tilstand description: Vi utarbeider tilstandsrapporter som representerer bygget med hensyn til fremtidige mål. action: /received/tilstand diff --git a/questions/kontor/ansatt-sent.yaml b/questions/kontor/ansatt-sent.yaml new file mode 100644 index 0000000..d9d5822 --- /dev/null +++ b/questions/kontor/ansatt-sent.yaml @@ -0,0 +1,10 @@ +name: Lagt ut +description: Den ansatte vises nå blant menneskene på forsiden. +alternatives: +- name: Skal noen ned igjen? + description: 'Trykk «Tatt av forsiden» på raden deres i listen over ansatte på kontoret. Nytt portrett: legg personen inn på nytt, og ta den gamle raden av.' +- name: Se alle ansatte + description: '' + action: /status/ansatte + consequence: + - Åpne diff --git a/questions/kontor/ansatt.yaml b/questions/kontor/ansatt.yaml new file mode 100644 index 0000000..ecd8efc --- /dev/null +++ b/questions/kontor/ansatt.yaml @@ -0,0 +1,40 @@ +followup: false +name: Hvem skal vises på forsiden? +description: '' +responsible: + name: Fredrik Borch Lynghaug + contact: fredrik@klingenbergbygg.no +alternatives: +- name: Legg inn en ansatt + description: Navn, rolle, erfaring og portrett. Den ansatte vises på forsiden så snart du sender. + action: /kontor/ansatt-sent + consequence: + - Legg ut + record_as: ansatte + features: + - name: Hva skjer så + description: Personen vises på forsiden til du tar dem av igjen fra kontoret. + icon: lucide:route + - name: Hvem ser det + description: Alle som besøker siden. Portrettet vises som det er, så velg et bilde du er fornøyd med. + icon: lucide:users + - name: Den ansatte + requirements: + - name: name + label: Navn + type: text + value: '{user.name}' + - name: rolle + label: Rolle + type: text + placeholder: For eksempel daglig leder, rådgivende ingeniør + - name: erfaring + label: Erfaring + type: textarea + placeholder: Utdanning, fagområder, år i faget, bygg du er stolt av + - name: portrett + label: Portrett + type: file + accept: image/jpeg,image/png,image/webp + placeholder: Et stående bilde, gjerne tatt i dagslys + icon: lucide:user-plus diff --git a/questions/kontor/index.yaml b/questions/kontor/index.yaml index 2d796cc..2f59a12 100644 --- a/questions/kontor/index.yaml +++ b/questions/kontor/index.yaml @@ -4,6 +4,23 @@ responsible: name: Fredrik Borch Lynghaug contact: fredrik@klingenbergbygg.no alternatives: +- name: Ansatte på forsiden + description: Menneskene slik besøkende ser dem. + action: /kontor + consequence: + - Bekreft + features: + - name: Ansatte + description: Hver rad er én person på forsiden. + resource: + source: + kind: kv + bucket: ansatte + requires_group: kontor + transitions: + - from: open + to: sluttet + label: Tatt av forsiden - name: Leverte dokumenter description: Rapporter, tegninger og vedtak som er sendt til kunder. action: /kontor @@ -131,6 +148,11 @@ alternatives: action: /kontor/leveranse consequence: - Ny leveranse +- name: Legg inn en ansatt + description: Navn, rolle, erfaring og portrett, rett ut på forsiden. + action: /kontor/ansatt + consequence: + - Åpne - name: Gi en kollega tilgang description: De får en konto og plass på kontoret, og ser de samme sakene som deg. action: /kontor diff --git a/questions/status/ansatte/index.yaml b/questions/status/ansatte/index.yaml new file mode 100644 index 0000000..772b529 --- /dev/null +++ b/questions/status/ansatte/index.yaml @@ -0,0 +1,20 @@ +name: Hvem består Klingenberg Bygg av? +description: Menneskene som går befaringene, skriver rapportene og står for søknadene. +responsible: + name: Fredrik Borch Lynghaug + contact: fredrik@klingenbergbygg.no +alternatives: +- name: Menneskene + description: '' + features: + - name: Menneskene + description: Hver rad er én sak og hvor langt den har kommet. Navn og kontaktopplysninger vises ikke her. + resource: + source: + kind: kv + bucket: ansatte + public: true + states: + - open + empty: Snart presenterer vi oss her. + jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {name: .name, rolle: .rolle, erfaring: .erfaring, portrett: .portrett}' -- 2.56.0 From 56b30e126e172c01e7c39553212aea0b910ad803 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 30 Sep 2026 19:42:42 +0200 Subject: [PATCH 03/11] Portal v0.6.3 --- .gitea/workflows/deploy.yml | 2 +- .gitea/workflows/lint-and-reload.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 4ee8605..780216f 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -24,7 +24,7 @@ on: - .gitea/workflows/deploy.yml env: - PORTAL_RELEASE: v0.6.2 + PORTAL_RELEASE: v0.6.3 INSTANCE: klingenberg-portal jobs: diff --git a/.gitea/workflows/lint-and-reload.yml b/.gitea/workflows/lint-and-reload.yml index 1c3bcfa..167baa1 100644 --- a/.gitea/workflows/lint-and-reload.yml +++ b/.gitea/workflows/lint-and-reload.yml @@ -13,7 +13,7 @@ jobs: # site runs (PORTAL_RELEASE in deploy.yml). - name: lint env: - PORTAL_RELEASE: v0.6.2 + PORTAL_RELEASE: v0.6.3 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 -- 2.56.0 From 473826aad6913f2dde1ef83a09525cd00afc110e Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 30 Sep 2026 20:11:31 +0200 Subject: [PATCH 04/11] =?UTF-8?q?S=C3=B8knad=20p=C3=A5=20pause:=20kortet?= =?UTF-8?q?=20st=C3=A5r,=20uten=20skjema?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt --- needs.yaml | 1 + questions/index.yaml | 33 ++------------------------------- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/needs.yaml b/needs.yaml index 4783293..0671021 100644 --- a/needs.yaml +++ b/needs.yaml @@ -89,6 +89,7 @@ needs: i_arbeid: søknad under arbeid levert: søknad levert avslatt: avsluttet uten oppdrag + paused: true - id: leveranse who: kontoret, når en rapport, tegninger eller et vedtak er klart til kunden wants: at kunden får dokumentet og vet at det ligger der diff --git a/questions/index.yaml b/questions/index.yaml index aedb0b4..57ce39f 100644 --- a/questions/index.yaml +++ b/questions/index.yaml @@ -133,11 +133,11 @@ alternatives: encouragements: - Gi det beste grunnlaget for utførelse. - name: Ta det første spadetaket med en godkjent søknad - description: Er bygget ferdig prosjektert, kan vi utarbeide en byggesøknad og utførelsesbeskrivelse for offentlig godkjenning. + description: Er bygget ferdig prosjektert, kan vi utarbeide en byggesøknad og utførelsesbeskrivelse for offentlig godkjenning. Akkurat nå har vi ikke kapasitet til nye søknadsoppdrag; vi åpner igjen så snart vi kan. action: /received/soknad consequence: - Send henvendelse - record_as: soknader + disabled: true features: - name: Slik går det videre description: Vi går gjennom det du har, avtaler befaring eller forhåndskonferanse, og sender deg et tilbud. Du sier selv ja eller nei, og med et ja får du en innlogging der du følger søknaden og henter dokumentene. @@ -145,35 +145,6 @@ alternatives: - name: Hvem leser dette description: Fredrik på kontoret leser henvendelsen og tar kontakt. Du når ham også på fredrik@klingenbergbygg.no. icon: lucide:users - - name: Om tiltaket - requirements: - - name: name - label: Navn - type: text - placeholder: Navn - - name: email - label: E-post - type: email - placeholder: bruker@eksempel.no - - name: telefon - label: Telefon - type: tel - optional: true - placeholder: Telefonnummer - - name: adresse - label: Hvor ligger eiendommen? - type: text - placeholder: Adresse - - name: tiltak - label: Hva går tiltaket ut på? - type: textarea - placeholder: Tilbygg, ombygging, nybygg… - - name: tegninger - label: Tegninger og prosjektering - type: file - optional: true - description: Hva skal bygges, og hvor. Avhengig av størrelsen kan vi holde forhåndskonferanse med kommunen først. - icon: lucide:file-text encouragements: - Nesten som å ha gravemaskin! slideshow: -- 2.56.0 From c67160b6ffaefa6b4255726300b7b8b51bc375ff Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 30 Sep 2026 20:39:28 +0200 Subject: [PATCH 05/11] =?UTF-8?q?Hver=20ansatt=20retter=20sitt=20eget=20ko?= =?UTF-8?q?rt=20p=C3=A5=20forsiden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt --- needs.yaml | 4 ++-- questions/kontor/ansatt-sent.yaml | 8 ++++---- questions/kontor/ansatt.yaml | 22 +++++++++++----------- questions/kontor/index.yaml | 6 +++--- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/needs.yaml b/needs.yaml index 0671021..7a4ed15 100644 --- a/needs.yaml +++ b/needs.yaml @@ -111,10 +111,10 @@ needs: arkivert: arkivert enters_as: kontor - id: ansatt - who: kontoret, når noen begynner hos oss eller skal ha nytt portrett + who: en av oss på kontoret, som vil vise hvem hen er og hva hen kan wants: at den som vurderer oss ser hvem som gjør jobben enters: /kontor/ansatt - via: Legg inn en ansatt + via: Ditt kort på forsiden lands_in: ansatte handled_by: kontor stages: diff --git a/questions/kontor/ansatt-sent.yaml b/questions/kontor/ansatt-sent.yaml index d9d5822..04aff9b 100644 --- a/questions/kontor/ansatt-sent.yaml +++ b/questions/kontor/ansatt-sent.yaml @@ -1,8 +1,8 @@ -name: Lagt ut -description: Den ansatte vises nå blant menneskene på forsiden. +name: Kortet ditt er lagret +description: Slik står du nå på forsiden. alternatives: -- name: Skal noen ned igjen? - description: 'Trykk «Tatt av forsiden» på raden deres i listen over ansatte på kontoret. Nytt portrett: legg personen inn på nytt, og ta den gamle raden av.' +- name: Vil du endre noe? + description: 'Åpne «Ditt kort på forsiden» igjen: det er fylt ut med det du har, og det du lagrer erstatter det.' - name: Se alle ansatte description: '' action: /status/ansatte diff --git a/questions/kontor/ansatt.yaml b/questions/kontor/ansatt.yaml index ecd8efc..cf6ce5c 100644 --- a/questions/kontor/ansatt.yaml +++ b/questions/kontor/ansatt.yaml @@ -1,24 +1,24 @@ followup: false -name: Hvem skal vises på forsiden? -description: '' +name: Ditt kort på forsiden +description: Det du skriver her, står under portrettet ditt på forsiden. responsible: name: Fredrik Borch Lynghaug contact: fredrik@klingenbergbygg.no alternatives: -- name: Legg inn en ansatt - description: Navn, rolle, erfaring og portrett. Den ansatte vises på forsiden så snart du sender. +- name: Ditt kort på forsiden + description: Slik står du blant menneskene på forsiden. Rett det du vil og lagre; du har ett kort, og det nye erstatter det gamle. action: /kontor/ansatt-sent consequence: - - Legg ut + - Lagre kortet record_as: ansatte features: - - name: Hva skjer så - description: Personen vises på forsiden til du tar dem av igjen fra kontoret. + - name: Når du lagrer + description: Kortet ditt på forsiden endres med en gang. icon: lucide:route - name: Hvem ser det - description: Alle som besøker siden. Portrettet vises som det er, så velg et bilde du er fornøyd med. + description: Alle som besøker siden. Navnet ditt er det du er logget inn med. icon: lucide:users - - name: Den ansatte + - name: Kortet ditt requirements: - name: name label: Navn @@ -36,5 +36,5 @@ alternatives: label: Portrett type: file accept: image/jpeg,image/png,image/webp - placeholder: Et stående bilde, gjerne tatt i dagslys - icon: lucide:user-plus + placeholder: Et stående bilde, gjerne tatt i dagslys. Velger du ikke noe nytt, beholder du det du har. + one_per_person: true diff --git a/questions/kontor/index.yaml b/questions/kontor/index.yaml index 2f59a12..bbb3223 100644 --- a/questions/kontor/index.yaml +++ b/questions/kontor/index.yaml @@ -5,7 +5,7 @@ responsible: contact: fredrik@klingenbergbygg.no alternatives: - name: Ansatte på forsiden - description: Menneskene slik besøkende ser dem. + description: Menneskene slik besøkende ser dem. Hver retter sitt eget kort; herfra kan et kort tas ned. action: /kontor consequence: - Bekreft @@ -148,8 +148,8 @@ alternatives: action: /kontor/leveranse consequence: - Ny leveranse -- name: Legg inn en ansatt - description: Navn, rolle, erfaring og portrett, rett ut på forsiden. +- name: Ditt kort på forsiden + description: Rolle, erfaring og portrett, slik besøkende ser deg. action: /kontor/ansatt consequence: - Åpne -- 2.56.0 From fdae293834a703f163724a5f02b1cc604be00bdc Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 30 Sep 2026 20:50:47 +0200 Subject: [PATCH 06/11] Et kort som er tatt ned, forsvinner fra kontorets liste etter ti minutter Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt --- aggregates.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/aggregates.yaml b/aggregates.yaml index d6a46cc..70d4c13 100644 --- a/aggregates.yaml +++ b/aggregates.yaml @@ -6,6 +6,8 @@ aggregates: event: received sluttet: event: sluttet + leaves_after: + minutes: 10 transitions: open: - sluttet -- 2.56.0 From 894d313dc42b7ef3a4698fe826094181c7bf5847 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 30 Sep 2026 21:39:01 +0200 Subject: [PATCH 07/11] Bioen kan skrives i markdown Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt --- questions/kontor/ansatt.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/questions/kontor/ansatt.yaml b/questions/kontor/ansatt.yaml index cf6ce5c..5de6694 100644 --- a/questions/kontor/ansatt.yaml +++ b/questions/kontor/ansatt.yaml @@ -31,7 +31,7 @@ alternatives: - name: erfaring label: Erfaring type: textarea - placeholder: Utdanning, fagområder, år i faget, bygg du er stolt av + placeholder: Utdanning, fagområder, bygg du er stolt av. Du kan skrive **fet**, *kursiv*, lister med - og [lenker](https://…). - name: portrett label: Portrett type: file -- 2.56.0 From 7e2921f6b8c08ed22f7ff688925fadc4564be5fc Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Wed, 30 Sep 2026 21:52:30 +0200 Subject: [PATCH 08/11] =?UTF-8?q?Hvem=20best=C3=A5r=20Klingenberg=20Bygg?= =?UTF-8?q?=20av=3F=20som=20egen=20side;=20Hvordan=20presenterer=20du=20de?= =?UTF-8?q?g=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt --- aggregates.yaml | 12 +++++++ needs.yaml | 34 ++++++++++++++++++- questions/hvem.yaml | 47 ++++++++++++++++++++++++++ questions/index.yaml | 20 +++-------- questions/kontor/ansatt-sent.yaml | 2 +- questions/kontor/ansatt.yaml | 8 ++--- questions/kontor/erfaring-sent.yaml | 10 ++++++ questions/kontor/erfaring.yaml | 35 +++++++++++++++++++ questions/kontor/index.yaml | 26 ++++++++++++-- questions/status/erfaringer/index.yaml | 20 +++++++++++ 10 files changed, 190 insertions(+), 24 deletions(-) create mode 100644 questions/hvem.yaml create mode 100644 questions/kontor/erfaring-sent.yaml create mode 100644 questions/kontor/erfaring.yaml create mode 100644 questions/status/erfaringer/index.yaml diff --git a/aggregates.yaml b/aggregates.yaml index 70d4c13..8dd98c3 100644 --- a/aggregates.yaml +++ b/aggregates.yaml @@ -11,6 +11,18 @@ aggregates: transitions: open: - sluttet +- bucket: erfaringer + initial: open + states: + open: + event: received + fjernet: + event: fjernet + leaves_after: + minutes: 10 + transitions: + open: + - fjernet - bucket: leveranser initial: open states: diff --git a/needs.yaml b/needs.yaml index 7a4ed15..bbe8eaf 100644 --- a/needs.yaml +++ b/needs.yaml @@ -114,7 +114,7 @@ needs: who: en av oss på kontoret, som vil vise hvem hen er og hva hen kan wants: at den som vurderer oss ser hvem som gjør jobben enters: /kontor/ansatt - via: Ditt kort på forsiden + via: Kortet ditt lands_in: ansatte handled_by: kontor stages: @@ -130,6 +130,26 @@ needs: open: vises på forsiden sluttet: sluttet enters_as: kontor +- id: erfaring + who: en av oss på kontoret, når et oppdrag er verdt å vise fram + wants: at den som vurderer oss ser hva vi har gjort + enters: /kontor/erfaring + via: Et oppdrag med bilde + lands_in: erfaringer + handled_by: kontor + stages: + - open + - fjernet + done_when: + - fjernet + success: + - fjernet + max_steps: 1 + max_fields: 3 + stage_words: + open: vises + fjernet: fjernet + enters_as: kontor personas: - id: kommune-skole need: tilstand @@ -152,4 +172,16 @@ personas: - id: ansvarsrett need: soknad text: Vi har prosjektert ombyggingen selv, men mangler noen med ansvarsrett som kan stå for søknaden. +- id: rapport-klar + need: leveranse + text: Tilstandsrapporten til borettslaget er ferdig. Jeg vil at styreleder skal få den og vite at den ligger der. +- id: ny-hos-oss + need: ansatt + text: Jeg har nettopp begynt hos Klingenberg Bygg og vil at kundene skal se hvem jeg er og hva jeg kan. +- id: nytt-portrett + need: ansatt + text: Portrettet mitt på forsiden er fra da jeg begynte. Jeg vil bytte det uten å skrive alt det andre på nytt. +- id: brannstasjonen + need: erfaring + text: Brannstasjonen i Ytre Enebakk står ferdig, og vi har gode bilder fra fundamenteringen. Den vil jeg vise fram. tones: [] diff --git a/questions/hvem.yaml b/questions/hvem.yaml new file mode 100644 index 0000000..f9d51ca --- /dev/null +++ b/questions/hvem.yaml @@ -0,0 +1,47 @@ +name: Hvem består Klingenberg Bygg av? +description: Menneskene som gjør jobben, oppdragene vi har gjort, og det vi står for. +responsible: + name: Fredrik Borch Lynghaug + contact: fredrik@klingenbergbygg.no +alternatives: +- name: Menneskene + description: De som går befaringene, skriver rapportene og står for søknadene. + features: + - name: '' + description: '' + resource: + source: + kind: kv + bucket: ansatte + public: true + states: + - open + empty: Snart presenterer vi oss her. + jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {name: .name, rolle: .rolle, erfaring: .erfaring, portrett: .portrett}' +- name: Erfaringer + description: Et utvalg oppdrag, med bilder. + features: + - name: '' + description: '' + resource: + source: + kind: kv + bucket: erfaringer + public: true + states: + - open + empty: Snart viser vi fram oppdrag her. + jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {tittel: .tittel, bilde: .bilde, om: .om}' +- name: Verdier + description: Det vi står for. + features: + - name: Mål to ganger + description: Vi måler to ganger og skriver én gang. Det gjelder betong, og det gjelder rapporter. + icon: lucide:ruler + - name: Bygget først + description: Et bygg bryr seg ikke om hvem som har rett. Vi skriver det bygget trenger, ikke det som er lettest å si. + - name: Ingen overraskelser i veggen + description: Det vi finner, får du vite. Også sprekkene. + icon: lucide:search + - name: Vannet finner en vei + description: Vannet finner alltid en vei. Derfor leter vi etter den først. diff --git a/questions/index.yaml b/questions/index.yaml index 57ce39f..f1d9b5f 100644 --- a/questions/index.yaml +++ b/questions/index.yaml @@ -12,22 +12,10 @@ alternatives: - name: Prosjekt og søknad, med ansvarsrett description: 'Vi lager arbeidsbeskrivelse opp mot [NS 3420](https://standard.no/fagomrader/ns-3420-/) og fremdriftsplan, og utarbeider byggesøknaden. Vi har sentral [godkjenning](https://sgregister.dibk.no/enterprises/976015711) innen flere fagområder og kan stå med det offentligrettslige ansvaret. Samarbeidspartner: [Westra Engineering AS](https://www.westra-engineering.no/).' - name: Hvem består Klingenberg Bygg av? - description: Mennesker, verdier og erfaringer. - features: - - name: Erfaringene - description: Skoler i drift, brannstasjoner, omsorgsboliger, kantina på Det Norske Teatret og en Munch-eiendom på Hvitsten. Vi har gått over, prosjektert og fulgt opp bygg for kommuner, borettslag, bedrifter og private, fra borprøver i gammel mur til kunstgress på Fredrikstad stasjon. - - name: Menneskene - description: De som går befaringene, skriver rapportene og står for søknadene. - icon: lucide:users - resource: - source: - kind: kv - bucket: ansatte - public: true - states: - - open - empty: Snart presenterer vi oss her. - jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {name: .name, rolle: .rolle, erfaring: .erfaring, portrett: .portrett}' + description: Mennesker, erfaringer og verdier. + action: /hvem + consequence: + - Bli kjent med oss - name: Få kartlagt byggets tilstand description: Vi utarbeider tilstandsrapporter som representerer bygget med hensyn til fremtidige mål. action: /received/tilstand diff --git a/questions/kontor/ansatt-sent.yaml b/questions/kontor/ansatt-sent.yaml index 04aff9b..4e9f30d 100644 --- a/questions/kontor/ansatt-sent.yaml +++ b/questions/kontor/ansatt-sent.yaml @@ -2,7 +2,7 @@ name: Kortet ditt er lagret description: Slik står du nå på forsiden. alternatives: - name: Vil du endre noe? - description: 'Åpne «Ditt kort på forsiden» igjen: det er fylt ut med det du har, og det du lagrer erstatter det.' + description: 'Åpne «Hvordan presenterer du deg?» igjen: kortet ditt er fylt ut med det du har, og det du lagrer erstatter det.' - name: Se alle ansatte description: '' action: /status/ansatte diff --git a/questions/kontor/ansatt.yaml b/questions/kontor/ansatt.yaml index 5de6694..7c85d9b 100644 --- a/questions/kontor/ansatt.yaml +++ b/questions/kontor/ansatt.yaml @@ -1,12 +1,12 @@ followup: false -name: Ditt kort på forsiden -description: Det du skriver her, står under portrettet ditt på forsiden. +name: Hvordan presenterer du deg? +description: Det du skriver her, står på kortet ditt blant menneskene på forsiden. responsible: name: Fredrik Borch Lynghaug contact: fredrik@klingenbergbygg.no alternatives: -- name: Ditt kort på forsiden - description: Slik står du blant menneskene på forsiden. Rett det du vil og lagre; du har ett kort, og det nye erstatter det gamle. +- name: Kortet ditt + description: Rett det du vil og lagre. Du har ett kort, og det du lagrer erstatter det som står der nå. action: /kontor/ansatt-sent consequence: - Lagre kortet diff --git a/questions/kontor/erfaring-sent.yaml b/questions/kontor/erfaring-sent.yaml new file mode 100644 index 0000000..90b1fc6 --- /dev/null +++ b/questions/kontor/erfaring-sent.yaml @@ -0,0 +1,10 @@ +name: Oppdraget vises nå +description: Det står blant erfaringene på «Hvem består Klingenberg Bygg av?». +alternatives: +- name: Skal det ned igjen? + description: Trykk «Fjern» på raden i listen over erfaringer her på kontoret. Det forsvinner fra listen ti minutter etter. +- name: Se alle erfaringer + description: '' + action: /status/erfaringer + consequence: + - Åpne diff --git a/questions/kontor/erfaring.yaml b/questions/kontor/erfaring.yaml new file mode 100644 index 0000000..d88be38 --- /dev/null +++ b/questions/kontor/erfaring.yaml @@ -0,0 +1,35 @@ +followup: false +name: Hvilket oppdrag vil du vise fram? +description: Det du legger inn her, står blant erfaringene på «Hvem består Klingenberg Bygg av?». +responsible: + name: Fredrik Borch Lynghaug + contact: fredrik@klingenbergbygg.no +alternatives: +- name: Et oppdrag med bilde + description: Et bilde og noen løse ord om hva vi gjorde. Det vises med en gang. + action: /kontor/erfaring-sent + consequence: + - Vis fram + record_as: erfaringer + features: + - name: Når du sender + description: Oppdraget vises blant erfaringene med en gang, til noen på kontoret fjerner det. + icon: lucide:route + - name: Hvem ser det + description: Alle som besøker siden. Skriv ikke noe om kunden de ikke ville lest selv. + icon: lucide:users + - name: Oppdraget + requirements: + - name: tittel + label: Hva var det? + type: text + placeholder: 'For eksempel: Brannstasjonen i Ytre Enebakk' + - name: bilde + label: Bilde + type: file + accept: image/jpeg,image/png,image/webp + placeholder: Et bilde fra oppdraget, gjerne liggende + - name: om + label: Noen ord om det + type: textarea + placeholder: Hva vi gjorde, og hva som var verdt å gjøre skikkelig. **Fet**, *kursiv*, lister og lenker går an. diff --git a/questions/kontor/index.yaml b/questions/kontor/index.yaml index bbb3223..5392940 100644 --- a/questions/kontor/index.yaml +++ b/questions/kontor/index.yaml @@ -21,6 +21,23 @@ alternatives: - from: open to: sluttet label: Tatt av forsiden +- name: Erfaringer + description: Oppdragene slik besøkende ser dem. + action: /kontor + consequence: + - Bekreft + features: + - name: Erfaringer + description: Hver rad er ett oppdrag som vises nå. + resource: + source: + kind: kv + bucket: erfaringer + requires_group: kontor + transitions: + - from: open + to: fjernet + label: Fjern - name: Leverte dokumenter description: Rapporter, tegninger og vedtak som er sendt til kunder. action: /kontor @@ -148,11 +165,16 @@ alternatives: action: /kontor/leveranse consequence: - Ny leveranse -- name: Ditt kort på forsiden - description: Rolle, erfaring og portrett, slik besøkende ser deg. +- name: Hvordan presenterer du deg? + description: 'Kortet ditt på forsiden: rolle, erfaring og portrett.' action: /kontor/ansatt consequence: - Åpne +- name: Hvilket oppdrag vil du vise fram? + description: Et bilde og noen løse ord, blant erfaringene. + action: /kontor/erfaring + consequence: + - Åpne - name: Gi en kollega tilgang description: De får en konto og plass på kontoret, og ser de samme sakene som deg. action: /kontor diff --git a/questions/status/erfaringer/index.yaml b/questions/status/erfaringer/index.yaml new file mode 100644 index 0000000..ac7a02f --- /dev/null +++ b/questions/status/erfaringer/index.yaml @@ -0,0 +1,20 @@ +name: Hva har Klingenberg Bygg gjort? +description: Et utvalg oppdrag, med bilder. +responsible: + name: Fredrik Borch Lynghaug + contact: fredrik@klingenbergbygg.no +alternatives: +- name: Erfaringer + description: '' + features: + - name: Erfaringer + description: Hver rad er én sak og hvor langt den har kommet. Navn og kontaktopplysninger vises ikke her. + resource: + source: + kind: kv + bucket: erfaringer + public: true + states: + - open + empty: Snart viser vi fram oppdrag her. + jq: 'sort_by(.submitted_ms) | reverse | .[] | .responses |= {tittel: .tittel, bilde: .bilde, om: .om}' -- 2.56.0 From 09a8af04e292b0cb8b5bba7f2d86097a765c74dc Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Thu, 1 Oct 2026 11:38:33 +0200 Subject: [PATCH 09/11] =?UTF-8?q?Innlogget-linjen=20p=C3=A5=20samme=20linj?= =?UTF-8?q?e=20som=20ordmerket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt --- custom.css | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/custom.css b/custom.css index 8535256..f2f4dcd 100644 --- a/custom.css +++ b/custom.css @@ -106,15 +106,22 @@ h1, h2, h3 { opacity: 1; } -/* Who is here sits on the bar's line, at the page's right edge. */ +/* Who is here sits on the wordmark's line, at the page's right edge. */ .session { - top: 1.75rem; - right: max(1.5rem, calc((100vw - var(--measure)) / 2 + 1.5rem)); font-family: var(--heading); font-weight: 500; font-size: 0.85rem; } +.hero-top { + justify-content: space-between; +} + +.hero-top .session { + position: static; + transform: none; +} + .slideshow { --swiper-navigation-size: 1.6rem; background: var(--line); -- 2.56.0 From 73a03286fea3408c02451ed0e0db9c10ab0aaf29 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Thu, 1 Oct 2026 11:46:58 +0200 Subject: [PATCH 10/11] Innloggede blir ikke spurt om navn og e-post Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt --- questions/index.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/questions/index.yaml b/questions/index.yaml index f1d9b5f..79b5eb4 100644 --- a/questions/index.yaml +++ b/questions/index.yaml @@ -35,10 +35,12 @@ alternatives: label: Navn type: text placeholder: Navn + value: '{user.name}' - name: email label: E-post type: email placeholder: bruker@eksempel.no + value: '{user.email}' - name: telefon label: Telefon type: tel @@ -91,10 +93,12 @@ alternatives: label: Navn type: text placeholder: Navn + value: '{user.name}' - name: email label: E-post type: email placeholder: bruker@eksempel.no + value: '{user.email}' - name: telefon label: Telefon type: tel -- 2.56.0 From 30ba7bc6781e9aeb9cc2c53845c0c50154b359b7 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Thu, 1 Oct 2026 17:57:12 +0200 Subject: [PATCH 11/11] Fredriks rettelser i bildetekstene (#6) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt --- questions/index.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/questions/index.yaml b/questions/index.yaml index 79b5eb4..c40e5d8 100644 --- a/questions/index.yaml +++ b/questions/index.yaml @@ -221,7 +221,7 @@ slideshow: - image: images/bildeserie/20.webp width: 1867 height: 1400 - caption: Her heises Moelvens modulskole i Vestby på plass. Den blir stående i 10 år. + caption: Her heises Moelvens modulskole i Vestby på plass. Den blir stående i minst 10 år. - image: images/bildeserie/21.webp width: 1867 height: 1400 @@ -241,4 +241,4 @@ slideshow: - image: images/bildeserie/25.webp width: 1487 height: 1400 - caption: pH-test av borprøver i mur fra forskjellige dybder + caption: pH-test av borprøver i betong fra forskjellige dybder -- 2.56.0