diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-11-04 18:15:25 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-11-04 18:15:45 +0100 |
| commit | ad4981972fcab73e4dadd5ba4a2965b8c1c3ad2c (patch) | |
| tree | 50e119ad050f4712e005ade8c48b5959fe18b0b9 /ishtar_common/utils.py | |
| parent | bf9ed50639b4e7a509050763de1fe9f9878dcfdd (diff) | |
| download | Ishtar-ad4981972fcab73e4dadd5ba4a2965b8c1c3ad2c.tar.bz2 Ishtar-ad4981972fcab73e4dadd5ba4a2965b8c1c3ad2c.zip | |
🚧 datings refactoring
Diffstat (limited to 'ishtar_common/utils.py')
| -rw-r--r-- | ishtar_common/utils.py | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index 937b9bb99..bd79814e9 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -2373,11 +2373,7 @@ def get_urls_for_model( return urls -def m2m_historization_changed(sender, **kwargs): - obj = kwargs.get("instance", None) - if not obj: - return - obj._queue = kwargs.get("queue", settings.CELERY_DEFAULT_QUEUE) +def get_m2m_values(obj): hist_values = obj.history_m2m or {} for attr in obj.HISTORICAL_M2M: values = [] @@ -2387,6 +2383,12 @@ def m2m_historization_changed(sender, **kwargs): values.append(value.history_compress()) hist_values[attr] = values obj.history_m2m = hist_values + return hist_values + + +def manage_m2m(obj, kwargs): + obj._queue = kwargs.get("queue", settings.CELERY_DEFAULT_QUEUE) + hist_values = get_m2m_values(obj) if getattr(obj, "skip_history_when_saving", False): # assume the last modifier is good... q = obj.history.filter( @@ -2403,6 +2405,21 @@ def m2m_historization_changed(sender, **kwargs): obj.save() +def related_historization_changed(sender, **kwargs): + rel_obj = kwargs.get("instance", None) + if not rel_obj or not getattr(rel_obj, "CURRENT_MODEL_ATTR", None): + return + obj = getattr(rel_obj, rel_obj.CURRENT_MODEL_ATTR) + manage_m2m(obj, kwargs) + + +def m2m_historization_changed(sender, **kwargs): + obj = kwargs.get("instance", None) + if not obj: + return + manage_m2m(obj, kwargs) + + def max_size_help(help_for_doc=False): max_size = settings.MAX_UPLOAD_SIZE if help_for_doc: |
