diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-01 16:24:09 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-01 16:24:09 +0200 | 
| commit | 952bf485126d9f0e3c2357288a31c10d99c9966f (patch) | |
| tree | 164ba8b9ae802c89bfecdd2d3f102a291d4dba0a /ishtar_common/models.py | |
| parent | c170779b752fbcf94d962be7a33a9f200d4f8ca9 (diff) | |
| download | Ishtar-952bf485126d9f0e3c2357288a31c10d99c9966f.tar.bz2 Ishtar-952bf485126d9f0e3c2357288a31c10d99c9966f.zip | |
Archive item to exclude them from merge detection mechanism
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 19 | 
1 files changed, 14 insertions, 5 deletions
| diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 47f2017f2..e2142ef0c 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1384,8 +1384,8 @@ class Merge(models.Model):                                               blank=True, null=True)      merge_exclusion = models.ManyToManyField("self",                                               blank=True, null=True) -    exclude_from_merge = models.NullBooleanField(default=False, -                                                 blank=True, null=True) +    archived = models.NullBooleanField(default=False, +                                       blank=True, null=True)      # 1 for one word similarity, 2 for two word similarity, etc.      MERGE_CLEMENCY = None      EMPTY_MERGE_KEY = '--' @@ -1394,7 +1394,7 @@ class Merge(models.Model):          abstract = True      def generate_merge_key(self): -        if self.exclude_from_merge: +        if self.archived:              return          self.merge_key = slugify(self.name if self.name else '')          if not self.merge_key: @@ -1402,7 +1402,7 @@ class Merge(models.Model):          self.merge_key = self.merge_key      def generate_merge_candidate(self): -        if self.exclude_from_merge: +        if self.archived:              return          if not self.merge_key:              self.generate_merge_key() @@ -1413,7 +1413,7 @@ class Merge(models.Model):                            .exclude(pk=self.pk)\                            .exclude(merge_exclusion=self)\                            .exclude(merge_candidate=self)\ -                          .exclude(exclude_from_merge=True) +                          .exclude(archived=True)          if not self.MERGE_CLEMENCY:              q = q.filter(merge_key=self.merge_key)          else: @@ -1432,6 +1432,14 @@ class Merge(models.Model):          self.generate_merge_candidate()          return item +    def archive(self): +        self.archived = True +        self.save() +        for m in self.merge_candidate.all(): +            m.delete() +        for m in self.merge_exclusion.all(): +            m.delete() +      def merge(self, item):          merge_model_objects(self, item)          self.generate_merge_candidate() @@ -2260,6 +2268,7 @@ class Person(Address, Merge, OwnPerms, ValueGetter):      attached_to = models.ForeignKey(          'Organization', related_name='members', on_delete=models.SET_NULL,          verbose_name=_(u"Is attached to"), blank=True, null=True) +    history = HistoricalRecords()      class Meta:          verbose_name = _(u"Person") | 
