Append label to search terms from tracker page

This commit is contained in:
Drew DeVault 2019-06-02 15:56:51 -04:00
parent f033db0672
commit 8ff1a0cd20
3 changed files with 14 additions and 6 deletions

View File

@ -72,7 +72,7 @@ def invalidate_markup_cache(obj):
key = f"todo.sr.ht:cache_rendered_markup:{class_name}:{obj.id}"
redis.delete(key)
def label_badge(label, cls="", remove_from_ticket=None):
def label_badge(label, cls="", remove_from_ticket=None, terms=None):
"""Return HTML markup rendering a label badge.
Additional HTML classes can be passed via the `cls` parameter.
@ -86,7 +86,10 @@ def label_badge(label, cls="", remove_from_ticket=None):
html_class = escape(f"label {cls}".strip())
style = f"color: {color}; background-color: {bg_color}"
search_url = urls.label_search_url(label)
if terms:
search_url = urls.label_search_url(label, terms=terms)
else:
search_url = urls.label_search_url(label)
if remove_from_ticket:
remove_url = urls.label_remove_url(label, remove_from_ticket)

View File

@ -147,7 +147,11 @@
</a>
<span class="pull-right">
{% for label in ticket.labels %}
{{ label|label_badge(cls="small") }}
{% if not search %}
{{ label|label_badge(cls="small", terms="status:open") }}
{% else %}
{{ label|label_badge(cls="small", terms=search) }}
{% endif %}
{% endfor %}
</span>
</div>

View File

@ -45,12 +45,13 @@ def ticket_unassign_url(ticket):
name=ticket.tracker.name,
ticket_id=ticket.scoped_id)
def label_search_url(label):
def label_search_url(label, terms=""):
"""Return the URL to the tracker page listing all tickets which have the
label applied."""
return "{}?search=label:&quot;{}&quot;".format(
return "{}?search=label:&quot;{}&quot;{}".format(
tracker_url(label.tracker),
unicode_urlencode(label.name))
unicode_urlencode(label.name),
f" {unicode_urlencode(terms)}" if terms else "")
def label_add_url(ticket):
"""Return the URL to add a label to a ticket."""