summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/migrations/0224_auto_20230130_1604.py94
-rw-r--r--ishtar_common/migrations/0224_auto_20230130_1838.py165
-rw-r--r--ishtar_common/migrations/0225_migrate_created.py2
-rw-r--r--ishtar_common/models.py2
4 files changed, 168 insertions, 95 deletions
diff --git a/ishtar_common/migrations/0224_auto_20230130_1604.py b/ishtar_common/migrations/0224_auto_20230130_1604.py
deleted file mode 100644
index 524caae16..000000000
--- a/ishtar_common/migrations/0224_auto_20230130_1604.py
+++ /dev/null
@@ -1,94 +0,0 @@
-# Generated by Django 2.2.24 on 2023-01-30 16:04
-
-import datetime
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('ishtar_common', '0223_auto_20230120_1124'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='document',
- name='cached_label',
- field=models.TextField(blank=True, db_index=True, default='', help_text='Generated automatically - do not edit', verbose_name='Cached name'),
- ),
- migrations.AddField(
- model_name='document',
- name='created',
- field=models.DateTimeField(blank=True, default=datetime.datetime.now),
- ),
- migrations.AddField(
- model_name='historicalorganization',
- name='created',
- field=models.DateTimeField(blank=True, default=datetime.datetime.now),
- ),
- migrations.AddField(
- model_name='historicalperson',
- name='created',
- field=models.DateTimeField(blank=True, default=datetime.datetime.now),
- ),
- migrations.AddField(
- model_name='ishtarsiteprofile',
- name='basefind_cached_label',
- field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Base find cached label'),
- ),
- migrations.AddField(
- model_name='ishtarsiteprofile',
- name='container_cached_label',
- field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Container cached label'),
- ),
- migrations.AddField(
- model_name='ishtarsiteprofile',
- name='contextrecord_cached_label',
- field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Context record cached label'),
- ),
- migrations.AddField(
- model_name='ishtarsiteprofile',
- name='document_cached_label',
- field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Document cached label'),
- ),
- migrations.AddField(
- model_name='ishtarsiteprofile',
- name='file_cached_label',
- field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='File cached label'),
- ),
- migrations.AddField(
- model_name='ishtarsiteprofile',
- name='find_cached_label',
- field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Find cached label'),
- ),
- migrations.AddField(
- model_name='ishtarsiteprofile',
- name='operation_cached_label',
- field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Operation cached label'),
- ),
- migrations.AddField(
- model_name='ishtarsiteprofile',
- name='parcel_cached_label',
- field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Parcel cached label'),
- ),
- migrations.AddField(
- model_name='ishtarsiteprofile',
- name='site_cached_label',
- field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Site cached label'),
- ),
- migrations.AddField(
- model_name='ishtarsiteprofile',
- name='warehouse_cached_label',
- field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Warehouse cached label'),
- ),
- migrations.AddField(
- model_name='organization',
- name='created',
- field=models.DateTimeField(blank=True, default=datetime.datetime.now),
- ),
- migrations.AddField(
- model_name='person',
- name='created',
- field=models.DateTimeField(blank=True, default=datetime.datetime.now),
- ),
- ]
diff --git a/ishtar_common/migrations/0224_auto_20230130_1838.py b/ishtar_common/migrations/0224_auto_20230130_1838.py
new file mode 100644
index 000000000..749d48725
--- /dev/null
+++ b/ishtar_common/migrations/0224_auto_20230130_1838.py
@@ -0,0 +1,165 @@
+# Generated by Django 2.2.24 on 2023-01-30 18:38
+
+import datetime
+from django.conf import settings
+import django.contrib.postgres.fields.jsonb
+import django.contrib.postgres.search
+from django.db import migrations, models
+import django.db.models.deletion
+import simple_history.models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+ ('ishtar_common', '0223_auto_20230120_1124'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='document',
+ name='cached_label',
+ field=models.TextField(blank=True, db_index=True, default='', help_text='Generated automatically - do not edit', verbose_name='Cached name'),
+ ),
+ migrations.AddField(
+ model_name='document',
+ name='created',
+ field=models.DateTimeField(blank=True, default=datetime.datetime.now),
+ ),
+ migrations.AddField(
+ model_name='historicalorganization',
+ name='created',
+ field=models.DateTimeField(blank=True, default=datetime.datetime.now),
+ ),
+ migrations.AddField(
+ model_name='historicalperson',
+ name='created',
+ field=models.DateTimeField(blank=True, default=datetime.datetime.now),
+ ),
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='basefind_cached_label',
+ field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Base find cached label'),
+ ),
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='container_cached_label',
+ field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Container cached label'),
+ ),
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='contextrecord_cached_label',
+ field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Context record cached label'),
+ ),
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='document_cached_label',
+ field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Document cached label'),
+ ),
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='file_cached_label',
+ field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='File cached label'),
+ ),
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='find_cached_label',
+ field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Find cached label'),
+ ),
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='operation_cached_label',
+ field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Operation cached label'),
+ ),
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='parcel_cached_label',
+ field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Parcel cached label'),
+ ),
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='site_cached_label',
+ field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Site cached label'),
+ ),
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='warehouse_cached_label',
+ field=models.TextField(blank=True, default='', help_text='Formula to manage cached label. If not set a default is provided', verbose_name='Warehouse cached label'),
+ ),
+ migrations.AddField(
+ model_name='organization',
+ name='created',
+ field=models.DateTimeField(blank=True, default=datetime.datetime.now),
+ ),
+ migrations.AddField(
+ model_name='person',
+ name='created',
+ field=models.DateTimeField(blank=True, default=datetime.datetime.now),
+ ),
+ migrations.CreateModel(
+ name='HistoricalDocument',
+ fields=[
+ ('id', models.IntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')),
+ ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')),
+ ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default=dict)),
+ ('last_modified', models.DateTimeField(blank=True, default=datetime.datetime.now)),
+ ('created', models.DateTimeField(blank=True, default=datetime.datetime.now)),
+ ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default=dict)),
+ ('need_update', models.BooleanField(default=False, verbose_name='Need update')),
+ ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')),
+ ('cached_label', models.TextField(blank=True, db_index=True, default='', help_text='Generated automatically - do not edit', verbose_name='Cached name')),
+ ('complete_identifier', models.TextField(blank=True, default='', verbose_name='Complete identifier')),
+ ('custom_index', models.IntegerField(blank=True, null=True, verbose_name='Custom index')),
+ ('qrcode', models.TextField(blank=True, max_length=255, null=True)),
+ ('image', models.TextField(blank=True, help_text='La taille maximale supportée pour le fichier est de 100 Mo.', max_length=255, null=True)),
+ ('thumbnail', models.TextField(blank=True, help_text='La taille maximale supportée pour le fichier est de 100 Mo.', max_length=255, null=True)),
+ ('title', models.TextField(blank=True, default='', verbose_name='Title')),
+ ('associated_file', models.TextField(blank=True, help_text='La taille maximale supportée pour le fichier est de 100 Mo.', max_length=255, null=True, verbose_name='Associated file')),
+ ('index', models.IntegerField(blank=True, null=True, verbose_name='Index')),
+ ('external_id', models.TextField(blank=True, default='', verbose_name='External ID')),
+ ('reference', models.TextField(blank=True, default='', verbose_name='Ref.')),
+ ('internal_reference', models.TextField(blank=True, default='', verbose_name='Internal ref.')),
+ ('publishing_year', models.PositiveIntegerField(blank=True, null=True, verbose_name='Year of publication')),
+ ('issn', models.CharField(blank=True, max_length=10, null=True, verbose_name='ISSN')),
+ ('isbn', models.CharField(blank=True, max_length=17, null=True, verbose_name='ISBN')),
+ ('source_free_input', models.CharField(blank=True, max_length=500, null=True, verbose_name='Source - free input')),
+ ('source_page_range', models.CharField(blank=True, max_length=500, null=True, verbose_name='Source - page range')),
+ ('scale', models.CharField(blank=True, max_length=30, null=True, verbose_name='Scale')),
+ ('authors_raw', models.CharField(blank=True, max_length=250, null=True, verbose_name='Authors (raw)')),
+ ('associated_url', models.URLField(blank=True, max_length=1000, null=True, verbose_name='Numerical ressource (web address)')),
+ ('receipt_date', models.DateField(blank=True, null=True, verbose_name='Receipt date')),
+ ('creation_date', models.DateField(blank=True, null=True, verbose_name='Creation date')),
+ ('receipt_date_in_documentation', models.DateField(blank=True, null=True, verbose_name='Receipt date in documentation')),
+ ('item_number', models.IntegerField(default=1, verbose_name='Number of items')),
+ ('description', models.TextField(blank=True, default='', verbose_name='Description')),
+ ('container_id', models.PositiveIntegerField(blank=True, null=True, verbose_name='Container ID')),
+ ('container_ref_id', models.PositiveIntegerField(blank=True, null=True, verbose_name='Container ID')),
+ ('comment', models.TextField(blank=True, default='', verbose_name='Comment')),
+ ('additional_information', models.TextField(blank=True, default='', verbose_name='Additional information')),
+ ('duplicate', models.NullBooleanField(verbose_name='Has a duplicate')),
+ ('associated_links', models.TextField(blank=True, default='', verbose_name='Symbolic links')),
+ ('cache_related_label', models.TextField(blank=True, db_index=True, default='', help_text='Cached value - do not edit', verbose_name='Related')),
+ ('history_id', models.AutoField(primary_key=True, serialize=False)),
+ ('history_date', models.DateTimeField()),
+ ('history_change_reason', models.CharField(max_length=100, null=True)),
+ ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
+ ('format_type', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Format', verbose_name='Format')),
+ ('history_creator', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Creator')),
+ ('history_modifier', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Last editor')),
+ ('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
+ ('language', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Language', verbose_name='Language')),
+ ('lock_user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Locked by')),
+ ('publisher', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Organization', verbose_name='Publisher')),
+ ('source', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.Document', verbose_name='Source')),
+ ('source_type', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.SourceType', verbose_name='Type')),
+ ('support_type', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='ishtar_common.SupportType', verbose_name='Medium')),
+ ],
+ options={
+ 'verbose_name': 'historical Document',
+ 'ordering': ('-history_date', '-history_id'),
+ 'get_latest_by': 'history_date',
+ },
+ bases=(simple_history.models.HistoricalChanges, models.Model),
+ ),
+ ]
diff --git a/ishtar_common/migrations/0225_migrate_created.py b/ishtar_common/migrations/0225_migrate_created.py
index 1304e8b92..554df7309 100644
--- a/ishtar_common/migrations/0225_migrate_created.py
+++ b/ishtar_common/migrations/0225_migrate_created.py
@@ -17,7 +17,7 @@ def migrate_created(apps, __):
class Migration(migrations.Migration):
dependencies = [
- ('ishtar_common', '0224_auto_20230130_1604'),
+ ('ishtar_common', '0224_auto_20230130_1838'),
]
operations = [
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 8dd1fc3fe..12cdf01f0 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -133,6 +133,7 @@ from ishtar_common.models_common import (
HierarchicalType,
BaseHistorizedItem,
LightHistorizedItem,
+ HistoricalRecords,
FullSearch,
SearchAltName,
OwnPerms,
@@ -4268,6 +4269,7 @@ class Document(
db_index=True,
help_text=_("Cached value - do not edit"),
)
+ history = HistoricalRecords(inherit=True)
class Meta:
verbose_name = _("Document")