summaryrefslogtreecommitdiff
path: root/ishtar_common/wizards.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/wizards.py')
-rw-r--r--ishtar_common/wizards.py25
1 files changed, 18 insertions, 7 deletions
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py
index dcad096cf..ca4937ec3 100644
--- a/ishtar_common/wizards.py
+++ b/ishtar_common/wizards.py
@@ -1482,6 +1482,7 @@ class AccountWizard(Wizard):
profile_form = form_dict['profile-account_management']
for form in profile_form:
data = form.cleaned_data
+ print(data)
profile = None
if data.get('pk', None):
try:
@@ -1503,14 +1504,24 @@ class AccountWizard(Wizard):
except models.ProfileType.DoesNotExist:
continue
if profile:
- if profile_type == profile.profile_type:
- # no change
+ if profile_type != profile.profile_type:
+ profile.profile_type = profile_type
+ profile.save()
+ else:
+ profile = models.UserProfile.objects.create(
+ profile_type=profile_type, person=person)
+ area_pks = data.get('area', None)
+ areas = []
+ if area_pks:
+ try:
+ areas = [models.Area.objects.get(pk=pk) for pk in area_pks]
+ except models.Area.DoesNotExist:
+ # something wrong is happening - doing nothing on areas
continue
- profile.profile_type = profile_type
- profile.save()
- continue
- models.UserProfile.objects.create(
- profile_type=profile_type, person=person)
+ profile.areas.clear()
+ for area in areas:
+ profile.areas.add(area)
+
final_form = form_dict['final-account_management']
if settings.ADMINS and type(final_form.cleaned_data) == dict and \