web/hdabo/views.py
changeset 73 83695a58e4d6
parent 72 ba8ebabbaece
parent 71 579ac2e2789a
child 85 2ff78b3ac007
--- a/web/hdabo/views.py	Fri Jul 08 12:03:07 2011 +0200
+++ b/web/hdabo/views.py	Fri Jul 08 12:09:59 2011 +0200
@@ -183,7 +183,7 @@
 
 
 @login_required
-def all_tags(request, num_page=None, nb_by_page=None, searched=None):
+def all_tags(request, num_page=None, nb_by_page=None, alpha="false", searched=None):
     
     # If the view is asked after a form sent with post vars, it means that searched is a post var.
     if u"searched" in request.POST :
@@ -192,7 +192,7 @@
         num_page = 1
     
     # Get paginator and current page 
-    current_page, p, num_page, nb_by_page = get_current_page(num_page, nb_by_page, searched)
+    current_page, p, num_page, nb_by_page = get_current_page(num_page, nb_by_page, alpha, searched)
     
     prev_page = max(num_page - 1, 1)
     next_page = min(num_page + 1, p.num_pages)
@@ -218,7 +218,7 @@
                                'prev_page':prev_page, 'next_page':next_page, 'last_page':last_page,
                                'num_page':num_page, 'nb_by_page':nb_by_page, 'searched':searched,
                                'categories':json.dumps(get_categories()),
-                               'search_def':search_def, 'searched':searched},
+                               'search_def':search_def, 'alpha':alpha},
                               context_instance=RequestContext(request))
     
 
@@ -267,16 +267,16 @@
 
 
 @login_required
-def get_all_tags_table(request, num_page=None, nb_by_page=None, searched=None):
+def get_all_tags_table(request, num_page=None, nb_by_page=None, alpha="false", searched=None):
     
-    current_page, p, num_page, nb_by_page = get_current_page(num_page, nb_by_page, searched) #@UnusedVariable
+    current_page, p, num_page, nb_by_page = get_current_page(num_page, nb_by_page, alpha, searched) #@UnusedVariable
     
     return render_to_response("partial/all_tags_table.html",
-                              {'tags':current_page.object_list},
+                              {'tags':current_page.object_list, 'nb_by_page':nb_by_page, 'searched':searched},
                               context_instance=RequestContext(request))
 
 
-def get_current_page(num_page=None, nb_by_page=None, searched=None):
+def get_current_page(num_page=None, nb_by_page=None, alpha="false", searched=None):
     
     base_queryset = Tag.objects
     
@@ -285,7 +285,12 @@
         regex = "^%s$" % (re.escape(searched).replace(re.escape(settings.SEARCH_STAR_CHARACTER),".*"))
         base_queryset = base_queryset.filter(normalized_label__iregex=regex)
 
-    alltags = base_queryset.annotate(num_ds=Count('datasheet')).order_by('-popularity','-num_ds','normalized_label', 'label')
+    alltags = base_queryset.annotate(num_ds=Count('datasheet'))
+    if alpha and (alpha=="true" or alpha=="1") :
+        alltags = alltags.order_by('normalized_label', 'label')
+    else :
+        alltags = alltags.order_by('-popularity','-num_ds', 'normalized_label', 'label')
+    #alltags = alltags.order_by('-popularity','label')
     
     # We build the paginator for the requested list
     if nb_by_page :
@@ -359,7 +364,7 @@
         if old_pageid != pageid:
             TaggedSheet.objects.filter(tag=tag).update(wikipedia_revision_id=revision_id)
     
-    return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"], searched=request.POST["searched"])
+    return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"], alpha=request.POST["alpha"], searched=request.POST["searched"])
 
 
 @login_required
@@ -420,7 +425,7 @@
     if u"datasheet_id" in request.POST :
         return get_tag_table(request=request, ds_id=request.POST["datasheet_id"], valid=0)
     else :
-        return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"], searched=request.POST["searched"])
+        return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"], alpha=request.POST["alpha"], searched=request.POST["searched"])
 
 
 @login_required
@@ -477,7 +482,7 @@
     if u"datasheet_id" in request.POST :
         return get_tag_table(request=request, ds_id=request.POST["datasheet_id"], valid=0)
     else :
-        return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"], searched=request.POST["searched"])
+        return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"], alpha=request.POST["alpha"], searched=request.POST["searched"])
 
 
 @login_required
@@ -523,7 +528,7 @@
     if u"datasheet_id" in request.POST :
         return get_tag_table(request=request, ds_id=request.POST["datasheet_id"], valid=0)
     else :
-        return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"], searched=request.POST["searched"])
+        return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"], alpha=request.POST["alpha"], searched=request.POST["searched"])
     
 
 def get_categories():
@@ -549,7 +554,7 @@
     if u"datasheet_id" in request.POST :
         return get_tag_table(request=request, ds_id=request.POST["datasheet_id"], valid=0)
     else :
-        return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"], searched=request.POST["searched"])
+        return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"], alpha=request.POST["alpha"], searched=request.POST["searched"])
     
 @login_required
 def reorder_tag_datasheet(request):