diff --git a/static/admin/config/collections/abiturienten.js b/static/admin/config/collections/abiturienten.js index b8bb604b..4b19d453 100644 --- a/static/admin/config/collections/abiturienten.js +++ b/static/admin/config/collections/abiturienten.js @@ -1,4 +1,4 @@ -import { MarkdownProps } from "../props.js"; +import { MarkdownProps, ImageProps } from "../props.js"; import { DraftBoolean, Title } from "./widgets.js"; const AbiturientenCollection = { @@ -33,9 +33,8 @@ const AbiturientenCollection = { { name: "image", label: "Bild", - widget: "image", default: "/media/image.webp", - required: false, + ...ImageProps, }, { name: "type", @@ -46,7 +45,6 @@ const AbiturientenCollection = { { name: "body", label: "Text", - widget: "markdown", required: false, ...MarkdownProps, }, diff --git a/static/admin/config/collections/author.js b/static/admin/config/collections/author.js index 1442df4e..841a8fc8 100644 --- a/static/admin/config/collections/author.js +++ b/static/admin/config/collections/author.js @@ -1,4 +1,4 @@ -import { MarkdownProps, PatternEmail } from "../props.js"; +import { MarkdownProps, PatternEmail, ImageProps } from "../props.js"; import { DescriptionText } from "./widgets.js"; const AuthorCollection = { @@ -19,38 +19,49 @@ const AuthorCollection = { field: "type", value: "author", }, - 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", - }, - ], + view_filters: { + filters: [ + { + name: "active", + label: "aktiv", + field: "active", + pattern: true, + }, + { + name: "inactive", + label: "inaktiv", + field: "active", + pattern: false, + }, + { + name: "simplified", + label: "einfach", + field: "simplified", + pattern: true, + }, + { + name: "extended", + label: "erweitert", + field: "simplified", + pattern: false, + }, + ], + }, + view_groups: { + default: "active", + groups: [ + { + name: "simplified", + label: "vereinfacht", + field: "simplified", + }, + { + name: "active", + label: "aktiv", + field: "active", + }, + ], + }, summary_fields: ["title", "active", "simplified", "body"], fields: [ { @@ -70,9 +81,8 @@ const AuthorCollection = { { name: "image", label: "Bild", - widget: "image", - required: false, default: "/media/people/gcg.webp", + ...ImageProps, }, { name: "simplified", @@ -96,7 +106,6 @@ const AuthorCollection = { { name: "body", label: "Beschreibung", - widget: "markdown", required: false, ...MarkdownProps, }, diff --git a/static/admin/config/collections/begabte.js b/static/admin/config/collections/begabte.js index 2d41ff96..4232d444 100644 --- a/static/admin/config/collections/begabte.js +++ b/static/admin/config/collections/begabte.js @@ -1,4 +1,4 @@ -import { MarkdownProps } from "../props.js"; +import { MarkdownProps, ImageProps } from "../props.js"; import { DescriptionText, DraftBoolean, Title } from "./widgets.js"; const BegabteCollection = { @@ -27,9 +27,9 @@ const BegabteCollection = { { name: "image", label: "Titelbild", - widget: "image", - required: true, default: "/media/image.webp", + ...ImageProps, + required: true, }, { name: "class", @@ -52,7 +52,6 @@ const BegabteCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: true, ...MarkdownProps, }, diff --git a/static/admin/config/collections/blog.js b/static/admin/config/collections/blog.js index 1405e936..d6a59388 100644 --- a/static/admin/config/collections/blog.js +++ b/static/admin/config/collections/blog.js @@ -1,4 +1,4 @@ -import { DateFormat, MarkdownProps } from "../props.js"; +import { DateFormat, MarkdownProps, ImageProps } from "../props.js"; import { AuthorRelation, DescriptionText, @@ -24,12 +24,16 @@ const BlogCollection = { field: "type", value: "post", }, - view_groups: [ - { - label: "Entwurf", - field: "draft", - }, - ], + view_groups: { + default: "draft", + groups: [ + { + name: "draft", + label: "Entwurf", + field: "draft", + }, + ], + }, sortable_fields: { fields: ["date", "title"], default: { @@ -53,9 +57,9 @@ const BlogCollection = { name: "image", label: "Titelbild", hint: "16:9 Seitenverhältnis beachten", - widget: "image", - required: true, default: "/media/image.webp", + ...ImageProps, + required: true, }, AuthorRelation, { @@ -102,7 +106,6 @@ const BlogCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: true, ...MarkdownProps, }, diff --git a/static/admin/config/collections/cantorfora.js b/static/admin/config/collections/cantorfora.js index 84cad60e..c286bac7 100644 --- a/static/admin/config/collections/cantorfora.js +++ b/static/admin/config/collections/cantorfora.js @@ -1,4 +1,4 @@ -import { MarkdownProps } from "../props.js"; +import { MarkdownProps, ImageProps } from "../props.js"; import { DescriptionText, DraftBoolean, Title } from "./widgets.js"; const CantorforaCollection = { @@ -19,12 +19,6 @@ const CantorforaCollection = { frame: true, size: "half", }, - view_groups: [ - { - label: "Entwürfe", - field: "draft", - }, - ], summary_fields: ["title", "draft", "description"], sortable_fields: { fields: ["index", "title"], @@ -50,8 +44,8 @@ const CantorforaCollection = { { name: "image", label: "Titelbild", - widget: "image", default: "/media/image.webp", + ...ImageProps, required: true, }, { @@ -63,7 +57,6 @@ const CantorforaCollection = { { name: "body", label: "Text", - widget: "markdown", required: true, ...MarkdownProps, }, diff --git a/static/admin/config/collections/cantorpreis.js b/static/admin/config/collections/cantorpreis.js index a05905fc..12694bf9 100644 --- a/static/admin/config/collections/cantorpreis.js +++ b/static/admin/config/collections/cantorpreis.js @@ -1,4 +1,4 @@ -import { MarkdownProps } from "../props.js"; +import { MarkdownProps, ImageProps } from "../props.js"; import { DescriptionText, DraftBoolean } from "./widgets.js"; const CantorpreisCollection = { @@ -45,9 +45,8 @@ const CantorpreisCollection = { { name: "image", label: "Bild", - widget: "image", default: "/media/image.webp", - required: false, + ...ImageProps, }, { name: "type", @@ -58,7 +57,6 @@ const CantorpreisCollection = { { name: "body", label: "Text", - widget: "markdown", required: false, ...MarkdownProps, }, diff --git a/static/admin/config/collections/chronikjahre.js b/static/admin/config/collections/chronikjahre.js index faed8d51..9301d373 100644 --- a/static/admin/config/collections/chronikjahre.js +++ b/static/admin/config/collections/chronikjahre.js @@ -43,7 +43,6 @@ const ChronikjahreCollection = { name: "pretext", label: "Einleitung", hint: "Text für die Jahreszahl", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -64,7 +63,6 @@ const ChronikjahreCollection = { { name: "content", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -102,7 +100,6 @@ const ChronikjahreCollection = { name: "body", label: "Text", hint: "Erscheint zusätzlich zu den Kreativen Haufen", - widget: "markdown", required: false, ...MarkdownProps, }, diff --git a/static/admin/config/collections/chronikseiten.js b/static/admin/config/collections/chronikseiten.js index 6e859ba2..a36bb349 100644 --- a/static/admin/config/collections/chronikseiten.js +++ b/static/admin/config/collections/chronikseiten.js @@ -48,7 +48,6 @@ const ChronikseitenCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, diff --git a/static/admin/config/collections/forms.js b/static/admin/config/collections/forms.js index e7b5d8e5..8fb0fdba 100644 --- a/static/admin/config/collections/forms.js +++ b/static/admin/config/collections/forms.js @@ -55,7 +55,6 @@ const FormsCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, diff --git a/static/admin/config/collections/ganztag.js b/static/admin/config/collections/ganztag.js index 136ab286..34f5bb5f 100644 --- a/static/admin/config/collections/ganztag.js +++ b/static/admin/config/collections/ganztag.js @@ -1,4 +1,4 @@ -import { MarkdownProps } from "../props.js"; +import { MarkdownProps, ImageProps } from "../props.js"; import { Title, DescriptionText, DraftBoolean } from "./widgets.js"; const GanztagCollection = { @@ -27,8 +27,8 @@ const GanztagCollection = { { name: "image", label: "Titelbild", - widget: "image", default: "/media/ganztagsangebote/image.webp", + ...ImageProps, required: true, }, { @@ -82,7 +82,6 @@ const GanztagCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, diff --git a/static/admin/config/collections/index-pages.js b/static/admin/config/collections/index-pages.js index 346fad21..d472f097 100644 --- a/static/admin/config/collections/index-pages.js +++ b/static/admin/config/collections/index-pages.js @@ -3,6 +3,7 @@ import { DateFormat, MarkdownProps, PatternEmail, + ImageProps } from "../props.js"; import { DescriptionText, EnableBoolean, Title } from "./widgets.js"; @@ -36,8 +37,7 @@ const IndexPagesCollection = { { name: "image", label: "Bild", - widget: "image", - required: false, + ...ImageProps, }, { name: "stats", @@ -75,7 +75,6 @@ const IndexPagesCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -91,7 +90,6 @@ const IndexPagesCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -107,7 +105,6 @@ const IndexPagesCollection = { { name: "content", label: "Inhalt", - widget: "markdown", required: true, ...MarkdownProps, }, @@ -131,7 +128,6 @@ const IndexPagesCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -273,7 +269,6 @@ const IndexPagesCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -289,7 +284,6 @@ const IndexPagesCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -302,8 +296,7 @@ const IndexPagesCollection = { { name: "image", label: "Bild", - widget: "image", - required: false, + ...ImageProps, }, { name: "quote", diff --git a/static/admin/config/collections/pages.js b/static/admin/config/collections/pages.js index d7271fcc..0477b6d3 100644 --- a/static/admin/config/collections/pages.js +++ b/static/admin/config/collections/pages.js @@ -48,7 +48,6 @@ const PagesCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, diff --git a/static/admin/config/collections/projektwoche.js b/static/admin/config/collections/projektwoche.js index a5c1dee4..2f883380 100644 --- a/static/admin/config/collections/projektwoche.js +++ b/static/admin/config/collections/projektwoche.js @@ -32,7 +32,6 @@ const ProjektwocheCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -61,7 +60,6 @@ const ProjektwocheCollection = { { name: "content", label: "Inhalt", - widget: "markdown", required: true, ...MarkdownProps, }, diff --git a/static/admin/config/collections/settings-collection.js b/static/admin/config/collections/settings-collection.js index 0ea83e79..2f705901 100644 --- a/static/admin/config/collections/settings-collection.js +++ b/static/admin/config/collections/settings-collection.js @@ -3,6 +3,7 @@ import { DateFormat, MarkdownProps, PatternEmail, + ImageProps } from "../props.js"; import { ButtonObject, @@ -40,7 +41,6 @@ const SettingsCollection = { { name: "text", label: "Text", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -90,7 +90,7 @@ const SettingsCollection = { { name: "bg_image", label: "Hintergrundbild", - widget: "image", + ...ImageProps, required: true, }, Title(false), @@ -136,7 +136,7 @@ const SettingsCollection = { { name: "image", label: "Grafik", - widget: "image", + ...ImageProps, required: true, }, ], @@ -153,7 +153,6 @@ const SettingsCollection = { { name: "content", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -175,7 +174,7 @@ const SettingsCollection = { { name: "image", label: "Hintergrundbild", - widget: "image", + ...ImageProps, required: true, }, { @@ -200,13 +199,11 @@ const SettingsCollection = { { name: "image", label: "Grafik", - widget: "image", - required: false, + ...ImageProps, }, { name: "content", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -228,7 +225,6 @@ const SettingsCollection = { { name: "content", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -269,14 +265,13 @@ const SettingsCollection = { { name: "bg_image", label: "Hintergrundbild", - widget: "image", + ...ImageProps, required: true, }, Title(false), { name: "content", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -304,13 +299,11 @@ const SettingsCollection = { { name: "image", label: "Bild", - widget: "image", - required: false, + ...ImageProps, }, { name: "content", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -340,7 +333,7 @@ const SettingsCollection = { { name: "image", label: "Grafik", - widget: "image", + ...ImageProps, required: true, }, ], @@ -360,13 +353,12 @@ const SettingsCollection = { { name: "image", label: "Titelbild", - widget: "image", + ...ImageProps, required: true, }, { name: "content", label: "Inhalt", - widget: "markdown", required: false, ...MarkdownProps, }, @@ -512,7 +504,7 @@ const SettingsCollection = { { name: "logo", label: "Logo", - widget: "image", + ...ImageProps, required: true, }, { @@ -579,13 +571,13 @@ const SettingsCollection = { { name: "preloader", label: "Logo", - widget: "image", + ...ImageProps, required: true, }, { name: "loader", label: "Ladeanimation", - widget: "image", + ...ImageProps, required: true, }, ], @@ -630,7 +622,6 @@ const SettingsCollection = { name: "copyright", label: "Copyright-Eintrag", hint: "Am Seitenende sichtbar", - widget: "markdown", required: true, ...MarkdownProps, }, diff --git a/static/admin/config/collections/superhaufen.js b/static/admin/config/collections/superhaufen.js index 0d9d9d5b..b7589262 100644 --- a/static/admin/config/collections/superhaufen.js +++ b/static/admin/config/collections/superhaufen.js @@ -74,8 +74,7 @@ const SuperhaufenCollection = { { name: "content", label: "Inhalt", - widget: "markdown", - required: true, + required: false, ...MarkdownProps, }, { @@ -89,8 +88,7 @@ const SuperhaufenCollection = { { name: "content", label: "Inhalt", - widget: "markdown", - required: true, + required: false, ...MarkdownProps, }, ], diff --git a/static/admin/config/collections/wettbewerbe.js b/static/admin/config/collections/wettbewerbe.js index fb27f081..3371e675 100644 --- a/static/admin/config/collections/wettbewerbe.js +++ b/static/admin/config/collections/wettbewerbe.js @@ -1,4 +1,4 @@ -import { MarkdownProps } from "../props.js"; +import { MarkdownProps, ImageProps } from "../props.js"; import { DescriptionText, DraftBoolean, Title } from "./widgets.js"; const WettbewerbeCollection = { @@ -26,7 +26,7 @@ const WettbewerbeCollection = { { name: "image", label: "Titelbild", - widget: "image", + ...ImageProps, required: true, default: "/media/image.webp", }, @@ -63,7 +63,6 @@ const WettbewerbeCollection = { { name: "body", label: "Inhalt", - widget: "markdown", required: true, ...MarkdownProps, }, diff --git a/static/admin/config/index.js b/static/admin/config/index.js index d362236d..1d92150d 100644 --- a/static/admin/config/index.js +++ b/static/admin/config/index.js @@ -17,6 +17,7 @@ import { SuperhaufenCollection, WettbewerbeCollection, } from "./collections/index.js"; +import { GCGThemeDark, GCGThemeLight } from "./themes.js"; const config = { backend: { @@ -48,6 +49,13 @@ const config = { clean_accents: true, sanitize_replacement: "-", }, + theme: { + include_built_in_themes: false, + themes: [ + GCGThemeDark, + GCGThemeLight + ] + }, collections: [ SettingsCollection, IndexPagesCollection, diff --git a/static/admin/config/props.js b/static/admin/config/props.js index c0488b8b..20173a3d 100644 --- a/static/admin/config/props.js +++ b/static/admin/config/props.js @@ -1,4 +1,5 @@ const MarkdownProps = { + widget: "markdown", toolbar_buttons: { main: [ "bold", @@ -74,4 +75,12 @@ const PatternEmail = { ], }; -export { MarkdownProps, DateFormat, DataObject, PatternEmail }; +const ImageProps = { + widget: "image", + required: false, + media_library: { + folder_support: true, + } +}; + +export { MarkdownProps, DateFormat, DataObject, PatternEmail, ImageProps }; diff --git a/static/admin/config/schulchronik.js b/static/admin/config/schulchronik.js index 9425cfe0..f47f2e67 100644 --- a/static/admin/config/schulchronik.js +++ b/static/admin/config/schulchronik.js @@ -7,6 +7,7 @@ import { StatsCollection, SuperhaufenCollection, } from "./collections/index.js"; +import { GCGThemeDark, GCGThemeLight } from "./themes.js"; const config = { backend: { @@ -38,6 +39,13 @@ const config = { clean_accents: true, sanitize_replacement: "-", }, + theme: { + include_built_in_themes: false, + themes: [ + GCGThemeDark, + GCGThemeLight + ] + }, collections: [ ChronikjahreCollection, SuperhaufenCollection, diff --git a/static/admin/config/themes.js b/static/admin/config/themes.js new file mode 100644 index 00000000..3833404c --- /dev/null +++ b/static/admin/config/themes.js @@ -0,0 +1,25 @@ +const GCGThemeDark = { + name: "GCG.Dark", + extends: "dark", + primary: { + main: "#ffbc3b", + contrastColor: "#4b4b4b", + }, + background: { + main: "#1a1a37", + dark: "#13132d", + }, +}; + +const GCGThemeLight = { + name: "GCG.Light", + extends: "light", + primary: { + main: "#1a1a37", + }, + background: { + dark: "#f1f3f5", + }, +}; + +export { GCGThemeDark, GCGThemeLight }; diff --git a/static/admin/index.html b/static/admin/index.html index e408d173..b1773d39 100644 --- a/static/admin/index.html +++ b/static/admin/index.html @@ -9,12 +9,12 @@ />