Open manuelmeister opened 7 months ago
Variante 1 | Variante 2 | Variante 3 |
---|---|---|
>> Variante 3 <<
[ContentNode]
[ColumnLayout|data]
[ChecklistNode;#selectedChecklist]
[Checklist|Name;Organisation;Language]
[ChecklistItem|Text]
[ContentNode]^[ChecklistNode]
[ContentNode]^[ColumnLayout]
[Camp]<>-*>[Checklist]
[Checklist]<>-*>[ChecklistItem]
[ChecklistItem]<*children-<>[ChecklistItem]
[Camp]<>-*>[Activity]
[Activity]rootContentNode-1>[ColumnLayout]
[ContentNode]<* children-<>[ContentNode]
[ColumnLayout]<> des-*>[ContentNode]
[Checklist]-.-option[ChecklistNode]
[ChecklistNode]<*-*>[ChecklistItem]
We choose Variant 3.
Relation Checklist
-> Camp
can be nullable.
In the future we can still elevate the n:m relation to its own entity and a theoretical future camp checklist will just be a TodoList
.
I'm afraid we'll have to discuss the naming again.
For the first implementation we need to name three entities:
My suggestion (see UML 'Variante 3') As identical as possible to material lists:
FYI: I started to work on the backend: https://github.com/pmattmann/ecamp3/tree/feature/checklist
...
We go with the version 3:
In the future we may want to rename our contentnodes to reflect that they are Node
s or Layout
s. This should be first sketched in a issue before renaming all the things.
Currently while prototyping the frontend (https://github.com/ecamp/ecamp3/pull/5460), I thought to myself, that we probably need an (optional) numbering system for the checklist items, similar to the schedule entries? What do you think?
How many characters [for the checklist item text] should be supported? – @pmattmann
I don't know. Who gathered the different checklists (PBS, J+S, Jubla, Cevi, …)? Maybe we should decide based on actual data, or find out what people want (maybe even a short and long reference to a checklist item?)
Core Meeting Decision
- We try out 256 chars for the checklist item title. If @carlobeltrame doesn't find more outliers that would need more chars.
- The numbering system needs to be more stable. For every parent (including null) the position should be ordered. We might consider per checklist different numbering styles in the future. The parent numbering concatination should be done by the frontend (e.g. 1.3.2).
ChecklistItem text length is changed to 256 in https://github.com/ecamp/ecamp3/pull/5408/commits/233b47d1d7763def2b77700770e2ea6d2bf56a41 Improve numbering system is done in https://github.com/ecamp/ecamp3/pull/5408/commits/d080c5f86c713855783cd7a6686a08d3c19f0b7d
@pmattmann what happens/should happen when we delete a checklist that is referenced in a contentnode?
@simfeld can you gather all PBS checklists?
@pmattmann can you sketch requirement A2? How do we manage this?
Copy Checklist ist im Backend teilweise implementiert. Siehe hier, hier und hier
Als Kursleitende Person möchte ich Anforderungsbäume aus einer Templatebibliothek importieren können, spätere Änderungen am Template haben keine Auswirkung auf bereits importierte Anforderungsbäume.
Checkliste-Vorlagen werden an ein Camp-Prototype gehängt. GUI loopt über alle Camp-Prototypes und sucht alle Checklisten zusammen. Alle Checklisten, welche gefunden werden, als Vorlage (Prototype) angeboten. Beim erstellen einer neuen Checkliste kann optional eine Vorlage ausgewählt werden. Checkliste-Vorlagen werden per SQL (Migration) eingefügt.
Pro:
Cons:
Im Backend wird pro Vorlage ein JSON-File abgelegt (auf Disk). Ein eigener Endpunkt für Checkliste-Vorlagen liest die Files von der Disk und bietet diese als Entitäten an.
File-Content:
{
"id": "a1b2c3d4",
"name": "Basiskurs Pfadistufe",
"sprache": "de",
"items": [
{
"text": "First-Level-Eintrag",
"items": [
{ "text": "Second-Level-Eintrag", "items": [] },
{
"text": "Second-Level-Eintrag 2",
"items": [
{ ... }
]
}
]
}
]
}
Endpunkt: /api/checklist_prototypes{?sprache=de}
{
"_links": { "self": { } },
"totalItems": 3,
"_embedded": {
"items": [
{
"_links": { "self": { } },
"id": "a1b2c3d4",
"name": "Basiskurs Pfadistufe",
},
]
}
}
Pro:
Cons:
We want variant 1
Frontend:
Kursziele/Kursanforderungen
Strukturierte Anforderungen/Ziele/Kompetenzen von einer Instanz (Schule, Verband, Bundesamt & eigenen Erwartungen) welche man Aktivitäten zuordnen kann. Die Use Cases sind:
A) Administration
B) Activity Ebene
Category
) hinzufügen.C) Reporting