From 62c10c29e173d889a77422d3e4694a1f89cce864 Mon Sep 17 00:00:00 2001 From: mprahl Date: Oct 27 2017 17:32:17 +0000 Subject: Clean up the issue sorting links --- diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index 25962b6..80374fc 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -41,7 +41,7 @@ import six import sqlalchemy import sqlalchemy.schema from sqlalchemy import func -from sqlalchemy import asc +from sqlalchemy import asc, desc from sqlalchemy.orm import aliased from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import scoped_session @@ -2351,10 +2351,13 @@ def search_issues( if order_key and order_key in model.Issue.__table__.columns.keys(): column = getattr(model.Issue, order_key) - if order == 'asc': - query = query.order_by(column.asc()) + # The priority is sorted differently because it is by weight and the lower + # the number, the higher the priority + if (order_key != 'priority' and order == 'asc') or \ + (order_key == 'priority' and order == 'desc'): + query = query.order_by(asc(func.lower(column))) else: - query = query.order_by(column.desc()) + query = query.order_by(desc(func.lower(column))) if issueid is not None or issueuid is not None: output = query.first() diff --git a/pagure/templates/issues.html b/pagure/templates/issues.html index 5467e4d..813e48e 100644 --- a/pagure/templates/issues.html +++ b/pagure/templates/issues.html @@ -149,80 +149,40 @@ {% endfor %} - +{% set base_url_for = dict( + repo=repo.name, username=username,namespace=repo.namespace, tags=tags, + author=author, assignee=assignee, priority=priority) %}
- - - {% if status and status|lower != 'open' %} - - {% else %} - - {% endif %} - - - {% if not status or status|lower == 'open' %} - - {% endif %} + + + {% if status and status|lower != 'open' %} + + {% else %} + + {% endif %} + + + {% if not status or status|lower == 'open' %} + + {% endif %} diff --git a/pagure/ui/issues.py b/pagure/ui/issues.py index 46da5ea..8febbf2 100644 --- a/pagure/ui/issues.py +++ b/pagure/ui/issues.py @@ -727,6 +727,27 @@ def view_issues(repo, username=None, namespace=None): if issues_cnt: total_page = int(ceil(issues_cnt / float(flask.g.limit))) + def _get_arrow(column): + arrow_html = ('') + if column == order_key: + if order == 'desc': + return arrow_html.format('bottom') + else: + return arrow_html.format('top') + return '' + + def _get_link_order(column): + if column == order_key: + # If the user is clicking on the column again, they want the + # oposite order + if order == 'desc': + return 'asc' + else: + return 'desc' + else: + # Default to descending + return 'desc' + return flask.render_template( 'issues.html', select='issues', @@ -745,7 +766,9 @@ def view_issues(repo, username=None, namespace=None): total_page=total_page, add_report_form=pagure.forms.AddReportForm(), search_pattern=search_string, - order=order + order=order, + get_arrow=_get_arrow, + get_link_order=_get_link_order )
IssueOpenedClosedModifiedPriority -  (reset) - Reporter -  (reset) - Assignee -  (reset) - Issue {{ get_arrow('title') | safe }}Opened {{ get_arrow('date_created') | safe }}Closed {{ get_arrow('closed_at') | safe }}Modified {{ get_arrow('last_updated') | safe }}Priority + {{ get_arrow('priority') | safe }}Reporter {{ get_arrow('author') | safe }}Assignee {{ get_arrow('assignee') | safe }}