Sidetyper

Vi bruker følgende sidetyper:

Artikkel

Kode:

src/artikkel/models/artikkel.py

Template:

src/artikkel/templates/artikkel/artikkel.html

En artikkel består av både innhold og metadata. I redigeringsgrensesnittet vises disse henholdsvis bak fanene Content og Metadata. Inndelingen av hvilke attributter som vises bak hvilken fane settes via klasseattributtene content_panels og metadata_panels.

Innhold

Ingress og brødtekst er adskilt fra hverandre for å gjøre det mulig å sette inn automatisk generert innhold mellom dem (for eksempel innholdsfortegnelse eller introduksjonsvideo).

Metadata

  • page_type: Fjernnøkkel til Page Type.

  • intro_video: Referanse til hvilken Video som skal vises som introduksjonsvideo i artikkelen. Rendres via template tagen artikkel_video.

  • related_chapters: Referanse til relevante kapitler i læreboka. Definert i snippeten Book.

  • related_exam_sets: Referanse til relevante eksamensoppgaver. Definert i snippeten Exam.

  • related_exercises: Referanse til relevante oppgaver i læreboka. Definert i hjelpeklassen ArtikkelRelatedExercise.

  • related_videos: Referanse til andre relevante Video (utenom en eventuell introduksjonsvideo). Definert i hjelpeklassen ArtikkelRelatedVideo.

Alle related_*-attributtene rendres via template tagen artikkel_related.

De ulike sidetypene (temaside, eksempelside, bevis) bruker samme modell (artikkel.Artikkel med en ekstra variabel page_type), i stedet for hver sine separate subklasser av Page. Dette er gjort for å gjøre det mulig å endre sidetype etter man har begynt å lage siden.

Context- og templatevariable

I tillegg til attributtene listet opp i Innhold og Metadata genererer artikkelen selv noen ekstra context-variable via metoden Artikkel.get_context(). Disse inkluderer:

  • breadcrumbs: Brukes for å rendre brødsmulesti, se base_with_nav.html.

  • related_content: Brukes for å rendre lenker til relevante kapitler i læreboka etc. Templaten sender denne gjennom artikkel_related. Dette er en dictionary med følgende innslag:

    • chapters: Liste over artikkelens related_chapters

    • exam_problems: Liste over artikkelens related_exam_sets

    • examples: Liste over direkte undersider med is_example == True

    • exercises: Liste over artikkelens related_exercises

    • procedures: Liste over direkte undersider med is_procedure == True

    • proofs: Liste over direkte undersider med is_proof == True

    • videos: Liste over artikkelens related_videos

    For forklaring av disse variablene, se Metadata.

  • has_related_content: Boolsk variabel som indikerer om det er nødvendig å rendre «Relevante lenker»-informasjonen i det hele tatt. Verdi: False dersom alle verdiene i related_content er tomme, True hvis minst ett av innslagene har ikke-tom verdi.

Hjelpeklasser

ArtikkelRelatedExercise

Representerer relasjonen mellom Artikkel og relevante oppgaver i læreboka.

Består av:

  • Fjernnøkkel til Book

  • Fritekstfelt som angir oppgavenummer

  • Referanse til en Video med løsningsforslag

ArtikkelRelatedVideo

Representerer relasjonen mellom Artikkel og relevante videoer (utenom introduksjonsvideoen).

Består av fjernnøkkel til Video.