diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-01-25 22:26:43 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-01-25 22:26:43 +0100 | 
| commit | 097c76b3e8c658c3798b922864ee2c6ba0606636 (patch) | |
| tree | bbb74ffb1d74b7ffde348444955156a24f723a20 /ishtar_common/models.py | |
| parent | cf6f304ef9c93413f57f93754eb0247e9454a01c (diff) | |
| download | Ishtar-097c76b3e8c658c3798b922864ee2c6ba0606636.tar.bz2 Ishtar-097c76b3e8c658c3798b922864ee2c6ba0606636.zip  | |
Merge: allow to exclude some items from merging process
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 943995e0b..c900e028e 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1115,6 +1115,7 @@ class Merge(models.Model):                                               blank=True, null=True)      merge_exclusion = models.ManyToManyField("self",                                               blank=True, null=True) +    exclude_from_merge = models.BooleanField(default=False)      # 1 for one word similarity, 2 for two word similarity, etc.      MERGE_CLEMENCY = None      EMPTY_MERGE_KEY = '--' @@ -1123,12 +1124,16 @@ class Merge(models.Model):          abstract = True      def generate_merge_key(self): +        if self.exclude_from_merge: +            return          self.merge_key = slugify(self.name if self.name else '')          if not self.merge_key:              self.merge_key = self.EMPTY_MERGE_KEY          self.merge_key = self.merge_key      def generate_merge_candidate(self): +        if self.exclude_from_merge: +            return          if not self.merge_key:              self.generate_merge_key()              self.save() @@ -1137,7 +1142,8 @@ class Merge(models.Model):          q = self.__class__.objects\                            .exclude(pk=self.pk)\                            .exclude(merge_exclusion=self)\ -                          .exclude(merge_candidate=self) +                          .exclude(merge_candidate=self)\ +                          .exclude(exclude_from_merge=True)          if not self.MERGE_CLEMENCY:              q = q.filter(merge_key=self.merge_key)          else:  | 
