Binary file web/hdabo/static/hdabo/img/sort-asc.png has changed
Binary file web/hdabo/static/hdabo/img/sort-desc.png has changed
--- a/web/hdabo/templates/all_tags.html Mon Jul 11 18:19:45 2011 +0200
+++ b/web/hdabo/templates/all_tags.html Tue Jul 12 02:34:19 2011 +0200
@@ -56,46 +56,46 @@
{% csrf_token %}
<p>Chercher :
{% for s in search_def %}
- <a href="{% url hdabo.views.all_tags num_page=1, nb_by_page=nb_by_page, alpha=alpha, searched=s.1 %}">{{s.0}}</a>
+ <a href="{% url hdabo.views.all_tags num_page=1, nb_by_page=nb_by_page, sort=sort, searched=s.1 %}">{{s.0}}</a>
{% endfor %}
<input type="text" name="searched" value="{% if searched %}{{searched}}{% endif %}" id="searched" />
</p>
<p>Tags {{ current_page.start_index }} à {{ current_page.end_index }} sur {{ nb_total }}</p>
<div id="count_nav_top"><p>
{% if searched and searched != "" %}
- <a href="{% url hdabo.views.all_tags num_page=1, nb_by_page=nb_by_page, alpha=alpha, searched=searched %}"><<</a>
- <a href="{% url hdabo.views.all_tags num_page=prev_page, nb_by_page=nb_by_page, alpha=alpha, searched=searched %}"><</a>
+ <a href="{% url hdabo.views.all_tags num_page=1, nb_by_page=nb_by_page, sort=sort, searched=searched %}"><<</a>
+ <a href="{% url hdabo.views.all_tags num_page=prev_page, nb_by_page=nb_by_page, sort=sort, searched=searched %}"><</a>
{{ num_page }}/{{ last_page }}
- <a href="{% url hdabo.views.all_tags num_page=next_page, nb_by_page=nb_by_page, alpha=alpha, searched=searched %}">></a>
- <a href="{% url hdabo.views.all_tags num_page=last_page, nb_by_page=nb_by_page, alpha=alpha, searched=searched %}">>></a></p>
+ <a href="{% url hdabo.views.all_tags num_page=next_page, nb_by_page=nb_by_page, sort=sort, searched=searched %}">></a>
+ <a href="{% url hdabo.views.all_tags num_page=last_page, nb_by_page=nb_by_page, sort=sort, searched=searched %}">>></a></p>
{% else %}
- <a href="{% url hdabo.views.all_tags num_page=1, nb_by_page=nb_by_page, alpha=alpha %}"><<</a>
- <a href="{% url hdabo.views.all_tags num_page=prev_page, nb_by_page=nb_by_page, alpha=alpha %}"><</a>
+ <a href="{% url hdabo.views.all_tags num_page=1, nb_by_page=nb_by_page, sort=sort %}"><<</a>
+ <a href="{% url hdabo.views.all_tags num_page=prev_page, nb_by_page=nb_by_page, sort=sort %}"><</a>
{{ num_page }}/{{ last_page }}
- <a href="{% url hdabo.views.all_tags num_page=next_page, nb_by_page=nb_by_page, alpha=alpha %}">></a>
- <a href="{% url hdabo.views.all_tags num_page=last_page, nb_by_page=nb_by_page, alpha=alpha %}">>></a>
+ <a href="{% url hdabo.views.all_tags num_page=next_page, nb_by_page=nb_by_page, sort=sort %}">></a>
+ <a href="{% url hdabo.views.all_tags num_page=last_page, nb_by_page=nb_by_page, sort=sort %}">>></a>
{% endif %}</p>
</div>
<input type="hidden" name="num_page" value="{{num_page}}" id="num_page" />
<input type="hidden" name="nb_by_page" value="{{nb_by_page}}" id="nb_by_page" />
<input type="hidden" name="searched_str" value="{% if searched %}{{searched}}{% endif %}" id="searched_str" />
- <input type="hidden" name="alpha" value="{% if alpha %}{{alpha}}{% endif %}" id="alpha" />
+ <input type="hidden" name="sort" value="{% if sort %}{{sort}}{% endif %}" id="sort" />
<div id="tag_table_container">
{% include "partial/all_tags_table.html" %}
</div>
<div id="count_nav_bottom"><p>
{% if searched and searched != "" %}
- <a href="{% url hdabo.views.all_tags num_page=1, nb_by_page=nb_by_page, alpha=alpha, searched=searched %}"><<</a>
- <a href="{% url hdabo.views.all_tags num_page=prev_page, nb_by_page=nb_by_page, alpha=alpha, searched=searched %}"><</a>
+ <a href="{% url hdabo.views.all_tags num_page=1, nb_by_page=nb_by_page, sort=sort, searched=searched %}"><<</a>
+ <a href="{% url hdabo.views.all_tags num_page=prev_page, nb_by_page=nb_by_page, sort=sort, searched=searched %}"><</a>
{{ num_page }}/{{ last_page }}
- <a href="{% url hdabo.views.all_tags num_page=next_page, nb_by_page=nb_by_page, alpha=alpha, searched=searched %}">></a>
- <a href="{% url hdabo.views.all_tags num_page=last_page, nb_by_page=nb_by_page, alpha=alpha, searched=searched %}">>></a></p>
+ <a href="{% url hdabo.views.all_tags num_page=next_page, nb_by_page=nb_by_page, sort=sort, searched=searched %}">></a>
+ <a href="{% url hdabo.views.all_tags num_page=last_page, nb_by_page=nb_by_page, sort=sort, searched=searched %}">>></a></p>
{% else %}
- <a href="{% url hdabo.views.all_tags num_page=1, nb_by_page=nb_by_page, alpha=alpha %}"><<</a>
- <a href="{% url hdabo.views.all_tags num_page=prev_page, nb_by_page=nb_by_page, alpha=alpha %}"><</a>
+ <a href="{% url hdabo.views.all_tags num_page=1, nb_by_page=nb_by_page, sort=sort %}"><<</a>
+ <a href="{% url hdabo.views.all_tags num_page=prev_page, nb_by_page=nb_by_page, sort=sort %}"><</a>
{{ num_page }}/{{ last_page }}
- <a href="{% url hdabo.views.all_tags num_page=next_page, nb_by_page=nb_by_page, alpha=alpha %}">></a>
- <a href="{% url hdabo.views.all_tags num_page=last_page, nb_by_page=nb_by_page, alpha=alpha %}">>></a>
+ <a href="{% url hdabo.views.all_tags num_page=next_page, nb_by_page=nb_by_page, sort=sort %}">></a>
+ <a href="{% url hdabo.views.all_tags num_page=last_page, nb_by_page=nb_by_page, sort=sort %}">>></a>
{% endif %}</p>
</div>
{% endblock %}
--- a/web/hdabo/templates/partial/all_tags_table.html Mon Jul 11 18:19:45 2011 +0200
+++ b/web/hdabo/templates/partial/all_tags_table.html Tue Jul 12 02:34:19 2011 +0200
@@ -2,13 +2,13 @@
<table id="all_tags_table">
<tr><th>id</th>
<th>
- {% if alpha != "true" and alpha != "1" %}
+ {% if sort|slice:"1:" != "lab" %}
{% if searched and searched != "" %}
- <a href="{% url hdabo.views.all_tags num_page='1', nb_by_page=nb_by_page, alpha='true', searched=searched %}">label</a>
+ <a href="{% url hdabo.views.all_tags num_page='1', nb_by_page=nb_by_page, sort='+lab', searched=searched %}">label</a>
{% else %}
- <a href="{% url hdabo.views.all_tags num_page='1', nb_by_page=nb_by_page, alpha='true' %}">label</a>
+ <a href="{% url hdabo.views.all_tags num_page='1', nb_by_page=nb_by_page, sort='+lab' %}">label</a>
{% endif %}
- {% else %}label{% endif %}
+ {% else %}label{% endif %} <a href="{% url hdabo.views.all_tags num_page='1', nb_by_page=nb_by_page, sort=reverse_sort %}"><img src="{{STATIC_URL}}hdabo/img/sort-{% if sort|first == '+' %}asc{% else %}desc{% endif %}.png"/></a>
</th>
<th>original_label</th>
<th class="text_centered">Lien W</th>
@@ -18,13 +18,13 @@
<th>Alias</th>
<th class="text_centered">Nb de<br/>fiches</th>
<th>
- {% if alpha == "true" or alpha == "1" %}
+ {% if sort|slice:"1:" != "pop" %}
{% if searched and searched != "" %}
- <a href="{% url hdabo.views.all_tags num_page='1', nb_by_page=nb_by_page, alpha='false', searched=searched %}">Popularité</a>
+ <a href="{% url hdabo.views.all_tags num_page='1', nb_by_page=nb_by_page, sort='+pop', searched=searched %}">Popularité</a>
{% else %}
- <a href="{% url hdabo.views.all_tags num_page='1', nb_by_page=nb_by_page, alpha='false' %}">Popularité</a>
+ <a href="{% url hdabo.views.all_tags num_page='1', nb_by_page=nb_by_page, sort='+pop' %}">Popularité</a>
{% endif %}
- {% else %}Popularité{% endif %}
+ {% else %}Popularité{% endif %} <a href="{% url hdabo.views.all_tags num_page='1', nb_by_page=nb_by_page, sort=reverse_sort %}"><img src="{{STATIC_URL}}hdabo/img/sort-{% if sort|first == '+' %}asc{% else %}desc{% endif %}.png"/></a>
</th></tr>
{% for tag in tags %}
<tr class="imageline {% cycle 'hdabooddline' 'hdaboevenline' %}">
--- a/web/hdabo/urls.py Mon Jul 11 18:19:45 2011 +0200
+++ b/web/hdabo/urls.py Tue Jul 12 02:34:19 2011 +0200
@@ -36,8 +36,8 @@
url(r'^alltags$', 'hdabo.views.all_tags'),
url(r'^alltags/(?P<num_page>[\w-]+)$', 'hdabo.views.all_tags'),
url(r'^alltags/(?P<num_page>[\w-]+)/(?P<nb_by_page>[\w-]+)/$', 'hdabo.views.all_tags'),
- url(r'^alltags/(?P<num_page>[\w-]+)/(?P<nb_by_page>[\w-]+)/(?P<alpha>[\w-]+)/$', 'hdabo.views.all_tags'),
- url(r'^alltags/(?P<num_page>[\w-]+)/(?P<nb_by_page>[\w-]+)/(?P<alpha>[\w-]+)/(?P<searched>.+)/$', 'hdabo.views.all_tags'),
+ url(r'^alltags/(?P<num_page>[\w-]+)/(?P<nb_by_page>[\w-]+)/(?P<sort>[+-][\w]+)/$', 'hdabo.views.all_tags'),
+ url(r'^alltags/(?P<num_page>[\w-]+)/(?P<nb_by_page>[\w-]+)/(?P<sort>[+-][\w]+)/(?P<searched>.+)/$', 'hdabo.views.all_tags'),
url(r'^validatedatasheet$', 'hdabo.views.validate_datasheet'),
url(r'^validatedatasheet/(?P<ds_id>[\w-]+)$', 'hdabo.views.validate_datasheet'),
url(r'^validatedatasheet/(?P<ds_id>[\w-]+)/(?P<valid>[\w-]+)/$', 'hdabo.views.validate_datasheet'),
--- a/web/hdabo/views.py Mon Jul 11 18:19:45 2011 +0200
+++ b/web/hdabo/views.py Tue Jul 12 02:34:19 2011 +0200
@@ -183,7 +183,7 @@
@login_required
-def all_tags(request, num_page=None, nb_by_page=None, alpha="false", searched=None):
+def all_tags(request, num_page=None, nb_by_page=None, sort="+pop", 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, alpha, searched)
+ current_page, p, num_page, nb_by_page = get_current_page(num_page, nb_by_page, sort, searched)
prev_page = max(num_page - 1, 1)
next_page = min(num_page + 1, p.num_pages)
@@ -212,13 +212,14 @@
cursor.close()
search_def = tuple([(c, urlquote(c + settings.SEARCH_STAR_CHARACTER)) for c in fl_list])
+ reverse_sort = ("-" if sort[0] == "+" else "+") + sort[1:]
return render_to_response("all_tags.html",
{'nb_total':p.count, 'tags':current_page.object_list, 'current_page':current_page,
'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, 'alpha':alpha},
+ 'search_def':search_def, 'sort':sort, 'reverse_sort': reverse_sort},
context_instance=RequestContext(request))
@@ -267,16 +268,17 @@
@login_required
-def get_all_tags_table(request, num_page=None, nb_by_page=None, alpha="false", searched=None):
+def get_all_tags_table(request, num_page=None, nb_by_page=None, sort="+pop", searched=None):
- current_page, p, num_page, nb_by_page = get_current_page(num_page, nb_by_page, alpha, searched) #@UnusedVariable
+ current_page, p, num_page, nb_by_page = get_current_page(num_page, nb_by_page, sort, searched) #@UnusedVariable
+ reverse_sort = ("-" if sort[0] == "+" else "+") + sort[1:]
return render_to_response("partial/all_tags_table.html",
- {'tags':current_page.object_list, 'nb_by_page':nb_by_page, 'searched':searched},
+ {'tags':current_page.object_list, 'nb_by_page':nb_by_page, 'searched':searched, 'sort': sort, 'reverse_sort': reverse_sort},
context_instance=RequestContext(request))
-def get_current_page(num_page=None, nb_by_page=None, alpha="false", searched=None):
+def get_current_page(num_page=None, nb_by_page=None, sort="+pop", searched=None):
base_queryset = Tag.objects
@@ -286,11 +288,14 @@
base_queryset = base_queryset.filter(normalized_label__iregex=regex)
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')
+
+ alltags = {
+ "+lab" : alltags.order_by('normalized_label', 'label'),
+ "-lab" : alltags.order_by('-normalized_label', '-label'),
+ "+pop" : alltags.order_by('-popularity', '-num_ds', 'normalized_label', 'label'),
+ "-pop" : alltags.order_by('+popularity', '+num_ds', '-normalized_label', '-label'),
+ }.get(sort, alltags.order_by('-popularity', '-num_ds', 'normalized_label', 'label'))
+
# We build the paginator for the requested list
if nb_by_page :
@@ -367,7 +372,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"], alpha=request.POST["alpha"], 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"], sort=request.POST["sort"], searched=request.POST["searched"])
@login_required
@@ -431,7 +436,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"], alpha=request.POST["alpha"], 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"], sort=request.POST["sort"], searched=request.POST["searched"])
@login_required
@@ -491,7 +496,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"], alpha=request.POST["alpha"], 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"], sort=request.POST["sort"], searched=request.POST["searched"])
@login_required
@@ -537,7 +542,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"], alpha=request.POST["alpha"], 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"], sort=request.POST["sort"], searched=request.POST["searched"])
def get_categories():