Legg til Fast-track: kondensert læringsspor uten gjentakelse

Nytt studiemodus som samler hele pensum i 5 moduler etter
eksamensstrukturen, slik at hvert begrep læres én gang i stedet
for å gjentas på tvers av ukene. Hver modul har huskeregler,
konkrete eksempler og «eksamensfeller», med fremdriftsmåler
(lest-markering lagret i localStorage), modulkort og pager.

- notes/fast-track.md: innhold i 5 moduler med HTML-callouts
- data.js: FASTTRACK-moduler + getFastTrack()
- render.js: renderFastTrackHome/-Module + modul-ekstraktor
- app.js: ruter #/fast-track og #/fast-track/N
- index.html: templates, sidebar-lenke, forside-promo
- style.css: kort, callouts, fremdrift, promo

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-30 21:42:16 +02:00
parent 9a7a7b9ef1
commit 3f7f5d86b1
8 changed files with 764 additions and 2 deletions

View File

@@ -122,6 +122,15 @@ const THEMES = {
}
};
// Fast-track — kondensert læringsspor, gjentakelsesfritt, etter eksamensstruktur
const FASTTRACK = [
{ id: 1, theme: 'etikk', tag: 'Oppgave I', title: 'Etikk — grunnmuren', mins: 8, desc: 'Moral vs. etikk vs. jus, dilemma-typene, og de seks prinsippene som er verktøykassen.' },
{ id: 2, theme: 'etikk', tag: 'Oppgave I', title: 'Etikk — teorier & verktøy', mins: 9, desc: 'De tre teoriene (Mill · Kant · Aristoteles), Kants imperativ og Kvalnes-hjulet.' },
{ id: 3, theme: 'baerekraft', tag: 'Oppgave II', title: 'Bærekraft', mins: 10, desc: 'Brundtland, Triple Bottom Line, tålegrenser, smultring, sirkulær økonomi og degrowth.' },
{ id: 4, theme: 'samfunn', tag: 'Oppgave III', title: 'Samfunnsansvar', mins: 12, desc: 'CSR vs. CSV, Carrolls pyramide, Friedman↔Freeman, Mitchell, eksternaliteter, sosial pilar.' },
{ id: 5, theme: 'verktoy', tag: 'Oppgave IV · Case', title: 'Verktøy, implementering & case', mins: 10, desc: 'Standarder, CSRD & dobbel vesentlighet, de fem stegene + ferdig case-oppskrift.' }
];
// Mapping from theme to color name
const THEME_COLORS = {
etikk: { color: '#D89AA2', soft: '#4A2027', bg: '#2A1A1D' },
@@ -151,9 +160,15 @@ function daysToExam() {
return { days, hours, label: days === 0 ? `${hours}t` : days === 1 ? '1 dag' : `${days} dager` };
}
function getFastTrack(id) {
return FASTTRACK.find(m => m.id === id);
}
window.SMF = window.SMF || {};
SMF.COURSE = COURSE;
SMF.WEEKS = WEEKS;
SMF.FASTTRACK = FASTTRACK;
SMF.getFastTrack = getFastTrack;
SMF.THEMES = THEMES;
SMF.THEME_COLORS = THEME_COLORS;
SMF.themeOf = themeOf;