def subcategory_search(request, category_name, subcategory_id): if request.is_ajax(): return subcategory_search_json(request, category_name, subcategory_id) category_manager = _get_manager_for_category(category_name) if category_manager is None: raise Http404 category = category_manager.get(pk=subcategory_id) page_number = request.GET.get("page", 1) Category = namedtuple("Category", "name active url") page = paginate_video_set(category.video_set.all_approved(), page_number) if page is None: raise Http404 return render( request, "distance_learning/browse.html", { "categories": [ Category( name=unicode(category), url=reverse("dl-video-subcategory-search", args=(category_name, category.pk)), active=category.pk == int(subcategory_id), ) for category in category_manager.all() ], "videos": page, "pages": range(page.paginator.num_pages), category_name: True, }, )
def most_viewed_videos_json(request): """ A view returning a JSON encoded list of the most viewed videos. """ limit = request.GET.get("limit", None) page_number = request.GET.get("page", 1) page = paginate_video_set(Video.objects.get_most_viewed(limit=limit), page_number) return render_to_json_response(_build_response(page))
def subcategory_search_json(request, category_name, subcategory_id): category_manager = _get_manager_for_category(category_name) if category_manager is None: return render_to_json_response({"status": "fail", "message": "Category not found"}) category = category_manager.get(pk=subcategory_id) page_number = request.GET.get("page", 1) page = paginate_video_set(category.video_set.all_approved(), page_number) return render_to_json_response(_build_response(page))
def recent_videos(request): """ """ if request.is_ajax(): return recent_videos_json(request) limit = request.GET.get("limit", None) page_number = request.GET.get("page", 1) page = paginate_video_set(Video.objects.get_recent(limit=limit), page_number) if page is None: raise Http404 return render( request, "distance_learning/browse.html", {"videos": page, "pages": range(page.paginator.num_pages), "recent": True}, )