# -*- coding: utf-8 -*- # Generated by Django 1.11.10 on 2018-04-09 17:29 from __future__ import unicode_literals from django.db import migrations def initialize_profiles(apps, schema_editor): # Migrate PersonType -> ProfileType PersonType = apps.get_model('ishtar_common', 'PersonType') ProfileType = apps.get_model('ishtar_common', 'ProfileType') UserProfile = apps.get_model('ishtar_common', 'UserProfile') Person = apps.get_model('ishtar_common', 'Person') # create profile types from person types profile_types = {} for person_type in PersonType.objects.all(): default = { 'label': person_type.label, 'comment': person_type.comment, 'available': person_type.available, } pt, created = ProfileType.objects.get_or_create( txt_idx=person_type.txt_idx, defaults=default) if created: for gp in person_type.groups.all(): pt.groups.add(gp) profile_types[pt.txt_idx] = pt # match profile type with person types for person in Person.objects.filter(ishtaruser__isnull=False): # is current if only one person_type is concerned current = person.person_types.count() == 1 # only person with an account are concerned for person_type in person.person_types.all(): UserProfile.objects.create( profile_type=profile_types[person_type.txt_idx], person=person, current=current ) class Migration(migrations.Migration): dependencies = [ ('ishtar_common', '0041_auto_20180409_1900'), ] operations = [ migrations.RunPython(initialize_profiles), ]