3 Created on Nov 11, 2012 |
3 Created on Nov 11, 2012 |
4 |
4 |
5 @author: ymh |
5 @author: ymh |
6 ''' |
6 ''' |
7 from django.conf import settings |
7 from django.conf import settings |
|
8 from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage |
|
9 from django.http import HttpResponse |
8 from django.shortcuts import render_to_response |
10 from django.shortcuts import render_to_response |
9 from django.template.context import RequestContext |
11 from django.template.context import RequestContext |
10 from django.http import HttpResponse |
|
11 from hp.models import VideoKCRel |
12 from hp.models import VideoKCRel |
|
13 from hp.utils import get_all_objects |
12 import logging |
14 import logging |
13 import requests |
15 import requests |
14 import urlparse |
16 import urlparse |
15 |
17 |
16 logger = logging.getLogger(__name__) |
18 logger = logging.getLogger(__name__) |
17 |
19 |
18 |
20 |
19 def all_videos(request): |
21 def all_videos(request): |
20 |
22 |
21 #get all videos |
23 url = settings.LDT_API_URL + "contents/?limit=" + str(settings.LDT_MAX_FETCH) |
22 #render |
24 |
23 url = settings.LDT_API_URL + "contents/" |
25 #pagination TODO : implement a lazy loader |
24 #limit=20&offset=20 |
26 contents = get_all_objects(url, 'front_project') |
25 r = requests.get(url) |
27 for content in contents: |
26 |
|
27 |
|
28 |
|
29 results = r.json |
|
30 |
|
31 for content in results.get('objects', []): |
|
32 url_parts = urlparse.urlparse(content.get('image','')) |
28 url_parts = urlparse.urlparse(content.get('image','')) |
33 if not url_parts.netloc: |
29 if not url_parts.netloc: |
34 content['image'] = settings.LDT_DOMAIN + content.get('image','') |
30 content['image'] = settings.LDT_DOMAIN + content.get('image','') |
|
31 |
|
32 paginator = Paginator(contents, settings.PER_PAGE, 0, True) |
|
33 |
|
34 page = request.GET.get('page',1) |
|
35 if page == 'last': |
|
36 page = paginator.num_pages |
|
37 try: |
|
38 results = paginator.page(page) |
|
39 except PageNotAnInteger: |
|
40 # If page is not an integer, deliver first page. |
|
41 results = paginator.page(1) |
|
42 except EmptyPage: |
|
43 # If page is out of range (e.g. 9999), deliver last page of results. |
|
44 results = paginator.page(paginator.num_pages) |
35 |
45 |
36 return render_to_response('hp/all_videos.html',{'results':results}, context_instance=RequestContext(request)) |
46 return render_to_response('hp/all_videos.html',{'results':results}, context_instance=RequestContext(request)) |
37 |
47 |
38 |
48 |
39 def show_video_details(request, content_id): |
49 def show_video_details(request, content_id): |