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 | 323006e473ee3077cd91f9011090a4df1de5c0ae (patch) | |
| tree | ba6cff80e3e426ac57cce299c36760fe87806bba /ishtar_common/models.py | |
| parent | 41e7699a3caa2344cbe93089f68dda0dc0d8a446 (diff) | |
| download | Ishtar-323006e473ee3077cd91f9011090a4df1de5c0ae.tar.bz2 Ishtar-323006e473ee3077cd91f9011090a4df1de5c0ae.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() | 
