Ejemplo n.º 1
0
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,
        },
    )
Ejemplo n.º 2
0
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))
Ejemplo n.º 3
0
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))
Ejemplo n.º 4
0
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},
    )