--- a/src/hp/views.py Wed Nov 14 18:47:17 2012 +0100
+++ b/src/hp/views.py Thu Nov 15 04:11:59 2012 +0100
@@ -5,10 +5,12 @@
@author: ymh
'''
from django.conf import settings
+from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
+from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.template.context import RequestContext
-from django.http import HttpResponse
from hp.models import VideoKCRel
+from hp.utils import get_all_objects
import logging
import requests
import urlparse
@@ -18,20 +20,28 @@
def all_videos(request):
- #get all videos
- #render
- url = settings.LDT_API_URL + "contents/"
- #limit=20&offset=20
- r = requests.get(url)
-
-
-
- results = r.json
-
- for content in results.get('objects', []):
+ url = settings.LDT_API_URL + "contents/?limit=" + str(settings.LDT_MAX_FETCH)
+
+ #pagination TODO : implement a lazy loader
+ contents = get_all_objects(url, 'front_project')
+ for content in contents:
url_parts = urlparse.urlparse(content.get('image',''))
if not url_parts.netloc:
content['image'] = settings.LDT_DOMAIN + content.get('image','')
+
+ paginator = Paginator(contents, settings.PER_PAGE, 0, True)
+
+ page = request.GET.get('page',1)
+ if page == 'last':
+ page = paginator.num_pages
+ try:
+ results = paginator.page(page)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ results = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range (e.g. 9999), deliver last page of results.
+ results = paginator.page(paginator.num_pages)
return render_to_response('hp/all_videos.html',{'results':results}, context_instance=RequestContext(request))