From 5e0d3b6858cd7cda1fed8b1bce71cad849439c3d Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 19 Apr 2018 11:44:30 +0200 Subject: Account wizard: edit areas (refs #4060) --- ishtar_common/wizards.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'ishtar_common/wizards.py') 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 \ -- cgit v1.2.3