diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/management/commands/update_external_ids.py | 26 | 
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)) | 
