コード例 #1
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)
コード例 #2
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
コード例 #3
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)
コード例 #4
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)
コード例 #5
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
コード例 #6
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
コード例 #7
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)
コード例 #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)
コード例 #9
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)
コード例 #10
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)
コード例 #11
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)
コード例 #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)
コード例 #13
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)
コード例 #14
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
コード例 #15
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
コード例 #16
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)
コード例 #17
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)
コード例 #18
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)