sort issues by last activity / creation date
This commit is contained in:
parent
47a915197b
commit
f92f87ce60
2 changed files with 22 additions and 9 deletions
|
@ -61,7 +61,6 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{% comment %}
|
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button class="btn btn-default dropdown-toggle" type="button" id="issue-sort-menu" data-toggle="dropdown">
|
<button class="btn btn-default dropdown-toggle" type="button" id="issue-sort-menu" data-toggle="dropdown">
|
||||||
Sort
|
Sort
|
||||||
|
@ -69,15 +68,16 @@
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="issue-sort-menu">
|
<ul class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="issue-sort-menu">
|
||||||
<li role="presentation" class="dropdown-header">Sort by</li>
|
<li role="presentation" class="dropdown-header">Sort by</li>
|
||||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=newest">Newest</a></li>
|
|
||||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=oldest">Oldest</a></li>
|
|
||||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=most commented">Most commented</a></li>
|
|
||||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=least-commented">Least commented</a></li>
|
|
||||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=recently-updated">Recently updated</a></li>
|
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=recently-updated">Recently updated</a></li>
|
||||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=least-recently-updated">Least recently updated</a></li>
|
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=least-recently-updated">Least recently updated</a></li>
|
||||||
|
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=newest">Newest</a></li>
|
||||||
|
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=oldest">Oldest</a></li>
|
||||||
|
{% comment %}
|
||||||
|
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=most commented">Most commented</a></li>
|
||||||
|
<li role="presentation"><a role="menuitem" tabindex="-1" href="?q={{ query }}&sort=least-commented">Least commented</a></li>
|
||||||
|
{% endcomment %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{% endcomment %}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -6,6 +6,7 @@ from django.views.decorators.http import require_http_methods
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
|
from django.db.models import Max
|
||||||
|
|
||||||
from tracker.utils import markdown_to_html
|
from tracker.utils import markdown_to_html
|
||||||
from tracker.forms import *
|
from tracker.forms import *
|
||||||
|
@ -202,8 +203,10 @@ def issue_list(request, project):
|
||||||
milestones = Milestone.objects.filter(project=project)
|
milestones = Milestone.objects.filter(project=project)
|
||||||
|
|
||||||
sort = request.GET.get('sort', '')
|
sort = request.GET.get('sort', '')
|
||||||
if sort:
|
sort_type = ['recently-updated', 'least-recently-updated',
|
||||||
sort = '&' + sort
|
'newest', 'oldest', '']
|
||||||
|
if sort not in sort_type:
|
||||||
|
sort = ''
|
||||||
|
|
||||||
is_open = ''
|
is_open = ''
|
||||||
is_close = ''
|
is_close = ''
|
||||||
|
@ -290,11 +293,21 @@ def issue_list(request, project):
|
||||||
is_all_query += ' ' + constraint
|
is_all_query += ' ' + constraint
|
||||||
|
|
||||||
if issues:
|
if issues:
|
||||||
issues = issues.extra(order_by=['-opened_at'])
|
if sort and sort == 'newest':
|
||||||
|
issues = issues.extra(order_by=['-opened_at'])
|
||||||
|
elif sort and sort == 'oldest':
|
||||||
|
issues = issues.extra(order_by=['opened_at'])
|
||||||
|
elif sort and sort == 'least-recently-updated':
|
||||||
|
issues = issues.annotate(last_activity=Max('events__date')).order_by('last_activity')
|
||||||
|
else: # recently-updated
|
||||||
|
issues = issues.annotate(last_activity=Max('events__date')).order_by('-last_activity')
|
||||||
|
|
||||||
if is_open == '' and is_close == '':
|
if is_open == '' and is_close == '':
|
||||||
is_all = ' active'
|
is_all = ' active'
|
||||||
|
|
||||||
|
if sort and sort != 'recently-updated':
|
||||||
|
sort = '&sort=' + sort
|
||||||
|
|
||||||
c = {
|
c = {
|
||||||
'project': project,
|
'project': project,
|
||||||
'issues': issues,
|
'issues': issues,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue