3 Commits
Author SHA1 Message Date
blandClaude Opus 5.5 88c2f75cfc Ny side, bygget av treneren: tilstand, prosjekt og søknad, fra henvendelse til levert
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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt
2026-09-30 17:57:29 +02:00
bl 7cd9ff243f Merge pull request 'Bildeserien, ny drakt og portal v0.6.2' (#1) from ny-side into main
Deploy instance / deploy (push) Successful in 3s
lint-and-reload / lint (push) Successful in 1s
2026-09-30 17:50:16 +02:00
blandClaude Opus 5.5 efc5c5a70a Portal v0.6.2, og lint med portal lint
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt
2026-09-30 17:50:04 +02:00
20 changed files with 1008 additions and 256 deletions

No files matched your search

+1 -1
View File
@@ -24,7 +24,7 @@ on:
- .gitea/workflows/deploy.yml
env:
PORTAL_RELEASE: v0.5.2
PORTAL_RELEASE: v0.6.2
INSTANCE: klingenberg-portal
jobs:
+5 -3
View File
@@ -9,11 +9,13 @@ jobs:
- name: checkout
run: |
rm -rf checkout && git clone --depth 1 https://prosjekt.klingenbergbygg.no/klingenbergbygg/questions.git checkout
# The lint is portal itself (`portal lint`), at the version this
# site runs (PORTAL_RELEASE in deploy.yml).
- name: lint
env:
IRIS_RELEASE: v0.5.2
PORTAL_RELEASE: v0.6.2
run: |
curl -sfL "https://project.uhhm.no/uhhm/iris/releases/download/$IRIS_RELEASE/iris" -o iris && chmod +x iris
./iris check --path checkout/questions
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
- name: reload
run: nats --server nats://127.0.0.1:4222 pub portal.content.reload ""
+280 -7
View File
@@ -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
- bucket: leveranser
initial: open
states:
open: { event: received }
answered: { event: answered }
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: [answered]
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
+134
View File
@@ -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: []
+21
View File
@@ -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
+21
View File
@@ -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
+21
View File
@@ -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
+157 -176
View File
@@ -1,15 +1,164 @@
# 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:
@@ -113,171 +262,3 @@ slideshow:
width: 1487
height: 1400
caption: pH-test av borreprø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
-58
View File
@@ -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]
+1
View File
@@ -0,0 +1 @@
qualifies: kontor
+217
View File
@@ -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
+5
View File
@@ -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.
+38
View File
@@ -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.
+1
View File
@@ -0,0 +1 @@
qualifies: kunder
+74
View File
@@ -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}'
+5
View File
@@ -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.
+5
View File
@@ -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.
+5
View File
@@ -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.
-11
View File
@@ -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]
+17
View File
@@ -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 <portal@klingenbergbygg.no>
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}.'