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))
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))
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))
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))