Ejemplo n.º 1
0
def product_quick_look(request, slug, id):
    product = Product.objects.select_related('category', 'brand').filter(pk=id)
    _client = request.client.client
    # raise 404 if there is no such product
    if not product:
        raise Http404
    else:
        product = product[0]
        primary_rate_chart = product.primary_rate_chart()
        if not primary_rate_chart:
            raise Http404
        if not primary_rate_chart.seller.client == request.client.client:
            raise Http404
        if is_future_ecom(
                request.client.client) and product.type == "variable":
            return HttpResponsePermanentRedirect(
                reverse('product-quick-look-url',
                        None,
                        kwargs={
                            'slug': primary_rate_chart.product.slug,
                            'id': primary_rate_chart.product.id
                        }))
    product_id = [product.id]
    product_info = create_context_for_search_results(product_id, request)
    product_info = product_info[0]
    return render_to_response('products/quick_info.html',
                              product_info,
                              context_instance=RequestContext(request))
Ejemplo n.º 2
0
def product_quick_look(request, slug, id):
    product = Product.objects.select_related("category", "brand").filter(pk=id)
    _client = request.client.client
    # raise 404 if there is no such product
    if not product:
        raise Http404
    else:
        product = product[0]
        primary_rate_chart = product.primary_rate_chart()
        if not primary_rate_chart:
            raise Http404
        if not primary_rate_chart.seller.client == request.client.client:
            raise Http404
        if is_future_ecom(request.client.client) and product.type == "variable":
            return HttpResponsePermanentRedirect(
                reverse(
                    "product-quick-look-url",
                    None,
                    kwargs={"slug": primary_rate_chart.product.slug, "id": primary_rate_chart.product.id},
                )
            )
    product_id = [product.id]
    product_info = create_context_for_search_results(product_id, request)
    product_info = product_info[0]
    return render_to_response("products/quick_info.html", product_info, context_instance=RequestContext(request))
Ejemplo n.º 3
0
def confirmation(request, order_id):
    from web.views.user_views import signup
    error = None
    is_email_success = False
    if "sign_up" in request.POST:
        return signup(request, page="confirmation")

    order = Order.objects.get(id=order_id)
    # check if this order_id exists in confirmed orders in this session
    if order.id not in request.session.get('confirmed_orders', []):
        #       # users can still visit confirmation page of their own orders
        #if request.user.is_authenticated() and request.user.id != order.user.user.id:
        #           # not confirmed in this session, does not belong to this user either. lets lie
        raise Http404

    password = None
    username = None
    try:
        profile = order.user
        auth_user = profile.user
        username = auth_user.username
        password = auth_user.password
        if password == '!':
            password = None
        if is_email_success and not error:
            password = None
    except:
        payment_log.exception("Guest User")

    try:
        deliveryinfo = order.get_address(request, type='delivery')
    except DeliveryInfo.DoesNotExist:
        deliveryinfo = None

    similar_products = []
    try:
        order_items = order.get_order_items(
            request,
            select_related=('seller_rate_chart__product', ),
            exclude=dict(state__in=['cancelled', 'bundle_item']))
        for order_item in order_items:
            rate_chart = order_item.seller_rate_chart
            similar_product = rate_chart.product.similar_products(request)
            if similar_product:
                #similar_products.append(similar_product)
                similar_products.extend(similar_product)
    except OrderItem.DoesNotExist:
        order_item = None

    #TODO why is this needed?? Error: order_item not present
    #fb_share_link = "%s/%s/pd/%s/" % (request.get_host(),order_item.seller_rate_chart.product.slug,order_item.seller_rate_chart.product_id)
    fb_share_link = ''

    dgm_sku_code = None
    if order.coupon:
        dgm_sku_code = 661193132812
    elif order.payable_amount > 250:
        dgm_sku_code = 214361427476
    else:
        dgm_sku_code = 858389242533

    address_info = {
        'first_name': mark_safe(deliveryinfo.address.first_name),
        'last_name': mark_safe(deliveryinfo.address.last_name),
        'address': mark_safe(deliveryinfo.address.address.strip()),
        'city': mark_safe(deliveryinfo.address.city),
        'pincode': mark_safe(deliveryinfo.address.pincode),
        'state': mark_safe(deliveryinfo.address.state),
        'country': mark_safe(deliveryinfo.address.country),
        'phone': mark_safe(deliveryinfo.address.phone),
    }

    earn_map = PointsHeader.EARN_POINTS_MAP
    points_ratio = earn_map.get(order.client.name)
    payback_points_earned = 0  #(order.payable_amount*Decimal(points_ratio)).quantize(Decimal('1')) if order.payback_id else 0

    total_order_qty = order.get_item_count()

    insufficient_payment = request.session.get('insufficent_payment')
    if insufficient_payment:
        del request.session['insufficient_payment']
    # Get recently viewed products
    recently_viewed_products = utils.get_recently_viewed(request,
                                                         order.user,
                                                         count=4)
    recently_viewed_ctxt = utils.create_context_for_search_results(
        recently_viewed_products, request)
    products_ctxt = {}
    if not recently_viewed_ctxt:
        # Get todays deals
        todays_deals = DailyDeal.objects.filter(status='published',type='todays_deals',\
                       starts_on__lte=datetime.now(),ends_on__gte=datetime.now(), client=request.client.client)
        if todays_deals:
            todays_deal = todays_deals[0]
            deal_products = todays_deal.dailydealproduct_set.values(
                'product').all().order_by('order')[:4]
            todays_deals_products = [deal['product'] for deal in deal_products]
            todays_deals_ctxt = utils.create_context_for_search_results(
                todays_deals_products, request)
            products_ctxt['label'] = "TODAY'S DEALS"
            products_ctxt['data'] = todays_deals_ctxt
    else:
        products_ctxt['label'] = "YOU RECENTLY VIEWED"
        products_ctxt['data'] = recently_viewed_ctxt

    return render_to_response("order/confirmed.html", {
        "order": order,
        "order_items": order_items,
        "deliveryinfo": deliveryinfo,
        "fb_share_link": fb_share_link,
        "similar_products": similar_products,
        "address_info": address_info,
        "confirmed": True,
        "payback_points_earned": payback_points_earned,
        "total_order_qty": total_order_qty,
        "total_items": order.get_item_count(),
        "dgm_sku_code": dgm_sku_code,
        "insufficient_payment": insufficient_payment,
        "password": password,
        "username": username,
        "next": request.path,
        "signup_error": error,
        "is_email_success": is_email_success,
        "ga_states": ["confirmed", "booked"],
        "products_ctxt": products_ctxt,
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 4
0
def confirmation(request, order_id):
    from web.views.user_views import signup
    error = None
    is_email_success = False
    if "sign_up" in request.POST:
        return signup(request, page="confirmation")
     
    order = Order.objects.get(id=order_id)
    # check if this order_id exists in confirmed orders in this session
    if order.id not in request.session.get('confirmed_orders',[]):
#       # users can still visit confirmation page of their own orders
        #if request.user.is_authenticated() and request.user.id != order.user.user.id:
#           # not confirmed in this session, does not belong to this user either. lets lie
        raise Http404
    
    password = None
    username = None
    try:
        profile = order.user
        auth_user = profile.user
        username = auth_user.username
        password = auth_user.password
        if password == '!':
            password = None
        if is_email_success and not error:
            password = None
    except:
        payment_log.exception("Guest User")

    try:
        deliveryinfo = order.get_address(request, type='delivery')
    except DeliveryInfo.DoesNotExist:
        deliveryinfo = None
    
    similar_products = []
    try:
        order_items = order.get_order_items(request, select_related=('seller_rate_chart__product',),
            exclude=dict(state__in=['cancelled','bundle_item']))
        for order_item in order_items:
            rate_chart = order_item.seller_rate_chart
            similar_product = rate_chart.product.similar_products(request)
            if similar_product:
                #similar_products.append(similar_product)
                similar_products.extend(similar_product)
    except OrderItem.DoesNotExist:
        order_item = None
    
    #TODO why is this needed?? Error: order_item not present
    #fb_share_link = "%s/%s/pd/%s/" % (request.get_host(),order_item.seller_rate_chart.product.slug,order_item.seller_rate_chart.product_id)
    fb_share_link = ''

    dgm_sku_code = None
    if order.coupon:
        dgm_sku_code = 661193132812
    elif order.payable_amount > 250:
        dgm_sku_code = 214361427476
    else:
        dgm_sku_code = 858389242533
    
    address_info = {
        'first_name':mark_safe(deliveryinfo.address.first_name),
        'last_name':mark_safe(deliveryinfo.address.last_name),
        'address':mark_safe(deliveryinfo.address.address.strip()),
        'city':mark_safe(deliveryinfo.address.city),
        'pincode':mark_safe(deliveryinfo.address.pincode),
        'state':mark_safe(deliveryinfo.address.state),
        'country':mark_safe(deliveryinfo.address.country),
        'phone':mark_safe(deliveryinfo.address.phone),
        }
    
    earn_map = PointsHeader.EARN_POINTS_MAP
    points_ratio = earn_map.get(order.client.name)
    payback_points_earned = 0#(order.payable_amount*Decimal(points_ratio)).quantize(Decimal('1')) if order.payback_id else 0
    
    total_order_qty = order.get_item_count()
    
    insufficient_payment = request.session.get('insufficent_payment')
    if insufficient_payment:
        del request.session['insufficient_payment']
    # Get recently viewed products
    recently_viewed_products = utils.get_recently_viewed(request, order.user, count=4)
    recently_viewed_ctxt = utils.create_context_for_search_results(recently_viewed_products, request)
    products_ctxt = {}
    if not recently_viewed_ctxt:
        # Get todays deals
        todays_deals = DailyDeal.objects.filter(status='published',type='todays_deals',\
                       starts_on__lte=datetime.now(),ends_on__gte=datetime.now(), client=request.client.client)
        if todays_deals:
            todays_deal = todays_deals[0]
            deal_products = todays_deal.dailydealproduct_set.values('product').all().order_by('order')[:4]
            todays_deals_products = [deal['product'] for deal in deal_products]
            todays_deals_ctxt = utils.create_context_for_search_results(todays_deals_products, request)
            products_ctxt['label'] = "TODAY'S DEALS"
            products_ctxt['data'] = todays_deals_ctxt
    else:
        products_ctxt['label'] = "YOU RECENTLY VIEWED"
        products_ctxt['data'] = recently_viewed_ctxt
                
    return render_to_response("order/confirmed.html", {
        "order" :order,
        "order_items" :order_items,
        "deliveryinfo":deliveryinfo,
        "fb_share_link":fb_share_link,
        "similar_products":similar_products,
        "address_info":address_info,
        "confirmed":True,
        "payback_points_earned": payback_points_earned,
        "total_order_qty":total_order_qty,
        "total_items" : order.get_item_count(),
        "dgm_sku_code":dgm_sku_code,
        "insufficient_payment":insufficient_payment,
        "password":password,
        "username":username,
        "next":request.path,
        "signup_error":error,
        "is_email_success":is_email_success,
        "ga_states":["confirmed", "booked"],
        "products_ctxt":products_ctxt,
        }, context_instance = RequestContext(request))