summaryrefslogtreecommitdiff
path: root/ishtar_common/management/commands/update_external_ids.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-09-21 15:45:46 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-09-21 15:45:46 +0200
commitc13b5c04bfdf4f22e5c20cb1e99da037f314f5bc (patch)
tree4feea20935fcf500b2ef52ab94433ccb319673b8 /ishtar_common/management/commands/update_external_ids.py
parent0cd398940a316afe8fc7ec2b0102c793c3f4342b (diff)
downloadIshtar-c13b5c04bfdf4f22e5c20cb1e99da037f314f5bc.tar.bz2
Ishtar-c13b5c04bfdf4f22e5c20cb1e99da037f314f5bc.zip
Add a script to fix external ids
Diffstat (limited to 'ishtar_common/management/commands/update_external_ids.py')
-rw-r--r--ishtar_common/management/commands/update_external_ids.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/ishtar_common/management/commands/update_external_ids.py b/ishtar_common/management/commands/update_external_ids.py
new file mode 100644
index 000000000..f69a865d7
--- /dev/null
+++ b/ishtar_common/management/commands/update_external_ids.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import sys
+
+from django.core.management.base import BaseCommand
+
+from archaeological_operations.models import Parcel
+from archaeological_context_records.models import ContextRecord
+from archaeological_finds.models import BaseFind, Find
+
+
+class Command(BaseCommand):
+ help = "./manage.py ishtar_execute_admin_tasks\n\n"\
+ "Launch pending administration tasks."
+
+ def handle(self, *args, **options):
+ for model in [Parcel, ContextRecord, BaseFind, Find]:
+ updated = 0
+ print("* {}".format(model))
+ total = model.objects.count()
+ for idx, item in enumerate(model.objects.all()):
+ sys.stdout.write("\r{}/{} ".format(idx, total))
+ sys.stdout.flush()
+ updated += 1 if item.update_external_id(save=True) else 0
+ print("\rupdated: {} ".format(updated))