feat(okr): etatsstyringsmoete-underlag fra syklusdata

This commit is contained in:
Kjell Tore Guttormsen 2026-08-02 06:53:46 +02:00
commit 052e4d4e86
5 changed files with 203 additions and 26 deletions

View file

@ -27,7 +27,7 @@ import { fileURLToPath } from 'node:url';
import { parseFrontmatter, writeFrontmatter } from '../lib/frontmatter.mjs';
import { lesSyklus } from '../lib/syklus-data.mjs';
import { arsrapportDelIII, tertialrapport } from '../lib/syklus-rapport.mjs';
import { arsrapportDelIII, etatsstyringsunderlag, tertialrapport } from '../lib/syklus-rapport.mjs';
// historikk/ er SOESKEN av syklus/, altsaa <syklusDir>/../../historikk. Den
// avledningen er en determinisme-risiko: regnet ut blindt ville en syklus-katalog
@ -75,8 +75,12 @@ const FORMER = {
// kunne testes uten et tre paa filsystemet.
kontekst: (syklusDir) => ({ historikk: lesHistorikk(syklusDir) }),
},
// Steg 12. Oppfoert her, ikke skjult, saa flaten er synlig foer den virker.
etatsstyring: null,
etatsstyring: {
filnavn: 'rapport-etatsstyring.md',
tittel: (id) => `Etatsstyringsmoete - underlag ${id}`,
beskrivelse: 'Maskingenerert underlag til etatsstyringsmoetet. Koblingen mot tildelingsbrevets styringsparametere er reservert til virksomheten.',
bygg: etatsstyringsunderlag,
},
};
class Bruksfeil extends Error {}
@ -122,9 +126,6 @@ export function genererRapport(syklusDir, formNavn, opts = {}) {
throw new Bruksfeil(`Ukjent form: ${formNavn}. Former: ${Object.keys(FORMER).join(' | ')}`);
}
const form = FORMER[formNavn];
if (form === null) {
throw new Bruksfeil(`Rapportformen «${formNavn}» er ikke implementert ennaa.`);
}
if (!existsSync(syklusDir) || !statSync(syklusDir).isDirectory()) {
throw new Bruksfeil(`Syklus-katalogen finnes ikke: ${syklusDir}`);
}