summaryrefslogtreecommitdiff
path: root/ishtar_common/migrations/0041_auto_20180409_1901.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-04-09 19:06:10 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-06-12 08:39:42 +0200
commiteada3318b5244c9556314f1f68012260e7b95d22 (patch)
treed580da3cf240f3d1b8e2be5fd1ad6b93a997133d /ishtar_common/migrations/0041_auto_20180409_1901.py
parentde232cf70cd7edbc998c2902b84c56bdf5645130 (diff)
downloadIshtar-eada3318b5244c9556314f1f68012260e7b95d22.tar.bz2
Ishtar-eada3318b5244c9556314f1f68012260e7b95d22.zip
Profile: default->current
Diffstat (limited to 'ishtar_common/migrations/0041_auto_20180409_1901.py')
-rw-r--r--ishtar_common/migrations/0041_auto_20180409_1901.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/ishtar_common/migrations/0041_auto_20180409_1901.py b/ishtar_common/migrations/0041_auto_20180409_1901.py
new file mode 100644
index 000000000..cc34bb91c
--- /dev/null
+++ b/ishtar_common/migrations/0041_auto_20180409_1901.py
@@ -0,0 +1,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):
+ # 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', '0040_auto_20180409_1900'),
+ ]
+
+ operations = [
+ migrations.RunPython(initialize_profiles),
+ ]