diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-04-17 12:27:52 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-12 08:41:54 +0200 | 
| commit | c22482bbff62c8cf0dfdac898bb8613005bda877 (patch) | |
| tree | 56c1cb81ca21f45e9574e8d142f0cf3969fda16b | |
| parent | 6c57e2b6974a7acffff684279ab2c2b74edd1676 (diff) | |
| download | Ishtar-c22482bbff62c8cf0dfdac898bb8613005bda877.tar.bz2 Ishtar-c22482bbff62c8cf0dfdac898bb8613005bda877.zip | |
Account wizard: save, update, delete profile
| -rw-r--r-- | ishtar_common/wizards.py | 31 | 
1 files changed, 30 insertions, 1 deletions
| diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 68ca640a0..3f7502c62 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -1477,7 +1477,36 @@ class AccountWizard(Wizard):          profile_form = form_dict['profile-account_management']          for form in profile_form: -            print(form.cleaned_data) +            data = form.cleaned_data +            profile = None +            if data.get('pk', None): +                try: +                    profile = models.UserProfile.objects.get( +                        pk=data['pk'], person=person) +                except models.UserProfile.DoesNotExist: +                    continue +                if data.get('DELETE', None): +                    profile.delete() +                    continue + +            profile_type_id = data.get('profile_type', None) +            if not profile_type_id: +                continue +            try: +                profile_type = models.ProfileType.objects.get( +                    pk=profile_type_id +                ) +            except models.ProfileType.DoesNotExist: +                continue +            if profile: +                if profile_type == profile.profile_type: +                    # no change +                    continue +                profile.profile_type = profile_type +                profile.save() +                continue +            models.UserProfile.objects.create( +                profile_type=profile_type, person=person)          final_form = form_dict['final-account_management']          if settings.ADMINS and type(final_form.cleaned_data) == dict and \ | 
