summaryrefslogtreecommitdiff
path: root/scripts/2017-03-08-importer-basefind-to-find.py
diff options
context:
space:
mode:
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
commit8db4031c42b9d3cc36b59bdf636f5e00a963ebcd (patch)
treef3d2c86b3900b30240899a3ba4c53137b83184bc /scripts/2017-03-08-importer-basefind-to-find.py
parent68546d42c0b7bf16993de15b979cef128d5d8d9a (diff)
downloadIshtar-8db4031c42b9d3cc36b59bdf636f5e00a963ebcd.tar.bz2
Ishtar-8db4031c42b9d3cc36b59bdf636f5e00a963ebcd.zip
Script: translate importer basefind to find
Diffstat (limited to 'scripts/2017-03-08-importer-basefind-to-find.py')
-rw-r--r--scripts/2017-03-08-importer-basefind-to-find.py35
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)