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(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_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 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_in_barrels(request): current_wishlist = get_wishlist(request) wishlist = query_set_to_list( Wishlist_Item.objects.filter(wishlist=current_wishlist)) barrels = query_set_to_list(In_Barrels.objects.all()) current_cart = get_cart_(request) context = { 'in_bar': get_in_barrels(), 'cart': current_cart, 'barrels': barrels, 'cart_count': Cart_Item.objects.filter(cart=current_cart).aggregate( Sum('quantity'))['quantity__sum'], 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=current_wishlist)), 'wishlist': wishlist, } return render(request, 'goodapp/in_barrels.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_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_good(request, cpu_slug): good = Good.objects.get(cpu_slug=cpu_slug) context = { 'good': good, 'related_goods': Good.objects.all()[:5], 'cart': get_cart(request), 'wishlist': get_wishlist(request), } return render(request, 'catalogapp/good.html', context)
def show_catalog(request): goods_count = 18 goods = Good.objects.filter(is_active=True) page_number = request.GET.get('page', 1) paginator = Paginator(goods, goods_count) page = paginator.get_page(page_number) last_url = '?page={}'.format(paginator.num_pages) is_paginated = page.has_other_pages() if page.has_previous(): prev_url = '?page={}'.format(page.previous_page_number()) else: prev_url = '' if page.has_next(): next_url = '?page={}'.format(page.next_page_number()) else: next_url = '' categories = [] cat_with_no_parents_and_no_childs = [] for cat in Category.objects.all(): if not cat.have_a_parent() and cat.have_a_childs(): categories.append(cat) elif not cat.have_a_parent() and not cat.have_a_childs(): cat_with_no_parents_and_no_childs.append(cat) context = { 'page_object': page, 'prev_url': prev_url, 'next_url': next_url, 'is_paginated': is_paginated, 'last_page': paginator.num_pages, 'last_url': last_url, 'goods_count': len(goods), 'cart': get_cart(request), 'wishlist': get_wishlist(request), 'categories': categories, 'cat_with_no_parents_and_no_childs': cat_with_no_parents_and_no_childs, 'tags': Tag.objects.all()[:6], 'manufacturers': Manufacturer.objects.all()[:6], } return render(request, 'catalogapp/catalog.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 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 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 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 show_category_list(request): categories = [] cat_with_no_parents_and_no_childs = [] for cat in Category.objects.all(): if not cat.have_a_parent() and cat.have_a_childs(): categories.append(cat) elif not cat.have_a_parent() and not cat.have_a_childs(): cat_with_no_parents_and_no_childs.append(cat) context = { 'categories': categories, 'cat_with_no_parents_and_no_childs': cat_with_no_parents_and_no_childs, 'cart': get_cart(request), 'wishlist': get_wishlist(request), } return render(request, 'categoryapp/category_list.html', context)
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 show_search_result(request): if request.method == 'GET': query = request.GET.get('q') goods = Good.objects.filter( Q(name__icontains=query) | Q(name__icontains=query.upper()) | Q(name__icontains=query.lower()) | Q(name__icontains=query.capitalize()) | Q(name_en__icontains=query) | Q(name_en__icontains=query.upper()) | Q(name_en__icontains=query.lower()) | Q(name_en__icontains=query.capitalize()), is_active=True) goods_count = 18 page_number = request.GET.get('page', 1) paginator = Paginator(goods, goods_count) page = paginator.get_page(page_number) is_paginated = page.has_other_pages() if page.has_previous(): prev_url = '?page={}'.format(page.previous_page_number()) else: prev_url = '' if page.has_next(): next_url = '?page={}'.format(page.next_page_number()) else: next_url = '' current_wishlist = get_wishlist(request) wishlist = query_set_to_list( Wishlist_Item.objects.filter(wishlist=current_wishlist)) barrels = query_set_to_list(In_Barrels.objects.all()) current_cart = get_cart_(request) template_name = 'goodapp/search.html' context = { 'page_object': page, 'prev_url': prev_url, 'next_url': next_url, 'is_paginated': is_paginated, 'cart': current_cart, 'cart_count': Cart_Item.objects.filter(cart=current_cart).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'barrels': barrels, 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=current_wishlist)), 'wishlist': wishlist, 'filters_a': get_filters_a(goods), 'q': query, } return render(request, template_name, context)
def show_product_with_filters(request): if request.method == 'GET': goods_count = 18 table = [] goods = Good.objects.all().order_by('price') active_filters = [] temp_table = [] str_active_filters = '?' for item in request.GET: goods_in_filter_group = [] if item != 'page': if item == 'Крепость': for f_item in request.GET.getlist('Крепость'): if f_item == 'до 3%': property_value = Property_value.objects.filter( pk__in=[28, 29, 30, 31, 68]) active_filters.append('до 3%') str_active_filters += 'Крепость=до 3%&' goods_with_opv = get_goods_of_object_property_values( property_value, Good.objects.filter(is_active=True)) for i in goods_with_opv: goods_in_filter_group.append(i) elif f_item == 'больше 3%': active_filters.append('больше 3%') str_active_filters += 'Крепость=больше 3%&' property_value = Property_value.objects.filter( pk__in=[ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ]) goods_with_opv = get_goods_of_object_property_values( property_value, Good.objects.filter(is_active=True)) for i in goods_with_opv: goods_in_filter_group.append(i) elif f_item == 'безалкогольный': active_filters.append('безалкогольный') str_active_filters += 'Крепость=безалкогольный&' property_value = Property_value.objects.get(pk=27) goods_with_opv = get_goods_of_single_object_property_value( property_value, Good.objects.filter(is_active=True)) for i in goods_with_opv: goods_in_filter_group.append(i) elif item == 'Производители': for f_item in request.GET.getlist('Производители'): try: manufacturer = Manufacturer.objects.get( name=f_item) active_filters.append(manufacturer.name) str_active_filters += 'Производители=' + str( f_item) + '&' goods_with_filter = Good.objects.filter( manufacturer=manufacturer, is_active=True) for good in goods_with_filter: goods_in_filter_group.append(good) except Manufacturer.DoesNotExist: pass else: for f_item in request.GET.getlist(item): try: property_value = Property_value.objects.get( title=f_item) active_filters.append(property_value.title) str_active_filters += str(item) + '=' + str( f_item) + '&' goods_with_opv = get_goods_of_single_object_property_value( property_value, Good.objects.filter(is_active=True)) for i in goods_with_opv: goods_in_filter_group.append(i) except Property_value.DoesNotExist: pass temp_table = list(set(goods) & set(goods_in_filter_group)) goods = temp_table if not active_filters: try: category = Category.objects.get(name='Сидр') temp_table = Good.objects.filter( category=category, is_active=True).order_by('price') except Category.DoesNotExist: temp_table = Good.objects.filter( is_active=True).order_by('price') for n in temp_table: if n.is_active: item = Item() item.good = n images = Picture.objects.filter(good=n, main_image=True).first() if images: item.image = images else: item.image = Picture.objects.filter(good=n).first() table.append(item) page_number = request.GET.get('page', 1) paginator = Paginator(table, goods_count) page = paginator.get_page(page_number) is_paginated = page.has_other_pages() if page.has_previous(): prev_url = '{1}page={0}'.format(page.previous_page_number(), str_active_filters) else: prev_url = '' if page.has_next(): next_url = '{1}page={0}'.format(page.next_page_number(), str_active_filters) else: next_url = '' current_wishlist = get_wishlist(request) wishlist = query_set_to_list( Wishlist_Item.objects.filter(wishlist=current_wishlist)) barrels = query_set_to_list(In_Barrels.objects.all()) current_cart = get_cart_(request) template_name = 'goodapp/catalog.html' context = { 'page_object': page, 'prev_url': prev_url, 'next_url': next_url, 'is_paginated': is_paginated, 'cart': current_cart, 'cart_count': Cart_Item.objects.filter(cart=current_cart).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'barrels': barrels, 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=current_wishlist)), 'wishlist': wishlist, 'filters_a': get_filters_a(temp_table), 'active_filters': active_filters, 'str_active_filters': str_active_filters, 'bestsellers': get_items_with_pictures( query_set_to_list(Bestseller.objects.all().order_by('?'))), } return render(request, template_name, context)
def show_product_with_tag(request): goods_count = 18 property_value = Property_value.objects.get(title=request.GET.get('tag')) opv = Object_property_values.objects.filter(property_value=property_value) table = [] for n in opv: if n.good.is_active: item = Item() item.good = n.good images = Picture.objects.filter(good=n.good, main_image=True).first() if images: item.image = images else: item.image = Picture.objects.filter(good=n.good).first() table.append(item) page_number = request.GET.get('page', 1) paginator = Paginator(table, goods_count) page = paginator.get_page(page_number) is_paginated = page.has_other_pages() if page.has_previous(): prev_url = '?tag={1}&page={0}'.format(page.previous_page_number(), property_value) else: prev_url = '' if page.has_next(): next_url = '?tag={1}&page={0}'.format(page.next_page_number(), property_value) else: next_url = '' current_wishlist = get_wishlist(request) wishlist = query_set_to_list( Wishlist_Item.objects.filter(wishlist=current_wishlist)) barrels = query_set_to_list(In_Barrels.objects.all()) current_cart = get_cart_(request) template_name = 'goodapp/tags.html' context = { 'page_object': page, 'prev_url': prev_url, 'next_url': next_url, 'is_paginated': is_paginated, 'cart': current_cart, 'cart_count': Cart_Item.objects.filter(cart=current_cart).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'barrels': barrels, 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=current_wishlist)), 'wishlist': wishlist, 'property_value': property_value, } return render(request, template_name, context)
def show_manufacturer(request, cpu_slug): goods_count = 18 try: manufacturer = Manufacturer.objects.get(cpu_slug=cpu_slug) except: manufacturer = None goods = Good.objects.filter(manufacturer=manufacturer, is_active=True).order_by('price') table = get_items_with_pictures(goods) page_number = request.GET.get('page', 1) paginator = Paginator(table, goods_count) page = paginator.get_page(page_number) is_paginated = page.has_other_pages() if page.has_previous(): prev_url = '?page={}'.format(page.previous_page_number()) else: prev_url = '' if page.has_next(): next_url = '?page={}'.format(page.next_page_number()) else: next_url = '' current_wishlist = get_wishlist(request) wishlist = query_set_to_list( Wishlist_Item.objects.filter(wishlist=current_wishlist)) barrels = query_set_to_list(In_Barrels.objects.all()) current_cart = get_cart_(request) template_name = 'goodapp/catalog.html' context = { 'page_object': page, 'prev_url': prev_url, 'next_url': next_url, 'is_paginated': is_paginated, 'manufacturer': manufacturer, 'cart': current_cart, 'cart_count': Cart_Item.objects.filter(cart=current_cart).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'barrels': barrels, 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=current_wishlist)), 'wishlist': wishlist, } return render(request, template_name, context)
def show_category(request, slug): if slug == '4127154760': try: category = Category.objects.get(slug=slug) except: category = None subcategories = Category.objects.filter( parent_category=category).order_by('rank') current_wishlist = get_wishlist(request) wishlist = query_set_to_list( Wishlist_Item.objects.filter(wishlist=current_wishlist)) current_cart = get_cart_(request) template_name = 'goodapp/catalog.html' context = { 'subcategories': subcategories, 'category': category, 'cart': current_cart, 'cart_count': Cart_Item.objects.filter(cart=current_cart).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=current_wishlist)), 'wishlist': wishlist, } elif slug == '481372718': goods_count = 18 try: category = Category.objects.get(slug=slug) except: category = None goods = Good.objects.filter(category=category) table = get_items_with_pictures(goods) page_number = request.GET.get('page', 1) paginator = Paginator(table, goods_count) page = paginator.get_page(page_number) is_paginated = page.has_other_pages() if page.has_previous(): prev_url = '?page={}'.format(page.previous_page_number()) else: prev_url = '' if page.has_next(): next_url = '?page={}'.format(page.next_page_number()) else: next_url = '' current_wishlist = get_wishlist(request) wishlist = query_set_to_list( Wishlist_Item.objects.filter(wishlist=current_wishlist)) barrels = query_set_to_list(In_Barrels.objects.all()) current_cart = get_cart_(request) template_name = 'goodapp/catalog.html' context = { 'page_object': page, 'prev_url': prev_url, 'next_url': next_url, 'is_paginated': is_paginated, 'category': category, 'cart': current_cart, 'cart_count': Cart_Item.objects.filter(cart=current_cart).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=current_wishlist)), 'wishlist': wishlist, } # elif slug == '440621953': # goods_count=18 # try: # category = Category.objects.get(slug=slug) # except: # category = None # goods = Good.objects.filter(category=category) # table = get_items_with_pictures(goods) # page_number = request.GET.get('page', 1) # paginator = Paginator(table, goods_count) # page = paginator.get_page(page_number) # is_paginated = page.has_other_pages() # if page.has_previous(): # prev_url = '?page={}'.format(page.previous_page_number()) # else: # prev_url = '' # if page.has_next(): # next_url = '?page={}'.format(page.next_page_number()) # else: # next_url = '' # current_wishlist = get_wishlist(request) # wishlist = query_set_to_list(Wishlist_Item.objects.filter(wishlist=current_wishlist)) # barrels = query_set_to_list(In_Barrels.objects.all()) # current_cart = get_cart_(request) # template_name = 'goodapp/catalog.html' # context = { # 'page_object': page, 'prev_url': prev_url, 'next_url': next_url, 'is_paginated': is_paginated, # 'category': category, # 'cart': current_cart, # 'cart_count' : Cart_Item.objects.filter(cart=current_cart).aggregate(Sum('quantity'))['quantity__sum'], # 'in_bar': get_in_barrels(), # 'wishlist_count' : len(Wishlist_Item.objects.filter(wishlist=current_wishlist)), # 'wishlist' : wishlist, # } else: goods_count = 18 try: category = Category.objects.get(slug=slug) except: category = None goods = Good.objects.filter(category=category, is_active=True).order_by('price') if category.name == 'Сидр': filters_a = get_filters_a(goods) bestsellers = Bestseller.objects.all().order_by('?') else: filters_a = None bestsellers = None table = get_items_with_pictures(goods) page_number = request.GET.get('page', 1) paginator = Paginator(table, goods_count) page = paginator.get_page(page_number) is_paginated = page.has_other_pages() if page.has_previous(): prev_url = '?page={}'.format(page.previous_page_number()) else: prev_url = '' if page.has_next(): next_url = '?page={}'.format(page.next_page_number()) else: next_url = '' current_wishlist = get_wishlist(request) wishlist = query_set_to_list( Wishlist_Item.objects.filter(wishlist=current_wishlist)) barrels = query_set_to_list(In_Barrels.objects.all()) current_cart = get_cart_(request) template_name = 'goodapp/catalog.html' context = { 'page_object': page, 'prev_url': prev_url, 'next_url': next_url, 'is_paginated': is_paginated, 'category': category, 'cart': current_cart, 'cart_count': Cart_Item.objects.filter(cart=current_cart).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'barrels': barrels, 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=current_wishlist)), 'wishlist': wishlist, 'filters_a': filters_a, 'bestsellers': bestsellers, } return render(request, template_name, context)
def show_good(request, slug): good = Good.objects.get(slug=slug) pictures = Picture.objects.filter(good=good).order_by('-main_image') main_pictures = pictures.first() opv = Object_property_values.objects.filter(good=good) # Страна country = get_object_property_value(opv, '728193372') # Крепость strength = get_object_property_value(opv, '202312845') # Сахар sugar = get_object_property_value(opv, '2193900133') # Объем volume = get_object_property_value(opv, '3824689493') # Газация gas = get_object_property_value(opv, '1240764269') # Пастеризация pasteuriz = get_object_property_value(opv, '2448919171') # Фильтрация filtration = get_object_property_value(opv, '1716778945') # Что внутри? inside = get_object_property_value(opv, '552212307') current_wishlist = get_wishlist(request) wishlist = query_set_to_list( Wishlist_Item.objects.filter(wishlist=current_wishlist)) barrels = query_set_to_list(In_Barrels.objects.all()) current_cart = get_cart_(request) template_name = 'goodapp/good.html' context = { 'good': good, 'pictures': pictures, 'main_pictures': main_pictures, 'opv': opv, 'country': country, 'strength': strength, 'sugar': sugar, 'volume': volume, 'gas': gas, 'pasteuriz': pasteuriz, 'filtration': filtration, 'inside': inside, 'is_cidre': good.is_cidre, 'cart': get_cart_(request), 'cart_count': Cart_Item.objects.filter(cart=current_cart).aggregate( Sum('quantity'))['quantity__sum'], 'in_bar': get_in_barrels(), 'barrels': barrels, 'wishlist_count': len(Wishlist_Item.objects.filter(wishlist=current_wishlist)), 'wishlist': wishlist, } return render(request, template_name, 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)