summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commitec2ef1a59c01d79d0341545b92a07a60dee6321d (patch)
tree58798681d154dda13d36586f7f4b437f2647d959 /ishtar_common
parent1dc416ca432719e77d3165b2ca06552a34977ecc (diff)
downloadIshtar-ec2ef1a59c01d79d0341545b92a07a60dee6321d.tar.bz2
Ishtar-ec2ef1a59c01d79d0341545b92a07a60dee6321d.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.py25
-rw-r--r--ishtar_common/models_common.py1
-rw-r--r--ishtar_common/templates/ishtar/blocks/sheet_creation_section.html4
-rw-r--r--ishtar_common/utils_migrations.py15
-rw-r--r--ishtar_common/views_item.py2
-rw-r--r--ishtar_common/wizards.py1
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",
]