summaryrefslogtreecommitdiff
path: root/scripts/restore_find_data.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/restore_find_data.py')
-rw-r--r--scripts/restore_find_data.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/scripts/restore_find_data.py b/scripts/restore_find_data.py
new file mode 100644
index 000000000..df5c38069
--- /dev/null
+++ b/scripts/restore_find_data.py
@@ -0,0 +1,25 @@
+"""
+Restore find data on destructive import
+"""
+
+import sys
+
+from ishtar_common.utils import update_data
+from archaeological_finds.models import Find
+
+ln = Find.objects.count()
+
+sys.stdout.write("\n")
+for idx, item in enumerate(Find.objects.all()):
+ sys.stdout.write("\r* processing {}/{} ({}%)".format(
+ idx + 1, ln, (idx + 1)*100.0 / ln))
+ sys.stdout.flush()
+ data = item.data
+ for h in item.history.order_by('-history_modifier_id', '-history_date',
+ '-history_id').all():
+ data = update_data(data, h.data)
+ item.data = data
+ item.skip_history_when_saving = True
+ item.save()
+sys.stdout.write("\n")
+