From f284bc07fc5c0a2f87e062e85291fdaafc4f8cc8 Mon Sep 17 00:00:00 2001 From: Denys Konovalov Date: Thu, 11 May 2023 15:16:14 +0200 Subject: [PATCH] chronik CMS --- .../admin/config/collections/chronikseiten.js | 56 +++++++++++++ static/admin/config/collections/index.js | 3 +- static/admin/config/collections/statistik.js | 78 +++++++++++++++++++ static/admin/config/schulchronik.js | 5 +- 4 files changed, 139 insertions(+), 3 deletions(-) create mode 100644 static/admin/config/collections/chronikseiten.js create mode 100644 static/admin/config/collections/statistik.js diff --git a/static/admin/config/collections/chronikseiten.js b/static/admin/config/collections/chronikseiten.js new file mode 100644 index 00000000..a91f94de --- /dev/null +++ b/static/admin/config/collections/chronikseiten.js @@ -0,0 +1,56 @@ +import { MarkdownProps } from "../props.js"; +import { DescriptionText, DraftBoolean, Title } from "./widgets.js"; + +const ChronikseitenCollection = { + name: "chronikseiten", + label: "Chronikseiten", + label_singular: "Zusatzseite (Chronik)", + description: "Chronikseiten entsprechen von der Funktionalität herkömmlichen Zusatzseiten, sind allerdings der Schulchronik vorbehalten.", + icon: "page-add", + folder: "content/german/chronikseiten", + create: true, + editor: { + preview: true, + frame: true + }, + filter: { + field: "type", + value: "pages" + }, + summary_fields: ["title", "draft", "aliases", "body"], + fields: [ + Title(false), + DraftBoolean, + DescriptionText, + { + name: "type", + label: "Typ", + widget: "hidden", + default: "pages" + }, + { + name: "aliases", + label: "Aliase", + label_singular: "Alias", + widget: "list", + collapsed: true, + required: false, + fields: [ + { + name: "alias", + label: "Alias", + widget: "string" + } + ] + }, + { + name: "body", + label: "Text", + widget: "markdown", + required: false, + ...MarkdownProps + } + ] +} + +export default ChronikseitenCollection; \ No newline at end of file diff --git a/static/admin/config/collections/index.js b/static/admin/config/collections/index.js index 38a875c5..252e7da4 100644 --- a/static/admin/config/collections/index.js +++ b/static/admin/config/collections/index.js @@ -4,5 +4,6 @@ import SuperhaufenCollection from "./superhaufen.js"; import CantorpreisCollection from "./cantorpreis.js"; import AbiturientenCollection from "./abiturienten.js"; import CantorforaCollection from "./cantorfora.js"; +import ChronikseitenCollection from "./chronikseiten.js"; -export { SettingsCollection, ChronikjahreCollection, SuperhaufenCollection, CantorpreisCollection, AbiturientenCollection, CantorforaCollection }; \ No newline at end of file +export { SettingsCollection, ChronikjahreCollection, SuperhaufenCollection, CantorpreisCollection, AbiturientenCollection, CantorforaCollection, ChronikseitenCollection }; \ No newline at end of file diff --git a/static/admin/config/collections/statistik.js b/static/admin/config/collections/statistik.js new file mode 100644 index 00000000..ce502724 --- /dev/null +++ b/static/admin/config/collections/statistik.js @@ -0,0 +1,78 @@ +const StatistikCollection = { + name: "statistik", + label: "Statistik", + description: "Hier können statistische Daten bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet.", + icon: "stats", + editor: { + preview: false + }, + files: [ + { + name: "abiturdurchschnitte", + label: "Abiturdurchschnitte", + file: "static/data/abiturdurchschnitte.json", + fields: [ + { + name: "abiturdurchschnitte", + label: "Abiturdurchschnitte", + label_singular: "Abiturdurchschnitt", + widget: "list", + required: false, + fields: [ + { + name: "jahr", + label: "Jahr", + widget: "number", + value_type: "int", + step: 1, + required: true + }, + { + name: "schnitt", + label: "Schnitt", + widget: "number", + value_type: "float", + step: 0.01, + required: true + } + ] + }, + { + name: "schuelerzahlen", + label: "Schülerzahlen", + file: "static/data/schuelerzahlen.json", + fields: [ + { + name: "schuelerzahlen", + label: "Schülerzahlen", + widget: "list", + required: false, + fields: [ + { + name: "year", + label: "Jahr", + widget: "number", + required: true + }, + { + name: "all", + label: "Gesamt", + widget: "number", + required: true + }, + { + name: "girls", + label: "davon Mädchen", + widget: "number", + required: true + } + ] + } + ] + } + ] + } + ] +} + +export default StatistikCollection; \ No newline at end of file diff --git a/static/admin/config/schulchronik.js b/static/admin/config/schulchronik.js index bb481486..0f0f5a08 100644 --- a/static/admin/config/schulchronik.js +++ b/static/admin/config/schulchronik.js @@ -1,4 +1,4 @@ -import { AbiturientenCollection, CantorforaCollection, CantorpreisCollection, ChronikjahreCollection, SuperhaufenCollection } from "./collections/index.js"; +import { AbiturientenCollection, CantorforaCollection, CantorpreisCollection, ChronikjahreCollection, ChronikseitenCollection, SuperhaufenCollection } from "./collections/index.js"; const config = { @@ -35,7 +35,8 @@ const config = { SuperhaufenCollection, CantorpreisCollection, AbiturientenCollection, - CantorforaCollection + CantorforaCollection, + ChronikseitenCollection ] };