src/egonomy/views.py
changeset 212 2cca82dd0e79
parent 211 35aca8206b40
child 213 6655617f3d92
equal deleted inserted replaced
211:35aca8206b40 212:2cca82dd0e79
    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