diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-11-17 15:36:57 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:23:19 +0100 |
commit | 8d152ee388c41eb2ad592da5e39ff6e46f97b493 (patch) | |
tree | 66f5df599cfa1eea501ddea3eb6612f7ad341101 | |
parent | 81d6966198e1c7630b8a1ea134db7cb91f954e87 (diff) | |
download | Ishtar-8d152ee388c41eb2ad592da5e39ff6e46f97b493.tar.bz2 Ishtar-8d152ee388c41eb2ad592da5e39ff6e46f97b493.zip |
Optimize context record relations post treatments
-rw-r--r-- | archaeological_context_records/models.py | 2 | ||||
-rw-r--r-- | ishtar_common/models.py | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index da6b3b86a..686b167b4 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -1714,6 +1714,8 @@ class ContextRecordTree(RelationsViews): @classmethod def _update(cls, item_id, already_updated=None): all_relations = set() + if not ContextRecord.objects.filter(pk=item_id).count(): + return # add self relation cls.objects.get_or_create( key=f"{item_id}_{item_id}", cr_id=item_id, cr_parent_id=item_id diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 727d77fbc..442e0c687 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -86,6 +86,7 @@ from ishtar_common.utils import ( serialize_args_for_tasks, task, generate_pdf_preview, + revoke_old_task, ) from ishtar_common.utils_secretary import IshtarSecretaryRenderer @@ -902,8 +903,11 @@ class RelationsViews(models.Model): if not settings.USE_BACKGROUND_TASK: return relation_view_update(cls, {"item_id": item_id}) else: + sender, kwargs = serialize_args_for_tasks(cls, None, {"item_id": item_id}) - return relation_view_update.delay(sender, kwargs) + task_item = relation_view_update.delay(sender, kwargs) + revoke_old_task(kwargs, "relation_view_update", task_item.id, cls) + return task_item @classmethod def _get_base_children(cls): |