def show_index(request): bestsellsers = [] for good in Bestseller.objects.all().order_by('?'): bestsellsers.append(good.good) context = { 'kulichi': Category.objects.filter(name='Куличи').first(), 'festivals': Festival.objects.filter(is_active=True).order_by('-id')[:2], 'cart': get_cart(request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), 'bestsellers': Bestseller.objects.filter(good__quantity__gte=1).order_by('?'), } return render(request, 'baseapp/index.html', context)
def get_context_data(self, **kwargs): ret = super(LoginView, self).get_context_data(**kwargs) signup_url = passthrough_next_redirect_url(self.request, reverse('account_signup'), self.redirect_field_name) redirect_field_value = get_request_param(self.request, self.redirect_field_name) site = get_current_site(self.request) ret.update({ 'signup_url': signup_url, 'site': site, 'redirect_field_name': self.redirect_field_name, 'redirect_field_value': redirect_field_value, 'cart': get_cart(self.request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(self.request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len( Wishlist_Item.objects.filter( wishlist=get_wishlist(self.request))), }) return ret
def show_breakfasts(request): context = { 'cart': get_cart(request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), 'bestsellers': Bestseller.objects.filter(good__quantity__gte=1).order_by('?'), } if request.user.is_authenticated: try: buyer = Buyer.objects.get(user=request.user) context.update({ 'buyer': buyer, }) except Buyer.DoesNotExist: pass return render(request, 'baseapp/breakfasts.html', context)
def show_сertificate(request): category = Category.objects.filter(name='Сертификаты').first() goods = Good.objects.filter(category=category, is_active=True) context = { 'cart': get_cart(request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), 'goods': goods, 'category': category, 'bestsellers': Bestseller.objects.filter(good__quantity__gte=1).order_by('?'), } return render(request, 'baseapp/certificate.html', context)
def get_context_data(self, **kwargs): ret = super(PasswordResetView, self).get_context_data(**kwargs) login_url = passthrough_next_redirect_url(self.request, reverse("account_login"), self.redirect_field_name) ret['password_reset_form'] = ret.get('form') ret.update({ 'login_url': login_url, 'cart': get_cart(self.request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(self.request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len( Wishlist_Item.objects.filter( wishlist=get_wishlist(self.request))), }) return ret
def get_context_data(self, **kwargs): ret = super(PasswordResetFromKeyView, self).get_context_data(**kwargs) ret.update({ 'cart': get_cart(self.request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(self.request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len( Wishlist_Item.objects.filter( wishlist=get_wishlist(self.request))), }) ret['action_url'] = reverse('account_reset_password_from_key', kwargs={ 'uidb36': self.kwargs['uidb36'], 'key': self.kwargs['key'] }) return ret
def show_profile(request): context = { 'cart': get_cart(request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), } try: buyer = Buyer.objects.get(user=request.user) context.update({ 'buyer': buyer, }) except Buyer.DoesNotExist: pass if request.user.is_authenticated: return render(request, 'authapp/profile.html', context) else: return render(request, 'authapp/non_auth_profile.html', context)
def show_set_lunch(request): now = datetime.datetime.now() min_time = '11:00' max_time = '18:00' min_time_datetime = now.replace(hour=11, minute=0) max_time_datetime = now.replace(hour=18, minute=0) now_active = False if min_time_datetime < now < max_time_datetime: now_active = True if now < (max_time_datetime - datetime.timedelta(minutes=30)): min_time = (now + datetime.timedelta(minutes=30)).strftime('%H:%M') else: min_time = max_time set_lunch = Set_Lunch.objects.filter(date=now).first() context = { 'cart': get_cart(request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), 'min_time': min_time, 'max_time': max_time, 'now_active': now_active, 'set_lunch': set_lunch, } if request.user.is_authenticated: try: buyer = Buyer.objects.get(user=request.user) context.update({ 'buyer': buyer, }) except Buyer.DoesNotExist: pass return render(request, 'baseapp/set_lunch.html', context)
def show_cart(request): cart = get_cart(request) table = [] if cart != None: cart_items = Cart_Item.objects.filter(cart=cart) for item in cart_items: cr_item = Item() cr_item.price = item.price cr_item.quantity = item.quantity cr_item.summ = item.summ cr_item.good = item.good cr_item.cart_item = item images = Picture.objects.filter(good=item.good, main_image=True).first() images = images if images else Picture.objects.filter( good=item.good).first() cr_item.image = images table.append(cr_item) barrels = [] for item in In_Barrels.objects.all(): barrels.append(item.good) context = { 'cart_items': table, 'cart': cart, 'cart_count': Cart_Item.objects.filter(cart=get_cart(request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'barrels': barrels, 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), } return render(request, 'cartapp/cart_page.html', context)
def show_festival_list(request): context = { 'festivals': Festival.objects.filter(is_active=True).order_by('id')[:2], 'cart': get_cart(request), 'cart_count' : Cart_Item.objects.filter(cart=get_cart(request)).aggregate(Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count' : len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), } return render(request, 'festapp/fest_list.html', context)
def show_festival(request, cpu_slug): context = { 'festival': Festival.objects.filter(cpu_slug=cpu_slug).first(), 'cart': get_cart(request), 'cart_count' : Cart_Item.objects.filter(cart=get_cart(request)).aggregate(Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count' : len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), } return render(request, 'festapp/fest.html', context)
def show_contact_us(request): context = { 'cart': get_cart(request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), } return render(request, 'baseapp/contact_us.html', context)
def account_password_change_succes(request): context = { 'cart': get_cart(request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(self.request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=get_wishlist(self.request))), } return render(request, 'authapp/change_password_succes.html', context)
def get_context_data(self, **kwargs): ret = super(PasswordChangeView, self).get_context_data(**kwargs) ret['password_change_form'] = ret.get('form') ret.update({ 'cart': get_cart(self.request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(self.request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len( Wishlist_Item.objects.filter( wishlist=get_wishlist(self.request))), }) return ret
def get_context_data(self, **kwargs): ret = super(SignupView, self).get_context_data(**kwargs) form = ret['form'] email = self.request.session.get('account_verified_email') if email: email_keys = ['email'] if app_settings.SIGNUP_EMAIL_ENTER_TWICE: email_keys.append('email2') for email_key in email_keys: form.fields[email_key].initial = email login_url = passthrough_next_redirect_url(self.request, reverse("account_login"), self.redirect_field_name) redirect_field_name = self.redirect_field_name redirect_field_value = get_request_param(self.request, redirect_field_name) ret.update({ 'login_url': login_url, 'redirect_field_name': redirect_field_name, 'redirect_field_value': redirect_field_value, 'cart': get_cart(self.request), 'cart_count': Cart_Item.objects.filter(cart=get_cart(self.request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len( Wishlist_Item.objects.filter( wishlist=get_wishlist(self.request))), }) return ret
def show_orders(request): context = { 'cart': get_cart(request), 'cart_count' : Cart_Item.objects.filter(cart=get_cart(request)).aggregate(Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count' : len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), } try: orders_full = [] buyer = Buyer.objects.get(user=request.user) orders = Order.objects.filter(buyer=buyer).order_by("-date") for order in orders: qty = 0 order_items = Order_Item.objects.filter(order=order) for n in order_items: qty += n.quantity orders_full.append([order, qty]) context.update({ 'orders': orders_full }) return render(request, 'orderapp/orders.html', context) except Buyer.DoesNotExist: return render(request, 'orderapp/orders.html', context)
def cart_checkout(request): weekday = datetime.datetime.weekday(datetime.datetime.today()) now = datetime.datetime.now() if weekday == 5 or weekday == 4: min_time = '09:00' max_time = '2:30' if now.replace(hour=0, minute=0) < now < now.replace(hour=2, minute=30): min_time_datetime = now.replace(hour=0, minute=0) max_time_datetime = now.replace(hour=2, minute=30) else: min_time_datetime = now.replace(hour=9, minute=0) max_time_datetime = now.replace(hour=23, minute=59, second=59) else: min_time = '12:00' max_time = '23:30' min_time_datetime = now.replace(hour=12, minute=0) max_time_datetime = now.replace(hour=23, minute=30) now_active = False if min_time_datetime < now < max_time_datetime: now_active = True if now < (max_time_datetime - datetime.timedelta(minutes=30)): min_time = (now + datetime.timedelta(minutes=30)).strftime('%H:%M') else: min_time = max_time cart = get_cart(request) if cart != None: cart_items = Cart_Item.objects.filter(cart=cart) context = { 'cart_items': cart_items, 'cart': cart, 'cart_count': Cart_Item.objects.filter(cart=get_cart(request)).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), 'min_time': min_time, 'max_time': max_time, 'now_active': now_active, } if request.user.is_authenticated: try: buyer = Buyer.objects.get(user=request.user) context.update({ 'buyer': buyer, }) except Buyer.DoesNotExist: pass return render(request, 'cartapp/checkout.html', context)
def order_add(request): if request.method == 'POST': buyer_form = BuyerSaveForm(request.POST) if buyer_form.is_valid(): first_name = buyer_form.cleaned_data['input_first_name'] last_name = buyer_form.cleaned_data['input_second_name'] phone = buyer_form.cleaned_data['input_phone'] locality = buyer_form.cleaned_data['input_locality'] street = buyer_form.cleaned_data['input_street'] house = buyer_form.cleaned_data['input_house'] apartments = buyer_form.cleaned_data['input_apartments'] porch = buyer_form.cleaned_data['input_porch'] floor = buyer_form.cleaned_data['input_floor'] input_cook_time = buyer_form.cleaned_data['input_cook_time'] input_time = buyer_form.cleaned_data['input_time'] input_email = buyer_form.cleaned_data['input_email'] quantity = buyer_form.cleaned_data['quantity'] comment = buyer_form.cleaned_data['comment'] good_id = buyer_form.cleaned_data['good_id'] input_location = buyer_form.cleaned_data['input_location'] if street: address = "{}, {} ул., д. {}, кв. {}, подъезд {}, этаж {}".format(locality, street, house, apartments, porch, floor) else: if input_location == '1': address = "Самовывоз - ул. Костюкова 36Г, Белгород" elif input_location == '2': address = "Самовывоз - ул. Левобережная 22А, Белгород" try: if request.user.is_authenticated: buyer = Buyer.objects.get(user = request.user) else: buyer = None except Buyer.DoesNotExist: buyer = Buyer( user = request.user, first_name = first_name, last_name = last_name, phone = phone, email = input_email, locality = locality, street = street, house = house, apartments = apartments, porch = porch, floor = floor, ) buyer.save() if buyer: new_order = Order( first_name=first_name, last_name=last_name, phone=phone, buyer=buyer, email = input_email, address = address, cook_time= "{}".format(str(input_time) if input_cook_time=="by_time" else "Как можно скорее"), comment=comment, ) else: new_order = Order( first_name=first_name, last_name=last_name, phone=phone, address = address, email = input_email, cook_time= "{}".format(str(input_time) if input_cook_time=="by_time" else "Как можно скорее"), comment=comment, ) new_order.save() if good_id == 'lunch' : set_lunch_good = Good.objects.filter(name="Дружеский обед").first() order_item = Order_Item( order = new_order, good = set_lunch_good, quantity = Decimal(quantity), price = set_lunch_good.price, summ = set_lunch_good.price*Decimal(quantity), ) order_item.save() elif good_id == 'gift' : gift_good = Good.objects.filter(name="Подарочная коробка").first() order_item = Order_Item( order = new_order, good = gift_good, quantity = Decimal(quantity), price = gift_good.price, summ = gift_good.price*Decimal(quantity), ) order_item.save() else: cart_items = Cart_Item.objects.filter(cart=get_cart(request)) for item in cart_items: order_item = Order_Item( order = new_order, good = item.good, quantity = item.quantity, price = item.price, summ = item.summ, ) order_item.save() cart_to_clear = get_cart(request) cart_items_to_delete = Cart_Item.objects.filter(cart=cart_to_clear) for item in cart_items_to_delete: item.delete() cart_to_clear.summ = 0 cart_to_clear.save() send_mail_to_buyer(new_order.id, input_email) send_mail_on_bar(new_order.id) context = { 'order': new_order, 'order_items': Order_Item.objects.filter(order=new_order), 'cart': get_cart(request), 'cart_count' : Cart_Item.objects.filter(cart=get_cart(request)).aggregate(Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count' : len(Wishlist_Item.objects.filter(wishlist=get_wishlist(request))), } return render(request, 'orderapp/order_created.html', context)