add arrows and search management with pictures.
--- a/src/egonomy/templates/egonomy_annotate_picture.html Mon Jul 01 17:38:34 2013 +0200
+++ b/src/egonomy/templates/egonomy_annotate_picture.html Tue Jul 02 13:16:00 2013 +0200
@@ -5,14 +5,20 @@
{% block title %}{% trans "Annotate a picture" %}{% endblock %}
+{% block css_page %}
+ <link rel="stylesheet" href="{% static 'egonomy/css/slideshow.css' %}" />
+{% endblock %}
+
{% block content %}
<div class="title-page">
<h2>{{ img.metadata.titre|default:_("No title") }}</h2>
</div>
<div class="bar-tools clearfix">
<ul class="clearfix left">
- <li><a class="go-to mosaic" href="#"></a></li>
- <li><a class="go-to search" href="#"></a></li>
+ <!--li><a class="go-to mosaic" href="#"></a></li-->
+ {% if search %}
+ <li><a class="go-to search" href="{% url 'all_pictures' %}?search={{ search }}"></a></li>
+ {% endif %}
</ul>
<ul class="clearfix">
<li>
@@ -53,12 +59,16 @@
{% endif %}
{% endwith %}
</div>
- <!--div class="arrow-wrap left-arrow">
- <a class="arrow" href="#"></a>
+ {% if search %}
+ {% if index_search|add:1 > 1 %}{# i know it's weird but "if index_search > 0" doesn't work #}
+ <div class="arrow-wrap left-arrow">
+ <a class="arrow" href="{% url 'picture_by_search' %}?search={{ search }}&index_search={{ index_search|add:-1 }}"></a>
</div>
+ {% endif %}
<div class="arrow-wrap right-arrow">
- <a class="arrow" href="#"></a>
- </div-->
+ <a class="arrow" href="{% url 'picture_by_search' %}?search={{ search }}&index_search={{ index_search|add:1 }}"></a>
+ </div>
+ {% endif %}
<ul class="share">
<li><a title="Partager sur Twitter" href="#" class="tool twitter"></a></li>
<li><a title="Partager sur Facebook" href="#" class="tool facebook"></a></li>
@@ -94,7 +104,7 @@
<h3>{% trans "Keywords" %} :</h3>
<ul class="list-key-search list-keywords clearfix">
{% for t in img.metadata.tag_list %}
- {% if t != "" %}<li><a class="box-shadow-2" href="#">{{ t }}</a></li>{% endif %}
+ {% if t != "" %}<li><a class="box-shadow-2" href='{% url "all_pictures" %}?field=all&search="{{ t }}"'>{{ t }}</a></li>{% endif %}
{% endfor %}
</ul>
</div>
--- a/src/egonomy/templates/egonomy_create_fragment.html Mon Jul 01 17:38:34 2013 +0200
+++ b/src/egonomy/templates/egonomy_create_fragment.html Tue Jul 02 13:16:00 2013 +0200
@@ -14,10 +14,6 @@
<h2><a href="{% url 'annotate_picture' image_id=img.id %}">{{ img.metadata.titre|default:_("No title") }}</a> <span class="fs-normal">/ {% if frg_to_modify %}{{ frg_data.title }}{% else %}{% trans 'New fragment' %}{% endif %}</span></h2>
</div>
<div class="bar-tools clearfix">
- <ul class="clearfix left">
- <li><a class="go-to mosaic" href="#"></a></li>
- <li><a class="go-to search" href="#"></a></li>
- </ul>
<ul class="clearfix">
<li><a title="{% trans 'Erase the drawing' %}" href="#" class="fs-15 clear-fragment">×</a></li>
<li><a title="{% trans 'Back to the original drawing' %}" href="#" class="fs-15 reset-fragment">↺</a></li>
--- a/src/egonomy/templates/egonomy_view_fragment.html Mon Jul 01 17:38:34 2013 +0200
+++ b/src/egonomy/templates/egonomy_view_fragment.html Tue Jul 02 13:16:00 2013 +0200
@@ -11,8 +11,10 @@
</div>
<div class="bar-tools clearfix">
<ul class="clearfix left">
- <li><a class="go-to mosaic" href="#"></a></li>
- <li><a class="go-to search" href="#"></a></li>
+ <!--li><a class="go-to mosaic" href="#"></a></li-->
+ {% if search %}
+ <li><a class="go-to search" href="{% url 'all_fragments' %}?search={{ search }}"></a></li>
+ {% endif %}
</ul>
<ul class="clearfix">
{% ifequal user fragment.author %}
@@ -139,7 +141,7 @@
<td>
<ul class="list-key-search no-before list-keywords clearfix">
{% for t in fragment.tag_list %}
- {% if t != "" %}<li><a data-tag="{{ t }}" class="box-shadow-2" href="#">{{ t }}</a></li>{% endif %}
+ {% if t != "" %}<li><a data-tag="{{ t }}" class="box-shadow-2" href='{% url "all_fragments" %}?field=all&search="{{ t }}"'>{{ t }}</a></li>{% endif %}
{% endfor %}
</ul>
</td>
--- a/src/egonomy/templates/partial/image_in_list.html Mon Jul 01 17:38:34 2013 +0200
+++ b/src/egonomy/templates/partial/image_in_list.html Tue Jul 02 13:16:00 2013 +0200
@@ -2,7 +2,7 @@
{% load i18n %}
{% load thumbnail %}
{# we suppose here that "img" has been defined #}
-<a href="{% url 'annotate_picture' image_id=img.id %}">
+<a href="{% url 'annotate_picture' image_id=img.id %}{% if search %}?search={{ search }}&index_search={{ offset_search|add:forloop.counter0 }}{% endif %}">
<div class="center-image">
{% with img.info.image_file as image %}
{% if image %}
--- a/src/egonomy/urls.py Mon Jul 01 17:38:34 2013 +0200
+++ b/src/egonomy/urls.py Tue Jul 02 13:16:00 2013 +0200
@@ -26,6 +26,7 @@
url(r'^viewcollection/(?P<collection_pk>.*)/$', 'egonomy.views.view_collection', name='view_collection'),
url(r'^additem/$', 'egonomy.views.add_item_to_collection', name='add_item'),
url(r'^embedslideshow/(?P<collection_pk>.*)/$', 'egonomy.views.embed_slideshow', name='embed_slideshow'),
+ url(r'^picturebysearch/$', 'egonomy.views.picture_by_search', name='picture_by_search'),
# Uncomment the admin/doc line below to enable admin documentation:
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
--- a/src/egonomy/views.py Mon Jul 01 17:38:34 2013 +0200
+++ b/src/egonomy/views.py Tue Jul 02 13:16:00 2013 +0200
@@ -52,8 +52,13 @@
if len(frg_list)>0:
last_frg = frg_list[0]
+ # If we display the picture after a search, we propose the previous and next picture
+ search = request.GET.get("search") or None
+ index_search = request.GET.get("index_search") or None
+
return render_to_response("egonomy_annotate_picture.html",
{'img': img, 'fragment_list': frg_list, 'last_frg':last_frg,
+ 'search': search, 'index_search': index_search,
'current_user_collection_list':current_user_collection_list(request)},
context_instance=RequestContext(request))
@@ -153,15 +158,47 @@
results = paginator.page(paginator.num_pages)
url_pagination = reverse("all_pictures") + "?limit=" + str(nb)
+ offset_search = None
if search:
url_pagination = url_pagination + "&search=" + search
+ offset_search = int(nb) * (cur_page_nb-1)
return render_to_response("egonomy_all_pictures.html",
- {'results':results, 'nb_pages':paginator.num_pages, 'cur_page_nb':cur_page_nb, "search":search, "nb_results":nb_results, "url_pagination":url_pagination,
+ {'results':results, 'nb_pages':paginator.num_pages, 'cur_page_nb':cur_page_nb, "search":search, "nb_results":nb_results,
+ "url_pagination":url_pagination, "offset_search":offset_search,
'current_user_collection_list':current_user_collection_list(request)},
context_instance=RequestContext(request))
+def picture_by_search(request):
+
+ # We get the picture in the context of a search
+ index_search = request.GET.get("index_search") or None
+ if not index_search:
+ redirect("home")
+ else:
+ index_search = int(index_search)
+
+ search = None
+ if "search" in request.GET:
+ search = request.GET["search"]
+ field = "all"
+ if "field" in request.GET:
+ field = request.GET["field"]
+
+ img_list = Image.objects.select_related('info', 'metadata')
+ if search:
+ if not field or field == 'all':
+ field = 'text'
+ qp = QueryParser(field)
+ res = ModelRelatedSearchQuerySet(model=Image).filter(qp.parse(search)).models(ImageMetadata).load_all_queryset(Image, img_list).load_all()
+ img = res[index_search]
+ return redirect(reverse("annotate_picture", args=[img.pk]) + "?search=" + search + "&index_search=" + str(index_search))
+ else:
+ redirect("home")
+
+
+
def all_fragments(request):
# Get the cur_page_nb number parameter if possible