def getAllNewProducts(request, page=1): products = Product.objects.filter(sites=settings.SITE_ID).order_by("-pk") result = func.setPaginationForItemsWithValues(products, "NAME", 'DETAIL_TEXT', 'IMAGE', 'COST', 'CURRENCY', page_num=15, page=page) products_list = result[0] products_ids = [key for key, value in products_list.items()] companies = Company.objects.filter(p2c__child_id__in=products_ids) items = Item.objects.filter(p2c__child_id__in=companies, p2c__type="dependence", pk__in=Country.objects.all(), p2c__child__p2c__child__in=products_ids).values("country", "p2c__child_id", 'p2c__child__p2c__child', 'pk') items_id =[] for item in items: items_id.append(item['pk']) items_id.append(item['p2c__child_id']) items_id = set(items_id) itemsWithAttribute = Item.getItemsAttributesValues(("NAME", "IMAGE"), items_id) for item in items: products_list[item['p2c__child__p2c__child']].update({'COMPANY_NAME': itemsWithAttribute[item['p2c__child_id']]['NAME']}) products_list[item['p2c__child__p2c__child']].update({'COMPANY_IMAGE': itemsWithAttribute[item['p2c__child_id']]['IMAGE']}) products_list[item['p2c__child__p2c__child']].update({'COMPANY_ID': item['p2c__child_id']}) products_list[item['p2c__child__p2c__child']].update({'COUNTRY_NAME': itemsWithAttribute[item['pk']]['NAME']}) products_list[item['p2c__child__p2c__child']].update({'COUNTRY_ID': item['pk']}) page = result[1] paginator_range = func.get_paginator_range(page) url_paginator = "products:products_paginator" return render_to_response("Product/new.html", {'products_list': products_list, 'page': page, 'paginator_range':paginator_range, 'url_paginator': url_paginator, 'user': request.user}, context_instance=RequestContext(request))
def newsDetail(request, item_id): new = get_object_or_404(News, pk=item_id) user = request.user newAttr = new.getAttributeValues("NAME", "ACTIVE_FROM", "DETAIL_TEXT", "IMAGE") newAttr = newAttr contrySorted = func.sortByAttr("Country", "NAME") sorted_id = [coun.id for coun in contrySorted] countryList = Item.getItemsAttributesValues(("NAME", ), sorted_id) products = Product.active.get_active_related().filter( sites=settings.SITE_ID).order_by("-pk")[:2] newProducrList = Product.getCategoryOfPRoducts( products, ("NAME", "COST", "CURRENCY", "IMAGE")) return render_to_response("News/detail.html", locals())
def newsList(request, page=1): user = request.user page = page result = func.getItemsListWithPagination("News", "NAME", "Active_From", "DETAIL_TEXT", "IMAGE", page=page) newsList = result[0] page = result[1] paginator_range = func.get_paginator_range(page) url_paginator = "news:paginator" contrySorted = func.sortByAttr("Country", "NAME") sorted_id = [coun.id for coun in contrySorted] countryList = Item.getItemsAttributesValues(("NAME", ), sorted_id) return render_to_response("News/index.html", locals())
def orderProduct(request, step=1): #------ Order of products in threee step ----# if not request.user.is_authenticated(): url_product = reverse("products:detail", args=[request.POST.get('product', 1)]) return HttpResponseRedirect("/registration/?next=%s" %url_product) contrySorted = func.sortByAttr("Country", "NAME") sorted_id = [coun.id for coun in contrySorted] countryList = Item.getItemsAttributesValues(("NAME",), sorted_id) curr_url = 'order' if step == '1': #-----Step One , form of shipping addres plus deleviry method ---# orderForm = "" user = request.user if not request.session.get('product_id', False) or request.POST.get('product', False): request.session['product_id'] = request.POST.get('product', "") request.session['qty'] = request.POST.get('french-hens', "") if request.session.get("order", False): del request.session['order'] cabinet = Cabinet.objects.get(user=user) if request.POST.get('product', False) or not request.session.get("order", False): address = cabinet.getAttributeValues("ADDRESS_CITY", "ADDRESS_COUNTRY", "ADDRESS_ZIP", "ADDRESS", "TELEPHONE_NUMBER", "SHIPPING_NAME") else: session = request.session.get("order", False) if session: address = {"ADDRESS_CITY": [session.get("city", "")], "ADDRESS_COUNTRY": [session.get("country", "")], "ADDRESS_ZIP": [session.get("zipcode", "")], "ADDRESS": [session.get("address", "")], "TELEPHONE_NUMBER": [session.get("telephone_number", "")], "SHIPPING_NAME": [session.get("recipient_name", "")]} if request.POST.get("Continue", False): orderForm = OrderForm(request.POST) if orderForm.is_valid(): if request.POST.get("delivery", False): request.session['order'] = request.POST return HttpResponseRedirect(reverse("products:order", args=['2'])) else: orderForm.errors.update({"delivery": "Required deleviry method"}) product = get_object_or_404(Product, pk=request.session.get("product_id", " ")) productValues = product.getAttributeValues("NAME", "IMAGE", "CURRENCY", "COST", 'DISCOUNT', 'COUPON_DISCOUNT') productValues['COST'][0] = _getRealCost(productValues) totalCost = float( productValues['COST'][0]) * float(request.session.get('qty', 1)) return render_to_response("Product/orderStepOne.html", {'address': address, 'user': user, "orderForm": orderForm, 'productValues': productValues ,'totalCost': totalCost, 'curr_url': curr_url}, context_instance=RequestContext(request)) elif step == '2': #----Step two , checkout , and conformation of order----# product_id = request.session.get('product_id', False) qty = request.session.get('qty', False) product = get_object_or_404(Product, pk=product_id) productValues = product.getAttributeValues('NAME', "COST", 'CURRENCY', 'DISCOUNT', 'COUPON_DISCOUNT') orderDetails = {} session = request.session.get("order", " ") orderDetails['city'] = session['city'] orderDetails['country'] = session['country'] orderDetails['address'] = session['address'] productValues['COST'][0] = _getRealCost(productValues) totalSum = float(productValues['COST'][0]) * float(request.session.get('qty', 1)) user = request.user return render_to_response("Product/orderStepTwo.html", {'qty': qty, 'productValues': productValues, 'orderDetails': orderDetails, 'totalSum': totalSum, "user": user,'curr_url': curr_url, },context_instance=RequestContext(request)) else: #-----Step three , cleaning of sessions , and creatin of new order object that related to cabinet of user ---# if request.session.get("order", False): product = get_object_or_404(Product, pk=request.session.get('product_id')) productValues = product.getAttributeValues('NAME', "COST", 'CURRENCY', 'IMAGE', 'DISCOUNT', 'COUPON_DISCOUNT') qty = request.session.get('qty', False) dict = Dictionary.objects.get(title='CURRENCY') slot_id = dict.getSlotID(productValues['CURRENCY'][0]) productValues['CURRENCY'][0] = slot_id session = request.session['order'] address = {"ADDRESS_CITY": [session.get("city", "")], "ADDRESS_COUNTRY": [session.get("country", "")], "ADDRESS_ZIP": [session.get("zipcode", "")], "ADDRESS": [session.get("address", "")], "TELEPHONE_NUMBER": [session.get("telephone_number", "")], "DETAIL_TEXT": [session.get("comment", "")], "SHIPPING_NAME": [session.get("recipient_name", "")]} productValues['COST'][0] = float(_getRealCost(productValues)) * float(qty) with transaction.atomic(): order = Order(create_user=request.user) order.save() orderDict = {} orderDict.update(productValues) orderDict.update(address) orderDict.update({"QUANTITY": qty}) del orderDict['CREATE_DATE'] order.setAttributeValue(orderDict, request.user) cabinet = Cabinet.objects.get(user=request.user) Relationship.setRelRelationship(cabinet, order, request.user) Relationship.setRelRelationship(order, product, request.user) del request.session['product_id'] del request.session['qty'] del request.session['order'] else: return HttpResponseRedirect("/") return render_to_response("Product/orderStepThree.html", {"user": request.user, 'curr_url': curr_url }, context_instance=RequestContext(request))