コード例 #1
0
    def post(self, *args, **kwargs):
        username = self.request.POST.get('username')
        password = self.request.POST.get('password')

        if not username or not password:
            messages.error(self.request, 'Usuário ou senha inválidos.')
            return redirect('perfil:criar')

        autenticacao = authenticate(self.request,
                                    username=username,
                                    password=password)

        if not autenticacao:
            messages.error(
                self.request,
                'Usuário não existe. Gentileza realizar o cadastro.')
            return redirect('perfil:criar')

        login(self.request, user=autenticacao)

        messages.success(
            self.request,
            f'Login efetuado com sucesso. Olá, {self.request.user.first_name}!'
        )
        if not self.request.session.get('cart'):

            return redirect('produto:lista')

        return redirect('produto:cart')
コード例 #2
0
    def form_valid(self, form):

        #Saving Custom User Object for Merchant User
        user = form.save(commit=False)
        user.is_active = True
        user.user_type = 3
        user.set_password(form.cleaned_data["password"])
        user.save()

        #Saving Merchant user
        profile_pic = self.request.FILES["profile_pic"]
        fs = FileSystemStorage()
        filename = fs.save(profile_pic.name, profile_pic)
        profile_pic_url = fs.url(filename)

        user.merchantuser.profile_pic = profile_pic_url
        user.merchantuser.company_name = self.request.POST.get("company_name")
        user.merchantuser.gst_details = self.request.POST.get("gst_details")
        user.merchantuser.address = self.request.POST.get("address")
        is_added_by_admin = False

        if self.request.POST.get("is_added_by_admin") == "on":
            is_added_by_admin = True

        user.merchantuser.is_added_by_admin = is_added_by_admin
        user.save()
        messages.success(self.request, "Merchant User Created")
        return HttpResponseRedirect(reverse("merchant_list"))
コード例 #3
0
def admin_profile_save(request):
    if request.method == "POST":
        first_name = request.POST.get("first_name")
        last_name = request.POST.get("last_name")
        # profile_pic = request.FILES.get("profile_pic")
        try:
            customuser = CustomUser.objects.get(id=request.user.id)
            customuser.first_name = first_name
            customuser.last_name = last_name
            # if password!=None and password!="":
            #     customuser.set_password(password)
            customuser.save()
            admin_user = AdminUser.objects.get(auth_user_id=request.user.id)

            fs = FileSystemStorage()
            filename = fs.save(profile_pic.name, profile_pic)
            profile_pic_url = fs.url(filename)
            admin_user.profile_pic = profile_pic_url
            admin_user.save()
            messages.success(request, "Successfully Updated Profile")
            return HttpResponseRedirect(reverse("admin_profile"))
        except:
            messages.error(request, "Failed to Update Profile")
            return HttpResponseRedirect(reverse("admin_profile"))
    return HttpResponseRedirect(reverse("admin_profile"))
コード例 #4
0
ファイル: views.py プロジェクト: john-on-Techs/webblog
 def post(self, request, *args, **kwargs):
     try:
         Tag(name=self.request.POST['name']).save()
         messages.success(self.request, "Tag added successfully")
         return redirect('blog:tag-list')
     except:
         raise ValueError("Slug Field already exists")
コード例 #5
0
 def post(self, request):
     rform = RegistrationForm(request.POST)
     if rform.is_valid():
         rform.save()
         messages.success(request, "Register Success Full Now Login !")
         return redirect("registration:login")
     return render(request, 'registration/registration.html',
                   {'form': rform})
コード例 #6
0
 def form_valid(self, form):
     msg = "Your account activation link sent. Please check your email."
     messages.success(self.request, msg)
     email = form.cleaned_data.get("email")
     obj = EmailActivation.objects.email_exists(email).first()
     user = obj.user
     new_activation = EmailActivation.objects.create(user=user, email=email)
     new_activation.send_activation()
     return super(AccountEmailActivateView, self).form_valid(form)
コード例 #7
0
    def post(self, request):
        form = OrderCreateForms(request.POST)
        user = request.user
        cart = Cart(request)
        today = timezone.now().date()
        if form.is_valid():
            promo_code = form.cleaned_data['promo_code']
            discount_amount = 0
            if promo_code:
                try:
                    promo = Promo.objects.get(code__icontains=promo_code, is_active=True,
                                              start_date__gte=today, end_date__lte=today)
                except:
                    messages.warning(request, "Wrong or Invalid Promo Code")
                    return redirect('cart-submit-url')
                if promo:
                    print(promo)
                    if promo.max_uses_limit >= promo.use_count:
                        promo_user = UserPromoCode.objects.filter(promo_code=promo, user=user)
                        if not promo_user:
                            if cart.get_total_price() > promo.min_amount:
                                discount_amount = promo.value
                                UserPromoCode.objects.create(promo_code=promo, user=user,
                                                             discounted_amount=discount_amount)
                                promo.use_count += 1
                                promo.save()
                            else:
                                promo_code = ""
                                messages.warning(request, "Your Cart Price Is Low")
                                return redirect('cart-submit-url')
                        else:
                            promo_code = ""
                            messages.warning(request, "You have already Use is Promo code")
                            return redirect('cart-submit-url')
                    else:
                        promo_code = ""
                        messages.warning(request, "This Promo code is Already reach his limit")
                        return redirect('cart-submit-url')

            address = Address.objects.create(user=user, full_name=form.cleaned_data['full_name'],
                                             phone=form.cleaned_data['phone'],
                                             address_line_1=form.cleaned_data['address_line_1'],
                                             city=form.cleaned_data['city'], country=form.cleaned_data['country'],
                                             postal_code=form.cleaned_data['postal_code'])
            order_obj = Order.objects.create(customer=user, shipping_address=address,
                                             shipping_method=form.cleaned_data['shipping_method'],
                                             discount_amount=discount_amount, promo_code=promo_code
                                             )

            if order_obj:
                for item in cart:
                    Item.objects.create(order=order_obj, product=item['product'], price=item['price'],
                                        quantity=item['quantity'])
                cart.clear()
                messages.success(request, "Your Order is placed")
            return redirect('/')
コード例 #8
0
def register_view(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request,
                             'Your Account has been created successfully.')
            return redirect('shop:login')
    form = UserCreationForm()
    context = {'form': form}
    return render(request, 'shop/register.html', context=context)
コード例 #9
0
def profile(request):
    if request.method == 'POST':
        u_form = UserUpdateForm(request.POST, instance=request.user)
        if u_form.is_valid():
            u_form.save()
            messages.success(request, f'Your Account has been Updated!')
            return redirect('profile1')

    else:
        u_form = UserUpdateForm(instance=request.user)
    context = {'u_form': u_form}
    return render(request, 'accounts/profile1.html', context)
コード例 #10
0
ファイル: views.py プロジェクト: Shamsulhaq/fastpick
def register_page(request):
    form = RegisterForm(request.POST or None)
    template_name = 'accounts/register.html'
    context = {
        "form": form
    }
    if form.is_valid():
        full_name = form.cleaned_data.get("full_name")
        email = form.cleaned_data.get("email")
        password = form.cleaned_data.get("password")
        new_user = User.objects.create_user(email, full_name, password)
        messages.success(request, "Your are registered!")
        return redirect('login-url')
    return render(request, template_name, context)
コード例 #11
0
def single_order(request, id):
    if request.user.is_staff:
        object = Order.objects.get(id=id)
        cart_obj = OrderItem.objects.filter(order=object)
        form = OrderStatusForm(request.POST or None,
                               request.FILES or None,
                               instance=object)
        if form.is_valid():
            instance = form.save()
            instance.save()
            messages.success(request, 'Order Update Successfully')

        context = {'obj': object, 'form': form, 'cart_obj': cart_obj}
        return render(request, 'control_panel/single_order.html', context)
    return redirect('dashboard_home')
コード例 #12
0
ファイル: views.py プロジェクト: daveyo89/djhero
def activate(request, uidb64, token):
    try:
        uid = force_text(urlsafe_base64_decode(uidb64))
        user = CustomUser.objects.get(pk=uid)
    except(TypeError, ValueError, OverflowError, CustomUser.DoesNotExist):
        user = None
    if user is not None and account_activation_token.check_token(user, token):
        user.is_active = True
        user.save()
        login(request, user)

        messages.success(request, message='Successful activation!')
        signals.user_activated.send(sender='activated_user', msg=f"Account for {user.email} has been activated!")

        return HttpResponseRedirect(reverse('index'))
    else:
        return HttpResponse('Activation link is invalid!')
コード例 #13
0
    def form_valid(self,form):

        #Saving Custom User Object for Merchant User
        user=form.save(commit=False)
        user.save()

        #Saving Merchant user
        customeruser=CustomerUser.objects.get(auth_user_id=user.id)
        if self.request.FILES.get("profile_pic",False):
            profile_pic=self.request.FILES["profile_pic"]
            fs=FileSystemStorage()
            filename=fs.save(profile_pic.name,profile_pic)
            profile_pic_url=fs.url(filename)
            customeruser.profile_pic=profile_pic_url

        customeruser.save()
        messages.success(self.request,"Customer User Updated")
        return HttpResponseRedirect(reverse("customer_list"))
コード例 #14
0
def contact_page(request):
    contact_form = ContactForm(request.POST or None)
    template_name = 'contact/contact.html'
    context = {"form": contact_form}
    if request.method == 'POST':
        name = request.POST.get('name')
        email = request.POST.get('email')
        phone = request.POST.get('phone')
        subject = request.POST.get('subject')
        message = request.POST.get('message')
        Contact.objects.create(name=name,
                               phone=phone,
                               email=email,
                               subject=subject,
                               message=message)
        messages.success(request, "Your Message send successful")

    return render(request, template_name, context)
コード例 #15
0
ファイル: views.py プロジェクト: Shamsulhaq/fastpick
def account_info(request):
    user = request.user
    billing_obj = get_object_or_404(BillingProfile, user=user, active=True)
    if billing_obj:
        form = BillingProfileForm(request.POST or None,
                                  request.FILES or None,
                                  instance=billing_obj)
    else:
        form = BillingProfileForm(request.POST or None, request.FILES or None)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.user = user
        instance.save()
        messages.success(request, 'Billing Profile Update Successfully')
        return redirect('dashboard_home')
    return render(request, 'dashboard/account_info.html', {
        'form': form,
        'object': billing_obj
    })
コード例 #16
0
    def form_valid(self,form):

        #Saving Custom User Object for Merchant User
        user=form.save(commit=False)
        user.is_active=True
        user.user_type=4
        user.set_password(form.cleaned_data["password"])
        user.save()

        #Saving Merchant user
        profile_pic=self.request.FILES["profile_pic"]
        fs=FileSystemStorage()
        filename=fs.save(profile_pic.name,profile_pic)
        profile_pic_url=fs.url(filename)

        user.customeruser.profile_pic=profile_pic_url
        user.save()
        messages.success(self.request,"Customer User Created")
        return HttpResponseRedirect(reverse("customer_list"))
コード例 #17
0
    def post(self, *args, **kwargs):
        token = self.request.POST.get('stripeToken')
        user_basket_qs = self.request.user.basket.basketproduct_set.all()
        total = 0
        for product in user_basket_qs:
            total += product.product.price * product.quantity

        try:
            stripe.Charge.create(
                amount=int(total * 100),  # pence
                currency='gbp',
                source=token,
                description=f'Charge for {self.request.user.username}')
            for product in user_basket_qs:
                product.delete()

            messages.success(self.request, 'Thank you for your purchase.')

            return redirect('shop:home')
        except stripe.error.CardError as e:
            messages.warning(self.request, f"{e.error.message}")

        except stripe.error.RateLimitError as e:
            messages.warning(self.request, "Rate limit error")

        except stripe.error.InvalidRequestError as e:
            messages.warning(self.request, "Invalid parameters")

        except stripe.error.AuthenticationError as e:
            messages.warning(self.request, "Not authenticated")

        except stripe.error.APIConnectionError as e:
            messages.warning(self.request, "Network error")

        except stripe.error.StripeError as e:
            messages.warning(
                self.request,
                "Something went wrong, you were not charged please try again")

        except Exception as e:
            messages.warning(self.request,
                             "Serious error occurred, we have been notified")
コード例 #18
0
def create_order(request, id):
    form = CreateOrder(request.POST or None)
    user_form = LoginForm()
    service = get_object_or_404(Service, id=id)
    print(service)
    if form.is_valid():
        obj = Order()
        obj.short_note = form.cleaned_data.get("short_note")
        obj.address_line_1 = form.cleaned_data.get("address_line_1")
        obj.city = form.cleaned_data.get("city")
        obj.postal_code = form.cleaned_data.get("postal_code")
        obj.service = service
        obj.customer = request.user
        obj.save()
        messages.success(request, "Your Hire Order Create Successfully!")
        return redirect('index')

    return render(request, 'service/order.html', {
        'login_form': user_form,
        'form': form
    })
コード例 #19
0
ファイル: views.py プロジェクト: kripikroli/sassist
    def form_valid(self, form):

        user = form.save(commit=False)
        user.is_active = True
        user.user_type = 3
        user.set_password(form.cleaned_data['password'])
        user.save()

        # Saving user.partnerusers
        partneruser = PartnerUser.objects.get(auth_user_id=user.id)

        if self.request.FILES.get('profile_pic', False):
            partneruser.profile_pic = self.request.FILES['profile_pic']

        partneruser.date_of_birth = date(
            *map(int,
                 self.request.POST.get('date_of_birth').split('-')))

        partneruser.phone_number = self.request.POST.get('phone_number')
        partneruser.address_line_1 = self.request.POST.get('address_line_1')
        partneruser.address_line_2 = self.request.POST.get('address_line_2')
        partneruser.address_town = self.request.POST.get('address_town')
        partneruser.address_region = self.request.POST.get('address_region')
        partneruser.address_country = self.request.POST.get('address_country')
        partneruser.address_zip_code = self.request.POST.get(
            'address_zip_code')

        is_added_by_admin = False

        if self.request.POST.get('is_added_by_admin') == 'on':
            is_added_by_admin = True

        partneruser.is_added_by_admin = is_added_by_admin
        partneruser.save()

        messages.success(self.request, 'Partner user updated')

        return HttpResponseRedirect(reverse('crm:admin_partner_list_view'))
コード例 #20
0
ファイル: views.py プロジェクト: daveyo89/djhero
    def form_valid(self, form):
        """ Begin reCAPTCHA validation """
        recaptcha_response = self.request.POST.get('g-recaptcha-response')
        url = 'https://www.google.com/recaptcha/api/siteverify'
        values = {
            'secret': os.environ.get('CAPTCHA_SECRET'),
            'response': recaptcha_response
        }
        data = urllib.parse.urlencode(values).encode()
        req = urllib.request.Request(url, data=data)
        response = urllib.request.urlopen(req)
        result = json.loads(response.read().decode())
        """ End reCAPTCHA validation """
        if result['success']:
            user = form.save(commit=False)
            user.is_active = False
            user.save()
            current_site = get_current_site(self.request)
            mail_subject = f'Activate your account at {current_site.name}.'
            message = render_to_string('blog/acc_activate_email.html', {
                'user': user,
                'domain': current_site.domain,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': account_activation_token.make_token(user),
            })
            to_email = form.cleaned_data.get('email')
            email = EmailMessage(
                mail_subject, message, to=[to_email]
            )
            email.send()
            messages.success(self.request, message='Please confirm your email address to complete the registration!')

            # user = authenticate(email=form.cleaned_data['email'], password=form.cleaned_data['password1'], )
            # login(self.request, user, backend='django.contrib.auth.backends.ModelBackend')
            return HttpResponseRedirect(reverse('login'))
        else:
            messages.error(self.request, 'Invalid reCAPTCHA. Please try again.')
            return HttpResponseRedirect(reverse('signup'))
コード例 #21
0
 def get(self, request, key=None, *args, **kwargs):
     if key is not None:
         qs = EmailActivation.objects.filter(key__iexact=key)
         confirm_qs = qs.conformable()
         if confirm_qs.count() == 1:
             obj = confirm_qs.first()
             obj.activate()
             messages.success(
                 self.request,
                 "Your email has been confirmed. You can login now.")
             return redirect('login')
         else:
             activated_qs = qs.filter(key__iexact=key, activated=True)
             if activated_qs.exists():
                 reset_link = reverse('password_reset')
                 msg = """Your email has already confirmed!
                 Did you mean <a href="{link}">reset your password</a>?
                 """.format(link=reset_link)
                 messages.info(self.request, mark_safe(msg))
                 return redirect('login')
     context = {'form': self.get_form(), 'key': self.key}
     return render(self.request, 'registration/activation_error.html',
                   context)
コード例 #22
0
 def delete(self, request, *args, **kwargs):
     messages.success(request, self.success_message)
     return super(RemoveExpenseFolderUsers, self).delete(request, *args, **kwargs)
コード例 #23
0
ファイル: views.py プロジェクト: brendo61-byte/Saras_Project
 def form_valid(self, form):
     form.instance.createdBy = self.request.user
     messages.success(self.request, f'Store info has been updated')  # Awaiting admin approval for publishing
     return super().form_valid(form)
コード例 #24
0
ファイル: views.py プロジェクト: brendo61-byte/Saras_Project
 def form_valid(self, form):
     messages.success(self.request, f'Business has been created')  # Awaiting admin approval for publishing
     return super().form_valid(form)
コード例 #25
0
ファイル: views.py プロジェクト: xelaxela13/solar_django
 def get(self, request, *args, **kwargs):
     messages.success(request, '{} {}'.format(_('Welcome'),
                                              request.user.first_name))
     return super(AccountsPanel, self).get(request, *args, **kwargs)
コード例 #26
0
    def post(self, *args, **kwargs):

        http_referer = self.request.META.get('HTTP_REFERER',
                                             reverse('produto:lista'))

        if not self.userform.is_valid() or not self.perfilform.is_valid():
            messages.error(
                self.request,
                'Existem erros no formulário de cadastro. Verifique se os campos foram preenchidos corretamente.'
            )
            return self.renderizar

        username = self.userform.cleaned_data.get('username')
        password = self.userform.cleaned_data.get('password')
        email = self.userform.cleaned_data.get('email')
        first_name = self.userform.cleaned_data.get('first_name')
        last_name = self.userform.cleaned_data.get('last_name')

        # Usuário logado: atualização
        if self.request.user.is_authenticated:
            usuario = get_object_or_404(User,
                                        username=self.request.user.username)
            usuario.username = username

            if password:
                usuario.set_password(password)

            usuario.email = email
            usuario.first_name = first_name
            usuario.last_name = last_name
            usuario.save()

            messages.success(self.request, 'Usuário atualizado com sucesso.')

            if not self.perfil:
                self.perfilform.cleaned_data['usuario'] = usuario
                print(self.perfilform.cleaned_data)
                perfil = models.Perfil(**self.perfilform.cleaned_data)
                perfil.save()
            else:
                perfil = self.perfilform.save(commit=False)
                perfil.usuario = usuario
                perfil.save()

        # Usuário não logado (novo):
        else:
            usuario = self.userform.save(commit=False)
            usuario.set_password(password)
            usuario.save()

            perfil = self.perfilform.save(commit=False)
            perfil.usuario = usuario
            perfil.save()

            messages.success(self.request,
                             f'O usuário {usuario} foi criado com sucesso.')

        if password:
            autenticacao = authenticate(
                self.request,
                username=usuario,
                password=password,
            )
            if autenticacao:
                login(self.request, user=usuario)

        self.request.session['cart'] = self.carrinho
        self.request.session.save()
        if not self.request.session.get('cart'):
            return redirect('produto:lista')

        return redirect('produto:cart')
コード例 #27
0
ファイル: views.py プロジェクト: Kalpesh-Makwana/Python
 def post(self,request):
     form=RegistrationForm(request.POST)
     if form.is_valid():
         form.save()
         messages.success(request,"You Are Register Successfully Now Login !")
     return render(request,'signup.html',{'form':form})