1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# -*- 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),
]
|