From 783d9af325b344a4995b66931145b6a7cb6c6002 Mon Sep 17 00:00:00 2001
From: Thorge Petersen <petersen@rz.uni-kiel.de>
Date: Fri, 2 Feb 2024 14:56:00 +0100
Subject: [PATCH] Started with scheming migration (wip)

---
 ckanext/odsh/scheming/dataset.json            | 243 ++++++++++++++++++
 ckanext/odsh/scheming/presets.json            |  13 +
 .../scheming/form_snippets/group.html         |   0
 .../scheming/form_snippets/reference.html     |   0
 .../scheming/form_snippets/spatial_uri.html   |   0
 5 files changed, 256 insertions(+)
 create mode 100644 ckanext/odsh/scheming/dataset.json
 create mode 100644 ckanext/odsh/scheming/presets.json
 create mode 100644 ckanext/odsh/templates/scheming/form_snippets/group.html
 create mode 100644 ckanext/odsh/templates/scheming/form_snippets/reference.html
 create mode 100644 ckanext/odsh/templates/scheming/form_snippets/spatial_uri.html

diff --git a/ckanext/odsh/scheming/dataset.json b/ckanext/odsh/scheming/dataset.json
new file mode 100644
index 00000000..7074d404
--- /dev/null
+++ b/ckanext/odsh/scheming/dataset.json
@@ -0,0 +1,243 @@
+{
+  "scheming_version": 2,
+  "dataset_type": "dataset",
+  "about": "Custom CKAN dataset schema for ODSH",
+  "about_url": "http://github.com/ckan/ckanext-scheming",
+  "dataset_fields": [
+    {
+      "field_name": "title",
+      "label": {
+        "en": "Title",
+        "de": "Titel"
+      },
+      "preset": "title",
+      "form_placeholder": "z. B. ein beschreibender Titel"
+    },
+    {
+      "field_name": "name",
+      "label": "URL",
+      "preset": "dataset_slug",
+      "form_placeholder": "z. B. mein-datensatz"
+    },
+    {
+      "field_name": "notes",
+      "label": {
+        "en": "Description",
+        "de": "Beschreibung"
+      },
+      "form_snippet": "markdown.html",
+      "form_placeholder": "z. B. einige nützliche Hinweise zu den Daten"
+    },
+    {
+      "field_name": "owner_org",
+      "label": {
+        "en": "Organization",
+        "de": "Herausgeber"
+      },
+      "preset": "dataset_organization"
+    },
+    {
+      "field_name": "license_id",
+      "label": {
+        "en": "License",
+        "de": "Lizenz"
+      },
+      "form_snippet": "license.html",
+      "help_text": "Lizenzdefinitionen und weitere Informationen finden Sie unter http://opendefinition.org/"
+    },
+    {
+      "field_name": "license_attribution",
+      "label": {
+        "en": "License attribution",
+        "de": "Lizenzhinweis"
+      }
+    },
+    {
+      "field_name": "temporal_start",
+      "label": {
+        "en": "Period start",
+        "de": "Zeitraum von"
+      },
+      "preset": "date",
+      "required": false
+    },
+    {
+      "field_name": "temporal_end",
+      "label": {
+        "en": "Period end",
+        "de": "Zeitraum bis"
+      },
+      "preset": "date",
+      "required": false
+    },
+    {
+      "field_name": "issued_date",
+      "label": {
+        "en": "Issued date",
+        "de": "Publikationsdatum"
+      },
+      "preset": "date",
+      "required": true
+    },
+    {
+      "field_name": "tag_string",
+      "label": {
+        "en": "Tags",
+        "de": "Schlagwörter"
+      },
+      "preset": "tag_string_autocomplete",
+      "form_placeholder": "z. B. Wirtschaft, geistige Gesundheit, Regierung"
+    },
+    {
+      "field_name": "spatial_uri",
+      "label": {
+        "en": "Spatial reference",
+        "de": "Raumbezug"
+      },
+      "preset": "odsh_spatial_uri",
+      "required": false
+    },
+    {
+      "field_name": "private",
+      "label": {
+        "en": "Visibility",
+        "de": "Sichtbarkeit"
+      },
+      "preset": "select",
+      "options": [
+        {
+          "value": "True",
+          "label": {
+            "en": "Private",
+            "de": "Privat"
+          }
+        },
+        {
+          "value": "False",
+          "label": {
+            "en": "Public",
+            "de": "Öffentlich"
+          }
+        }
+      ],
+      "required": true
+    },
+    {
+      "field_name": "group",
+      "label": {
+        "en": "Groups",
+        "de": "Kategorien"
+      },
+      "form_snippet": "group.html",
+      "required": true
+    },
+    {
+      "field_name": "url",
+      "label": {
+        "en": "Source",
+        "de": "Quelle"
+      },
+      "form_placeholder": "http://example.com/dataset.json",
+      "display_property": "foaf:homepage",
+      "display_snippet": "link.html"
+    },
+    {
+      "field_name": "version",
+      "label": "Version",
+      "validators": "ignore_missing unicode_safe package_version_validator",
+      "form_placeholder": "1.0"
+    },
+    {
+      "field_name": "reference",
+      "label": {
+        "en": "Reference dataset",
+        "de": "Musterdatensatz"
+      },
+      "display_snippet": "reference.html"
+    },
+    {
+      "field_name": "version_notes",
+      "label": {
+        "en": "Version notes",
+        "de": "Hinweise zur Version"
+      },
+      "form_snippet": "markdown.html",
+      "form_placeholder": "z. B. einige nützliche Hinweise zu der Version"
+    },
+    {
+      "field_name": "is_replaced_by",
+      "label": {
+        "en": "Is replaced by",
+        "de": "Wird ersetzt durch"
+      },
+      "display_snippet": "link.html",
+      "form_placeholder": "https://"
+    },
+    {
+      "field_name": "author",
+      "label": {
+        "en": "Author",
+        "de": "Autor"
+      },
+      "form_placeholder": "Erika Mustermann",
+      "display_property": "dc:creator"
+    },
+    {
+      "field_name": "author_email",
+      "label": {
+        "en": "Author Email",
+        "de": "E-Mail des Autors"
+      },
+      "form_placeholder": "erika@example.com",
+      "display_property": "dc:creator",
+      "display_snippet": "email.html",
+      "display_email_name_field": "author"
+    },
+    {
+      "field_name": "maintainer",
+      "label": {
+        "en": "Maintainer",
+        "de": "Verwalter"
+      },
+      "form_placeholder": "Erika Mustermann",
+      "display_property": "dc:contributor"
+    },
+    {
+      "field_name": "maintainer_email",
+      "label": {
+        "en": "Maintainer Email",
+        "de": "E-Mail des Verwalters"
+      },
+      "form_placeholder": "erika@example.com",
+      "display_property": "dc:contributor",
+      "display_snippet": "email.html",
+      "display_email_name_field": "maintainer"
+    }
+  ],
+  "resource_fields": [
+    {
+      "field_name": "url",
+      "label": "URL",
+      "preset": "resource_url_upload"
+    },
+    {
+      "field_name": "name",
+      "label": "Name",
+      "form_placeholder": "Name der Ressource"
+    },
+    {
+      "field_name": "description",
+      "label": {
+        "en": "Description",
+        "de": "Beschreibung"
+      },
+      "form_snippet": "markdown.html",
+      "form_placeholder": "Einige nützliche Hinweise zu den Daten"
+    },
+    {
+      "field_name": "format",
+      "label": "Format",
+      "preset": "resource_format_autocomplete"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/ckanext/odsh/scheming/presets.json b/ckanext/odsh/scheming/presets.json
new file mode 100644
index 00000000..c5dc4be4
--- /dev/null
+++ b/ckanext/odsh/scheming/presets.json
@@ -0,0 +1,13 @@
+{
+  "scheming_presets_version": 1,
+  "about": "Custom scheming field presets for ODSH",
+  "about_url": "http://github.com/ckan/ckanext-scheming#preset",
+  "presets": [
+    {
+      "preset_name": "odsh_spatial_uri",
+      "values": {
+        "form_snippet": "spatial_uri.html"
+      }
+    }
+  ]
+}
\ No newline at end of file
diff --git a/ckanext/odsh/templates/scheming/form_snippets/group.html b/ckanext/odsh/templates/scheming/form_snippets/group.html
new file mode 100644
index 00000000..e69de29b
diff --git a/ckanext/odsh/templates/scheming/form_snippets/reference.html b/ckanext/odsh/templates/scheming/form_snippets/reference.html
new file mode 100644
index 00000000..e69de29b
diff --git a/ckanext/odsh/templates/scheming/form_snippets/spatial_uri.html b/ckanext/odsh/templates/scheming/form_snippets/spatial_uri.html
new file mode 100644
index 00000000..e69de29b
-- 
GitLab