diff --git a/templates/helpdesk/base.html b/templates/helpdesk/base.html
index 3c10ea4c..92ee165e 100644
--- a/templates/helpdesk/base.html
+++ b/templates/helpdesk/base.html
@@ -21,7 +21,7 @@
{% trans "New Ticket" %}
{% trans "Stats" %}
{% trans "Logout" %}
- {% if not query %}{% endif %}
+ {% if not query %}{% endif %}
diff --git a/views/staff.py b/views/staff.py
index 1c186f99..678cea87 100644
--- a/views/staff.py
+++ b/views/staff.py
@@ -318,6 +318,40 @@ def ticket_list(request):
from_saved_query = False
+ # If the user is coming from the header/navigation search box, lets' first
+ # look at their query to see if they have entered a valid ticket number. If
+ # they have, just redirect to that ticket number. Otherwise, we treat it as
+ # a keyword search.
+
+ if request.GET.get('search_type', None) == 'header':
+ query = request.GET.get('q')
+ filter = None
+ if query.find('-') > 0:
+ queue, id = query.split('-')
+ try:
+ id = int(id)
+ except ValueError:
+ id = None
+
+ if id:
+ filter = {'queue__slug': queue, 'id': id }
+ else:
+ try:
+ query = int(query)
+ except ValueError:
+ query = None
+
+ if query:
+ filter = {'id': int(query) }
+
+ if filter:
+ try:
+ ticket = Ticket.objects.get(**filter)
+ return HttpResponseRedirect(ticket.staff_url)
+ except Ticket.DoesNotExist:
+ # Go on to standard keyword searching
+ pass
+
if request.GET.get('saved_query', None):
from_saved_query = True
try: