def post(self, request): u_redirect = email_and_search(request, 'recovery') if u_redirect is not None: return u_redirect username_to_pass = request.POST.get('username_for_pass') try: user = get_user_model().objects.get(username=username_to_pass) except get_user_model().DoesNotExist: messages.error(request, 'No such user') return render(request, 'account/recovery.html') try: code = VarificationCode.objects.get(user=user) code.delete() except VarificationCode.DoesNotExist: pass pass_key = VarificationCode(user=user, hash_key=hash_key(6), attempt_amount=0) pass_key.save() send_mail('bot', str(pass_key), '*****@*****.**', [user.email]) return redirect('recovery_confirm', user)
def post(self, request, username): u_redirect = email_and_search(request, 'recovery_confirm') if u_redirect is not None: return u_redirect context = generate_context(request) pass_key_confirm = request.POST.get('pass_key_confirm') user = get_user_model().objects.get(username=username) pass_key = VarificationCode.objects.get(user=user) context['username'] = username if pass_key_confirm == str(pass_key): request.session['_username'] = username return redirect('password_change') if pass_key.attempt_amount > 2: pass_key.delete() messages.error(request, 'Too many attempts') return redirect('recovery') pass_key.attempt_amount += 1 pass_key.save() messages.error(request, 'Invalid code') return render(request, 'account/recovery-confirm.html', context)
def post(self, request): u_redirect = email_and_search(request, 'profile') if u_redirect is not None: return u_redirect user = request.user form = forms.ProfileForm(request.POST, request.FILES, instance=user) if form.is_valid(): new_user = form.save(commit=False) new_user.email = user.email new_user.save() else: messages.error(request, 'Enter the valid Phone') return redirect('profile')
def post(self, request): u_redirect = email_and_search(request, 'wishlist') if u_redirect is not None: return u_redirect user = request.user post = request.POST for key, value in post.items(): # updating wish list if key[:5] == 'clear': models.FavoriteItem.objects.filter(user=user).delete() if key[:6] == 'delete': item = Item.objects.get(name=key[7:]) models.FavoriteItem.objects.get(user=user, item=item).delete() return redirect('wishlist')
def post(self, request): u_redirect = email_and_search(request, 'cart') if u_redirect is not None: return u_redirect request.session['_coupon'] = request.POST.get('coupon') post = request.POST user = request.user items = models.CartItem.objects.filter(user=user) for key, value in post.items(): # updating items in cart if key[:5] == 'clear': items.delete() if key[:6] == 'delete': item = Item.objects.get(name=key[7:]) models.CartItem.objects.get(user=user, item=item).delete() if key[:6] == 'amount': item = Item.objects.get(name=key[7:]) add_item = models.CartItem.objects.get(user=user, item=item) add_item.amount = value if int(value) <= 20 else 20 add_item.save() if key[:4] == 'make': order = Order(user=user) order.save() for item in items: order_item = OrderItem(item=item.item, amount=item.amount) order_item.save() order.items.add(order_item.id) order.save() items.delete() return redirect('checkout') try: models.Coupon.objects.get(name=request.session.get('_coupon')) messages.success(request, 'Coupon applied') except models.Coupon.DoesNotExist: pass return redirect('cart')
def post(self, request, item_id): email_redirect = email_and_search(request, 'comments') if email_redirect is not None: return email_redirect form = forms.CommentForm(request.POST) user = request.user print(dir(user)) print(user.groups.all()) item = models.Item.objects.get(id=item_id) try: models.Comment.objects.get(user=request.user, item=item) except models.Comment.DoesNotExist: if form.is_valid(): print(user) data = form.cleaned_data print(data) comment = models.Comment(user=user, item=item, comment=data['comment'], rating=data['rating']) comment.save() return redirect('item', item_id)
def post(self, request): u_redirect = email_and_search(request, 'recovery_confirm') if u_redirect is not None: return u_redirect context = generate_context(request) form = forms.ChangePasswordForm(request.POST) username = request.session.get('_username') context['form'] = form context['username'] = username if form.is_valid(): new_password = form.cleaned_data['password'] user = get_user_model().objects.get(username=username) user.set_password(new_password) user.save() return redirect('registration') return render(request, 'account/password-change.html', context)
def post(self, request): u_redirect = email_and_search(request, 'registration') if u_redirect is not None: return u_redirect context = generate_context(request) login_form = forms.LoginForm(request.POST) registration_form = forms.RegistrationForm(request.POST) context['registration_form'] = registration_form context['login_form'] = login_form if login_form.is_valid(): # login data = login_form.cleaned_data user = authenticate(username=data['user_login'], password=data['user_password']) if user is not None: login(request, user) return redirect('profile') else: messages.error(request, 'Incorrect password') if registration_form.is_valid(): # registration data = registration_form.cleaned_data try: user = get_user_model().objects.create_user( username=data['username'], email=data['mail'], password=data['password']) user.save() return redirect('profile') except IntegrityError: messages.error(request, 'Пользователь с такими данными уже существует') return render(request, 'account/registration.html', context)
def post(self, request, item_id): u_redirect = email_and_search(request, 'item') if u_redirect is not None: return u_redirect add_to_wishlist = request.POST.get('wishlist') == 'To Wishist' amount_to_cart = request.POST.get('selection') if add_to_wishlist: if request.user.is_authenticated: adding_to_wishlist(user=request.user, item=models.Item.objects.get(id=item_id)) messages.info(request, '<i class="fa fa-check-circle-o" aria-hidden="true"></i> Added to Wishlist') else: messages.error(request, '<i class="fa fa-ban" aria-hidden="true"></i> Login or Register') if isinstance(amount_to_cart, str): if request.user.is_authenticated: adding_to_cart(user=request.user, item=models.Item.objects.get(id=item_id), amount=int(amount_to_cart)) messages.success(request, '<i class="fa fa-check-circle-o" aria-hidden="true"></i> Added to Cart') else: messages.error(request, '<i class="fa fa-ban" aria-hidden="true"></i> Login or Register') return redirect('item', item_id)
def post(self, request): u_redirect = email_and_search(request, 'orders') if u_redirect is not None: return u_redirect return redirect('orders')