diff --git a/.github/workflows/md5_check_initial-data.yml b/.github/workflows/md5_check_initial-data.yml
index 9c4644850..4fcc9e523 100644
--- a/.github/workflows/md5_check_initial-data.yml
+++ b/.github/workflows/md5_check_initial-data.yml
@@ -21,4 +21,4 @@ jobs:
run: md5sum docker/initial-data.json
- name: Validate and protect initial-data.json
- run: echo "6516e4a8d29c623d301c0c463e3d1db5 docker/initial-data.json" | md5sum -c -
+ run: echo "eb70fc8581fc011b5da4b022068564b9 docker/initial-data.json" | md5sum -c -
diff --git a/docker/initial-data.json b/docker/initial-data.json
index f528ab87c..98ffe860a 100644
--- a/docker/initial-data.json
+++ b/docker/initial-data.json
@@ -8,7 +8,6 @@
"legal_notice": "OpenSlides is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly. The event organizer is resposible for the content.",
"privacy_policy": "",
"login_text": "Welcome to OpenSlides. Please login.",
- "theme": "openslides-default-light-theme",
"reset_password_verbose_errors": false,
"enable_electronic_voting": false,
"limit_of_meetings": 0,
@@ -19,7 +18,9 @@
1
],
"resource_ids": [],
- "organization_tag_ids": []
+ "organization_tag_ids": [],
+ "theme_id": 1,
+ "theme_ids": [1]
}
},
"user": {
@@ -68,6 +69,56 @@
},
"resource": {},
"organization_tag": {},
+ "theme": {
+ "1":{
+ "id": 1,
+ "name": "OpenSlides Blue",
+ "accent_500": "#2196f3",
+ "primary_500": "#317796",
+ "warn_500": "#f06400",
+ "organization_id": 1,
+ "theme_for_organization_id": 1,
+ "accent_100": null,
+ "accent_200": null,
+ "accent_300": null,
+ "accent_400": null,
+ "accent_50": null,
+ "accent_600": null,
+ "accent_700": null,
+ "accent_800": null,
+ "accent_900": null,
+ "accent_a100": null,
+ "accent_a200": null,
+ "accent_a400": null,
+ "accent_a700": null,
+ "primary_100": null,
+ "primary_200": null,
+ "primary_300": null,
+ "primary_400": null,
+ "primary_50": null,
+ "primary_600": null,
+ "primary_700": null,
+ "primary_800": null,
+ "primary_900": null,
+ "primary_a100": null,
+ "primary_a200": null,
+ "primary_a400": null,
+ "primary_a700": null,
+ "warn_100": null,
+ "warn_200": null,
+ "warn_300": null,
+ "warn_400": null,
+ "warn_50": null,
+ "warn_600": null,
+ "warn_700": null,
+ "warn_800": null,
+ "warn_900": null,
+ "warn_a100": null,
+ "warn_a200": null,
+ "warn_a400": null,
+ "warn_a700": null
+ }
+ },
"committee": {
"1": {
"id": 1,
diff --git a/docs/example-data.json b/docs/example-data.json
index 071fe4a97..502bb766e 100644
--- a/docs/example-data.json
+++ b/docs/example-data.json
@@ -8,7 +8,6 @@
"legal_notice": "OpenSlides is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly.",
"privacy_policy": "",
"login_text": "Guten Morgen!",
- "theme": "openslides-theme",
"enable_electronic_voting": true,
"reset_password_verbose_errors": true,
"committee_ids": [
@@ -23,7 +22,9 @@
],
"organization_tag_ids": [
1
- ]
+ ],
+ "theme_id": 1,
+ "theme_ids": [1]
}
},
"user": {
@@ -331,6 +332,56 @@
"organization_id": 1
}
},
+ "theme": {
+ "1":{
+ "id": 1,
+ "name": "OpenSlides Blue",
+ "accent_500": "#2196f3",
+ "primary_500": "#317796",
+ "warn_500": "#f06400",
+ "organization_id": 1,
+ "theme_for_organization_id": 1,
+ "accent_100": null,
+ "accent_200": null,
+ "accent_300": null,
+ "accent_400": null,
+ "accent_50": null,
+ "accent_600": null,
+ "accent_700": null,
+ "accent_800": null,
+ "accent_900": null,
+ "accent_a100": null,
+ "accent_a200": null,
+ "accent_a400": null,
+ "accent_a700": null,
+ "primary_100": null,
+ "primary_200": null,
+ "primary_300": null,
+ "primary_400": null,
+ "primary_50": null,
+ "primary_600": null,
+ "primary_700": null,
+ "primary_800": null,
+ "primary_900": null,
+ "primary_a100": null,
+ "primary_a200": null,
+ "primary_a400": null,
+ "primary_a700": null,
+ "warn_100": null,
+ "warn_200": null,
+ "warn_300": null,
+ "warn_400": null,
+ "warn_50": null,
+ "warn_600": null,
+ "warn_700": null,
+ "warn_800": null,
+ "warn_900": null,
+ "warn_a100": null,
+ "warn_a200": null,
+ "warn_a400": null,
+ "warn_a700": null
+ }
+ },
"organization_tag": {
"1": {
"id": 1,
diff --git a/docs/models.yml b/docs/models.yml
index 9c6d16c0b..4cf99f5de 100644
--- a/docs/models.yml
+++ b/docs/models.yml
@@ -86,9 +86,6 @@ organization:
login_text:
type: string
restriction_mode: A
- theme:
- type: string
- restriction_mode: A
reset_password_verbose_errors:
type: boolean
restriction_mode: B
@@ -120,6 +117,15 @@ organization:
type: relation-list
restriction_mode: B
to: organization_tag/organization_id
+ theme_id:
+ type: relation
+ required: true
+ restriction_mode: A
+ to: theme/theme_for_organization_id
+ theme_ids:
+ type: relation-list
+ restriction_mode: A
+ to: theme/organization_id
user:
id:
@@ -338,7 +344,6 @@ user:
type: relation-list
to: user/vote_delegated_$_to_id
restriction_mode: C
-
meeting_ids:
type: number[]
description: Calculated. All ids from group_$_ids as integers.
@@ -397,6 +402,154 @@ organization_tag:
restriction_mode: A
required: true
+theme:
+ id:
+ restriction_mode: A
+ type: number
+ required: true
+ name:
+ restriction_mode: A
+ type: string
+ required: true
+ accent_100:
+ restriction_mode: A
+ type: color
+ accent_200:
+ restriction_mode: A
+ type: color
+ accent_300:
+ restriction_mode: A
+ type: color
+ accent_400:
+ restriction_mode: A
+ type: color
+ accent_50:
+ restriction_mode: A
+ type: color
+ accent_500:
+ restriction_mode: A
+ type: color
+ required: true
+ accent_600:
+ restriction_mode: A
+ type: color
+ accent_700:
+ restriction_mode: A
+ type: color
+ accent_800:
+ restriction_mode: A
+ type: color
+ accent_900:
+ restriction_mode: A
+ type: color
+ accent_a100:
+ restriction_mode: A
+ type: color
+ accent_a200:
+ restriction_mode: A
+ type: color
+ accent_a400:
+ restriction_mode: A
+ type: color
+ accent_a700:
+ restriction_mode: A
+ type: color
+ primary_100:
+ restriction_mode: A
+ type: color
+ primary_200:
+ restriction_mode: A
+ type: color
+ primary_300:
+ restriction_mode: A
+ type: color
+ primary_400:
+ restriction_mode: A
+ type: color
+ primary_50:
+ restriction_mode: A
+ type: color
+ primary_500:
+ restriction_mode: A
+ type: color
+ required: true
+ primary_600:
+ restriction_mode: A
+ type: color
+ primary_700:
+ restriction_mode: A
+ type: color
+ primary_800:
+ restriction_mode: A
+ type: color
+ primary_900:
+ restriction_mode: A
+ type: color
+ primary_a100:
+ restriction_mode: A
+ type: color
+ primary_a200:
+ restriction_mode: A
+ type: color
+ primary_a400:
+ restriction_mode: A
+ type: color
+ primary_a700:
+ restriction_mode: A
+ type: color
+ warn_100:
+ restriction_mode: A
+ type: color
+ warn_200:
+ restriction_mode: A
+ type: color
+ warn_300:
+ restriction_mode: A
+ type: color
+ warn_400:
+ restriction_mode: A
+ type: color
+ warn_50:
+ restriction_mode: A
+ type: color
+ warn_500:
+ restriction_mode: A
+ type: color
+ required: true
+ warn_600:
+ restriction_mode: A
+ type: color
+ warn_700:
+ restriction_mode: A
+ type: color
+ warn_800:
+ restriction_mode: A
+ type: color
+ warn_900:
+ restriction_mode: A
+ type: color
+ warn_a100:
+ restriction_mode: A
+ type: color
+ warn_a200:
+ restriction_mode: A
+ type: color
+ warn_a400:
+ restriction_mode: A
+ type: color
+ warn_a700:
+ restriction_mode: A
+ type: color
+ theme_for_organization_id:
+ restriction_mode: A
+ to: organization/theme_id
+ type: relation
+ organization_id:
+ required: true
+ restriction_mode: A
+ to: organization/theme_ids
+ type: relation
+
committee:
id:
type: number