diff --git a/Documentation/modelle_dokumente.md b/Documentation/modelle_dokumente.md new file mode 100644 index 0000000..68149c4 --- /dev/null +++ b/Documentation/modelle_dokumente.md @@ -0,0 +1,92 @@ +# Modelle (App: dokumente) + +Kurzbeschreibungen der Modelle in dokumente/models.py. + +## Dokumententyp +- Zweck: Kategorisierung von Dokumenten (z. B. Richtlinie, Verfahren). +- Wichtige Felder: `name` (CharField, PK), `verantwortliche_ve` (CharField). +- Besonderheiten: `__str__()` gibt `name` zurück. +- Meta: `verbose_name` und `verbose_name_plural` gesetzt. + +## Person +- Zweck: Repräsentiert Personen (Autoren, Prüfer). +- Wichtige Felder: `name` (CharField, PK), `funktion` (CharField). +- Beziehungen: Many-to-many mit Dokument über `autoren` und `pruefende`. +- Besonderheiten: `__str__()` gibt `name` zurück; `ordering = ['name']`. +- Meta: `verbose_name_plural = "Personen"`. + +## Thema +- Zweck: Thematische Einordnung von Vorgaben. +- Wichtige Felder: `name` (CharField, PK), `erklaerung` (TextField, optional). +- Besonderheiten: `__str__()` gibt `name` zurück. + +## Dokument +- Zweck: Hauptobjekt; ein einzelnes Dokument mit Metadaten. +- Wichtige Felder: + - `nummer` (CharField, PK) + - `dokumententyp` (FK → Dokumententyp, on_delete=PROTECT) + - `name` (CharField) + - `autoren`, `pruefende` (ManyToManyField → Person) + - `gueltigkeit_von`, `gueltigkeit_bis` (DateField, optional) + - `aktiv` (BooleanField) + - `signatur_cso`, `anhaenge` (Metadaten) +- Besonderheiten: `__str__()` formatiert als "nummer – name". +- Meta: `verbose_name` / `verbose_name_plural`. + +## Vorgabe +- Zweck: Einzelne Vorgabe / Anforderung innerhalb eines Dokuments. +- Wichtige Felder: + - `order` (IntegerField) — Sortierreihenfolge + - `nummer` (IntegerField) — Nummer innerhalb Thema/Dokument + - `dokument` (FK → Dokument, CASCADE, related_name='vorgaben') + - `thema` (FK → Thema, PROTECT) + - `titel` (CharField) + - `referenzen` (M2M → Referenz, optional) + - `stichworte` (M2M → Stichwort, optional) + - `relevanz` (M2M → Rolle, optional) + - `gueltigkeit_von`, `gueltigkeit_bis` (Datum/Felder) +- Beziehungen: zu Dokument, Thema, Referenzen, Stichworte, Rollen. +- Wichtige Methoden: + - `Vorgabennummer()` — generiert eine lesbare Kennung (z. B. "DOK. T. N"). + - `get_status(check_date, verbose)` — liefert "future", "active" oder "expired" oder eine deutsche Statusbeschreibung, abhängig von Gültigkeitsdaten. + - `sanity_check_vorgaben()` (static) — findet Konflikte zwischen Vorgaben mit gleicher Nummer/Thema/Dokument, deren Zeiträume sich überschneiden. + - `clean()` — ruft `find_conflicts()` auf und wirft ValidationError bei Konflikten. + - `find_conflicts()` — prüft Konflikte mit bestehenden Vorgaben (ohne sich selbst). + - `_date_ranges_intersect(...)` (static) — prüft, ob sich zwei Datumsbereiche überschneiden (None = offen). +- Besonderheiten: `__str__()` gibt "Vorgabennummer: titel" zurück. +- Meta: `ordering = ['order']`, `verbose_name_plural = "Vorgaben"`. + +## VorgabeLangtext, VorgabeKurztext +- Zweck: Textabschnitts-Modelle, erben von `Textabschnitt` (aus abschnitte.models). +- Wichtige Felder: je ein FK `abschnitt` → Vorgabe. +- Besonderheit: konkrete Untertypen für Lang- und Kurztexte; Meta-`verbose_name` gesetzt. + +## Geltungsbereich, Einleitung +- Zweck: Dokumentbezogene Textabschnitte (erben von `Textabschnitt`). +- Wichtige Felder: FK zum `Dokument` (`geltungsbereich` bzw. `einleitung`). +- Meta: `verbose_name`/`verbose_name_plural` gesetzt. + +## Checklistenfrage +- Zweck: Einzelne Frage für Checklisten zu einer Vorgabe. +- Wichtige Felder: `vorgabe` (FK → Vorgabe, related_name="checklistenfragen"), `frage` (CharField). +- Besonderheiten: `__str__()` gibt `frage` zurück. + +## VorgabenTable +- Zweck: Proxy-Modell für Vorgabe zur Darstellung (Tabellenansicht). +- Besonderheiten: kein eigenes Schema; nur Meta-Attribute (`proxy = True`, `verbose_name`). + +## Changelog +- Zweck: Änderungsverzeichnis-Eintrag für ein Dokument. +- Wichtige Felder: + - `dokument` (FK → Dokument, related_name='changelog') + - `autoren` (M2M → Person) + - `datum` (DateField) + - `aenderung` (TextField) +- Besonderheiten: `__str__()` formatiert als "datum – dokumentnummer". +- Meta: `verbose_name` / `verbose_name_plural`. + +Hinweise zur Pflege +- Wichtige Relationen nutzen häufig on_delete=PROTECT, um versehentliche Löschungen zu vermeiden. +- Viele Modelle haben CharField-Primärschlüssel (z. B. `nummer`, `name`). +- Validierungslogik für zeitliche Konflikte ist in Vorgabe implementiert (clean / find_conflicts). +- Textabschnitt-Modelle erben Verhalten aus `abschnitte.models.Textabschnitt` — dort sind Anzeige- und Inhaltsregeln definiert. \ No newline at end of file diff --git a/argocd/deployment.yaml b/argocd/deployment.yaml index 28d2348..e7dc2d2 100644 --- a/argocd/deployment.yaml +++ b/argocd/deployment.yaml @@ -25,7 +25,7 @@ spec: mountPath: /data containers: - name: web - image: git.baumann.gr/adebaumann/vui:0.953-ingressfixed + image: git.baumann.gr/adebaumann/vui:0.954 imagePullPolicy: Always ports: - containerPort: 8000 diff --git a/argocd/ingress.yaml b/argocd/ingress.yaml index 9cbb892..fa3fe45 100644 --- a/argocd/ingress.yaml +++ b/argocd/ingress.yaml @@ -4,7 +4,11 @@ metadata: name: django namespace: vorgabenui annotations: +<<<<<<< Updated upstream argocd.argoproj.io/ignore-healthcheck: "true" +======= + nginx.ingress.kubernetes.io/rewrite-target: / +>>>>>>> Stashed changes spec: ingressClassName: traefik rules: diff --git a/data/db.sqlite3 b/data/db.sqlite3 index 0dd3d6e..96d3df4 100644 Binary files a/data/db.sqlite3 and b/data/db.sqlite3 differ diff --git a/dokumente/templates/standards/standard_detail.html b/dokumente/templates/standards/standard_detail.html index a648123..3747af6 100644 --- a/dokumente/templates/standards/standard_detail.html +++ b/dokumente/templates/standards/standard_detail.html @@ -43,7 +43,7 @@
-

Geltungsbereich

+ Geltungsbereich
{% for typ, html in standard.geltungsbereich_html %} @@ -73,7 +73,7 @@
-

+

{{ vorgabe.Vorgabennummer }} – {{ vorgabe.titel }} {% if vorgabe.long_status != "active" and standard.history == True %} {{ vorgabe.long_status }} @@ -123,7 +123,7 @@ {% endif %} -
+

Stichworte: {% if vorgabe.stichworte.all %} diff --git a/pages/templates/base.html b/pages/templates/base.html index 585b0a5..f7f41dd 100644 --- a/pages/templates/base.html +++ b/pages/templates/base.html @@ -211,7 +211,7 @@

-

Version {{ version|default:"0.953" }}

+

Version {{ version|default:"0.954" }}