diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/2017-03-08-importer-basefind-to-find.py | 35 | 
1 files changed, 35 insertions, 0 deletions
| diff --git a/scripts/2017-03-08-importer-basefind-to-find.py b/scripts/2017-03-08-importer-basefind-to-find.py new file mode 100644 index 000000000..fa5da9855 --- /dev/null +++ b/scripts/2017-03-08-importer-basefind-to-find.py @@ -0,0 +1,35 @@ +from ishtar_common import models + + +def convert_field(field_name): +    if field_name.startswith('find__'): +        field_name = field_name[len('find__'):] +    else: +        field_name = "base_finds__" + field_name +    return field_name + + +def refac_types(types): +    find_model, created = models.ImporterModel.objects.get_or_create( +        klass='archaeological_finds.models_finds.Find', +        defaults={'name': 'Find'} +    ) +    for tpe in types: +        for col in tpe.columns.all(): +            for field in col.duplicate_fields.all(): +                new_field_name = convert_field(field.field_name) +                field.field_name = new_field_name +                field.save() +            for field in col.targets.all(): +                new_field_name = convert_field(field.target) +                field.target = new_field_name +                field.save() +        tpe.associated_models = find_model +        tpe.save() + + +types = list(models.ImporterType.objects.filter( +    associated_models=models.ImporterModel.objects.get( +        klass='archaeological_finds.models.BaseFind')).all()) + +refac_types(types) | 
