summaryrefslogtreecommitdiff
path: root/scripts/history_duplicate_clean.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-01-18 18:41:39 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-01-19 00:18:02 +0100
commite9c377136b8d0329f464749ea9671874d9dde17e (patch)
tree17e9fbf51fc054d18ddcd7fabc87e8684daf4eb4 /scripts/history_duplicate_clean.py
parent50124308f8f514e0f0120257a7d6a97523edb160 (diff)
downloadIshtar-e9c377136b8d0329f464749ea9671874d9dde17e.tar.bz2
Ishtar-e9c377136b8d0329f464749ea9671874d9dde17e.zip
Configure for publications on pypi, descriptions, etc.
Diffstat (limited to 'scripts/history_duplicate_clean.py')
-rw-r--r--scripts/history_duplicate_clean.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/scripts/history_duplicate_clean.py b/scripts/history_duplicate_clean.py
new file mode 100644
index 000000000..61d358720
--- /dev/null
+++ b/scripts/history_duplicate_clean.py
@@ -0,0 +1,31 @@
+"""
+Clean duplicate in history.
+This should be unecessary now.
+"""
+
+import datetime
+from archaeological_operations.models import Operation, AdministrativeAct
+from archaeological_files.models import File
+from archaeological_context_records.models import ContextRecord
+from archaeological_finds.models import Find, BaseFind, Treatment
+
+nb_deleted = {}
+to_delete = []
+for model in [Operation, File, ContextRecord, AdministrativeAct, Find,
+ BaseFind, Treatment]:
+ nb_deleted[model.__name__] = 0
+ for item in model.objects.all()[0:]:
+ c_user, c_date = None, None
+ for h in item.history.order_by('-history_modifier_id', '-history_date',
+ '-history_id').all():
+ if c_user and c_date and h.history_modifier_id == c_user and \
+ c_date - h.history_date < datetime.timedelta(seconds=5):
+ to_delete.append(h)
+ c_user = h.history_modifier_id
+ c_date = h.history_date
+ nb_deleted[model.__name__] += len(to_delete)
+
+for item in to_delete:
+ item.delete()
+for m in nb_deleted:
+ print "* %d deleted for %s" % (nb_deleted[m], m)