50 frg_list = list(Fragment.objects.filter(image=img).order_by('-date_saved').select_related('image', 'image__info', 'image__metadata','author')) |
50 frg_list = list(Fragment.objects.filter(image=img).order_by('-date_saved').select_related('image', 'image__info', 'image__metadata','author')) |
51 last_frg = None |
51 last_frg = None |
52 if len(frg_list)>0: |
52 if len(frg_list)>0: |
53 last_frg = frg_list[0] |
53 last_frg = frg_list[0] |
54 |
54 |
|
55 # If we display the picture after a search, we propose the previous and next picture |
|
56 search = request.GET.get("search") or None |
|
57 index_search = request.GET.get("index_search") or None |
|
58 |
55 return render_to_response("egonomy_annotate_picture.html", |
59 return render_to_response("egonomy_annotate_picture.html", |
56 {'img': img, 'fragment_list': frg_list, 'last_frg':last_frg, |
60 {'img': img, 'fragment_list': frg_list, 'last_frg':last_frg, |
|
61 'search': search, 'index_search': index_search, |
57 'current_user_collection_list':current_user_collection_list(request)}, |
62 'current_user_collection_list':current_user_collection_list(request)}, |
58 context_instance=RequestContext(request)) |
63 context_instance=RequestContext(request)) |
59 |
64 |
60 |
65 |
61 def view_fragment(request, fragment_pk): |
66 def view_fragment(request, fragment_pk): |
151 results = paginator.page(cur_page_nb) |
156 results = paginator.page(cur_page_nb) |
152 except (EmptyPage, InvalidPage): |
157 except (EmptyPage, InvalidPage): |
153 results = paginator.page(paginator.num_pages) |
158 results = paginator.page(paginator.num_pages) |
154 |
159 |
155 url_pagination = reverse("all_pictures") + "?limit=" + str(nb) |
160 url_pagination = reverse("all_pictures") + "?limit=" + str(nb) |
|
161 offset_search = None |
156 if search: |
162 if search: |
157 url_pagination = url_pagination + "&search=" + search |
163 url_pagination = url_pagination + "&search=" + search |
|
164 offset_search = int(nb) * (cur_page_nb-1) |
158 |
165 |
159 return render_to_response("egonomy_all_pictures.html", |
166 return render_to_response("egonomy_all_pictures.html", |
160 {'results':results, 'nb_pages':paginator.num_pages, 'cur_page_nb':cur_page_nb, "search":search, "nb_results":nb_results, "url_pagination":url_pagination, |
167 {'results':results, 'nb_pages':paginator.num_pages, 'cur_page_nb':cur_page_nb, "search":search, "nb_results":nb_results, |
|
168 "url_pagination":url_pagination, "offset_search":offset_search, |
161 'current_user_collection_list':current_user_collection_list(request)}, |
169 'current_user_collection_list':current_user_collection_list(request)}, |
162 context_instance=RequestContext(request)) |
170 context_instance=RequestContext(request)) |
|
171 |
|
172 |
|
173 def picture_by_search(request): |
|
174 |
|
175 # We get the picture in the context of a search |
|
176 index_search = request.GET.get("index_search") or None |
|
177 if not index_search: |
|
178 redirect("home") |
|
179 else: |
|
180 index_search = int(index_search) |
|
181 |
|
182 search = None |
|
183 if "search" in request.GET: |
|
184 search = request.GET["search"] |
|
185 field = "all" |
|
186 if "field" in request.GET: |
|
187 field = request.GET["field"] |
|
188 |
|
189 img_list = Image.objects.select_related('info', 'metadata') |
|
190 if search: |
|
191 if not field or field == 'all': |
|
192 field = 'text' |
|
193 qp = QueryParser(field) |
|
194 res = ModelRelatedSearchQuerySet(model=Image).filter(qp.parse(search)).models(ImageMetadata).load_all_queryset(Image, img_list).load_all() |
|
195 img = res[index_search] |
|
196 return redirect(reverse("annotate_picture", args=[img.pk]) + "?search=" + search + "&index_search=" + str(index_search)) |
|
197 else: |
|
198 redirect("home") |
|
199 |
163 |
200 |
164 |
201 |
165 def all_fragments(request): |
202 def all_fragments(request): |
166 |
203 |
167 # Get the cur_page_nb number parameter if possible |
204 # Get the cur_page_nb number parameter if possible |