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 | bff36572f3aaab10f9d1697cd398e733dcf0e5b7 (patch) | |
| tree | 66f5df599cfa1eea501ddea3eb6612f7ad341101 | |
| parent | 7d2b9ebd8d91bd53ff5b1fff6f6cae0938740f0d (diff) | |
| download | Ishtar-bff36572f3aaab10f9d1697cd398e733dcf0e5b7.tar.bz2 Ishtar-bff36572f3aaab10f9d1697cd398e733dcf0e5b7.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): | 
