diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-01-30 17:32:49 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-01-30 17:32:49 +0100 |
commit | 7a445debd9237c750b6a1b7d899eb9c384edb6ab (patch) | |
tree | 58798681d154dda13d36586f7f4b437f2647d959 /ishtar_common | |
parent | 665a009e5980a3eba8237c2eaf3e3fc684f1aea9 (diff) | |
download | Ishtar-7a445debd9237c750b6a1b7d899eb9c384edb6ab.tar.bz2 Ishtar-7a445debd9237c750b6a1b7d899eb9c384edb6ab.zip |
Add "created" field on main items in order to facilitate queries
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/migrations/0224_auto_20230130_1604.py (renamed from ishtar_common/migrations/0224_auto_20230127_1503.py) | 28 | ||||
-rw-r--r-- | ishtar_common/migrations/0225_migrate_created.py | 25 | ||||
-rw-r--r-- | ishtar_common/models_common.py | 1 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/blocks/sheet_creation_section.html | 4 | ||||
-rw-r--r-- | ishtar_common/utils_migrations.py | 15 | ||||
-rw-r--r-- | ishtar_common/views_item.py | 2 | ||||
-rw-r--r-- | ishtar_common/wizards.py | 1 |
7 files changed, 72 insertions, 4 deletions
diff --git a/ishtar_common/migrations/0224_auto_20230127_1503.py b/ishtar_common/migrations/0224_auto_20230130_1604.py index 736e2a88d..524caae16 100644 --- a/ishtar_common/migrations/0224_auto_20230127_1503.py +++ b/ishtar_common/migrations/0224_auto_20230130_1604.py @@ -1,5 +1,6 @@ -# Generated by Django 2.2.24 on 2023-01-27 15:03 +# Generated by Django 2.2.24 on 2023-01-30 16:04 +import datetime from django.db import migrations, models @@ -16,6 +17,21 @@ class Migration(migrations.Migration): 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'), @@ -65,4 +81,14 @@ class Migration(migrations.Migration): 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/0225_migrate_created.py b/ishtar_common/migrations/0225_migrate_created.py new file mode 100644 index 000000000..1304e8b92 --- /dev/null +++ b/ishtar_common/migrations/0225_migrate_created.py @@ -0,0 +1,25 @@ +# Generated by Django 2.2.24 on 2023-01-30 16:58 + +from django.db import migrations +from ishtar_common.utils_migrations import migrate_created_field + + +def migrate_created(apps, __): + app_name = "ishtar_common" + model_names = [ + "Document", + "Organization", + "Person", + ] + migrate_created_field(apps, app_name, model_names) + + +class Migration(migrations.Migration): + + dependencies = [ + ('ishtar_common', '0224_auto_20230130_1604'), + ] + + operations = [ + migrations.RunPython(migrate_created) + ] diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index f50395dee..2015a82da 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -1448,6 +1448,7 @@ class BaseHistorizedItem( null=True, ) last_modified = models.DateTimeField(blank=True, default=datetime.datetime.now) + created = models.DateTimeField(blank=True, default=datetime.datetime.now) history_m2m = JSONField(default=dict, blank=True) need_update = models.BooleanField(verbose_name=_("Need update"), default=False) locked = models.BooleanField( diff --git a/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html b/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html index 46856cad0..78a5ca75f 100644 --- a/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html +++ b/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html @@ -6,10 +6,10 @@ <i class="fa fa-plus-circle" aria-hidden="true"></i> {{item.history_creator.ishtaruser.person}} {{item.history_creator.ishtaruser.person|link_to_window:request}}<br/> - <small>{{item.history_creation_date|date:"DATETIME_FORMAT"}}</small> + <small>{{item.created|date:"DATETIME_FORMAT"}}</small> </div> {% endif %} -{% if not item.last_edition_date or item.history_creation_date != item.last_edition_date %} +{% if not item.last_edition_date or item.created != item.last_edition_date %} <div class="col-12 col-md-6 col-lg-3 flex-wrap text-muted" title="{% trans 'Modification' context 'Sheet' %}"> <i class="fa fa-pencil" aria-hidden="true"></i> diff --git a/ishtar_common/utils_migrations.py b/ishtar_common/utils_migrations.py index 44eae940e..ec0b46509 100644 --- a/ishtar_common/utils_migrations.py +++ b/ishtar_common/utils_migrations.py @@ -185,3 +185,18 @@ def set_uuid_helper(module, model_name): migrate_uuid(model) return set_uuid + + +def migrate_created_field(apps, app_name, model_names): + for model_name in model_names: + model = apps.get_model(app_name, model_name) + try: + model_history = apps.get_model(app_name, "Historical" + model_name) + except: + continue + for item in model.objects.all(): + q = model_history.objects.filter(id=item.pk).order_by("history_date") + if not q.count(): + continue + history_date = q.all()[0].history_date + item.__class__.objects.filter(pk=item.pk).update(created=history_date) diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 531eef995..839480ba7 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -1633,7 +1633,7 @@ def _get_json_stats( DEFAULT_ROW_NUMBER = 10 # length is used by ajax DataTables requests EXCLUDED_FIELDS = ["length"] -BASE_DATED_FIELDS = ["last_modified"] +BASE_DATED_FIELDS = ["created", "last_modified"] def get_item( diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index d8c789018..aa3ef68ab 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -2155,6 +2155,7 @@ DOCUMENT_EXCLUDED = models.Document.RELATED_MODELS + [ "search_vector", "imports", "last_modified", + "created", "document", ] |