def list_coins(request): id = int(request.session.get('id', 0)) paginator = request.GET.get('page', 1) if (request.GET.has_key("clear")): request.session["country"]=-1 request.session["metal"]=-1 request.session["seria"]=-1 request.session["denomination"]="" request.session["coinage"]="" request.session["page"]=0 request.session["order1_name"]="" request.session["order1_how"]="" request.session["order2_name"]="" request.session["order2_how"]="" request.session["order3_name"]="" request.session["order3_how"]="" country = FromGet(request,int,"country",-1) metal = FromGet(request,int,"metal",-1) seria = FromGet(request,int,"seria",-1) denomination = FromGet(request,unicode,"denomination","") coinage = FromGet(request,int,"coinage","") page=FromGet(request,int,"page",0) if id: try: catalogue = User_Catalogue.objects.get(id=id) except User_Catalogue.DoesNotExist: raise Http404 coins = catalogue.coins.all() else: coins=Short_Coin.objects.all() if (country>-1): coins=coins.filter(country=country) if (metal>-1): coins=coins.filter(metal=metal) if (seria>-1): coins=coins.filter(seria=seria) if (denomination!=''): coins=coins.filter(denomination__icontains=denomination) if (coinage!=''): coins=coins.filter(years_of_coinage__first_year__lte=coinage,years_of_coinage__last_year__gte=coinage).distinct() order1_name=FromGet(request,unicode,"order1_name","") order1_how=FromGet(request,unicode,"order1_how","") order2_name=FromGet(request,unicode,"order2_name","") order2_how=FromGet(request,unicode,"order2_how","") order3_name=FromGet(request,unicode,"order3_name","") order3_how=FromGet(request,unicode,"order3_how","") s="coins=coins.order_by(" f=0 if (order1_name!=""): s+="'"+order1_how+order1_name+"'" f=1 if (order2_name!=""): if f: s+="," s+="'"+order2_how+order2_name+"'" f=1 if (order3_name!=""): if f: s+="," s+="'"+order3_how+order3_name+"'" f=1 s+=")" if (f): exec(s) else: coins=coins.order_by("id") view='catalogue/catalogue.html' settings = get_user_settings(request.user) if (settings.catalogue=='T'): view='catalogue/cataloguelist.html' paginator = Paginator(coins, 10).page(int(paginator)) if coins.count(): coins = coins[paginator.start_index()-1:paginator.end_index()] return render_to_response(view,{'coins':coins, 'user':request.user,\ 'profile':settings, 'page':paginator, 'id':id})