# -*- 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): # order by txt_idx in order to put administrator first for idx, person_type in enumerate( person.person_types.order_by('txt_idx').all()): current = not(idx) # first is current 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), ]