From f384a134c40a4aa019b1a69448d341a189a6d4f4 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Sat, 11 Jun 2016 11:58:30 +0000 Subject: [PATCH] Added a migration to provide plain-name aliases where they are missing, as we expect those for the person profile URLs. - Legacy-Id: 11319 --- .../migrations/0013_add_plain_name_aliases.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 ietf/person/migrations/0013_add_plain_name_aliases.py diff --git a/ietf/person/migrations/0013_add_plain_name_aliases.py b/ietf/person/migrations/0013_add_plain_name_aliases.py new file mode 100644 index 000000000..53690461a --- /dev/null +++ b/ietf/person/migrations/0013_add_plain_name_aliases.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations + +from ietf.person.name import name_parts + +def plain_name(self): + prefix, first, middle, last, suffix = name_parts(self.name) + if not first and last: + return None + return u" ".join([first, last]) + +def add_plain_name_aliases(apps, schema_editor): + Person = apps.get_model('person','Person') + Alias = apps.get_model('person','Alias') + for person in Person.objects.all(): + name = plain_name(person) + if name and not Alias.objects.filter(name=name): + print("Created alias %-24s for %s" % (name, person.name)) + alias = Alias(name=name, person=person) + alias.save() + +class Migration(migrations.Migration): + + dependencies = [ + ('person', '0012_auto_20160606_0823'), + ] + + operations = [ + migrations.RunPython(add_plain_name_aliases), + ]