--- a/src/hp/forms.py Sat Nov 24 15:21:04 2012 +0100
+++ b/src/hp/forms.py Mon Nov 26 17:01:05 2012 +0100
@@ -21,12 +21,12 @@
def __init__(self, *args, **kwargs):
super(VideoKCRelForm, self).__init__(*args, **kwargs)
- url = settings.LDT_API_URL + "contents/?limit=" + str(settings.LDT_MAX_FETCH)
- contents = get_all_objects(url, 'front_project')
+ url = settings.LDT_API_URL + "contents/"
+ contents = get_all_objects(url, {'limit':settings.LDT_MAX_FETCH}, 'front_project')
self.fields['iri_id'].widget.choices = [(content['iri_id'], content['title']) for content in contents]
- url = settings.LDT_API_URL + "projects/?state=2&limit=" + str(settings.LDT_MAX_FETCH)
- projects = get_all_objects(url, None)
+ url = settings.LDT_API_URL + "projects/"
+ projects = get_all_objects(url, {'state': 2, 'limit': settings.LDT_MAX_FETCH}, None)
logger.debug("projects " + repr(projects))
values = [(None, "-----")]
values.extend([(project['ldt_id'], project['title']) for project in projects])
--- a/src/hp/templates/hp/all_videos.html Sat Nov 24 15:21:04 2012 +0100
+++ b/src/hp/templates/hp/all_videos.html Mon Nov 26 17:01:05 2012 +0100
@@ -19,7 +19,7 @@
<!-- all videos -->
<div class="main row">
- <h2>{% trans 'All videos' %}</h2>
+ <h2>{% if search %}{% trans 'Results for:' %} {{search}}{% else %}{% trans 'All videos' %}{% endif %}</h2>
<div class="row">
{% for content in results %}
<div class="video">
@@ -45,7 +45,7 @@
<div class="pagination">
<span class="step-links">
{% if results.has_previous %}
- <a href="{% url hp.views.all_videos %}"><<</a> <a href="{% url hp.views.all_videos %}?page={{ results.previous_page_number }}"><</a>
+ <a href="{% url hp.views.all_videos %}{{search_param_first}}"><<</a> <a href="{% url hp.views.all_videos %}?page={{ results.previous_page_number }}{{search_param}}"><</a>
{% else %}
{{" "|safe}}
{% endif %}
@@ -53,7 +53,7 @@
{{ results.number }}/{{ results.paginator.num_pages }}
</span>
{% if results.has_next %}
- <a href="{% url hp.views.all_videos %}?page={{ results.next_page_number }}">></a> <a href="{% url hp.views.all_videos %}?page=last">>></a>
+ <a href="{% url hp.views.all_videos %}?page={{ results.next_page_number }}{{search_param}}">></a> <a href="{% url hp.views.all_videos %}?page=last{{search_param}}">>></a>
{% else %}
{{" "|safe}}
{% endif %}
--- a/src/hp/utils.py Sat Nov 24 15:21:04 2012 +0100
+++ b/src/hp/utils.py Mon Nov 26 17:01:05 2012 +0100
@@ -23,11 +23,11 @@
return pr.geturl()
-def get_all_objects(res_url, field_filter):
+def get_all_objects(res_url, request_params, field_filter):
objects = []
url = res_url
while url:
- r = requests.get(url)
+ r = requests.get(url, params=request_params)
if r.status_code != requests.codes.ok: #@UndefinedVariable
logger.error("Error when requesting objects " + repr(r.status_code) + " : " + repr(r.text))
break
--- a/src/hp/views.py Sat Nov 24 15:21:04 2012 +0100
+++ b/src/hp/views.py Mon Nov 26 17:01:05 2012 +0100
@@ -20,10 +20,18 @@
def all_videos(request):
- url = settings.LDT_API_URL + "contents/?limit=" + str(settings.LDT_MAX_FETCH)
+ url = "%scontents/" % (settings.LDT_API_URL)
+
+ request_params = {'limit' : settings.LDT_MAX_FETCH, 'order_by': 'title'}
+
+ search = request.REQUEST.get("search", None)
+ if search:
+ search = search.strip()
+ request_params['title__icontains'] = search
#pagination TODO : implement a lazy loader
- contents = get_all_objects(url, 'front_project')
+ contents = get_all_objects(url, request_params, 'front_project')
+
for content in contents:
url_parts = urlparse.urlparse(content.get('image',''))
if not url_parts.netloc:
@@ -42,8 +50,15 @@
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))
+
+ if search:
+ search_param = "&search=%s" % search
+ search_param_first = "?search=%s" % search
+ else:
+ search_param = ""
+ search_param_first = ""
+
+ return render_to_response('hp/all_videos.html',{'results':results, 'search': search, 'search_param': search_param, 'search_param_first': search_param_first}, context_instance=RequestContext(request))
def show_video_details(request, content_id):
Binary file virtualenv/res/src/ldt-1.33.tar.gz has changed