diff options
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:  | 
