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