Compare commits
5
Commits
trainer
...
9ae0e178db
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9ae0e178db
|
||
|
|
414715d64f
|
||
|
|
8ae162f143
|
||
|
|
6de2febec1
|
||
|
|
93c6b6e6c5
|
No files matched your search
+13
-23
@@ -1,35 +1,25 @@
|
||||
name: Deploy instance
|
||||
name: Deploy test instance
|
||||
|
||||
# This content repo owns its portal instance: which portal version runs
|
||||
# on kasse. uhhm/portal only publishes versioned release artifacts;
|
||||
# PORTAL_RELEASE below pins the one this site runs, so every rollout is
|
||||
# a commit - auditable, and revertable by reverting it.
|
||||
#
|
||||
# Content-only changes never come through here: lint-and-reload
|
||||
# hot-swaps those into the running instance over NATS.
|
||||
#
|
||||
# Runs on the host runner, because a deploy has to touch this host's
|
||||
# filesystem and its units. It is allowed exactly one root action:
|
||||
# /usr/local/bin/deploy-portal-instance, which checks the instance
|
||||
# against a fixed list and the tag against a release-tag shape before
|
||||
# it touches anything, and health-checks the site afterwards without a
|
||||
# forwarded header - a check that sends the header Caddy would send
|
||||
# cannot tell you the site is broken for everything that is not Caddy.
|
||||
# Branch `test` is portal.test.klingenbergbygg.no: the newest portal
|
||||
# release (cut from uhhm/portal main), with a NATS of its own on kasse,
|
||||
# so nothing tried here reaches production or mails a customer. The
|
||||
# production site is branch `main`, pinned in its own deploy.yml.
|
||||
|
||||
# Every push: a test site that follows the newest release has no pin
|
||||
# to change, so a push is the moment to pick the newest up.
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- .gitea/workflows/deploy.yml
|
||||
branches: [test]
|
||||
|
||||
env:
|
||||
PORTAL_RELEASE: v0.6.3
|
||||
INSTANCE: klingenberg-portal
|
||||
INSTANCE: klingenberg-test
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: fish
|
||||
steps:
|
||||
- name: Ship the pinned release and restart
|
||||
run: sudo /usr/local/bin/deploy-portal-instance "$INSTANCE" "$PORTAL_RELEASE"
|
||||
- name: Ship the newest release and restart
|
||||
run: |
|
||||
tag=$(curl -sf https://project.uhhm.no/api/v1/repos/uhhm/portal/releases/latest | jq -r .tag_name)
|
||||
sudo /usr/local/bin/deploy-portal-instance "$INSTANCE" "$tag"
|
||||
@@ -1,21 +1,21 @@
|
||||
name: lint-and-reload
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
branches: [test]
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: fish
|
||||
steps:
|
||||
- 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).
|
||||
rm -rf checkout && git clone --depth 1 --branch test https://prosjekt.klingenbergbygg.no/klingenbergbygg/questions.git checkout
|
||||
# The lint is portal itself, at the newest release: the one the
|
||||
# test instance runs.
|
||||
- name: lint
|
||||
env:
|
||||
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
|
||||
tag=$(curl -sf https://project.uhhm.no/api/v1/repos/uhhm/portal/releases/latest | jq -r .tag_name)
|
||||
curl -sfL "https://project.uhhm.no/uhhm/portal/releases/download/$tag/portal-x86_64-linux" -o portal && chmod +x portal
|
||||
./portal lint --path checkout/questions
|
||||
# The test instance's own NATS, never production's.
|
||||
- name: reload
|
||||
run: nats --server nats://127.0.0.1:4222 pub portal.content.reload ""
|
||||
run: nats --server nats://127.0.0.1:4232 pub portal.content.reload ""
|
||||
@@ -6,9 +6,23 @@ aggregates:
|
||||
event: received
|
||||
sluttet:
|
||||
event: sluttet
|
||||
leaves_after:
|
||||
minutes: 10
|
||||
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:
|
||||
|
||||
+35
-2
@@ -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
|
||||
@@ -110,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: Kortet ditt
|
||||
lands_in: ansatte
|
||||
handled_by: kontor
|
||||
stages:
|
||||
@@ -129,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
|
||||
@@ -151,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: []
|
||||
@@ -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.
|
||||
+6
-47
@@ -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
|
||||
@@ -133,11 +121,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 +133,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:
|
||||
|
||||
@@ -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 «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
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
followup: false
|
||||
name: Hvem skal vises på forsiden?
|
||||
description: ''
|
||||
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: Legg inn en ansatt
|
||||
description: Navn, rolle, erfaring og portrett. Den ansatte vises på forsiden så snart du sender.
|
||||
- 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:
|
||||
- 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
|
||||
@@ -31,10 +31,10 @@ 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
|
||||
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
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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: Legg inn en ansatt
|
||||
description: Navn, rolle, erfaring og portrett, rett ut på forsiden.
|
||||
- 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
|
||||
|
||||
@@ -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}'
|
||||
Reference in new issue
Block a user