diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-06-16 13:34:38 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-06-17 15:17:09 +0200 |
commit | 25f23ed03ad48fb4e5ca2f14527c0bc381dc8c9b (patch) | |
tree | ba6cff80e3e426ac57cce299c36760fe87806bba /ishtar_common/models.py | |
parent | a8349afc7ec5e7919108ceca7027cf054a23caff (diff) | |
download | Ishtar-25f23ed03ad48fb4e5ca2f14527c0bc381dc8c9b.tar.bz2 Ishtar-25f23ed03ad48fb4e5ca2f14527c0bc381dc8c9b.zip |
Context records: Optimize record relations - management command - tests
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index fdeba5f26..19c432053 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -20,6 +20,8 @@ """ Models description """ +import sys + from bs4 import BeautifulSoup import copy import datetime @@ -862,6 +864,27 @@ class RelationsViews(models.Model): return relation_view_update.delay(sender, kwargs) @classmethod + def _get_base_children(cls): + raise NotImplemented() + + @classmethod + def regenerate_all(cls, quiet=True): + cls.check_engine() + profile = get_current_profile(force=True) + if profile.parent_relations_engine == "V": + return + cls.objects.filter(pk__isnull=False).delete() + base_children = list(cls._get_base_children()) + total = len(base_children) + for idx, cr_id in enumerate(base_children): + if not quiet: + sys.stdout.write(f"Processing: {idx + 1} / {total}\t\t{cr_id}\r") + sys.stdout.flush() + cls.update(cr_id) + if not quiet: + sys.stdout.write("\n") + + @classmethod def create_table(cls): raise NotImplemented() |