def wimgw(request): if request.is_ajax(): if 'wimgw' in request.GET: return render_to_response('partials/wimgw.html', get_wimgw_context(request), RequestContext(request)) elif 'carousel' in request.GET: carousel = request.GET['carousel'] if carousel not in ['rent', 'trade', 'buy']: return HttpResponseBadRequest() if 'c' in request.GET: category = get_object_or_404(Category, slug=request.GET['c']) else: category = None carousel = { 'trade': ('hottest_tradeins_carousel', { 'hot_trades': Item.list_all(category=category).filter(trade_flag=True, trade_price__gt=0).order_by('-trade_amount', 'id')[:20],}), 'rent': ('most_rentals_carousel', { 'most_rentals': Item.list_all(category=category).filter(rent_flag=True).order_by('-rent_amount', 'id')[:20],}), 'buy': ('best_sellers_carousel', { 'best_sellers': Item.list_hottest_selling(category=category)}), }[carousel] return render_to_response('partials/wimgw/%s.html' % carousel[0], carousel[1], RequestContext(request)) q = None current_category = None objects = Item.list_all() applied_filters = 2 if request.is_ajax(): if 'q' in request.GET: q = request.GET['q'] objects = Item.search_by_keyword(q).filter(trade_flag=True, trade_price__gt=0) c = request.GET.get('c', '') if c: objects = objects.filter(category__slug=c) current_category = Category.objects.get(slug=c) g = request.GET.get('g', '') if g: applied_filters += 1 g = map(int, g.split(',')) ff = map(lambda x: Q(genre_list__contains=Genre.objects.get(id=x).name), g) objects = objects.filter(reduce(operator.or_, ff)) y = request.GET.get('y', '') if y: applied_filters += 1 y = map(int, y.split(',')) ff = map(lambda x: Q(release_date__year=x), y) objects = objects.filter(reduce(operator.or_, ff)) r = request.GET.get('r', '') if r: applied_filters += 1 r = map(int, r.split(',')) ff = map(lambda x: Q(ratio__gte=x, ratio__lt=x+1), r) objects = objects.filter(reduce(operator.or_, ff)) pr = request.GET.get('pr', '') if pr: applied_filters += 1 rr = [('0.01', '20'), ('20', '50'), ('50', '10000')] pr = set(map(int, pr.split(','))) if 3 in pr: show_used = True pr.remove(3) else: show_used = False if pr: ff = map(lambda x: Q(retail_price_new__gte=rr[x][0], retail_price_new__lt=rr[x][1]) | Q(retail_price_used__gte=rr[x][0], retail_price_used__lt=rr[x][1]), pr) objects = objects.filter(reduce(operator.or_, ff)) if show_used: objects = objects.filter(pre_owned=True) a = request.GET.get('a', '') if a: applied_filters += 1 a = map(int, a.split(',')) if 100 in a: ff = [Q(top_rental=True)] else: ff = [] ff += map(lambda x: Q(rent_status=x), a) objects = objects.filter(reduce(operator.or_, ff)) else: objects = objects.exclude(rent_status=ItemRentStatus.NotRentable) t = request.GET.get('t', '') if t: applied_filters += 1 rr = [15, 25, 35] t = set(map(int, t.split(','))) if 100 in t: wimgw = True t.remove(100) else: wimgw = False if t: ff = map(lambda x: Q(trade_price__gte=rr[x], trade_flag=True, release_date__lte=datetime.now()), t) objects = objects.filter(reduce(operator.or_, ff)) e = request.GET.get('e', '') if e: applied_filters += 1 e = map(int, e.split(',')) ff = map(lambda x: Q(rating=x), e) objects = objects.filter(reduce(operator.or_, ff)) cs = request.GET.get('cs', '') if cs: applied_filters += 1 cs = int(cs) today = datetime.today() if cs == 0: objects = objects.filter(release_date__gt=today) elif cs == 1: objects = objects.filter(release_date__gt=today, release_date__lte=today + timedelta(30)) elif cs == 2: objects = objects.filter(release_date__gt=today + timedelta(30), release_date__lte=today + timedelta(60)) objects = objects.order_by('release_date') if 'p' in request.GET: page = request.GET['p'].lower() if page != 'show all': try: page = int(page) except: return redirect(request.META['PATH_INFO']) elif applied_filters < 2: page = 1 else: page = 1 items_found = objects.count() if page != 'show all': paginator = Paginator(objects, 16, 4) try: current_page = paginator.page(page) except Exception, _e: raise Http404() objects = current_page.object_list
'count': all.filter(release_date__gt=today, release_date__lte=today + timedelta(30)).count(), }, { 'id': 2, 'name': 'Next Month', 'count': all.filter(release_date__gt=today + timedelta(30), release_date__lte=today + timedelta(60)).count(), }] """offer terms""" try: offer_msg = OfferTerm.objects.get(type=OfferTerm.BUY).text except: offer_msg = None return { 'page': current_page, 'page_range': calc_paginator_ranges(paginator, page), 'best_sellers': Item.list_hottest_selling(), 'genres': genres, 'years': years, 'prices': prices, 'ratings': ratings, 'esrb': esrb, 'coming': coming, 'all_games_count': all_games_count, 'offer_msg':offer_msg } @simple_view('intro/rent2.html') def rent_intro2(request): # if not settings.DEBUG and not request.META.get('HTTP_REFERER', None): # return redirect('rent_intro')