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
title: Arvet fra standardklassen
Page
.lead_paragraph: Ingress. StreamField av typen LeadBlock.
body: Brødtekst. StreamField av typen ArtikkelBlock.
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 irelated_content
er tomme,True
hvis minst ett av innslagene har ikke-tom verdi.