Snippets
En snippet
er en Wagtail-klasse som ikke arver fra Page
,
og brukes for å representere informasjon som ikke logisk hører hjemme på sin egen side.
Slike objekter har dermed ikke sin egen URL.
Snippets er vanlige Django-modeller, med redigeringsmuligheter via admingrensesnittet,
og de kan refereres til fra sider (eller fra andre snippets) via ForeignKey
eller
lignende relasjoner.
Vi bruker snippets for å systematisere og strukturere informasjonen som legges inn i en artikkel.
Her følger en beskrivelse av våre snippets-klasser:
Book
- Kode:
src/artikkel/models/book.py
Database over lærebøkene som brukes. En lærebok består av:
title: Tittel.
edition: Utgave.
book_chapters: 0 eller flere objekter som hver angir et kapittel i boka pluss kobling til den relaterte temasiden. Hvert slikt objekt består av:
chapter: Fritekstbeskrivelse av kapittelet (f.eks «4.3», «4.11 – 4.13» eller «4.4, 4.6»)
topic: Referanse til den temasiden (Artikkel) der dette kapittelet skal dukke opp under «Relevante lenker».
Course
Oversikt over emnene som bruker publiseringssystemet. Et emne består av:
code: Emnekode, f.eks
TMA4100
.name: Fullt navn, f.eks
Matematikk 1
.
Brukes for å tagge videoer med metadata om hvilket emne de tilhører eller er innspilt i forbindelse med.
Exam
- Kode:
src/artikkel/models/exam.py
- Brukes av:
Database over eksamensoppgaver m/løsningsforslag (på papir og på video). En eksamensoppgave består av:
course: Emnet eksamenen ble gitt i. Referanse til Course.
year: Året eksamenen ble gitt.
term: Semester (V = Vår, S = Kont, H = Høst). Lagres i databasen som heltall (hhv. 5, 8, 12 for mai, august, desember) for å kunne sortere semestrene kronologisk, og oversettes til V/S/H ved visning.
sets: 0 eller flere objekter som hvert er et eksamenssett m/løsningsforslag (på papir). Ett innslag per språk/målform. Hvert eksamenssett består igjen av:
language: Språk/målform
problems: Eksamenssettet (som regel i PDF). Referanse til opplastet dokument.
solutions: Løsningsforslag (som regel i PDF). Referanse til opplastet dokument.
problems: 0 eller flere objekter som hvert utgjør en av deloppgavene i eksamenssettet. Hver deloppgave består igjen av:
Obs
Wagtail støtter p.t. (2018-12) ikke nested InlinePanels: https://github.com/wagtail/wagtail/issues/1952
Siden Exam
<–> ExamProblem
er en 1:N-relasjon (og dermed en InlinePanel
i Exam
) er det ikke mulig å la topic
være en 1:N-relasjon mellom ExamProblem
og Artikkel
).
Dette betyr at vi ikke kan legge til flere relevante temasider til hver deloppgave, men er nødt til å begrense oss til 1:1-relasjon mellom deloppgave og temaside.
2019-04-23: Det er lagt til støtte for nøsting i django-modelcluster v4.4, så det kan tenkes at en framtidig versjon av Wagtail kan klare å håndtere dette.
Page Type
- Kode:
src/artikkel/models/pagetype.py
- Brukes av:
Her defineres de ulike sidetypene (temaside, eksempel, bevis, osv.). Hver sidetype består av:
name: Beskrivelse.
is_example: Angir om sider av denne sidetypen skal listes opp under «Eksempler»-avsnittet i «Relevante lenker»-boksen.
is_procedure: Angir om sider av denne sidetypen skal listes opp under «Regneregler»-avsnittet i «Relevante lenker»-boksen.
is_proof: Angir om sider av denne sidetypen skal listes opp under «Bevis»-avsnittet i «Relevante lenker»-boksen.
show_tagline: Angir om sidetypens beskrivelse skal vises under hovedoverskriften.
show_search: Angir om søketreff skal være prefikset med sidetypens beskrivelse. Alle sider er alltid søkbare, denne innstillingen er kun et visningsvalg som avgjør hvordan søkeresultatene vises.
Predefined Text
- Kode:
src/artikkel/blocks/predefined_text.py
- Brukes av:
Database over statiske tekstblokker som kan inkluderes på flere steder.
Gjør det mulig å repetere tekst (f.eks gjenta et teorem på en underside med et regneeksempel) uten å bruke klipp&lim, ved å sette inn en PredefinedTextBlock på ønsket sted i artikkelen.
Tekst som settes inn i artikkelen på denne måten ikke er søkbar, så denne blokktypen bør først og fremst brukes til TeX-uttrykk og lignende.
Video
Database over alle innspilte videoer. Består av:
title: Beskrivelse. Kan bli brukt som lenketekst eller figurtekst (ved embedding).
url: Adressen til nettsiden som inneholder videoen (f.eks https://www.youtube.com/watch?v=5ojVOzZ_tdY).
length: Videoens lengde i timer, minutter og sekunder (angis på formen HH:MM:SS).
actors: Medvirkende i videoen. Fritekstfelt.
course: Hvilket emne videoen tilhører. Referanse til (Course).
Se Embedding av video for mer informasjon.