Exemplo n.º 1
0
    def post(self, request, pk=None):
        if not pk:
            return redirect(reverse("dashboard"))

        client = Usuario.objects.get(pk=pk)

        form = ExtraInfoForm(request.POST, instance=client)
        if form.is_valid():
            
            state = State.objects.get_or_create(uf=request.POST.get('state'), cod_ibge=request.POST.get('cod_ibge'))[0]
            city = City.objects.get_or_create(name=request.POST.get('city'), latitude=request.POST.get('latitude'),longitude=request.POST.get('longitude'), state=state, cod_ibge=state.cod_ibge)[0]
            neighborhood = Neighborhood.objects.get_or_create(description=request.POST.get('neighborhood'), city=city)[0]
            place = Place.objects.get_or_create(zip_code=request.POST.get('zip_code'), city=city, latitude=city.latitude, longitude=city.longitude, neighborhood=neighborhood)[0]
            
            address = Address()
            address.street = request.POST.get('street')
            address.number = request.POST.get('number')
            address.complement = request.POST.get('complement')
            address.reference_point = request.POST.get('reference_point')
            address.place = place
            address.neighborhood = neighborhood
            address.city = city
            address.state = state
            address.latitude = city.latitude
            address.longitude = city.longitude
            address.save()

            # UPDATING CLIENT
            client = form.save(commit=False)
            client.address = address
            client.save()

            # ACTIVATING USER
            user = client.user
            user.is_active = True
            user.save()

            # ALLAUTH EMAIL
            try:
                auth_email = EmailAddress.objects.get(user=client.user, email=client.email)
            except:
                auth_email = EmailAddress()
                
            auth_email.user = client.user
            auth_email.email = client.email
            auth_email.save()

            # SENDING EMAIL CONFIRMATION
            auth_email.send_confirmation()

            response = {
                'status': 'success', 
                'message':'Usuário criado com sucesso', 
                'redirect':reverse("account_login")
            }

            return JsonResponse(response, status=200)

        return JsonResponse({'status': 'form_error', 'message':'Favor preencher todos os campos'}, status=400)
Exemplo n.º 2
0
    def create(self, request):

        EmailAddress.objects.create(user=request['user'], email=request['email'])
        self.email_address = EmailAddress.objects.get(email=request['email'])
        print(signing.dumps(
            obj=self.email_address.pk,
            salt=app_settings.SALT))

        EmailAddress.send_confirmation(self.email_address)
        return request
 def save(self, commit=True):
     user = super().save(commit)
     user_email = EmailAddress(user=user, email=self.cleaned_data['email'])
     user_email.send_confirmation()
     user_email.save()
     return user