diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-03-08 22:29:17 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-03-08 22:29:17 +0100 |
commit | 8db4031c42b9d3cc36b59bdf636f5e00a963ebcd (patch) | |
tree | f3d2c86b3900b30240899a3ba4c53137b83184bc /scripts | |
parent | 68546d42c0b7bf16993de15b979cef128d5d8d9a (diff) | |
download | Ishtar-8db4031c42b9d3cc36b59bdf636f5e00a963ebcd.tar.bz2 Ishtar-8db4031c42b9d3cc36b59bdf636f5e00a963ebcd.zip |
Script: translate importer basefind to find
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) |