コード例 #1
0
ファイル: requestion.py プロジェクト: 1jump1/electroochered
    def post(self, request, requestion):
        user_form = EmailForm(instance=requestion.profile.user, data=request.POST)
        profile_form = ProfileChangeForm(instance=requestion.profile, data=request.POST)
        if user_form.is_valid() and profile_form.is_valid():
            if user_form.has_changed() or profile_form.has_changed():
                message = u'Изменения в профиле сохранены.'
                user = user_form.save(commit=False)
                profile = profile_form.save()
                if 'email' in user_form.changed_data and user.email:
#                    отправляем сообщени на e-mail с сылкой для подтверждения
                    temp_password = User.objects.make_random_password()
                    user.set_password(temp_password)
                    user.save()  # перед отправкой нужно сохранить e-mail
                    verification_key_object = VerificationKey.objects.create_key(user)
                    verification_key_object.send_email_change(password=temp_password)
                    message += u" На адрес электронной почты выслано письмо для подтверждения."
                else:
                    user.save()
                context_dict = {'changed_data': user_form.changed_data + profile_form.changed_data, 'profile': profile, 'user': user}
                Logger.objects.create_for_action(CHANGE_PROFILE_BY_OPERATOR,
                    context_dict=context_dict,
                    extra={'user': request.user, 'obj': profile})
                messages.info(request, message)
            else:
                messages.info(request, u'Профиль не был изменен')
            return HttpResponseRedirect(reverse('operator_requestion_info',
                        kwargs={'requestion_id': requestion.id}))
        else:
            return self.render_to_response({'user_form': user_form, 'profile_form': profile_form, 'requestion': requestion})
コード例 #2
0
ファイル: views.py プロジェクト: 1jump1/electroochered
    def post(self, request, profile):
        form = ProfileChangeForm(instance=profile, data=request.POST)
        if form.is_valid():
            if form.has_changed:
                profile = form.save()
#                write logs
                context_dict = {"changed_data": form.changed_data,
                    "profile": profile}
                Logger.objects.create_for_action(CHANGE_PROFILE,
                    context_dict=context_dict,
                    extra={'user': request.user, 'obj': profile})
                messages.success(request, u'Изменения в профиле сохранены')
            else:
                messages.warning(request, u'Профиль не был изменен')
            return HttpResponseRedirect(reverse('account_frontpage'))
        else:
            return self.render_to_response({'form': form})