Beispiel #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)
Beispiel #2
0
    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
Beispiel #3
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)
Beispiel #4
0
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)
Beispiel #5
0
    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
Beispiel #6
0
    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
Beispiel #7
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)
Beispiel #8
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)
Beispiel #9
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)
Beispiel #10
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)
Beispiel #11
0
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)
Beispiel #12
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)
Beispiel #13
0
    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),
        })

        return ret
Beispiel #14
0
def show_index(request):

	context = {
		'cart' : get_cart(request),
	}

	return  render(request, 'baseapp/index.html', context)
Beispiel #15
0
def account_password_change_succes(request):

    context = {
        'cart': get_cart(request),
    }

    return render(request, 'authapp/change_password_succes.html', context)
Beispiel #16
0
def show_profile(request):

    context = {
        'cart': get_cart(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)
Beispiel #17
0
    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),
        })

        return ret
Beispiel #18
0
    def get_context_data(self, **kwargs):

        ret = super(PasswordResetDoneView, self).get_context_data(**kwargs)

        ret.update({
            'cart': get_cart(self.request),
        })

        return ret
Beispiel #19
0
    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
Beispiel #20
0
    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
Beispiel #21
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)
Beispiel #22
0
def show_wishlist(request):


	context = {

		'wishlist': get_wishlist(request),
		'cart': get_cart(request),

	}


	return render(request, 'wishlistapp/wishlist.html', context)
Beispiel #23
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)
Beispiel #24
0
    def get_context_data(self, **kwargs):

        ret = super(PasswordResetFromKeyView, self).get_context_data(**kwargs)

        ret.update({
            'cart': get_cart(self.request),
        })

        ret['action_url'] = reverse('account_reset_password_from_key',
                                    kwargs={
                                        'uidb36': self.kwargs['uidb36'],
                                        'key': self.kwargs['key']
                                    })

        return ret
Beispiel #25
0
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)
Beispiel #26
0
    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),
        })

        return ret
Beispiel #27
0
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)
Beispiel #28
0
    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),
        })

        return ret
Beispiel #29
0
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)
def cart(request):
    print('context processor cart works')
    return {
        'cart': get_cart(request),
    }