def validate_email(self, value): self.request = self.context.get('request') self.add_form = AddEmailForm( data=self.initial_data, user=self.request._request.user ) if not self.add_form.is_valid(): # pragma: no cover raise serializers.ValidationError(self.add_form.errors) return value
def create(self, request, *args, **kwargs): # use allauth's form to create the email address form = AddEmailForm(data=request.data, user=request.user) if form.is_valid(): email_address = form.save(self.request) # just so we can return this to the client serializer = PressPassEmailAddressSerializer(email_address) return Response(serializer.data, status=status.HTTP_201_CREATED) else: return Response(form.errors, status=status.HTTP_400_BAD_REQUEST)
def edit_profile(request): profile_form = None email_form = None user = request.user if request.method == 'POST': post_email = request.POST.get('email') profile_form = EditProfileForm(instance=user, data=request.POST) if post_email != user.email: email_form = AddEmailForm(user=user, data=request.POST) if profile_form.is_valid() and (not email_form or email_form.is_valid()): profile_form.save() if email_form: email_form.save(request=request) return redirect('account_email_verification_sent') return redirect('view_profile') if not profile_form: profile_form = EditProfileForm(instance=user) if not email_form: email_form = AddEmailForm(user=user, initial={'email': user.email}) context = {'edit_profile_form': profile_form, 'add_email_form': email_form} return render(request, 'quits_users/edit_profile.html', context)
def add_email(request): ''' Add email address ''' response = {} add_email_form = AddEmailForm(request.user, request.POST) if add_email_form.is_valid(): status = 200 email_address = add_email_form.save(request) signals.email_added.send(sender=request.user.__class__, request=request, user=request.user, email_address=email_address) else: status = 201 response['msg'] = add_email_form.errors return JsonResponse(response, status=status)
def add_email_js(request): ''' Add email address ''' response = {} status = 405 if request.is_ajax() and request.method == 'POST': add_email_form = AddEmailForm(request.user, request.POST) if add_email_form.is_valid(): status = 200 email_address = add_email_form.save(request) signals.email_added.send(sender=request.user.__class__, request=request, user=request.user, email_address=email_address) else: status = 201 response['msg'] = add_email_form.errors return HttpResponse(json.dumps(response), content_type='application/json; charset=utf8', status=status)