detaljerad kravspecifikation
område > bedömning >
Betygsregistrering
Funktionens namn på engelska: Grade Registration
Kommentar: Funktionen hanterar betygsregistrering för grundskola, gymnasium och vuxenutbildning, inklusive anpassad grundskola samt övergången till ämnesbetyg i GY25.
bakgrund och syfte
Syftet är att stödja digital betygshantering i enlighet med skollag, skolförordning och föreskrifter från Skolverket. Förstudien kartlägger krav, processer och regelverk för betygssättning och registrering i svensk grundskola, gymnasium och vuxenutbildning.
Betygsregistreringen ska säkerställa att rätt betygsskala används, att registrering sker enligt korrekt ämnes-/kurskod, att betygsdokumentation skyddas mot obehörig åtkomst och att rätt roller har ansvar för registrering, signering och rättelse.
Länk till förstudien Betygsregistrering [12478]
ytterligare detaljer kring funktionens syfte
Funktionen ska förenkla arbetet i skolmiljöer med varierande behov. Den ska kunna hantera:
- Elever i olika skolformer inom samma undervisningsgrupp.
- Anpassade betygsskalor för anpassad grundskola/gymnasieskola
- Samtidig hantering av kursbetyg (GY11) och ämnesbetyg (GY25).
- Hantera betygssättning inom vuxenutbildning och yrkeshögskola
skillnader mot v1
Stöd för ämnesbetyg i GY25 införs och hanteras parallellt med kursbetyg i GY11
Slutbetyg begränsas till åk 9 i grundskolan och åk 3 i gymnasiet.
Tydligare betygsskalor
Bättre stöd för alla skolformer och läroplaner
specifikation funktionalitet
roller
Betygssättande lärare – registrerar betyg, kan markera betyg som definitiva.
Rektor – ansvarar för korrekt betygskatalog, kan administrera samtliga betyg.
Administratör/OrgAdmin – hanterar upplåsning, rättelser och teknisk administration.
Elev och vårdnadshavare – tar del av publicerade betyg via lärplattformen.
vad gör att funktionen finns tillgänglig i Vklass (utöver roll)?
Skolform (grundskola, gymnasium, vuxenutbildning, anpassad grundskola, anpassad gymnasieskola).
Konfiguration på skolnivå
- Aktivering av funktion i skolkonfigurationen
Konfiguration på kursnivå
- Val av betygsskala, skoltyp och betygssättande/signerande lärare
Betyg i grundskolan sätts vanligtvis i åk 6, men det finns en del skolor som sätter betyg redan från åk 4.
vilka entiteter?
Elev / Student
Förnamn / First name
Efternamn / Last name
Personnummer / Personal identity number
Skolform / School type
Klass / Class
Undervisningsgrupp / Course group
Betyg / Grade
Ämneskod / Subject code (Gy25)
Kurskod / Course code
Betyg / Grade
Betygsskala / Grade scale
Betygsperiod / Grading period
Årskurs / Education year
Klass / Class
Registreringsdatum / Registration date
Publiceringsdatum / Publish date
Definitiv / Definitive
Låst / Locked
Slutbetyg / End Grade
Betygsättande lärare / Grading teacher
Signatur / Signature
Historik / History (ändringar, rättelser, prövningar)
Notering / Grade note
Prövning / Examination
Ändring / Change
entitetens domänlogik
Slutbetyg kan endast sättas i åk 9 i grundskolan och åk 3 i gymnasiet.
- När ett ämnesbetyg får slutbetygsmarkering enligt GY25, är det elevens slutgiltiga betyget inom ämnet
Ett prövningsbetyg trumpfar alltid det tidigare registrerade betyget i ämnet.
Ett betyg kan endast bli låst efter definitivmarkering och kan endast ändras av OrgAdmin under en tidsperiod (inom 20 dagar från betygets publiceringsdatum)
Elever kan inte ha både kursbetyg (GY11) och ämnesbetyg (GY25) i samma ämne.
navigation
Via detaljsidan för en undervisningsgrupp. Ska länka till en egen sida i gränssnittet som ska se ut enligt wireframe.
funktioner (use cases/user stories)
[01] registrera terminsbetyg/slutbetyg i grundskolan/specialskolan
Lärare ska kunna registrera termins- och slutbetyg i åk 6–9. Registreringen ska ske enligt rätt ämneskoder och med vald betygsskala. Endast behörig lärare kan genomföra registreringen.
Acceptanskriterier
- Det ska endast gå att registera betyg på undervisningsgrupper som tillhör skolor som har modulen aktiverad (db.SchoolConfig.GradesUseGrades)
- Endast legitimerad och behörig lärare i ämnet kan registrera betyget.
- Vi får utgå från att lärare kopplat till undervisningsgruppen är behörig, det finns inget systemstöd för att validera behörighet.
- Systemet måste kontrollera att ämneskoden är giltig enligt Skolverkets register.
- Mappas mot db.SkolverketCourse.VklassCourseCode eller db.SkolverketCourse.AlternateCode
- Om ämneskoden är felaktig, ska felmeddelande visas:
- “Ämneskoden du har angivit är inte giltig enligt Skolverkets register. Kontrollera koden och försök igen. Betyget kan inte registreras förrän en korrekt ämneskod används.”
- “The subject code you entered is not valid according to the Skolverkets register. Please verify the code and try again. The grade cannot be registered until a valid subject code is used.”
- Systemet ska endast tillåta registrering av terminsbetyg för:
- Åk 6–9 (Grundskola, LGR22).
- I årskurs 9 ska lärare kunna ange att det är slutbetyg i ämnet
- Åk 7–10 (Specialskola, LSPEC22).
- I årskurs 10 ska lärare kunna ange att det är slutbetyg i ämnet
- Årskurs på elever verifieras från db.Curriculum.
- Åk 6–9 (Grundskola, LGR22).
- Ha stöd för skolor som sätter betyg från åk 4 (åk 5 för specialskolan), men då måste betygsskala vara explicit satt på kursen (db.courses.CourseMaskRate, )
- Betygsskalan hämtas enligt följande prioritet:
- CourseParticipants.GradeMask (om eleven har integrerad skolform, ex. LGRA22 i LGR22-grupp).
- db.courses.CourseMaskRate (om kursnivå är konfigurerad).
- Defaultvärde: Schoolconfig.Schooltype → Grundskola → CourseMask = GR-LGR22 → GradeScaleE.AF
- Betyget måste knytas till en betygsperiod/termin baserat på registreringsdatum.
- Hösttermin = 20XX-08-01 till 20XX-12-30.
- Perioden utformas 202X1, exempel 20251 för höst läsår 25/26
- Vårtermin = 20XX-01-01 till 20XX-06-30
- Perioden utformas 202X2, exempel 20252 för vår läsår 25/26
- Hösttermin = 20XX-08-01 till 20XX-12-30.
- Det ska gå att markera betyget som definitivt, vilket låser det från ändringar.
- Det är endast lärare med koppling till kurs och rektor som har möjlighet att definitivmarkera ett betyg.
- Innan ändringarna sparas, ska det visa ett bekräftelseprompt
- “Det finns XX betyg som är definitivmarkerade. Är du säker på att du vill låsa dessa betyg?”
- “There are XX grades that are marked as final. Are you sure you want to lock these grades?”
- Låsta och definitivmarkerade betyg ska endast kunna hanteras via V1 - Skoladmin - Betygshantering
- En integrerad elev ska automatiskt få rätt betygsskala, om dessa inställningar finns på eleverna i undervisningsgruppen (Redigera betygsinfo på kursen i V1 Skoladmin).
- Inställningar hämtas in i db.CourseParticipants
- Code - Kurskod
- GradeMask - Betygsskala
- NationalSchoolFormID - Skolform
- Inställningar hämtas in i db.CourseParticipants
- Publiceringsdatum för betyget ska framgå tydligt.
- Baseras på publiceringsdatum som ställs in i db.schoolconfig.GradePublishDate
- Följande fält ska vara interaktiva:
- Betyg (val från dropdown utifrån betygsskala)
- Definitiv (Checkbox)
- Slutbetyg (åk 9 för LGR22 och åk 10 för LSPEC22)
- Årskurs (?)
- Klass (?)
- Obligatorisk notering när slutbetyg sätts till F eller –. Noteringar kopplas till rätt ämne och lagras i db.GradeNotes
- Fritextfält, förinställd början av kursens ämneskod
- Exempel: “SV: Elev når inte de kunskapskrav som krävs för att klara kursen pga hög frånvaro”
Kopplingar
- CourseMask: GR-LGR22, GR-LSPEC22, GR-LSAM22. (Se lösningsförslag)
- GradeScale: GradeScaleE.AF (Se lösningsförslag)
[02] registrera kurs- och nivåbetyg i gymnasiet
Lärare ska kunna registrera kursbetyg enligt GY11 eller nivåbetyg enligt GY25. Systemet ska känna av om det gäller kurs- eller ämnesstruktur.
Acceptanskriterier:
- Endast behörig lärare kan registrera betyget.
- Systemet ska särskilja kursbetyg (GY11) och nivåbetyg (GY25).
- Ämnesbetyget är det betyg som sätts på den högsta nivån (kursen) inom ämnet
- Om en elev får B på nivå 1 och därefter C på nivå 2, blir ämnesbetyget C.
- Om eleven får F på nivå 2, kvarstår det tidigare betyget från nivå 1 (t.ex. B), tills eleven har fått ett nytt godkänt betyg på en högre nivå.
- Behöver stöd för betyg för nivåer i fliken “Betyg” i Studieöversikten.
- Betyget måste knytas till en betygsperiod/termin baserat på registreringsdatum.
- Hösttermin = 20XX-08-01 till 20XX-12-30.
- Perioden utformas 202X1, exempel 20251 för höst läsår 25/26
- Vårtermin = 20XX-01-01 till 20XX-06-30
- Perioden utformas 202X2, exempel 20252 för vår läsår 25/26
- Hösttermin = 20XX-08-01 till 20XX-12-30.
- Kurskoder och poängomfattning ska valideras mot Skolverkets register.
- Mappas mot db.SkolverketCourse.
- Om ämneskoden är felaktig, ska felmeddelande visas:
- “Ämneskoden du har angivit är inte giltig enligt Skolverkets register. Kontrollera koden och försök igen. Betyget kan inte registreras förrän en korrekt ämneskod används.”
- “The subject code you entered is not valid according to the Skolverkets register. Please verify the code and try again. The grade cannot be registered until a valid subject code is used.”
- Definitivmarkering krävs för att betyget ska bli giltigt och kunna låsas.
- Är det ett ämnesbetyg, behöver vi stämpla in ämneskoden och vilken nivå
- Uppdatering i db.SkolverketCourse, lägga till nivå kolumn för GY25?
- Uppdatering i db.Grades, lägga in kolumn för ämneskod och nivå?
- När ett betyg ska sättas i ett Gymnasiearbete, ska det finnas ett fält där läraren kan fylla i en beskrivning av gymnasiearbetets innehåll
- Kurskoder som börjar med “GYAR” i SkolverketCourse
- Lagras i db.Grades.AdaptiveNote
- Kommer sedan skrivas ut som en Notering i Examensbeviset
Kopplingar:
- CourseMask
- GY-LGY11 → GradeScaleE.AF (Se lösningsförslag)
- GY-LGY25 → GradeScaleE.AF (Se lösningsförslag)
- GradeScale: GradeScaleE.AF.
Edge cases:
- Elev ska inte kunna få betyg i både GY11 och GY25 i samma ämne.
- Om kurskod saknas i Skolverkets register ska registreringen blockeras.
[03] registrera betyg i vuxenutbildningen
Lärare ska kunna registrera betyg kontinuerligt i vuxenutbildningen, oberoende av termin. Systemet ska hantera grundläggande och gymnasial nivå.
Acceptanskriterier:
- Betyg ska kunna registreras när som helst under året.
- Systemet ska stödja registrering för både grundläggande och gymnasiala kurser.
- Ska kunna styras genom betygsskalan på kursen
- Alla betyg måste knytas till rätt kurskod och betygsskala.
- Kurskoder och poängomfattning ska valideras mot Skolverkets register.
- Mappas mot db.SkolverketCourse.
- Om ämneskoden är felaktig, ska felmeddelande visas:
- “Ämneskoden du har angivit är inte giltig enligt Skolverkets register. Kontrollera koden och försök igen. Betyget kan inte registreras förrän en korrekt ämneskod används.”
- “The subject code you entered is not valid according to the Skolverkets register. Please verify the code and try again. The grade cannot be registered until a valid subject code is used.”.
- Styrning för publicering av betyg bör ske på kursnivå, eftersom att kurser kan vara kortare än terminsvis.
- Implementering av ny kolumn i courses, GradePublishDate?
Kopplingar:
- CourseMask:
- VX-LVUX12 → GradeScaleE.AF.
- GradeScale: AF
[04] registrera betyg i anpassad grundskola
Lärare ska kunna registrera termins- och slutbetyg i anpassad grundskola (LGRA22). Betyg sätts i årskurs 6–9. Skalan är alltid A–E, - men systemet ska även stödja markering för deltagit där betyg inte kan ges.
Acceptanskriterier
- Ska fungera på exakt samma sätt som [01]
- Betygsskala hämtas enligt:
- CourseParticipants.GradeMask → om eleven har integrerad skolform.
- db.courses.CourseMaskRate → om konfigurerad.
- Defaultvärde: Schoolconfig.Schooltype → Grundskola → CourseMask = GR-LGR22 → GradeScaleE.AF.
- Det ska även gå att registrera ”deltagit” → GradeText = "1" och ChangedGradeNote = "Deltagit". Detta kommer generera en tom ruta i betygskatalog med Note som info.
Kopplingar
- CourseMask: GR-LGRA22 (se lösningsförslag)
- GradeScale: GradeScaleE.AE (se lösningsförslag)
Edge cases
- Om elev deltar i undervisningen men inte kan betygsättas → registrera ”deltagit”.
[05] Registrera betyg i anpassad gymnasieskola
Lärare ska kunna registrera kursbetyg (LGYAN2013) och ämnesbetyg (LGYAN2025) i anpassad gymnasieskola. Betygsskalan är alltid A–E, - och ska kunna markeras som slutbetyg endast på högsta nivå i ett ämne.
Acceptanskriterier
- Ska fungera på exakt samma sätt som [02]
- Systemet ska särskilja kursbetyg (LGYAN2013) från ämnesbetyg (LGYAN2025).
- Slutbetyg kan endast sättas på högsta nivå i ett ämne (LGYAN2025).
- ”Deltagit” ska kunna registreras enligt samma logik som i anpassad grundskola.
Kopplingar
- CourseMask:
- GY-LGYAN11
- GY-LGYAN25.
- GradeScale: GradeScaleE.AE.
Edge cases
Elev får inte ha både kursbetyg (LGYAN2013) och ämnesbetyg (LGYAN2025) i samma ämne.
[06] Registrera betyg i Komvux anpassad utbildning och SFI
Lärare ska kunna registrera betyg i Komvux anpassad utbildning (LVUX12, särskild utbildning) samt SFI. Dessa skolformer har en förenklad betygsskala: IG–G.
Acceptanskriterier
- Ska fungera på exakt samma sätt som [03].
- Om CourseMask VX-SFI anges, ska NationalSchoolFormID sättas till 12
Systemet kontrollerar att kurskod är giltig mot db.SkolverketCourse.
- Betygsskalan hämtas enligt:
- CourseParticipants.GradeMask → om angett..
- db.courses.CourseMaskRate → om konfigurerad.
- Defaultvärde: Schoolconfig.Schooltype → Vuxenutbildning → CourseMask = LVUX12 → GradeScaleE.AF.
Kopplingar
- CourseMask:
- VX-LVUX12A (Komvux anpassad utbildning).
- VX-SFI (SFI).
- GradeScale: GradeScaleE.IG_G.
[07] Registrera betyg i Yrkeshögskola (YH)
Lärare ska kunna registrera betyg i Yrkeshögskolan (YH). Även om YH inte är en skolform enligt Skolverket, hanteras den i systemet som en egen betygsskala för att stödja befintliga användare. Betygsskalan är IG–VG.
Acceptanskriterier
- Ska fungera på exakt samma sätt som [03].
- Systemet ska kontrollera att kurskod är giltig i YH:s egna register, dessa finns inlagda i db.SkolverketCourse.
- Styrning för publicering av betyg bör ske på kursnivå, eftersom att kurser kan vara kortare än terminsvis.
- Implementering av ny kolumn i courses, GradePublishDate?
Kopplingar
- CourseMask: YH.
- GradeScale: GradeScaleE.IG_VG.
lösningsförslag
Det som är avgörande för att betygen ska lagras på korrekt sätt och skrivas ut i betygskatalog/examensbevis etc, är Skolform (NationalSchoolFormID) och betygsskala (gradescale).
För att få en bra logik och hantering av betyg bör vi endast ha stöd för de skolformer och läroplaner som finns enligt Skolverket, med tillhörande betygsskalor.
Vi behöver i dagsläget ha stöd för 4 betygsskalor, med möjlighet att utöka till flera vid eventuella förändringar hos Skolverket, exempelvis 10-gradig betygsskala.
| Skolform | NationalSchoolFormID | Läroplan | Betygsskala |
|---|---|---|---|
| Grundskola | 3 | LGR22 | A-F, - |
| Anpassad grundskola | 4 | LGRA22 | A-E, - |
| Specialskola | 5 | LSPEC22 | A-F, - |
| Sameskola | 6 | LSAM22 | A-F, - |
| Gymnasium, kursbetyg | 8 | LGY11 | A-F, - |
| Gymnasium, ämnesbetyg | 8 | LGY2025 | A-F, - |
| Anpassad gymnasium, kursbetyg | 9 | LGYAN2013 | A-E, - |
| Anpassad gymnasium, ämnesbetyg | 9 | LGYAN2025 | A-E, - |
| Komvux, gymnasial och grundläggande | 10 | LVUX12 | A-F, - IG-G |
| Komvux, anpassad utbildning | 11 | LVUX12 | IG-G |
| Komvux, SFI | 12 | LVUX12 | IG-G |
| Yrkeshögskola* | YH | IG-VG |
* YH är inte en officiell skolform eller läroplan enligt Skolverket, eftersom att det är en eftergymnasial utbildning som liknar högskola/universitet, men mer praktiskt inriktad. Idag har vi stöd för yrkeshögskolan och deras betygsskala i V1 gällande betygssättning, och behöver därför fortsätta att ha stöd för det i V2.
enum GradeScaleE
AF \= 1, // A–F, \-
AE \= 2, // A–E, \-
IG\_G \= 3, // IG–G
IG\_VG \= 4 // IG–VG
public static class GradeScaleDefinitions
{
public static readonly Dictionary\<GradeScaleE, List\<string\>\> AllowedGrades \=
new Dictionary\<GradeScaleE, List\<string\>\>
{
{ GradeScaleE.AF, new List\<string\> { "A", "B", "C", "D", "E", "F", "-" } },
{ GradeScaleE.AE, new List\<string\> { "A", "B", "C", "D", "E", "-", “1” } },
{ GradeScaleE.IG\_G, new List\<string\> { "IG", "G" } },
{ GradeScaleE.IG\_VG, new List\<string\> { "IG", "G", "VG" } }
};
enum CourseMask
YH = 14,
GR-LGR22 = 15,
GR-LGRA22 = 16,
GR-LSPEC22 =
GR-LSAM22 =
GY-LGY11 = 2,
GY-LGYAN11 = 3,
GY-LGY25 = 17,
GY-LGYAN25 = 18,
VX-LVUX12 = 20,
VX-LVUX12A = 21,
VX-SFI =
CourseMask kommer vara det enum värdet som stämplas in i Grade.GradeScale, men kommer nu motsvara och benämnas som läroplan istället för betygskala, eftersom att det är en mer korrekt. För att inte påverka befintlig data, ska enum värdena hedra legacy.
Uppdateringen av courseMask kommer kräva utveckling i V1 också, eftersom att inställningarna för detta sker där idag.
SFI kommer få en egen “mask” eftersom att de använder en förenklad betygsskala som inte går att koppla till VX-LVUX12, men som idag har ett eget värde i NationalSchoolForms.
Exempelkod på hur mappning mellan betygsskala och coursemask kan se ut
public static class GradeScaleMapping
{
public static readonly Dictionary\<string, GradeScaleE\> CourseMaskToGradeScale \=
new Dictionary\<string, GradeScaleE\>
{
{ "GR-LGR22", GradeScaleE.AF },
{ "GR-LGRA22", GradeScaleE.AE },
{ "GR-LSPEC22", GradeScaleE.AF },
{ "GR-LSAM22", GradeScaleE.AF },
{ "GY-LGY11", GradeScaleE.AF },
{ "GY-LGYAN11", GradeScaleE.AE },
{ "GY-LGYAN11A", GradeScaleE.AE },
{ "GY-LGY25", GradeScaleE.AF },
{ "GY-LGYAN25", GradeScaleE.AE },
{ "GY-LGYAN25A", GradeScaleE.AE },
{ "VX-LVUX12", GradeScaleE.AF },
{ "VX-LVUX12A", GradeScaleE.AE },
{ "VX-SFI", GradeScaleE.IG\_G },
{ "YH", GradeScaleE.IG\_VG },
};
}
Lagring av betyg i tabellen [Grades]
När ett betyg registreras eller uppdateras ska alla relevanta fält i [Grades]-tabellen stämplas in på ett enhetligt och korrekt sätt. Nedan följer krav på vilka fält som måste anges och hur de ska hanteras.
1. identitet och koppling
Dessa fält säkerställer att betyget går att knyta till rätt elev, kurs och skola. Obligatoriska.
- UserID – unik identifierare för eleven. Hämtas från db.CourseParticipants
- CourseID – kursgrupp/undervisningsgruppens-ID. Hämtas från db.Courses
- CourseCode – kurskod. Ska alltid sättas där kurskod finns. Hämtas från db.Courses om inget annat har angivits i db.Courseparticipants.CourseCode
- SchoolID – skolans ID. Hämtas från db.Courses
- NationalSchoolFormID – skolformens ID (ex. 3 = Grundskola, 4 = Anpassad grundskola). Utgår från db.SchoolConfig.Schooltype om inget annat har angivits i db.Courses.CourseMaskRate (kursnivå) eller db.Courseparticipants.CourseMask (individnivå)
2. betygsvärde och skala
Anger själva betyget samt vilken skala som gäller. Obligatoriska.
- GradeText – själva betygsbeteckningen.
- Tillåtna värden beroende på skolform:
- A–F eller A–E.
- IG–G eller IG–VG.
-(streck, vid saknat underlag).- 1 (”deltagit” endast i anpassade skolformer).
- Tillåtna värden beroende på skolform:
- GradingScale – enumvärde för läroplan, se förslag ovan. Måste hedra legacyhantering för korrekt utskrift av betygskatalog, och termin/slutsbetyg och examensbevis.
- EndGrade – markeras true om betyget är ett slutbetyg för kursen. VIsas endast i åk 9 för LGR22 och LGRA22, åk 10 för LSPEC22 och i åk 3 för gymnasiet.
3. betygsperiod och tidsstämplar
Används för att hålla reda på när och var betyget gäller. Obligatoriska.
- GradePeriod – periodbeteckning, format <År><1/2> (ex. 20251).
- GradeDate – datum då betyget sattes. Ska stämplas med aktuell systemtid
- LastUpdated – datum för senaste uppdatering. Ska stämplas med aktuell systemtid för ändringen.
4. publicering och synlighet
Styr när och hur betyget blir synligt för elev och vårdnadshavare. Obligatoriska.
- Definitiv – true om betyget är slutgiltigt, annars false. Om det är true, ska betyget inte gå att ändra.
- PreGrade – Sätts alltid till 0 eftersom att det är “Hittills uppnådda mål”
- PublishDate – datum då betyget blir synligt för elev. Hämtas från SchoolConfig.GradePublishDate
- ShowToStudent – om betyget ska visas för elev.
5. Klass- och utbildningsinformation
Säkerställer koppling till elevens utbildning. Obligatoriska.
- EducationYear – Årskurs. Ska alltid fyllas i. Hämtas från db.Curriculum
ClassName – klass eller undervisningsgrupp. Hämtas från db.Curriculum
6. signering och behörighet
Visar vem som har satt betyget och om det har signerats. Obligatoriska.
- GradeSign – lärarens signatur.
- GradeSignAuthorized – signatur för behörig lärare (vid krav på dubbel signering). Fylls endast i om information finns i db.CourseParticipants.GradeSignAuthorized
- GradeSetByUserID – ID för den som satt betyget.
- CreatedByUserID – ID för den som skapat raden.
- GradeSetByName – namn på den som satt betyget.
- UserIDAuthorizedTeacher – lärarens ID. Fylls endast i om information finns i db.CourseParticipants.GradeSignAuthorized
7. låsning
Används för att skydda betyg mot ändringar. Villkorliga.
- Locked – true om betyget är låst.
- LockedDate – datum när betyget låstes. Ska stämplas med aktuell systemtid när betyg markeras som låst.
- GradeLockedByName – namn på den som låste betyget.
8. anpassning och särskilda fall
Används för särskilda studieformer. Villkorliga.
- Adaptive – flagga om betyget gäller anpassad studiegång.
- AdaptiveNote – kommentar kring anpassningen.
9. ändringar och kompletteringar
Används om betyget har ändrats i efterhand. Villkorliga.
- ChangedGradeType – typ av betygsändring (ex. prövning).
- ChangedGradeNote – kommentar till ändringen.
- Examination – markerar om betyget satts efter särskild examination.
10. övrigt
Övriga fält för spårbarhet och integration. Valfria.
- Judgement – Kopplat till “Hittills uppnådda mål”. Används ej.
- GradeByStudent – om eleven själv satt ett betyg. Används ej.
- ExternalID – extern identifierare för integration, exempelvis betygsimport från elevregister.
- FromPreviousSchool – true om betyget lagts in manuellt från från annan skola.
- GradeNotFollow – används för att markera betyg som inte ska följas upp till nästa termin.
kontroll av befintliga betyg
Innan ett nytt betyg skrivs till tabellen ska systemet alltid kontrollera om eleven redan har ett betyg för samma:
- CourseID
- UserID (elev)
- GradePeriod (Betygsperiod, ex 20251)
- Datum för terminsstart–terminsslut (kontrollera när betyget registrerades)
Kontrollen ska ske genom en metod som gör följande:.
- Om ett betyg redan finns ska det uppdateras
- Om inget betyg finns ska en ny rad skapas.
- Dubbla betyg i samma kurs och betygsperiod är inte tillåtet.
edge cases
- Deltagit men ej nått E (endast för anpassad grundskola/gymnasium):
- GradeText registreras med “1”, som genererar en tom ruta vid utskrift. .
- ChangedGradeNote = "Deltagit".
- Frånvaro / saknat underlag:
- GradeText = "-".
- Avslutat ämne (Hanteras i Skoladmin):
- GradeText kompletteras med *.
- Anpassad studiegång (Hanteras i Skoladmin):
- GradeText kompletteras med **.
viktiga regler för kvalitetssäkring
- Varje elev kan endast ha ett aktivt betyg per kurs och period.
- Felaktiga eller dubbla rader i databasen får inte förekomma, eftersom detta leder till fel i betygskatalog och examensbevis.
- Systemet ska därför alltid utföra validering innan ny insättning.
utvecklingsförslag
Vidareutveckla vyn för att underlätta för läraren att sätta betyg, exempelvis att kunna klicka på en info-knapp om elev i registreringsvyn för att få en sammanställning av resultat och närvaro.
Tillägg från input från Jonathan: Ha möjlighet att kunna se tidigare satta betyget i ämnet.
medskick till steg 4 inför “teknisk spec” (utvecklarna)
Under arbetets gång med detta dokument kommer flera personer vara inblandade, troligen även en eller flera utvecklare. För att inte tappa bort saker längs vägen kan denna del fyllas på med punkter som någon utvecklare snappar upp och som de kommer behöva diskutera med övriga utvecklare/systemarkitekt etc innan den faktiska implementationen påbörjas.
Se https://drive.google.com/file/d/1sNhtAcjl_DUJRHOJ8jsv-ApQkoX4Fq4y/view?usp=sharing, steg 3B
- [Skriv din text här med detta textformat.]
dso:s återkoppling till pso
- [Skriv din text här med detta textformat.]