kategorien-umbau, cms-fixes

This commit is contained in:
Denys Konovalov 2023-01-30 19:54:31 +01:00
parent f5d5aea486
commit 87d2d3e9dd
20 changed files with 457 additions and 32 deletions

@ -3,7 +3,7 @@ title: Frühstudium
draft: false draft: false
bg_image: /media/backgrounds/page-title.webp bg_image: /media/backgrounds/page-title.webp
description: "" description: ""
image: "" image: /media/begabte/image.webp
category: Naturwissenschaften category: Naturwissenschaften
class: 10 - 12 Klasse class: 10 - 12 Klasse
web_url: null web_url: null

@ -3,7 +3,7 @@ title: Begabtenförderungskonzept
draft: false draft: false
bg_image: /media/backgrounds/page-title.webp bg_image: /media/backgrounds/page-title.webp
description: "" description: ""
image: "" image: /media/begabte/image.webp
category: fächerübergreifend category: fächerübergreifend
class: 5 - 12 Klasse class: 5 - 12 Klasse
web_url: null web_url: null

@ -7,7 +7,7 @@ description: ""
image: /media/image.webp image: /media/image.webp
author: Schulleitung author: Schulleitung
categories: categories:
- Ereignisse - Veranstaltungen
tags: tags:
- cantorluftschnuppern - cantorluftschnuppern
- cantorentdecken - cantorentdecken

@ -8,7 +8,7 @@ image: /media/blog//gy-pt-2023.png
author: Denys Konovalov author: Denys Konovalov
categories: categories:
- Wettbewerbe - Wettbewerbe
- Physik - Naturwissenschaften
tags: tags:
- physik - physik
- gypt - gypt

@ -7,7 +7,8 @@ description: ""
image: /media/image.webp image: /media/image.webp
author: Frau Schapitz author: Frau Schapitz
categories: categories:
- Website - Sonstiges
- Informatik/Technik
tags: tags:
- renewGCG - renewGCG
type: post type: post

@ -7,7 +7,7 @@ description: ""
image: /media/image.webp image: /media/image.webp
author: Herr Berger author: Herr Berger
categories: categories:
- Ereignisse - Veranstaltungen
tags: tags:
- tdot - tdot
- cantorluftschnuppern - cantorluftschnuppern

@ -8,6 +8,7 @@ image: /media/blog/biber_300dpi.png
author: Herr Berger author: Herr Berger
categories: categories:
- Wettbewerbe - Wettbewerbe
- Informatik/Technik
tags: tags:
- "2022" - "2022"
- Infobiber - Infobiber

@ -9,6 +9,7 @@ image: /media/blog/mia2.webp
author: Denys Konovalov author: Denys Konovalov
categories: categories:
- Wettbewerbe - Wettbewerbe
- Mathematik
tags: tags:
- Mathematik - Mathematik
- Weihnachten - Weihnachten

@ -7,6 +7,9 @@ description: ""
image: /media/image.webp image: /media/image.webp
author: Herr Berger author: Herr Berger
categories: categories:
- Musik
- Deutsch
- Traditionen
- Veranstaltungen - Veranstaltungen
tags: tags:
- Muli - Muli

@ -8,6 +8,7 @@ image: /media/image.webp
author: Frau Krug author: Frau Krug
categories: categories:
- Musik - Musik
- Traditionen
tags: tags:
- Musikfahrt - Musikfahrt
- Weihnachtskonzert - Weihnachtskonzert

@ -7,9 +7,9 @@ description: ""
image: /media/blog/SL-2023//sl-1.jpg image: /media/blog/SL-2023//sl-1.jpg
author: Franziska Berner author: Franziska Berner
categories: categories:
- Traditionen
- Wettbewerbe - Wettbewerbe
- Mathematik - Mathematik
- Traditionen
tags: tags:
- spezilager - spezilager
- matheolympiade - matheolympiade

@ -4,10 +4,11 @@ date: 2023-01-24T15:13:45+01:00
draft: false draft: false
bg_image: /media/backgrounds/page-title.webp bg_image: /media/backgrounds/page-title.webp
description: "" description: ""
image: /media/image.webp image: /media/blog/image.webp
author: Herr Berger author: Herr Berger
categories: categories:
- Wettbewerbe - Wettbewerbe
- Fremdsprachen
tags: tags:
- TOEFL - TOEFL
- Englisch - Englisch

@ -8,6 +8,7 @@ image: /media/blog/vlw_logo_blau_rgb.webp
author: Herr Berger author: Herr Berger
categories: categories:
- Wettbewerbe - Wettbewerbe
- Deutsch
tags: tags:
- Vorlesewettbewerb 6 - Vorlesewettbewerb 6
- Schulrunde - Schulrunde

@ -7,8 +7,9 @@ description: ""
image: /media/blog/gcgweihnachten.webp image: /media/blog/gcgweihnachten.webp
author: Herr Berger author: Herr Berger
categories: categories:
- Weihnachten
- Traditionen - Traditionen
- Schülerrat
- Musik
tags: tags:
- Weihnachtskonzert - Weihnachtskonzert
- Weihnachtssingen - Weihnachtssingen

@ -3,7 +3,7 @@ title: Chemie - die stimmt!
draft: "false" draft: "false"
bg_image: /media/backgrounds/page-title.webp bg_image: /media/backgrounds/page-title.webp
image: /media/contests/chds.webp image: /media/contests/chds.webp
category: "Chemie " category: Chemie
class: 8. - 10. Klasse class: 8. - 10. Klasse
web_url: https://www.chemie-die-stimmt.de/ web_url: https://www.chemie-die-stimmt.de/
type: wettbewerbe type: wettbewerbe

@ -1,5 +1,5 @@
--- ---
title: "Chemkids " title: Chemkids
draft: "false" draft: "false"
bg_image: /media/backgrounds/page-title.webp bg_image: /media/backgrounds/page-title.webp
image: /media/contests/chemkids.webp image: /media/contests/chemkids.webp

@ -1,9 +1,9 @@
--- ---
title: "Internationale Chemieolympiade (IChO) " title: Internationale Chemieolympiade (IChO)
draft: "false" draft: "false"
bg_image: /media/backgrounds/page-title.webp bg_image: /media/backgrounds/page-title.webp
image: /media/contests/icho.webp image: /media/contests/icho.webp
category: "Chemie " category: Chemie
class: 9. - 12. Klasse class: 9. - 12. Klasse
web_url: https://www.scienceolympiaden.de/icho web_url: https://www.scienceolympiaden.de/icho
type: wettbewerbe type: wettbewerbe
@ -11,12 +11,9 @@ gallery: false
--- ---
- Internationale Wissenschaftsolympiade - Internationale Wissenschaftsolympiade
- findet jährlich für Schülerinnen und Schüler ab Klassenstufe 9 statt - findet jährlich für Schülerinnen und Schüler ab Klassenstufe 9 statt
- Ziel: die bundesweit besten vier Schüler zu finden, die als Mannschaft am - Ziel: die bundesweit besten vier Schüler zu finden, die als Mannschaft am internationalen Wettbewerb teilnehmen
internationalen Wettbewerb teilnehmen
- Vier Runden: - Vier Runden:
Runde 1: (Hausaufgabenrunde): theoretische Aufgaben - Runde 1: (Hausaufgabenrunde): theoretische Aufgaben
Runde 2: vierstündige Klausur - Runde 2: vierstündige Klausur
Runde 3: die 60 besten Teilnehmer → achttägiges Auswahlseminar mit Vorträgen und - Runde 3: die 60 besten Teilnehmer → achttägiges Auswahlseminar mit Vorträgen und Übungen zu Fachthemen, Laborarbeit und einem tollen Rahmenprogramm.
Übungen zu Fachthemen, Laborarbeit und einem tollen Rahmenprogramm. - Runde 4: Die 15 Besten der dritten Runde bewerben sich in der Auswahlrunde in Kiel um einen Platz in der deutschen Mannschaft für den internationalen Wettstreit
Runde 4: Die 15 Besten der dritten Runde bewerben sich in der Auswahlrunde in Kiel um
einen Platz in der deutschen Mannschaft für den internationalen Wettstreit

35
data/de/categories.yml Normal file

@ -0,0 +1,35 @@
blog:
- Wettbewerbe
- Veranstaltungen
- Traditionen
- Mathematik
- Naturwissenschaften
- Informatik/Technik
- Deutsch
- Fremdsprachen
- Sport
- Gesellschaftswissenschaften
- Kunst
- Musik
- Schülerrat
- Sonstiges
ganztag:
- Sport
- Musik
- Naturwissenschaften
- Gesellschaft
- Technik
- Kunst
- Mathematik
contests:
- Informatik
- Fremdsprachen
- Mathematik
- Chemie
- Geographie
- MINT
- Physik
begabte:
- fächerübergreifend
- Naturwissenschaften
- Mathematik

@ -333,6 +333,39 @@ collections:
name: "vimeo" name: "vimeo"
widget: "object" widget: "object"
fields: [{label: "Tracking deaktivieren", name: "enableDNT", widget: "boolean", required: false}] fields: [{label: "Tracking deaktivieren", name: "enableDNT", widget: "boolean", required: false}]
- name: "categories-config"
label: "Kategorien"
file: "data/de/categories.yml"
format: yml
fields:
- label: "Aktuelles"
label_singular: "Kategorie"
name: "blog"
widget: "list"
required: true
fields:
- {label: "Kategorie", name: "category", widget: "string", required: true}
- label: "Ganztagsbereich"
label_singular: "Kategorie"
name: "ganztag"
widget: "list"
required: true
fields:
- {label: "Kategorie", name: "category", widget: "string", required: true}
- label: "Wettbewerbe"
label_singular: "Kategorie"
name: "contests"
widget: "list"
required: true
fields:
- {label: "Kategorie", name: "category", widget: "string", required: true}
- label: "Begabtenförderung"
label_singular: "Kategorie"
name: "begabte"
widget: "list"
required: true
fields:
- {label: "Kategorie", name: "category", widget: "string", required: true}
- name: "index-pages" - name: "index-pages"
icon: "page" icon: "page"
label: "Hauptseiten" label: "Hauptseiten"
@ -543,6 +576,7 @@ collections:
- name: "blog" - name: "blog"
icon: "news" icon: "news"
label: "Aktuelles" label: "Aktuelles"
description: Diese Artikel werden im Bereich "Aktuelles" auf der Schulhomepage angezeigt.
label_singular: "Blogbeitrag" label_singular: "Blogbeitrag"
folder: "content/german/blog" folder: "content/german/blog"
filter: {field: "type", value: "post"} filter: {field: "type", value: "post"}
@ -554,8 +588,10 @@ collections:
media_folder: '/static/media/blog' media_folder: '/static/media/blog'
public_folder: '/media/blog' public_folder: '/media/blog'
view_groups: view_groups:
- label: Drafts - label: Entwurf
field: draft field: draft
- label: Kategorie
field: categories
sortable_fields: sortable_fields:
fields: ['date', 'title'] fields: ['date', 'title']
default: default:
@ -567,7 +603,7 @@ collections:
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false} - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"} - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", default: "", required: false} - {label: "Metabeschreibung", name: "description", widget: "text", default: "", required: false}
- {label: "Beitragsbild", name: "image", widget: "image", default: "/media/image.webp"} - {label: "Beitragsbild", name: "image", widget: "image", default: "/media/blog/image.webp"}
- label: "Beitragsautor" - label: "Beitragsautor"
name: "author" name: "author"
widget: "relation" widget: "relation"
@ -576,12 +612,15 @@ collections:
value_field: "title" value_field: "title"
- label: "Kategorien" - label: "Kategorien"
name: "categories" name: "categories"
widget: "list" widget: "relation"
required: false required: true
fields: collection: "config"
- label: "Kategorie" file: "categories-config"
name: "category" value_field: "blog.*"
widget: "string" search_fields: ["blog.*"]
display_fields: ["blog.*"]
multiple: true
options_length: 50
- label: "Tags" - label: "Tags"
name: "tags" name: "tags"
widget: "list" widget: "list"
@ -627,6 +666,12 @@ collections:
label_singular: "Cantor-Preisträger" label_singular: "Cantor-Preisträger"
folder: "content/german/cantorpreis" folder: "content/german/cantorpreis"
filter: {field: "type", value: "cantorpreis"} filter: {field: "type", value: "cantorpreis"}
sortable_fields:
fields: ['title', 'name']
default:
field: title
direction: Descending
summary: "{{title}} - {{name}}"
create: true create: true
editor: editor:
preview: false preview: false
@ -682,7 +727,16 @@ collections:
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"} - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false} - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- {label: "Bild", name: "image", widget: "image", default: "/media/ganztagsangebote/image.webp", required: false} - {label: "Bild", name: "image", widget: "image", default: "/media/ganztagsangebote/image.webp", required: false}
- {label: "Themenbereich", name: "category", widget: "string", required: true} - 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: "Dauer", name: "duration", widget: "string"}
- {label: "Tag/Stunden", name: "weekly", widget: "string"} - {label: "Tag/Stunden", name: "weekly", widget: "string"}
- {label: "Klassenstufen", name: "class", widget: "string"} - {label: "Klassenstufen", name: "class", widget: "string"}
@ -708,7 +762,16 @@ collections:
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"} - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false} - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- {label: "Bild", name: "image", widget: "image", default: "/media/contests/image.webp", required: false} - {label: "Bild", name: "image", widget: "image", default: "/media/contests/image.webp", required: false}
- {label: "Fach", name: "category", widget: "string"} - 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: "Klassenstufen", name: "class", widget: "string"}
- {label: "Website", name: "web_url", widget: "string", required: false} - {label: "Website", name: "web_url", widget: "string", required: false}
- {label: "Type", name: "type", widget: "hidden", default: "wettbewerbe"} - {label: "Type", name: "type", widget: "hidden", default: "wettbewerbe"}
@ -731,7 +794,16 @@ collections:
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"} - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false} - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- {label: "Bild", name: "image", widget: "image", default: "/media/begabte/image.webp", required: false} - {label: "Bild", name: "image", widget: "image", default: "/media/begabte/image.webp", required: false}
- {label: "Fach", name: "category", widget: "string"} - label: "Fach"
name: "category"
widget: "relation"
required: true
collection: "config"
file: "categories-config"
value_field: "begabte.*"
search_fields: ["begabte.*"]
display_fields: ["begabte.*"]
options_length: 50
- {label: "Klassenstufen", name: "class", widget: "string"} - {label: "Klassenstufen", name: "class", widget: "string"}
- {label: "Website", name: "web_url", widget: "string", required: false} - {label: "Website", name: "web_url", widget: "string", required: false}
- {label: "Type", name: "type", widget: "hidden", default: "begabte"} - {label: "Type", name: "type", widget: "hidden", default: "begabte"}

@ -725,5 +725,316 @@
}; };
CMS.registerPreviewTemplate("about-index", AboutPreview); CMS.registerPreviewTemplate("about-index", AboutPreview);
</script> </script>
<script>
const PostPreviewCard = ({ entry, widgetFor, viewStyle }) => {
return h(
'div',
{ style: { width: '100%', height: '100%' } },
viewStyle === 'grid' ? widgetFor('image') : null,
viewStyle === 'grid' ?
h(
'div',
{ style: { padding: '16px', paddingBottom: '8px', width: '100%' } },
h(
'div',
{
style: {
display: 'flex',
width: '100%',
justifyContent: 'space-between',
alignItems: 'start',
},
},
h(
'div',
{
style: {
backgroundColor: entry.data.draft === true ? 'RoyalBlue' : 'green',
color: 'white',
border: 'none',
padding: '4px 8px',
textAlign: 'center',
textDecoration: 'none',
display: 'inline-block',
cursor: 'pointer',
borderRadius: '4px',
},
},
entry.data.draft === true ? 'Entwurf' : 'Öffentlich',
),
h('span', { style: { fontSize: '16px' } }, new Intl.DateTimeFormat('de-De', { day: 'numeric', month: 'numeric', year: 'numeric'}).format(new Date(entry.data.date)))
),
) : null,
h(
'div',
{ style: { padding: '16px', paddingTop: '8px', width: '100%' } },
h(
'div',
{
style: {
display: 'flex',
width: '100%',
justifyContent: 'space-between',
alignItems: 'start',
},
},
h(
'div',
{
style: {
display: 'flex',
flexDirection: viewStyle === 'grid' ? 'column' : 'row',
alignItems: 'baseline',
gap: '8px',
},
},
h('strong', { style: { fontSize: '20px' } }, entry.data.title),
),
),
),
viewStyle != 'grid' ?
h(
'div',
{ style: { padding: '16px', paddingBottom: '8px', paddingTop: '0px', width: '100%' } },
h(
'div',
{
style: {
display: 'flex',
width: '100%',
justifyContent: 'space-between',
alignItems: 'start',
},
},
h(
'div',
{
style: {
backgroundColor: entry.data.draft === true ? 'RoyalBlue' : 'green',
color: 'white',
border: 'none',
padding: '4px 8px',
textAlign: 'center',
textDecoration: 'none',
display: 'inline-block',
cursor: 'pointer',
borderRadius: '4px',
},
},
entry.data.draft === true ? 'Entwurf' : 'Öffentlich',
),
h('span', { style: { fontSize: '16px' } }, new Intl.DateTimeFormat('de-De', { day: 'numeric', month: 'numeric', year: 'numeric'}).format(new Date(entry.data.date)))
),
) : null,
);
};
const GenericCard = ({ entry, widgetFor, viewStyle }) => {
return h(
'div',
{ style: { width: '100%', height: '100%' } },
viewStyle === 'grid' ? widgetFor('image') : null,
viewStyle === 'grid' ?
h(
'div',
{ style: { padding: '16px', paddingBottom: '8px', width: '100%' } },
h(
'div',
{
style: {
display: 'flex',
width: '100%',
justifyContent: 'space-between',
alignItems: 'start',
},
},
h(
'div',
{
style: {
backgroundColor: entry.data.draft === true ? 'RoyalBlue' : 'green',
color: 'white',
border: 'none',
padding: '4px 8px',
textAlign: 'center',
textDecoration: 'none',
display: 'inline-block',
cursor: 'pointer',
borderRadius: '4px',
},
},
entry.data.draft === true ? 'Entwurf' : 'Öffentlich',
),
h('span', { style: { fontSize: '16px' } }, entry.data.category)
),
) : null,
h(
'div',
{ style: { padding: '16px', paddingTop: viewStyle === 'grid' ? '8px' : '16px', width: '100%' } },
h(
'div',
{
style: {
display: 'flex',
width: '100%',
justifyContent: 'space-between',
alignItems: 'start',
},
},
h(
'div',
{
style: {
display: 'flex',
flexDirection: viewStyle === 'grid' ? 'column' : 'row',
alignItems: 'baseline',
gap: '8px',
},
},
h('strong', { style: { fontSize: '20px' } }, entry.data.title),
),
viewStyle != 'grid' ? h(
'div',
{
style: {
backgroundColor: entry.data.draft === true ? 'RoyalBlue' : 'green',
color: 'white',
border: 'none',
padding: '4px 8px',
textAlign: 'center',
textDecoration: 'none',
display: 'inline-block',
cursor: 'pointer',
borderRadius: '4px',
},
},
entry.data.draft === true ? 'Entwurf' : 'Öffentlich',
) : null,
),
),
);
};
const NoCatCard = ({ entry, widgetFor, viewStyle }) => {
return h(
'div',
{ style: { width: '100%', height: '100%' } },
viewStyle === 'grid' ? widgetFor('image') : null,
h(
'div',
{ style: { padding: '16px', width: '100%' } },
h(
'div',
{
style: {
display: 'flex',
width: '100%',
justifyContent: 'space-between',
alignItems: 'start',
},
},
h(
'div',
{
style: {
display: 'flex',
flexDirection: viewStyle === 'grid' ? 'column' : 'row',
alignItems: 'baseline',
gap: '8px',
},
},
h('strong', { style: { fontSize: '20px' } }, entry.data.title),
),
h(
'div',
{
style: {
backgroundColor: entry.data.draft === true ? 'RoyalBlue' : 'green',
color: 'white',
border: 'none',
padding: '4px 8px',
textAlign: 'center',
textDecoration: 'none',
display: 'inline-block',
cursor: 'pointer',
borderRadius: '4px',
},
},
entry.data.draft === true ? 'Entwurf' : 'Öffentlich',
),
),
),
);
};
const SmallCard = ({ entry, widgetFor, viewStyle }) => {
return h(
'div',
{ style: { width: '100%', height: '100%' } },
h(
'div',
{ style: { padding: '16px', width: '100%' } },
h(
'div',
{
style: {
display: 'flex',
width: '100%',
justifyContent: 'space-between',
alignItems: 'start',
},
},
h(
'div',
{
style: {
display: 'flex',
flexDirection: viewStyle === 'grid' ? 'column' : 'row',
alignItems: 'baseline',
gap: '8px',
},
},
h('strong', { style: { fontSize: '20px' } }, entry.data.title),
),
h(
'div',
{
style: {
backgroundColor: entry.data.draft === true ? 'RoyalBlue' : 'green',
color: 'white',
border: 'none',
padding: '4px 8px',
textAlign: 'center',
textDecoration: 'none',
display: 'inline-block',
cursor: 'pointer',
borderRadius: '4px',
},
},
entry.data.draft === true ? 'Entwurf' : 'Öffentlich',
),
),
),
);
};
CMS.registerPreviewCard('blog', PostPreviewCard);
CMS.registerPreviewCard('ganztagsangebote', GenericCard);
CMS.registerPreviewCard('wettbewerbe', GenericCard);
CMS.registerPreviewCard('begabte', GenericCard);
CMS.registerPreviewCard('abiturienten', NoCatCard);
CMS.registerPreviewCard('cantorfora', NoCatCard);
CMS.registerPreviewCard('blog-index', SmallCard);
CMS.registerPreviewCard('about-index', SmallCard);
CMS.registerPreviewCard('anmeldung-index', SmallCard);
CMS.registerPreviewCard('cantorpreis-index', SmallCard);
CMS.registerPreviewCard('contact-index', SmallCard);
CMS.registerPreviewCard('event-index', SmallCard);
CMS.registerPreviewCard('forms-index', SmallCard);
CMS.registerPreviewCard('ganztagsangebote-index', SmallCard);
CMS.registerPreviewCard('wettbewerbe-index', SmallCard);
CMS.registerPreviewCard('begabte-index', SmallCard);
CMS.registerPreviewCard('pages', SmallCard);
CMS.registerPreviewCard('forms', SmallCard);
CMS.registerPreviewCard('schulchronik', SmallCard);
</script>
</body> </body>
</html> </html>