def cart_page(): meals_list = db.session.query(Meal).all() cart = session.get("cart", []) meals = [] for i in cart: meals.append(i) form = CartForm() if request.method == 'POST' and form.validate_on_submit(): name = form.name.data address = form.address.data user_mail = form.user_mail.data phone = form.phone.data date = datetime.date.today().strftime("%d.%m.%Y") status = "Выполняется" order_form = Order(name=name, address=address, user_mail=user_mail, phone=phone, meals=meals, summ=summ(), date=date) db.session.add(order_form) db.session.commit() return redirect('/ordered/') output = render_template('cart.html', form=form, cart=cart, meals_list=meals_list) return output
def get_product_form(self): ''' Returns a form with, product options ''' #if self.prod_form: # return self.prod_form c = CartForm() c.set_instance(instance=self) self.prod_form = c return self.prod_form
def render_cart(): cart_form = CartForm() meals = [] trash = session.get('trash', None) if trash != None: trash_meal = db.session.query(Meal).filter( Meal.id == trash).one_or_none() else: trash_meal = None cart = session.get('cart', []) total_price = session.get('total_price', 0) user_cart = {'meals_numb': len(cart), 'total_price': total_price, 'trash_meal': trash_meal} if len(cart) > 0: for meal_id in cart: meal = db.session.query(Meal).filter( Meal.id == meal_id).one_or_none() meals.append(meal) if request.method == 'POST' and cart_form.validate_on_submit(): today = datetime.datetime.today() client_order = { "clientName": cart_form.clientName.data, "clientAddress": cart_form.clientAddress.data, "clientMail": cart_form.clientMail.data, "clientPhone": cart_form.clientPhone.data, "cartSumm": cart_form.cartSumm.data, "cartMeals": cart_form.cartMeals.data } client = User.query.filter_by(id=session['user']['id']).one_or_none() if client and int(client_order['cartSumm']) > 0: order_db = Order( date=today.strftime("%Y-%m-%d-%H:%M"), sum=total_price, status='Ready', user_id=client.id) for meal in meals: order_db.meals.append(meal) db.session.add(order_db) db.session.commit() session['trash'] = [] session['cart'] = [] session['total_price'] = 0 return redirect(url_for('render_ordered')) elif client_order['cartSumm'] == 0: cart_form.clientPhone.errors.append("Добавьте товары в корзину для оформления заказа") else: cart_form.clientMail.errors.append("Неверный адрес электронной почты") return render_template('cart.html', cart=user_cart, form=cart_form, meals=meals, trash=trash, user_access=session.get('is_auth'))
def post(self, *args, **kwargs): cart_object = get_or_create_cart(self.request) f = CartForm(self.request.POST,instance=cart_object) if f.is_valid(): f.save() #Message only for EU cart clickers if cart_object.is_eu_cart: messages.add_message(self.request,messages.INFO, _('Remember that you need to have valid EU VAT number to claim 0% EU VAT rate'),extra_tags='basket_only') else: messages.add_message(self.request,messages.ERROR, _('Error changing VAT rate.'),extra_tags='basket_only') return redirect(self.request.POST.get('next'))
def single_product(product_id): form = CartForm() mycursor.execute( 'SELECT * FROM product WHERE product_id = {}'.format(product_id)) product = mycursor.fetchone() if product == None: abort(404) mycursor.execute('SELECT * FROM store WHERE id = {}'.format( product['store_id'])) store = mycursor.fetchone() product['store_name'] = store['store_name'] product['store_phone'] = store['phone'] image_file = url_for('static', filename='profile_pics/' + product['photo']) if 'whois' in session and session['whois'] == '1': if form.validate_on_submit(): if 'cart' in session: if not any( str(product['product_id']) in d for d in session['cart']): new_dict = {product['product_id']: form.quantity.data} keys_values = new_dict.items() new_d = {str(key): value for key, value in keys_values} new_dict_copy = new_d.copy() session['cart'].append(new_dict_copy) flash("New Product Added to Cart!", 'success') elif any( str(product['product_id']) in d for d in session['cart']): for d in session['cart']: for k, v in d.items(): if k == str(product['product_id']): d.update({k: form.quantity.data}) flash("Quantity updated!", 'success') else: session['cart'] = [{product['product_id']: form.quantity.data}] flash("New Product Added to Cart!", 'success') return redirect(url_for('shopping_cart')) return render_template('single_product.html', image_file=image_file, title=product['product_name'], product=product, form=form)
def show_product(request, article_slug): a = get_object_or_404(Article, slug=article_slug) if request.method == 'POST': data= request.POST.copy() form = CartForm(request, data) if form.is_valid(): #add to cart and redirect to cart page Cart.add_to_cart(request) # if test cookie worked, get rid of it if request.session.test_cookie_worked(): request.session.delete_test_cookie() url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(url) else: form = CartForm(request=request, label_suffix=':') request.session.set_test_cookie() return render_to_response("variation/detail.html", locals(), context_instance=RequestContext(request))
def render_cart(): form = CartForm() if request.method == "POST": if not session.get("user"): return redirect("/auth/") if not form.validate_on_submit(): return render_template("cart.html", form=form) if not session.get("cart", {}): form.submit.errors.append("Корзина не должна быть пустой") return render_template("cart.html", form=form) order = Order(user_id=session.get("user")["id"], status='Размещен', date=datetime.today(), email=form.email.data) order.items = json.dumps(session.get("cart")) db.session.add(order) db.session.commit() session.pop("cart") session.pop("total_cost") session.pop("total_count") return render_template("ordered.html") session["total_cost"] = sum([ item["price"] * item["count"] for item in session.get("cart", {}).values() ]) session["total_count"] = len(session.get("cart", {})) output = render_template("cart.html", form=form, deleted=session.get("deleted"), total_cost=session.get("total_cost", 0), total_count=session.get("total_count", 0)) session["deleted"] = False return output
def render_cart(): meals = [] if 'cart' not in session: session['cart'] = [] for i in session['cart']: meal = db.session.query(Meal).get(i) meals.append(meal) cart_form = CartForm() if not cart_form.is_submitted() and 'is_auth' in session: client = db.session.query(User).get(session['user_id']) cart_form.client_name.data = client.name cart_form.client_address.data = client.address cart_form.client_mail.data = client.mail cart_form.client_phone.data = client.phone if cart_form.validate_on_submit(): order = Order(order_date=date.today().isoformat(), order_sum=session['total'], phone=cart_form.client_phone.data, address=cart_form.client_address.data, mail=cart_form.client_mail.data, user_id=session['user_id']) for meal_id in session['cart']: meal = db.session.query(Meal).get(meal_id) order.meals.append(meal) db.session.add(order) db.session.commit() session['cart'] = [] session['total'] = 0 return redirect(url_for('store.render_ordered')) return render_template('cart.html', meals=meals, form=cart_form)
def index(request): if request.user.is_authenticated(): if request.user.user_profile.is_active: forms = CartForm() pwd_forms = ChangeForm() template = loader.get_template('cart.html') context = { "cart": "active", "forms": forms, "pwd_forms": pwd_forms, "username": request.user.username } return HttpResponse(template.render(context, request)) else: return HttpResponseRedirect('/notice/') else: return HttpResponseRedirect('/login/')
def shopping_cart(): if 'whois' not in session or session['whois'] != '1': abort(403) form = CartForm() products = [] total_price = 0 if 'cart' in session: for d in session['cart']: for k, v in d.items(): mycursor.execute('SELECT * FROM product WHERE product_id = %s', (k, )) product = mycursor.fetchone() product['quantity'] = v total_price = total_price + (product['quantity'] * product['price']) products.append(product) return render_template('shopping_cart.html', title='Shopping Cart', products=products, form=form, total_price=total_price)
def cart(): is_del = False if session.get('delete'): is_del = True session['delete'] = False form = CartForm() dish_list = [ db.session.query(Dish).get(i) for i in session.get('cart', []) ] summ = 0 for dish in dish_list: summ += dish.price if request.method == 'POST': name = form.name.data address = form.address.data user_mail = form.user_mail.data phone = form.phone.data date = datetime.date.today().strftime("%d.%m.%Y") status = "Выполняется" order_form = Order(name=name, address=address, phone=phone, date=date, summ=summ, status=status, dishs=",".join(str(dish.id) for dish in dish_list), user_mail=user_mail) db.session.add(order_form) db.session.commit() session['cart'] = [] return redirect('/ordered/') else: return render_template('cart.html', cart=session.get('cart', []), dish_list=dish_list, len=len(dish_list), summ=summ, delete=is_del, is_auth=session.get('is_auth', False), form=form)
def save(request): obj = None sid = request.POST.get('id') try: if sid: obj = Cart.objects.get(id=sid) if obj.sync_flag == 1: result = { "ret": 10000, "status": "failed", "msg": "任务已分配,无法进行修改!" } return HttpResponse(json.dumps(result), content_type="application/json") except Cart.DoesNotExist: pass if obj: form = CartForm(request.POST or None, instance=obj) else: option = request.POST.get("option") total = request.POST.get('total') if int(option): accounts = Account.objects.filter(delflag=0, tag_id=request.POST.get('tag'), createuser_id=5) if accounts.count() == 0: result = { "ret": 10000, "status": "failed", "msg": "当前系统下没有买手号,请联系客服!" } return HttpResponse(json.dumps(result), content_type="application/json") integral = 150 else: accounts = Account.objects.filter(delflag=0, tag_id=request.POST.get('tag'), createuser_id=request.user.id) if accounts.count() == 0: result = { "ret": 10000, "status": "failed", "msg": "当前账号下没有买手号!" } return HttpResponse(json.dumps(result), content_type="application/json") discount = request.user.user_profile.discount integral = int(30 * (discount / 100.0)) total_integral = integral * int(total) if Profile.objects.get( user_id=request.user.id).integral < total_integral: result = {"ret": 10000, "status": "failed", "msg": "当前账号积分不足!"} return HttpResponse(json.dumps(result), content_type="application/json") form = CartForm(request.POST or None) if form.is_valid(): instance = form.save(commit=False) if sid: instance.updateuser = request.user else: instance.createuser = request.user instance.save() result = {"ret": 0, "status": "success"} return HttpResponse(json.dumps(result), content_type="application/json") else: msg = [] if form.errors: for k, v in form.errors.iteritems(): msg.append(v[0]) return HttpResponse(json.dumps({ "ret": 10000, "status": "error", "msg": '\n'.join(msg) }), content_type="application/json")
def orders_page(): form = CartForm() if session.get("user_id"): return redirect('/account/') output = render_template("ordered.html", form=form) return output