summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py19
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")