From 2c721d268fa474f2efe838b6ec111bae1b64e20b Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 2 Sep 2016 10:34:44 +0200 Subject: Fix migration generate_title for strange databases --- ishtar_common/migrations/0058_generate_title.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'ishtar_common/migrations') diff --git a/ishtar_common/migrations/0058_generate_title.py b/ishtar_common/migrations/0058_generate_title.py index ac0d1d602..3fcb82ee5 100644 --- a/ishtar_common/migrations/0058_generate_title.py +++ b/ishtar_common/migrations/0058_generate_title.py @@ -21,12 +21,25 @@ class Migration(SchemaMigration): translation.activate('fr') for key, lbl in TYPE: lbl = translation.ugettext(lbl) - keys[key] = orm['ishtar_common.TitleType'].objects.create( - label=lbl, txt_idx=key.lower()) + q = orm['ishtar_common.TitleType'].objects.filter( + txt_idx=key.lower()) + if not q.count(): + keys[key] = orm['ishtar_common.TitleType'].objects.create( + label=lbl, txt_idx=key.lower()) + else: + keys[key] = q.all()[0] translation.deactivate() + # translated are also keys + for k in keys.keys(): + item = keys[k] + keys[item.label] = item for person in orm['ishtar_common.Person'].objects.all(): if not person.old_title: continue + if person.old_title not in keys: + print(u"For person {} ({} {}) no translation of {}.".format( + person.pk, person.name, person.surname, person.old_title)) + continue person.title_id = keys[person.old_title].id person.save() -- cgit v1.2.3