templatetag for saved queries:

I'm using user_saved_queries_ in base.html so that we can distinguish it
 from 'user_saved_queries' in 'views.staff.ticket_list'
This commit is contained in:
Andreas Kotowicz 2011-02-03 11:19:46 +01:00
parent 2b1be97197
commit af3b1f1c75
3 changed files with 38 additions and 20 deletions

View File

@ -1,4 +1,7 @@
{% load i18n %}<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
{% load i18n %}
{% load saved_queries %}
{% with request|saved_queries as user_saved_queries_ %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>{% block helpdesk_title %}Helpdesk{% endblock %} :: {% trans "Powered by django-helpdesk" %}</title>
@ -36,26 +39,26 @@
<li><a href='{% url helpdesk_list %}'>{% trans "Tickets" %}</a></li>
<li><a href='{% url helpdesk_submit %}'>{% trans "New Ticket" %}</a></li>
<li><a href='{% url helpdesk_report_index %}'>{% trans "Stats" %}</a></li>
{% if user_saved_queries %}
{% if user_saved_queries_ %}
<li><a href="#queryloadheader" id="toggle_query">Load Saved Query</a></li>
{% endif %}
{% endif %}
<li><a href='{% url logout %}'>{% trans "Logout" %}</a></li>
{% if not query %}<li><form id='searchform' method='get' action='{% url helpdesk_list %}'><input type='text' name='q' size='10' class='input' value='{% trans "Search..." %}' id='search_query' onFocus='s=document.getElementById("search_query");if (s.value == "{% trans "Search..." %}") { s.value = ""; }' title='{% trans "Enter a keyword, or a ticket number to jump straight to that ticket." %}'/><input type='hidden' name='status' value='1' /><input type='hidden' name='status' value='2' /><input type='hidden' name='status' value='3' /><input type='hidden' name='search_type' value='header' />{% csrf_token %}</form></li>{% endif %}
</ul>
</div>
{% if user_saved_queries %}
<div id="queryloadheader" style="float:right; padding: 20px; background:#ECF1EF; ">
<form method='get' action='{% url helpdesk_list %}'>
<label for='id_query_selector'>{% trans "Query" %}</label> <select name='saved_query' id='id_query_selector' />
{% for q in user_saved_queries %}
<option value='{{ q.id }}'>{{ q.title }}{% if q.shared %} (Shared{% ifnotequal user q.user %} by {{ q.user.username }}{% endifnotequal %}){% endif %}</option>
{% endfor %}
</select>
<input type='submit' value='{% trans "Run Query" %}'>
{% csrf_token %}</form>
</div>
{% endif %}
{% if user_saved_queries_ %}
<div id="queryloadheader" style="float:right; padding: 20px; background:#ECF1EF; ">
<form method='get' action='{% url helpdesk_list %}'>
<label for='id_query_selector'>{% trans "Query" %}</label> <select name='saved_query' id='id_query_selector' />
{% for q in user_saved_queries_ %}
<option value='{{ q.id }}'>{{ q.title }}{% if q.shared %} (Shared{% ifnotequal user q.user %} by {{ q.user.username }}{% endifnotequal %}){% endif %}</option>
{% endfor %}
</select>
<input type='submit' value='{% trans "Run Query" %}'>
{% csrf_token %}</form>
</div>
{% endif %}
<div id='body'>
{% block helpdesk_body %}{% endblock %}
@ -67,3 +70,4 @@
{% include "helpdesk/debug.html" %}
</body>
</html>
{% endwith %}

View File

@ -0,0 +1,19 @@
"""
django-helpdesk - A Django powered ticket tracker for small enterprise.
templatetags/saved_queries.py - This template tag returns previously saved
queries. Therefore you don't need to modify
any views.
"""
from django.template import Library
from django.db.models import Q
from helpdesk.models import SavedSearch
def saved_queries(request):
user_saved_queries = SavedSearch.objects.filter(Q(user=request.user) | Q(shared__exact=True))
return user_saved_queries
register = Library()
register.filter('saved_queries', saved_queries)

View File

@ -74,14 +74,12 @@ def dashboard(request):
ORDER BY q.id;
""")
dash_tickets = query_to_dict(cursor.fetchall(), cursor.description)
user_saved_queries = SavedSearch.objects.filter(Q(user=request.user) | Q(shared__exact=True))
return render_to_response('helpdesk/dashboard.html',
RequestContext(request, {
'user_tickets': tickets,
'unassigned_tickets': unassigned_tickets,
'dash_tickets': dash_tickets,
'user_saved_queries': user_saved_queries,
}))
dashboard = staff_member_required(dashboard)
@ -135,7 +133,6 @@ def followup_edit(request, ticket_id, followup_id, ):
def view_ticket(request, ticket_id):
ticket = get_object_or_404(Ticket, id=ticket_id)
user_saved_queries = SavedSearch.objects.filter(Q(user=request.user) | Q(shared__exact=True))
if request.GET.has_key('take'):
# Allow the user to assign the ticket to themselves whilst viewing it.
@ -156,7 +153,6 @@ def view_ticket(request, ticket_id):
'owner': owner,
'title': ticket.title,
'comment': _('Accepted resolution and closed ticket'),
'user_saved_queries': user_saved_queries,
}
return update_ticket(request, ticket_id)
@ -168,7 +164,6 @@ def view_ticket(request, ticket_id):
'priorities': Ticket.PRIORITY_CHOICES,
'preset_replies': PreSetReply.objects.filter(Q(queues=ticket.queue) | Q(queues__isnull=True)),
'tags_enabled': HAS_TAG_SUPPORT,
'user_saved_queries': user_saved_queries,
}))
view_ticket = staff_member_required(view_ticket)