From af8d1e3d2c000c7e29c11a4eda7e915e4b068d84 Mon Sep 17 00:00:00 2001 From: hraban Date: Fri, 5 Jun 2026 23:10:24 +0200 Subject: [PATCH] Versionierung mit django-simple-history --- README.md | 9 ++++++--- liederquelle/liederquelle/settings/base.py | 2 ++ liederquelle/quellen/models/contact.py | 3 +++ liederquelle/quellen/models/person.py | 6 +++++- requirements.txt | 1 + 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9b1b3d0..7e2eeeb 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,11 @@ und für die öffentliche Rechercheplattform. - Liederbücher - Lieder -- Urheber*innen -- Verlage (TODO) -- Nutzungsrechte und ihre Inhaber*innen (TODO) +- Sammlung (private oder öffentliche Bibliothek von Liederbüchern) +- Urheber*innen (umgesetzt) +- Verlage +- Nutzungsrechte und ihre Inhaber*innen +- Versionierung ## Abhängigkeiten @@ -17,6 +19,7 @@ und für die öffentliche Rechercheplattform. - Django 6.0 - django-taggit - django-taggit-helpers (uralt, funktioniert aber) +- django-simple-history - PyYAML ## Installation diff --git a/liederquelle/liederquelle/settings/base.py b/liederquelle/liederquelle/settings/base.py index 25d29a8..be41d2c 100644 --- a/liederquelle/liederquelle/settings/base.py +++ b/liederquelle/liederquelle/settings/base.py @@ -44,6 +44,7 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'simple-history', ] MIDDLEWARE = [ @@ -54,6 +55,7 @@ MIDDLEWARE = [ 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'simple_history.middleware.HistoryRequestMiddleware', ] ROOT_URLCONF = 'liederquelle.urls' diff --git a/liederquelle/quellen/models/contact.py b/liederquelle/quellen/models/contact.py index 7da931a..7edbebc 100644 --- a/liederquelle/quellen/models/contact.py +++ b/liederquelle/quellen/models/contact.py @@ -4,6 +4,8 @@ from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelatio from django.contrib.contenttypes.models import ContentType from django.contrib.auth.models import User from .person import Person +from simple_history.models import HistoricalRecords + class AuthorURL(models.Model): person = models.ForeignKey(Person, @@ -74,6 +76,7 @@ class Contact(models.Model): blank=True, #help_text='', ) + history = HistoricalRecords() class Meta: verbose_name = 'Kontakt' diff --git a/liederquelle/quellen/models/person.py b/liederquelle/quellen/models/person.py index 126f65a..ed8bc08 100644 --- a/liederquelle/quellen/models/person.py +++ b/liederquelle/quellen/models/person.py @@ -1,6 +1,7 @@ from django.db import models from taggit.managers import TaggableManager from django.contrib.contenttypes.fields import GenericRelation +from simple_history.models import HistoricalRecords class Person(models.Model): @@ -45,6 +46,8 @@ class Person(models.Model): #help_text='', ) contacts = GenericRelation('Contact') + history = HistoricalRecords() + def alias(self): return ','.join(n.alias for n in self.identity_set.all()) alias.verbose_name = 'Aliase' @@ -87,7 +90,8 @@ class Identity(models.Model): blank=True, help_text='Kommaseparierte Stichwörter zu dieser Identität, z.B. "Bund:DPB,Band:Schlagsaite"', verbose_name='Stichwörter' - ) + ) + history = HistoricalRecords() class Meta: verbose_name = 'Identität' diff --git a/requirements.txt b/requirements.txt index 6805e70..1c8a80b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,4 @@ django>6,<7 django-dotenv django-taggit django-taggit-helpers +django-simple-history