Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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())
Exemplo n.º 3
0
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())
Exemplo n.º 4
0
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))