--- a/src/hdalab/settings.py Fri Sep 05 17:05:48 2014 +0200
+++ b/src/hdalab/settings.py Mon Sep 08 13:03:36 2014 +0200
@@ -153,6 +153,7 @@
SEARCH_STAR_CHARACTER = "*"
PAGINATION_DEFAULT_NB_BY_PAGE = 50
+RENKANS_PER_PAGE = 3
# User class after migration to django > 1.6.5
AUTH_USER_MODEL = 'hdabo.User'
--- a/src/hdalab/static/hdalab/css/profile.css Fri Sep 05 17:05:48 2014 +0200
+++ b/src/hdalab/static/hdalab/css/profile.css Mon Sep 08 13:03:36 2014 +0200
@@ -12,6 +12,9 @@
border-bottom:1pt solid #555;
padding: 5px;
}
+th a {
+ float: left;
+}
.renkan-basic-action{
float: left;
margin-right: 5px;
--- a/src/hdalab/templates/editorial/manage_renkans.html Fri Sep 05 17:05:48 2014 +0200
+++ b/src/hdalab/templates/editorial/manage_renkans.html Mon Sep 08 13:03:36 2014 +0200
@@ -13,24 +13,26 @@
<link rel="stylesheet" type="text/css" href="{% static 'hdalab/css/profile.css' %}" />
{% endblock %}
-{% block js_import %}
-{{block.super}}
- <script src="{% static 'hdalab/js/profile.js' %}"></script>
- <script src="{% static 'hdalab/lib/jquery.tablesorter.min.js' %}"></script>
- <script type="text/javascript">
- $(document).ready(function(){
- $("#rk-table").tablesorter({headers: { 3: { sorter: false }, 5: { sorter: false } }});
- });
- </script>
-{% endblock %}
-
{% block main_content %}
+ <p>{% if page.has_previous %}<a href="?page={{ page.previous_page_number }}&sort={{ sort_param }}&order={{ order_param }}" >{% trans 'Previous' %}</a>{% endif %}
+ {% if page.has_previous and page.has_next %} - {% endif %}{% if page.has_next %}<a href="?page={{ page.next_page_number }}&sort={{ sort_param }}&order={{ order_param }}">{% trans 'Next' %}</a>{% endif %}</p>
<table id="rk-table">
<thead>
- <tr class="border_bottom"><th>Nom</th><th>Utilisateur</th><th>Date de modification</th><th>Preview</th><th>Statut</th><th>Actions</th></tr>
+ <tr class="border_bottom">
+ <th><a class="" href="?sort=title&order={% if sort_param == 'title' %}{{ opposite }}{% else %}asc{% endif %}">{% trans 'Title' %}</a>
+ {% if sort_param == 'title' %}<span class="ui-icon {% if opposite == 'asc' %}ui-icon-triangle-1-s{% else %}ui-icon-triangle-1-n{% endif %}"></span>{% endif %}</th>
+ <th><a href="?sort=user&order={% if sort_param == 'user' %}{{ opposite }}{% else %}desc{% endif %}">{% trans 'User' %}</a>
+ {% if sort_param == 'user' %}<span class="ui-icon {% if opposite == 'asc' %}ui-icon-triangle-1-s{% else %}ui-icon-triangle-1-n{% endif %}"></span>{% endif %}</th>
+ <th><a href="?sort=date&order={% if sort_param == 'date' %}{{ opposite }}{% else %}desc{% endif %}">{% trans 'Modification date' %}</a>
+ {% if sort_param == 'date' %}<span class="ui-icon {% if opposite == 'asc' %}ui-icon-triangle-1-s{% else %}ui-icon-triangle-1-n{% endif %}"></span>{% endif %}</th>
+ <th>{% trans 'Preview' %}</th>
+ <th><a href="?sort=state&order={% if sort_param == 'state' %}{{ opposite }}{% else %}asc{% endif %}">{% trans 'State' %}</a>
+ {% if sort_param == 'state' %}<span class="ui-icon {% if opposite == 'asc' %}ui-icon-triangle-1-s{% else %}ui-icon-triangle-1-n{% endif %}"></span>{% endif %}</th>
+ <th>{% trans 'Actions' %}</th>
+ </tr>
</thead>
<tbody>
- {% for hr in renkan_list %}
+ {% for hr in page.object_list %}
{% with hr.renkan as r %}
<tr class="border_bottom">
<td>{{ r.title }}</td>
@@ -49,4 +51,6 @@
{% endfor %}
</tbody>
</table>
+ <p>{% if page.has_previous %}<a href="?page={{ page.previous_page_number }}&sort={{ sort_param }}&order={{ order_param }}" >{% trans 'Previous' %}</a>{% endif %}
+ {% if page.has_previous and page.has_next %} - {% endif %}{% if page.has_next %}<a href="?page={{ page.next_page_number }}&sort={{ sort_param }}&order={{ order_param }}">{% trans 'Next' %}</a>{% endif %}</p>
{% endblock %}
\ No newline at end of file
--- a/src/hdalab/templates/profile_home.html Fri Sep 05 17:05:48 2014 +0200
+++ b/src/hdalab/templates/profile_home.html Mon Sep 08 13:03:36 2014 +0200
@@ -13,18 +13,6 @@
<link rel="stylesheet" type="text/css" href="{% static 'hdalab/css/profile.css' %}" />
{% endblock %}
-{% block js_import %}
-{{block.super}}
- <script src="{% static 'hdalab/js/profile.js' %}"></script>
- <script src="{% static 'hdalab/lib/jquery.tablesorter.min.js' %}"></script>
- <script type="text/javascript">
- $(document).ready(function(){
- console.log("hi");
- $("#rk-table").tablesorter({headers: { 2: { sorter: false }, 4: { sorter: false } }});
- });
- </script>
-{% endblock %}
-
{% block profile_actif %}actif{% endblock %}
{% block main_content %}
@@ -32,12 +20,23 @@
<p><a href="{% url 'renkan_new' %}" >Nouveau Renkan</a> - <a href="{% url 'auth_password_change' %}">Modification du mot de passe</a></p>
<p> </p>
<p>Mes renkans : </p>
+ <p>{% if page.has_previous %}<a href="?page={{ page.previous_page_number }}&sort={{ sort_param }}&order={{ order_param }}" >{% trans 'Previous' %}</a>{% endif %}
+ {% if page.has_previous and page.has_next %} - {% endif %}{% if page.has_next %}<a href="?page={{ page.next_page_number }}&sort={{ sort_param }}&order={{ order_param }}">{% trans 'Next' %}</a>{% endif %}</p>
<table id="rk-table">
<thead>
- <tr class="border_bottom"><th>Nom</th><th>Date de modification</th><th>Preview</th><th>Statut</th><th>Actions</th></tr>
+ <tr class="border_bottom">
+ <th><a href="?sort=title&order={% if sort_param == 'title' %}{{ opposite }}{% else %}asc{% endif %}">{% trans 'Title' %}</a>
+ {% if sort_param == 'title' %}<span class="ui-icon {% if opposite == 'asc' %}ui-icon-triangle-1-s{% else %}ui-icon-triangle-1-n{% endif %}"></span>{% endif %}</th>
+ <th><a href="?sort=date&order={% if sort_param == 'date' %}{{ opposite }}{% else %}desc{% endif %}">{% trans 'Modification date' %}</a>
+ {% if sort_param == 'date' %}<span class="ui-icon {% if opposite == 'asc' %}ui-icon-triangle-1-s{% else %}ui-icon-triangle-1-n{% endif %}"></span>{% endif %}</th>
+ <th>{% trans 'Preview' %}</th>
+ <th><a href="?sort=state&order={% if sort_param == 'state' %}{{ opposite }}{% else %}asc{% endif %}">{% trans 'State' %}</a>
+ {% if sort_param == 'state' %}<span class="ui-icon {% if opposite == 'asc' %}ui-icon-triangle-1-s{% else %}ui-icon-triangle-1-n{% endif %}"></span>{% endif %}</th>
+ <th>{% trans 'Actions' %}</th>
+ </tr>
</thead>
<tbody>
- {% for hr in renkan_list %}
+ {% for hr in page.object_list %}
{% with hr.renkan as r %}
<tr class="border_bottom">
<td>{{ r.title }}</td>
@@ -58,4 +57,6 @@
{% endfor %}
</tbody>
</table>
+ <p>{% if page.has_previous %}<a href="?page={{ page.previous_page_number }}&sort={{ sort_param }}&order={{ order_param }}" >{% trans 'Previous' %}</a>{% endif %}
+ {% if page.has_previous and page.has_next %} - {% endif %}{% if page.has_next %}<a href="?page={{ page.next_page_number }}&sort={{ sort_param }}&order={{ order_param }}">{% trans 'Next' %}</a>{% endif %}</p>
{% endblock %}
\ No newline at end of file
--- a/src/hdalab/templates/renkan_list.html Fri Sep 05 17:05:48 2014 +0200
+++ b/src/hdalab/templates/renkan_list.html Mon Sep 08 13:03:36 2014 +0200
@@ -12,31 +12,26 @@
<link rel="stylesheet" type="text/css" href="{% static 'hdalab/css/profile.css' %}" />
{% endblock %}
-{% block js_import %}
-{{block.super}}
- <script src="{% static 'hdalab/js/profile.js' %}"></script>
- <script src="{% static 'hdalab/lib/jquery.tablesorter.min.js' %}"></script>
- <script type="text/javascript">
- $(document).ready(function(){
- console.log("hi");
- $("#rk-table").tablesorter({headers: { 2: { sorter: false }, 4: { sorter: false } }});
- });
- </script>
-{% endblock %}
-
{% block renkans_actif %}actif{% endblock %}
{% block main_content %}
<h2>Liste des renkans publiques</h2>
+ <p>{% if page.has_previous %}<a href="?page={{ page.previous_page_number }}&sort={{ sort_param }}&order={{ order_param }}" >{% trans 'Previous' %}</a>{% endif %}
+ {% if page.has_previous and page.has_next %} - {% endif %}{% if page.has_next %}<a href="?page={{ page.next_page_number }}&sort={{ sort_param }}&order={{ order_param }}">{% trans 'Next' %}</a>{% endif %}</p>
<table id="rk-table">
<thead>
- <tr class="border_bottom"><th>Nom</th><th>Date de modification</th><th>Preview</th><th>Actions</th></tr>
+ <tr class="border_bottom">
+ <th><a class="" href="?sort=title&order={% if sort_param == 'title' %}{{ opposite }}{% else %}asc{% endif %}">{% trans 'Title' %}</a>
+ {% if sort_param == 'title' %}<span class="ui-icon {% if opposite == 'asc' %}ui-icon-triangle-1-s{% else %}ui-icon-triangle-1-n{% endif %}"></span>{% endif %}</th>
+ <th><a href="?sort=date&order={% if sort_param == 'date' %}{{ opposite }}{% else %}desc{% endif %}">{% trans 'Modification date' %}</a>
+ {% if sort_param == 'date' %}<span class="ui-icon {% if opposite == 'asc' %}ui-icon-triangle-1-s{% else %}ui-icon-triangle-1-n{% endif %}"></span>{% endif %}</th>
+ <th>Preview</th><th>Actions</th></tr>
</thead>
<tbody>
- {% for hr in renkan_list %}
+ {% for hr in page.object_list %}
{% with hr.renkan as r %}
<tr class="border_bottom">
- <td>{{ r.title }} ({{ r.id }})</td>
+ <td>{{ r.title }}</td>
<td>{{ r.modification_date|date:"Y-m-d H:i" }}</td>
<td>{% thumbnail r.image 100x100 as thumb %}<img src="{{ thumb.url }}" width="{{ thumb.width }}" height="{{ thumb.height }}" /></td>
<td>
@@ -48,4 +43,6 @@
{% endfor %}
</tbody>
</table>
+ <p>{% if page.has_previous %}<a href="?page={{ page.previous_page_number }}&sort={{ sort_param }}&order={{ order_param }}" >{% trans 'Previous' %}</a>{% endif %}
+ {% if page.has_previous and page.has_next %} - {% endif %}{% if page.has_next %}<a href="?page={{ page.next_page_number }}&sort={{ sort_param }}&order={{ order_param }}">{% trans 'Next' %}</a>{% endif %}</p>
{% endblock %}
\ No newline at end of file
--- a/src/hdalab/views/editorial.py Fri Sep 05 17:05:48 2014 +0200
+++ b/src/hdalab/views/editorial.py Mon Sep 08 13:03:36 2014 +0200
@@ -10,6 +10,8 @@
from hdabo.views import Folders, AddOrUpdateFolder, DeleteFolder
import logging
+from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
+from django.conf import settings
logger = logging.getLogger(__name__)
@@ -19,7 +21,27 @@
def get_context_data(self, **kwargs):
context = super(ManageRenkans, self).get_context_data(**kwargs)
- context["renkan_list"] = HdalabRenkan.objects.exclude(state=HdalabRenkan.EDITION).select_related("renkan", "renkan__owner").order_by("-renkan__modification_date")
+ sort_param = self.request.GET.get('sort', "date")
+ order_param = self.request.GET.get('order', "desc")
+ sort = {"date":"renkan__modification_date", "title":"renkan__title", "state":"state", "user":"renkan__owner__username"}.get(sort_param)
+ if order_param=="desc":
+ order = "-"
+ opposite = "asc"
+ else:
+ order = ""
+ opposite = "desc"
+
+ rl = HdalabRenkan.objects.exclude(state=HdalabRenkan.EDITION).select_related("renkan", "renkan__owner").order_by(order + sort)
+ p = Paginator(rl, settings.RENKANS_PER_PAGE)
+ page_nb = self.request.GET.get('page')
+ try:
+ page = p.page(page_nb)
+ except PageNotAnInteger:
+ page = p.page(1)
+ except EmptyPage:
+ page = p.page(p.num_pages)
+
+ context.update({"page": page, "sort_param":sort_param, "order_param":order_param, "opposite":opposite})
return context
--- a/src/hdalab/views/profile.py Fri Sep 05 17:05:48 2014 +0200
+++ b/src/hdalab/views/profile.py Mon Sep 08 13:03:36 2014 +0200
@@ -37,6 +37,7 @@
import logging
from django.http.response import Http404
+from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
logger = logging.getLogger(__name__)
@@ -46,7 +47,28 @@
def get_context_data(self, **kwargs):
context = super(ProfileHome, self).get_context_data(**kwargs)
- context['renkan_list'] = HdalabRenkan.objects.select_related("renkan").filter(renkan__owner=self.request.user).order_by("-renkan__modification_date")
+
+ sort_param = self.request.GET.get('sort', "date")
+ order_param = self.request.GET.get('order', "desc")
+ sort = {"date":"renkan__modification_date", "title":"renkan__title", "state":"state"}.get(sort_param)
+ if order_param=="desc":
+ order = "-"
+ opposite = "asc"
+ else:
+ order = ""
+ opposite = "desc"
+
+ rl = HdalabRenkan.objects.select_related("renkan").filter(renkan__owner=self.request.user).order_by(order + sort)
+ p = Paginator(rl, settings.RENKANS_PER_PAGE)
+ page_nb = self.request.GET.get('page')
+ try:
+ page = p.page(page_nb)
+ except PageNotAnInteger:
+ page = p.page(1)
+ except EmptyPage:
+ page = p.page(p.num_pages)
+
+ context.update({"page": page, "sort_param":sort_param, "order_param":order_param, "opposite":opposite})
return context
@@ -56,7 +78,30 @@
def get_context_data(self, **kwargs):
context = super(RenkanPublicList, self).get_context_data(**kwargs)
- context['renkan_list'] = HdalabRenkan.objects.select_related("renkan").filter(state=HdalabRenkan.PUBLISHED).order_by("-renkan__modification_date")
+ #context['renkan_list'] = HdalabRenkan.objects.select_related("renkan").filter(state=HdalabRenkan.PUBLISHED).order_by("-renkan__modification_date")
+
+ sort_param = self.request.GET.get('sort', "date")
+ order_param = self.request.GET.get('order', "desc")
+ sort = {"date":"renkan__modification_date", "title":"renkan__title", "state":"state"}.get(sort_param)
+ if order_param=="desc":
+ order = "-"
+ opposite = "asc"
+ else:
+ order = ""
+ opposite = "desc"
+
+ rl = HdalabRenkan.objects.select_related("renkan").filter(state=HdalabRenkan.PUBLISHED).order_by(order + sort)
+ p = Paginator(rl, settings.RENKANS_PER_PAGE)
+ page_nb = self.request.GET.get('page')
+ try:
+ page = p.page(page_nb)
+ except PageNotAnInteger:
+ page = p.page(1)
+ except EmptyPage:
+ page = p.page(p.num_pages)
+
+ context.update({"page": page, "sort_param":sort_param, "order_param":order_param, "opposite":opposite})
+
return context