backend:
  name: gitea
  repo: gcg/gcg-website
  branch: master
  api_root: https://git.cantorgymnasium.de/api/v1
  base_url: https://oauth.cantorgymnasium.de
  commit_messages:
    create: "{{collection}} {{slug}} erstellt"
    update: "{{collection}} {{slug}} aktualisiert"
    delete: "{{collection}} {{slug}} gelöscht"
    uploadMedia: "{{path}} hochgeladen"
    deleteMedia: "{{path}} gelöscht"

local_backend: true

media_folder: "/static/media"
public_folder: "/media"
site_url: https://cantorgymnasium.de
display_url: https://cantorgymnasium.de
locale: "de"

media_library:
  max_file_size: 10240000
  folder_support: true

slug:
  encoding: "ascii"
  clean_accents: true
  sanitize_replacement: "-"

collections:
  - name: "config"
    icon: "settings"
    label: "Konfiguration"
    description: "Hier können die Basiseinstellungen der Website geändert werden. Die meisten Bereiche müssen nur in Ausnahmefällen angepasst werden."
    editor:
      preview: false
      size: half
    files:
      - name: "homepage-config"
        label: "Startseitenkonfiguration"
        file: "data/de/homepage.yml"
        fields:
          - label: "Banner"
            name: "top_banner"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - {label: "Text", name: "text", widget: "markdown", required: false}
              - {label: "Farbe", name: "color", widget: "color", required: false}
              - {label: "Schriftfarbe", name: "font_color", widget: "color", required: false}
              - {label: "Symbol", name: "icon", widget: "string", required: false, hint: "Liste unter https://pictogrammers.com/library/mdi/"}
              - label: "Zeitschaltung"
                name: temporarily
                widget: "object"
                fields:
                  - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
                  - {label: "Startdatum", name: "start_date", widget: "datetime",  required: false, date_format: "dd.MM.yyyy", time_format: false, format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"}
                  - {label: "Enddatum", name: "end_date", widget: "datetime",  required: false, date_format: "dd.MM.yyyy", time_format: false, format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"}
          - label: "Karusell"
            name: "slider"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - {label: "Hintergrundbild", name: "bg_image", widget: "image", required: false }
              - {label: "Titel", name: "title", widget: "string", required: false}
              - label: "Elemente"
                label_singular: "Element"
                name: "slider_item"
                widget: "list"
                collapsed: true
                fields:
                  - {label: "Inhalt", name: "content", widget: "string", required: false}
                  - label: "Button"
                    name: "button"
                    widget: "object"
                    required: false
                    collapsed: true
                    fields:
                      - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
                      - {label: "Bezeichnung", name: "label", widget: "string", required: false}
                      - {label: "Link", name: "link", widget: "string", required: false}
          - label: "Partnerlogos (oben)"
            name: "header_logos"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - label: "Logos"
                label_singular: "Logo"
                name: "logos"
                widget: "list"
                required: false
                collapsed: true
                fields:
                  - {label: "Titel", name: "title", widget: "string", required: false}
                  - {label: "Link", name: "link", widget: "string", required: false}
                  - {label: "Grafik", name: "image", widget: "image", required: true}
          - label: "Einstiegsabschnitt"
            name: "about"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - {label: "Titel", name: "title", widget: "string", required: false}
              - {label: "Inhalt", name: "content", widget: "markdown", required: false}
              - label: "Button"
                name: "button"
                widget: "object"
                fields:
                  - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
                  - {label: "Bezeichnung", name: "label", widget: "string", required: false}
                  - {label: "Link", name: "link", widget: "string", required: false}
          - label: "Blog-Abschnitt"
            name: "blog"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - {label: "Titel", name: "title", widget: "string"}
          - label: "Erfolge"
            name: "success_banner"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - {label: "Bild", name: "image", widget: "image", required: false }
              - label: "Elemente"
                label_singular: "Element"
                name: "feature_item"
                widget: "list"
                collapsed: true
                fields:
                  - {label: "Bezeichnung", name: "name", widget: "string", required: false}
                  - {label: "Symbol", name: "icon", widget: "string", required: false, hint: "Liste unter https://pictogrammers.com/library/mdi/"}
                  - {label: "Bild", name: "image", widget: "image", required: false }
                  - {label: "Inhalt", name: "content", widget: "markdown", required: false}
          - label: "Ganztagsangebote"
            name: "ganztagsangebote"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - {label: "Titel", name: "title", widget: "string", required: false}
          - label: "Button-Abschnitt"
            name: "cta"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - {label: "Titel", name: "title", widget: "string", required: false}
              - {label: "Untertitel", name: "subtitle", widget: "string", required: false}
              - label: "Button"
                name: "button"
                widget: "object"
                fields:
                  - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
                  - {label: "Bezeichnung", name: "label", widget: "string", required: false}
                  - {label: "Link", name: "link", widget: "string", required: false}
          - label: "Informationsabschnitt"
            name: "info"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - {label: "Hintergrundbild", name: "bg_image", widget: "image", required: false }
              - {label: "Titel", name: "title", widget: "string", required: false}
              - {label: "Inhalt", name: "content", widget: "markdown", required: false}
              - {label: "Video-Link", name: "video_link", widget: "string", required: false}
          - label: "Termine"
            name: "termine"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - {label: "Titel", name: "title", widget: "string", required: false}
          - label: "DigitalPakt-Banner"
            name: "digitalpakt"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - {label: "Titel", name: "title", widget: "string", required: false}
              - {label: "Bild", name: "image", widget: "image", required: false }
              - {label: "Inhalt", name: "content", widget: "markdown", required: false}
          - label: "Partnerlogos (unten)"
            name: "footer_logos"
            widget: "object"
            collapsed: true
            summary: "{{fields.enable | ternary('aktiv', 'inaktiv')}}"
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - label: "Logos"
                label_singular: "Logo"
                name: "logos"
                widget: "list"
                required: false
                collapsed: true
                fields:
                  - {label: "Titel", name: "title", widget: "string", required: false}
                  - {label: "Link", name: "link", widget: "string", required: false}
                  - {label: "Grafik", name: "image", widget: "image", required: true}
      - name: "hugo-config"
        label: "Website-Konfiguration"
        file: "config.yml"
        fields:
          - {label: "Website-URL", name: "baseURL", widget: "string"}
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Elemente je Seite", name: "paginate", widget: "number", value_type: "int"}
          - {label: "Länge von Zusammenfassungen", name: "summaryLength", widget: "number", value_type: "int"}
          - {label: "Standardsprache in Unterordner", name: "defaultContentLanguageInSubdir", widget: "boolean", required: false}
          - {label: "Standardsprache", name: "defaultContentLanguage", widget: "string"}
          - {label: "Emoji", name: "enableEmoji", widget: "boolean", required: false}
          - {label: "robots.txt", name: "enableRobotsTxt", widget: "boolean", required: false}
          - {label: "Zeitzone", name: "timeZone", widget: "string"}
          - {label: "Pfade von Akzenten und Umlauten bereinigen", name: "removePathAccents", widget: "boolean", required: false, default: true}
          - label: "Markdown-Enstellungen"
            name: "markup"
            widget: "object"
            collapsed: true
            summary: '{{fields.defaultMarkdownHandler}}'
            fields:
              - {label: "standardmäßiger Markdown-Handler", name: "defaultMarkdownHandler", widget: "select", options: ["blackfriday", "goldmark"]}
              - label: "Goldmark-Einstellungen"
                name: "goldmark"
                widget: "object"
                fields:
                  - label: "Renderer-Einstellungen"
                    name: "renderer"
                    widget: "object"
                    fields: [{label: "Unsicheren Inhalt erlauben", name: "unsafe", widget: "boolean", required: false}]
          - label: "Einstellungen"
            name: "params"
            widget: "object"
            collapsed: true
            fields:
              - label: "Plugins"
                name: "plugins"
                widget: "object"
                collapsed: true
                fields:
                  - label: "CSS"
                    label_singular: "CSS-Stylesheet"
                    name: "css"
                    widget: "list"
                    collapsed: true
                    fields:
                      - {label: "Link", name: "link", widget: "string"}
                  - label: "JavaScript"
                    label_singular: "JS-Datei"
                    name: "js"
                    widget: "list"
                    collapsed: true
                    fields:
                      - {label: "Link", name: "link", widget: "string"}
                  - label: "JavaScript (am Seitenanfang)"
                    label_singular: "JS-Datei"
                    name: "head_js"
                    widget: "list"
                    collapsed: true
                    fields:
                      - {label: "Link", name: "link", widget: "string"}
              - {label: "Logo", name: "logo", widget: "image" }
              - {label: "Autor", name: "author", widget: "string"}
              - {label: "Adresse", name: "address", widget: "string"}
              - {label: "Route (Link)", name: "route_link", widget: "string"}
              - {label: "Telefonnummer", name: "mobile", widget: "string"}
              - {label: "E-Mail-Adresse", name: "email", widget: "string"}
              - {label: "E-Mail-Adresse (UI-Ansicht)", name: "email_label", widget: "string"}
              - {label: "Beschreibung", name: "description", widget: "string"}
              - {label: "Kontakt-Titelleiste", name: "top_header", widget: "boolean"}
              - label: "Vorschaubilder"
                label_singular: "Vorschaubild"
                name: "images"
                widget: "list"
                required: false
                fields:
                  - label: "Bild-Pfad"
                    name: "path"
                    widget: "string"
              - {label: "Twitter-Konto", name: "twitter", widget: "string", required: false}
              - label: "Ladeanimation"
                name: "preloader"
                widget: "object"
                collapsed: true
                fields:
                  - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
                  - {label: "Logo", name: "preloader", widget: "image" }
                  - {label: "Ladeanimation", name: "loader", widget: "image" }
              - label: "Soz. Netzwerke"
                label_singular: "Soz. Netzwerk"
                name: "social"
                widget: "list"
                collapsed: true
                fields:
                  - {label: "Bezeichnung", name: "title", widget: "string"}
                  - {label: "Symbol", name: "icon", widget: "string", hint: "Liste unter https://pictogrammers.com/library/mdi/"}
                  - {label: "Link", name: "link", widget: "string"}
          - label: "Menü"
            name: "menu"
            widget: "object"
            collapsed: true
            fields:
              - label: "Hauptmenü"
                label_singular: "Menüeintrag"
                name: "main"
                widget: "list"
                collapsed: true
                fields:
                  - {label: "Titel", name: "name", widget: "string"}
                  - {label: "Position", name: "weight", widget: "number", hint: "Je höher die Nummer, desto weiter unten liegt der Menüeintrag"}
                  - {label: "Erweitertes Menü", name: "hasChildren", widget: "boolean", required: false, hint: "Der Menüpunkt dient als Untermenü für weitere Elemente"}
                  - {label: "Link", name: "URL", widget: "string", required: false}
                  - {label: "Untermenü von", name: "parent", widget: "relation", collection: "config", file: "hugo-config", search_fields: ['menu.main.*.name'], display_fields: ['menu.main.*.name'], value_field: "menu.main.*.name", required: false, hint: "Menüeintrag, dem dieser untergeordnet ist"}
                  - label: "Parameter"
                    name: "params"
                    widget: "object"
                    collapsed: false
                    fields:
                      - {label: "Externer Link", hint: "Wird in neuem Tab geöffnet.", name: "external", widget: "boolean", default: false, required: false}
                      - {label: "Trennlinie", hint: "Trennlinie unter den Menüpunkt einfügen.", name: "separator", widget: "boolean", default: false, required: false}
              - label: "Link-Liste"
                label_singular: "Link"
                name: "footer"
                widget: "list"
                hint: "Im Footer sichtbar"
                collapsed: true
                fields:
                  - {label: "Titel", name: "name", widget: "string"}
                  - {label: "Link", name: "URL", widget: "string"}
          - label: "Sprachen"
            name: "languages"
            widget: "object"
            collapsed: true
            fields:
              - label: "Deutsch"
                name: "de"
                widget: "object"
                fields:
                  - {label: "Abkürzung", name: "languageName", widget: "string"}
                  - {label: "Sprachcode", name: "languageCode", widget: "string"}
                  - {label: "Inhalt-Ordner", name: "contentDir", widget: "string"}
                  - {label: "Position", name: "weight", widget: "number"}
                  - {label: "Startseitenbezeichnung", name: "home", widget: "string"}
                  - {label: "Copyright-Hinweis", name: "copyright", widget: "string"}
                  - {label: "Impressum-Link", name: "impressumURL", widget: "string"}
                  - {label: "Datenschutz-Link", name: "dseURL", widget: "string"}
          - label: "Privatsphäre"
            name: "privacy"
            widget: "object"
            collapsed: true
            fields:
              - label: "Disqus"
                name: "disqus"
                widget: "object"
                fields: [{label: "Deaktivieren", name: "disable", widget: "boolean", required: false}]
              - label: "Google Analytics"
                name: "googleAnalytics"
                widget: "object"
                fields: [{label: "Deaktivieren", name: "disable", widget: "boolean", required: false}]
              - label: "Instagram"
                name: "instagram"
                widget: "object"
                fields: [{label: "Deaktivieren", name: "disable", widget: "boolean", required: false}]
              - label: "Twitter"
                name: "twitter"
                widget: "object"
                fields: [{label: "Tracking deaktivieren", name: "enableDNT", widget: "boolean", required: false}]
              - label: "YouTube"
                name: "youtube"
                widget: "object"
                fields: [{label: "Piped-Proxy", name: "privacyEnhanced", widget: "boolean", required: false}]
              - label: "Vimeo"
                name: "vimeo"
                widget: "object"
                fields: [{label: "Tracking deaktivieren", name: "enableDNT", widget: "boolean", required: false}]
      - name: "categories-config"
        label: "Kategorien"
        file: "data/de/categories.yml"
        fields:
          - label: "Aktuelles"
            label_singular: "Kategorie"
            name: "blog"
            widget: "list"
            required: true
            collapsed: true
            fields:
              - {label: "Kategorie", name: "category", widget: "string", required: true}
          - label: "Ganztagsbereich"
            label_singular: "Kategorie"
            name: "ganztag"
            widget: "list"
            required: true
            collapsed: true
            fields:
              - {label: "Kategorie", name: "category", widget: "string", required: true}
          - label: "Wettbewerbe"
            label_singular: "Kategorie"
            name: "contests"
            widget: "list"
            required: true
            collapsed: true
            fields:
              - {label: "Kategorie", name: "category", widget: "string", required: true}
          - label: "Begabtenförderung"
            label_singular: "Kategorie"
            name: "begabte"
            widget: "list"
            required: true
            collapsed: true
            fields:
              - {label: "Kategorie", name: "category", widget: "string", required: true}
          - label: "Fächer (Fachzuordnung)"
            label_singular: "Fach"
            name: "subjects"
            widget: "list"
            required: true
            collapsed: true
            fields:
              - {label: "Fach", name: "subject", widget: "string", required: true}
      - name: "ausblick-config"
        label: "Ausblick auf die Woche"
        file: "data/de/ausblick.yml"
        fields:
          - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
          - {label: "Titel", name: "title", widget: "string", required: false}
          - label: "Autor"
            name: "author"
            widget: "relation"
            collection: "author"
            search_fields: ["title"]
            value_field: "title"
            required: false
          - {label: "Titelbild", name: "image", widget: "image", required: false }
          - {label: "Inhalt", name: "content", widget: "markdown", required: false}
  - name: "index-pages"
    icon: "page"
    label: "Hauptseiten"
    label_singular: "Hauptseite"
    description: Hauptseiten können nur manuell durch den Administrator angelegt und in die Website eingebunden werden. Über diesen Bereich ist die Änderung der Inhalte möglich.
    editor:
      preview: true
      frame: true
      size: half
    summary_fields: ["title", "description"]
    files:
      - name: "blog-index"
        label: "Aktuelles"
        file: "content/german/blog/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - name: "about-index"
        label: "Über die Schule"
        file: "content/german/about/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Bild", name: "image", widget: "image", default: "/media/image.webp", required: false }
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
          - label: "Statistik"
            name: "stats"
            widget: "object"
            collapsed: true
            fields:
              - {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
              - label: "Elemente"
                name: "zahlen"
                widget: "list"
                fields:
                  - {label: "Bezeichnung", name: "name", widget: "string", required: false}
                  - {label: "Zahl", name: "count", widget: "number", required: false}
          - {label: "Text", name: "body", widget: "markdown"}
      - name: "anmeldung-index"
        label: "Aufnahmeverfahren"
        file: "content/german/anmeldung/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string", required: true}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
          - label: "Elemente"
            label_singular: "Element"
            name: "elements"
            widget: "list"
            fields:
              - {label: "Titel", name: "title", widget: "string", required: true}
              - {label: "Text", name: "content", widget: "markdown", required: true}
            required: false
          - {label: "Text", name: "body", widget: "markdown", required: false}
      - name: "author-index"
        label: "Autoren"
        file: "content/german/author/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string", required: true}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - name: "anmeldeformular"
        label: "Anmeldeformular"
        file: "content/german/anmeldeformular/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string", required: true}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
          - {label: "Text", name: "body", widget: "markdown", required: false}
      - name: "cantorpreis-index"
        label: "Cantorpreis"
        file: "content/german/cantorpreis/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - name: "contact-index"
        label: "Kontakt"
        file: "content/german/kontakt/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
          - label: "Kontaktdaten"
            name: "kontaktdaten"
            widget: "list"
            required: true
            collapsed: true
            fields:
              - {label: "Name", name: "name", widget: "string", required: true}
              - {label: "Berufsbezeichnung", name: "position", widget: "string", required: true}
              - {label: "E-Mail-Adresse", name: "email", widget: "string", required: true, pattern: ["^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", "name@domain.tld"]}
      - name: "event-index"
        label: "Termine"
        file: "content/german/termine/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
          - label: Termine
            label_singular: "Termin"
            name: "events"
            widget: "list"
            collapsed: true
            fields:
              - {label: "Titel", name: "title", widget: "string", required: true}
              - {label: "Datum/Startdatum", name: "date", widget: "datetime",  required: true, date_format: "dd.MM.yyyy", time_format: false, format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"}
              - {label: "Enddatum", name: "enddate", widget: "datetime",  required: false, date_format: "dd.MM.yyyy", time_format: false, format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", default: ""}
              - {label: "Ort", name: "location", widget: "string", required: false}
            required: false
      - name: "forms-index"
        label: "Dokumente und Formulare"
        file: "content/german/forms/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - name: "ganztagsangebote-index"
        label: "Unser Ganztagsbereich"
        file: "content/german/ganztagsangebote/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - name: "projektwoche-index"
        label: "Projektwoche"
        file: "content/german/projektwoche/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - name: "wettbewerbe-index"
        label: "Wettbewerbe"
        file: "content/german/wettbewerbe/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - name: "begabte-index"
        label: "Begabtenförderung"
        file: "content/german/begabte/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - name: "abiturienten-index"
        label: "Abiturienten"
        file: "content/german/abiturienten/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - name: "cantorfora-index"
        label: "Cantorfora"
        file: "content/german/cantorfora/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
          - {label: "Text", name: "body", widget: "markdown", required: false}
      - name: "schulchronik-index"
        label: "Schulchronik"
        file: "content/german/schulchronik/_index.md"
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
          - {label: "Text", name: "body", widget: "markdown", required: false}
          - label: "Karte"
            name: "infocard"
            widget: "object"
            required: false
            fields:
              - {label: "Aktiviert", name: "enable", widget: "boolean", required: false}
              - {label: "Bild", name: "image", widget: "image", required: false}
              - {label: "Zitat", name: "quote", widget: "string", required: false}
              - {label: "Autor", name: "author", widget: "string", required: false}
          - label: "Informationsseiten"
            name: "links"
            widget: "list"
            required: false
            collapsed: true
            fields:
              - {label: "Titel", name: "title", widget: "string", required: true}
              - {label: "Link", name: "link", widget: "string", required: true}
  - name: "pages"
    icon: "page-add"
    label: "Zusatzseiten"
    label_singular: "Zusatzseite"
    description: "Zusatzseiten können direkt aus der grafischen Oberfläche heraus erstellt werden und sind unter https://cantorgymnasium.de/pages/[SEITENTITEL] einsehbar. Sie bestehen immer aus einem Titel, einer Metabeschreibung (kurzer Einstiegstext) und dem eigentlichen Inhalt. Einer Zusatzseite kann auch ein Alias, also eine alternative URL zugewiesen werden."
    folder: "content/german/pages"
    create: true
    editor:
      preview: true
      frame: true
      size: half
    slug: "{{slug}}"
    filter:
      field: type
      value: pages
    summary_fields: ["title", "draft","aliases", "description"]
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - {label: "Type", name: "type", widget: "hidden", default: "pages"}
      - label: "Aliase"
        name: "aliases"
        widget: "list"
        fields:
          - label: "Alias"
            name: "alias"
            widget: "string"
      - {label: "Text", name: "body", widget: "markdown", required: false}
  - name: "author" 
    icon: "user"
    label: "Autoren"
    label_singular: "Autor"
    description: Autoren können einem Blogartikel zugewiesen werden. Wir unterscheiden in aktive und inaktive sowie vereinfachte Autoren, welche nur mit dem Namen angezeigt werden, und erweiterte Autoren, für die eine Übersichtsseite angelegt wird.
    folder: "content/german/author"
    filter: {field: type, value: author}
    create: true
    slug: "{{slug}}"
    editor:
     preview: true
     frame: true
     size: half
    view_filters:
      - label: "aktiv"
        field: active
        pattern: true
      - label: "inaktiv"
        field: active
        pattern: false
      - label: "einfach"
        field: simplified
        pattern: true
      - label: "erweitert"
        field: simplified
        pattern: false
    view_groups:
      - label: "vereinfacht"
        field: simplified
      - label: "aktiv"
        field: active
    summary_fields: ["title", "active", "simplified", "body"]
    fields:
      - {label: "Name", name: "title", widget: "string"}
      - {label: "Metabeschreibung", name: "description", widget: "text", default: "", required: false}
      - {label: "E-Mail-Adresse", name: "email", widget: "string", required: false}
      - {label: "Foto", name: "image", widget: "image", required: false, default: "/media/authors/gcg.webp" }
      - {label: "vereinfacht", name: "simplified", widget: "boolean", default: false, required: false}
      - {label: "aktiv", name: "active", widget: "boolean", default: true, required: false}
      - {label: "Beschreibung", name: "body", widget: "markdown"}
  - name: "blog"
    icon: "news"
    label: "Aktuelles"
    description: Diese Artikel werden im Bereich "Aktuelles" auf der Schulhomepage angezeigt. Sie können sowohl direkt veröffentlicht, als auch als Entwurf gespeichert werden.
    label_singular: "Artikel"
    folder: "content/german/blog"
    filter: {field: "type", value: "post"}
    create: true
    slug: "{{slug}}"
    editor:
     preview: true
     frame: true
     size: half
    view_groups:
      - label: Entwurf
        field: draft
      - label: Kategorie
        field: categories
    sortable_fields:
      fields: ['date', 'title']
      default:
        field: date
        direction: Descending
    summary_fields: ["date", "title", "draft", "author", "body"]
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Datum", name: "date", widget: "datetime", date_format: "dd/MM/yyyy", time_format: false, format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Metabeschreibung", name: "description", widget: "text", default: "", required: false}
      - {label: "Beitragsbild", name: "image", widget: "image", default: "/media/image.webp" }
      - label: "Beitragsautor"
        name: "author"
        widget: "relation"
        collection: "author"
        search_fields: ["title"]
        value_field: "title"
      - label: "Kategorien"
        name: "categories"
        widget: "relation"
        required: true
        collection: "config"
        file: "categories-config"
        value_field: "blog.*"
        search_fields: ["blog.*"]
        display_fields: ["blog.*"]
        multiple: true
        options_length: 50
      - label: "Fächer"
        name: "subjects"
        widget: "relation"
        required: false
        collection: "config"
        file: "categories-config"
        value_field: "subjects.*"
        search_fields: ["subjects.*"]
        display_fields: ["subjects.*"]
        multiple: true
        options_length: 50
      - label: "Tags"
        name: "tags"
        widget: "list"
        required: false
        fields:
          - label: "Tag"
            name: "tag"
            widget: "string"
      - {label: "Type", name: "type", widget: "hidden", default: "post"}
      - {label: "Text", name: "body", widget: "markdown"}
  - name: "forms"
    icon: "document"
    label: "Dokumente"
    label_singular: "Dokument"
    description: "Hier sind Formulare, Vorlagen und andere Dokumente zu hinterlegen."
    folder: "content/german/forms"
    filter: {field: "type", value: "forms"}
    create: true
    slug: "{{slug}}"
    editor:
      preview: true
      frame: true
      size: half
    summary_fields: ["title", "draft"]
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - label: "Dateien"
        name: "files"
        widget: "list"
        required: false
        fields:
          - {label: "Titel", name: "title", widget: "string"}
          - {label: "Datei", name: "link", widget: "file"}
      - {label: "Type", name: "type", widget: "hidden", default: "forms"}
      - {label: "Text", name: "body", widget: "markdown"}
  - name: "ganztagsangebote"
    description: "Hier kann die Übersicht der Ganztagsangebote bearbeitet werden."
    icon: "group"
    label: "Ganztagsangebote"
    label_singular: "Ganztagsangebot"
    folder: "content/german/ganztagsangebote"
    filter: {field: "type", value: "ganztagsangebote"}
    create: true
    editor:
     preview: true
     frame: true
     size: half
    summary_fields: ["title", "draft", "category", "schedule", "room"]
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - {label: "Bild", name: "image", widget: "image", default: "/media/image.webp", required: false }
      - label: "Themenbereich"
        name: "category"
        widget: "relation"
        required: true
        collection: "config"
        file: "categories-config"
        value_field: "ganztag.*"
        search_fields: ["ganztag.*"]
        display_fields: ["ganztag.*"]
        options_length: 50
      - {label: "Dauer", name: "duration", widget: "string"}
      - {label: "Tag/Stunden", name: "schedule", widget: "string"}
      - {label: "Klassenstufen", name: "class", widget: "string"}
      - {label: "Raum", name: "room", widget: "string"}
      - {label: "Anmeldelink", name: "apply_url", widget: "hidden", default: "https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828"}
      - {label: "Type", name: "type", widget: "hidden", default: "ganztagsangebote"}
      - {label: "Text", name: "body", widget: "markdown"}
  - name: "wettbewerbe"
    description: "Hier kann die Übersicht der Wettbewerbe bearbeitet werden."
    icon: "trophy"
    label: "Wettbewerbe"
    label_singular: "Wettbewerb"
    folder: "content/german/wettbewerbe"
    filter: {field: "type", value: "wettbewerbe"}
    create: true
    editor:
     preview: true
     frame: true
     size: half
    summary_fields: ["title", "draft", "category"]
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - {label: "Bild", name: "image", widget: "image", default: "/media/image.webp", required: false }
      - label: "Fach"
        name: "category"
        widget: "relation"
        required: true
        collection: "config"
        file: "categories-config"
        value_field: "contests.*"
        search_fields: ["contests.*"]
        display_fields: ["contests.*"]
        options_length: 50
      - {label: "Klassenstufen", name: "class", widget: "string"}
      - {label: "Website", name: "web_url", widget: "string", required: false}
      - {label: "Type", name: "type", widget: "hidden", default: "wettbewerbe"}
      - {label: "Text", name: "body", widget: "markdown"}
  - name: "begabte"
    description: "Hier kann die Übersicht der Begabtenförderungsangebote bearbeitet werden."
    icon: "pi"
    label: "Begabtenförderung"
    label_singular: "Begabtenförderung"
    folder: "content/german/begabte"
    filter: {field: "type", value: "begabte"}
    create: true
    editor:
      preview: true
      frame: true
      size: half
    summary_fields: ["title", "draft", "body"]
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - {label: "Bild", name: "image", widget: "image", default: "/media/image.webp", required: false }
      - {label: "Klassenstufen", name: "class", widget: "string"}
      - {label: "Website", name: "web_url", widget: "string", required: false}
      - {label: "Type", name: "type", widget: "hidden", default: "begabte"}
      - {label: "Text", name: "body", widget: "markdown"}
  - name: "projektwoche"
    description: "Hier kann die Übersicht der Projektwochen bearbeitet werden."
    icon: "projektwoche"
    label: "Projektwoche"
    label_singular: "Projektwoche"
    folder: "content/german/projektwoche"
    filter: {field: "type", value: "projektwoche"}
    create: true
    editor:
      preview: true
      frame: true
      size: half
    summary_fields: ["title", "draft", "tiles", "description"]
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - {label: "Type", name: "type", widget: "hidden", default: "projektwoche"}
      - {label: "Text", name: "body", widget: "markdown", required: false, default: ""}
      - label: "Kacheln"
        name: "tiles"
        widget: "list"
        required: false
        collapsed: true
        hint: "Die Vorschau zeigt nur die generierten Symbolkarten, NICHT die Inhalte."
        fields:
          - {label: "Titel", name: "title", widget: "string", required: true}
          - {label: "Hintergrundfarbe", name: "bg_color", widget: "color", required: true}
          - {label: "Symbol", name: "icon", widget: "string", required: true}
          - {label: "Symbolfarbe", name: "font_color", widget: "color", required: true}
          - {label: "Inhalt", name: "content", widget: "markdown", required: true}
  - name: "schulchronik"
    description: "Hier können die Chronikjahre bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet."
    icon: "pillar"
    label: "Schulchronik"
    label_singular: "Chronikjahr"
    folder: "content/german/schulchronik"
    filter: {field: "type", value: "schulchronik"}
    create: true
    editor:
      preview: false
      size: half
    summary_fields: ["title", "draft", "cantorpreisträger", "topics"]
    sortable_fields:
      fields: ['title']
      default:
        field: title
        direction: Descending
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Type", name: "type", widget: "hidden", default: "schulchronik"}
      - {label: "Einleitung", name: "pretext", hint: "Jahreszahltext", widget: "markdown", required: false}
      - label: "Kreative Haufen"
        name: "topics"
        widget: "list"
        required: false
        fields:
          - {label: "Titel", name: "title", widget: "string", required: true}
          - {label: "Inhalt", name: "content", widget: "markdown", required: true}
          - label: "Superhaufen"
            name: "superhaufen"
            widget: "object"
            required: false
            fields:
              - {label: "Aktiviert", name: "enable", widget: "boolean", required: false}
              - label: "Superhaufen"
                name: "link"
                widget: "relation"
                collection: "superhaufen"
                search_fields: ["title"]
                value_field: "title"
                required: false
                collapsed: true
      - label: "Cantorpreisträger"
        name: "cantorpreisträger"
        widget: "relation"
        collection: "cantorpreis"
        search_fields: ["jahr", "name"]
        value_field: "name"
        required: false
      - {label: "Text", name: "body", widget: "markdown", required: false, default: ""}
  - name: "superhaufen"
    description: "\"Superhaufen\" sind ein besonderer Bereich der Schulchronik, um besonders ausführliche Ereignisse darzustellen. Dieser Bereich wird von der Schulchronik verwaltet."
    icon: "superhaufen"
    label: "Superhaufen"
    label_singular: "Superhaufen"
    folder: "content/german/superhaufen"
    filter: {field: "type", value: "superhaufen"}
    create: true
    editor:
      preview: true
      frame: true
      size: half
    summary_fields: ["title", "draft", "tiles"]
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Type", name: "type", widget: "hidden", default: "superhaufen"}
      - label: "Rückverlinkung"
        name: "previous"
        widget: "object"
        fields:
          - {label: "Aktiviert", name: "enable", widget: "boolean", default: true}
          - {label: "Titel", name: "title", widget: "string", required: true}
          - {label: "Link", name: "link", widget: "string", required: true}
      - label: "Kacheln"
        name: "tiles"
        widget: "list"
        required: false
        collapsed: true
        hint: "Die Vorschau zeigt nur die generierten Symbolkarten, NICHT die Inhalte."
        fields:
          - {label: "Titel", name: "title", widget: "string", required: true}
          - {label: "Hintergrundfarbe", name: "bg_color", widget: "color", required: true}
          - {label: "Symbol", name: "icon", widget: "string", required: true}
          - {label: "Symbolfarbe", name: "font_color", widget: "color", required: true}
          - {label: "Inhalt", name: "content", widget: "markdown", required: true}
          - label: "Unter-Unterhaufen"
            name: "unterhaufen"
            widget: "list"
            required: false
            collapsed: true
            fields:
              - {label: "Titel", name: "title", widget: "string", required: false}
              - {label: "Inhalt", name: "content", widget: "markdown", required: true}
  - name: "cantorpreis"
    description: "Hier sind alle Cantorpreisträger aufgelistet. Dieser Bereich wird von der Schulchronik verwaltet."
    icon: "award"
    label: "Cantorpreisträger"
    label_singular: "Cantorpreisträger"
    folder: "content/german/cantorpreis"
    filter: {field: "type", value: "cantorpreis"}
    sortable_fields:
      fields: ['title', 'name']
      default:
        field: title
        direction: Descending
    summary: "{{title}} - {{name}}"
    create: true
    editor:
      preview: true
      frame: true
      size: half
    summary_fields: ["title", "name", "draft", "body"]
    fields:
      - {label: "Jahr", name: "title", widget: "string"}
      - {label: "Name", name: "name", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Beschreibung", name: "description", widget: "text", required: false}
      - {label: "Bild", name: "image", widget: "image", default: "/media/image.webp", required: false }
      - {label: "Type", name: "type", widget: "hidden", default: "cantorpreis"}
      - {label: "Text", name: "body", widget: "markdown", required: false}
  - name: "abiturienten"
    description: "Hier kann die Übersicht der Abiturjahrgänge bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet."
    icon: "graduation-cap"
    label: "Abiturienten"
    label_singular: "Abiturjahrgang"
    folder: "content/german/abiturienten"
    filter: {field: "type", value: "abiturienten"}
    create: true
    editor:
      preview: true
      frame: true
      size: half
    summary_fields: ["title", "draft"]
    sortable_fields:
      fields: ["title"]
      default:
        field: title
        direction: Descending
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Bild", name: "image", widget: "image", default: "/media/image.webp", required: false }
      - {label: "Type", name: "type", widget: "hidden", default: "abiturienten"}
      - {label: "Text", name: "body", widget: "markdown"}
  - name: "cantorfora"
    description: "Hier kann die Übersicht der Cantorfora bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet."
    icon: "presentation"
    label: "Cantorfora"
    label_singular: "Cantorforum"
    folder: "content/german/cantorfora"
    filter: {field: "type", value: "cantorfora"}
    create: true
    slug: "{{slug}}"
    editor:
     preview: true
     frame: true
     size: half
    view_groups:
      - label: Drafts
        field: draft
    summary_fields: ["title", "draft", "description"]
    sortable_fields:
      fields: ['index', 'title']
      default:
        field: index
        direction: Descending
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Laufindex", name: "index", widget: "number", value_type: 'int', min: 1, step: 1, required: true, hint: "Nummer des Cantorforums"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Metabeschreibung", name: "description", widget: "text", default: "", required: false}
      - {label: "Beitragsbild", name: "image", widget: "image", default: "/media/image.webp" }
      - {label: "Type", name: "type", widget: "hidden", default: "cantorfora"}
      - {label: "Text", name: "body", widget: "markdown"}
  - name: "chronikseiten"
    description: "Chronikseiten entsprechen von der Funktionalität herkömmlichen Zusatzseiten, sind allerdings der Schulchronik vorbehalten."
    icon: "page-add"
    label: "Chronikseiten"
    label_singular: "Zusatzseite (Chronik)"
    folder: "content/german/chronikseiten"
    create: true
    editor:
      preview: true
      frame: true
      size: half
    slug: "{{slug}}"
    filter: {field: "type", value: "pages"}
    summary_fields: ["title", "draft", "aliases", "body"]
    fields:
      - {label: "Titel", name: "title", widget: "string"}
      - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
      - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
      - {label: "Type", name: "type", widget: "hidden", default: "pages"}
      - label: "Aliase"
        name: "aliases"
        widget: "list"
        required: false
        fields:
          - label: "Alias"
            name: "alias"
            widget: "string"
      - {label: "Text", name: "body", widget: "markdown", required: false}
  - name: "statistik"
    description: "Hier können statistische Daten bearbeitet werden. Dieser Bereich wird von der Schulchronik verwaltet."
    icon: "stats"
    label: "Statistik"
    editor:
      preview: false
      size: half
    files:
      - name: "abiturdurchschnitte"
        label: "Abiturdurchschnitte"
        file: "static/data/abiturdurchschnitte.json"
        fields:
          - label: "Abiturdurchschnitte"
            label_singular: "Abiturdurchschnitt"
            name: "abiturdurchschnitte"
            widget: "list"
            required: false
            fields:
              - {label: "Jahr", name: "jahr", widget: "number", required: true}
              - {label: "Schnitt", name: "schnitt", widget: "number", value_type: "float", step: 0.01, required: true}
      - name: "schuelerzahlen"
        label: "Schülerzahlen"
        file: "static/data/schuelerzahlen.json"
        fields:
          - label: "Schülerzahlen"
            label_singular: "Schülerzahlen"
            name: "schuelerzahlen"
            widget: "list"
            required: false
            fields:
              - {label: "Jahr", name: "year", widget: "number", required: true}
              - {label: "Gesamt", name: "all", widget: "number", required: true}
              - {label: "davon Mädchen", name: "girls", widget: "number", required: true}