コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
    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
コード例 #4
0
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)
コード例 #5
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
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)
コード例 #6
0
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)
コード例 #7
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
    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
コード例 #8
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
    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
コード例 #9
0
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)
コード例 #10
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
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)
コード例 #11
0
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)
コード例 #12
0
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)
コード例 #13
0
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)
コード例 #14
0
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)
コード例 #15
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
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)
コード例 #16
0
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)
コード例 #17
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
    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
コード例 #18
0
ファイル: views.py プロジェクト: MaximPekshev/negrustno
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)
コード例 #19
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
    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
コード例 #20
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
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)
コード例 #21
0
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)
コード例 #22
0
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)
コード例 #23
0
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)
コード例 #24
0
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)
コード例 #25
0
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)
コード例 #26
0
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)
コード例 #27
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
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)
コード例 #28
0
ファイル: views.py プロジェクト: MaximPekshev/sidreriya
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)