diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-04-19 11:44:30 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-12 08:41:54 +0200 |
commit | 5e0d3b6858cd7cda1fed8b1bce71cad849439c3d (patch) | |
tree | 7e62f1a40e85bbbee3c8ec209dcb3a0dd4c898e5 /ishtar_common/wizards.py | |
parent | d903041535cf273bf49a2f4eee06546521a26c51 (diff) | |
download | Ishtar-5e0d3b6858cd7cda1fed8b1bce71cad849439c3d.tar.bz2 Ishtar-5e0d3b6858cd7cda1fed8b1bce71cad849439c3d.zip |
Account wizard: edit areas (refs #4060)
Diffstat (limited to 'ishtar_common/wizards.py')
-rw-r--r-- | ishtar_common/wizards.py | 25 |
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 \ |