diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-02 10:34:44 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-02 10:34:44 +0200 |
commit | 2c721d268fa474f2efe838b6ec111bae1b64e20b (patch) | |
tree | 23acef6b9173b44167c19f643ec58ff8a12f0cac | |
parent | 5eb8667794636e379a8c324da46c617ad365747a (diff) | |
download | Ishtar-2c721d268fa474f2efe838b6ec111bae1b64e20b.tar.bz2 Ishtar-2c721d268fa474f2efe838b6ec111bae1b64e20b.zip |
Fix migration generate_title for strange databases
-rw-r--r-- | ishtar_common/migrations/0058_generate_title.py | 17 |
1 files changed, 15 insertions, 2 deletions
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() |