summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index a03f9f387..93a099b74 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -87,7 +87,7 @@ from ishtar_common.models_imports import ImporterModel, ImporterType, \
Import, TargetKeyGroup, ValueFormater
from ishtar_common.templatetags.link_to_window import simple_link_to_window
from ishtar_common.utils import get_cache, disable_for_loaddata, create_slug, \
- get_all_field_names, merge_tsvectors, cached_label_changed, \
+ get_all_field_names, merge_tsvectors, cached_label_changed, post_save_geo, \
generate_relation_graph, max_size_help, task, SecretaryRenderer
__all__ = [
@@ -1963,6 +1963,7 @@ class BaseHistorizedItem(StatisticItem, TemplateItem, FullSearch, Imported,
SHOW_URL = None
EXTERNAL_ID_KEY = ''
EXTERNAL_ID_DEPENDENCIES = []
+ DOWN_MODEL_UPDATE = []
HISTORICAL_M2M = []
history_modifier = models.ForeignKey(
@@ -1973,6 +1974,8 @@ class BaseHistorizedItem(StatisticItem, TemplateItem, FullSearch, Imported,
verbose_name=_("Creator"), blank=True, null=True)
last_modified = models.DateTimeField(auto_now=True)
history_m2m = JSONField(default={}, blank=True)
+ need_update = models.BooleanField(
+ verbose_name=_("Need update"), default=False)
ALT_NAMES = {
'history_creator': SearchAltName(
@@ -1992,6 +1995,15 @@ class BaseHistorizedItem(StatisticItem, TemplateItem, FullSearch, Imported,
class Meta:
abstract = True
+ def cascade_update(self):
+ for down_model in self.DOWN_MODEL_UPDATE:
+ if not settings.USE_BACKGROUND_TASK:
+ getattr(self, down_model).update(need_update=True)
+ continue
+ for item in getattr(self, down_model).all():
+ cached_label_changed(item.model, instance=item)
+ post_save_geo(item.model, instance=item)
+
@classmethod
def get_verbose_name(cls):
return cls._meta.verbose_name