Bug#753800: tracker.debian.org: please give the details link some content
Here is a patch that hopefully fixes this issue. It adds two new
template tags, "octicon" which renders any octicon with alternate
text (which should appear as both mouseover text and text-mode-only
text), and "toggle_chevron" which gives a downward chevron to toggle
the display of details (this was so frequent special case that it
seemed worth its own tag). The only testing I have done is to make
sure that "manage.py test" didn't break.
diff --git a/distro_tracker/accounts/templates/accounts/subscriptions.html b/distro_tracker/accounts/templates/accounts/subscriptions.html
index 74f6168..ac52d67 100644
--- a/distro_tracker/accounts/templates/accounts/subscriptions.html
+++ b/distro_tracker/accounts/templates/accounts/subscriptions.html
@@ -1,5 +1,6 @@
{% extends 'core/base.html' %}
{% load staticfiles %}
+{% load distro_tracker_extras %}
{% block title %}Subscriptions | {{ block.super }}{% endblock %}
{% block extra-js %}
@@ -21,7 +22,7 @@
<div class="accordion-group row">
<div class="accordion-heading col-xs-12 m-y-1">
<b>Subscriptions for {{ email }}</b>
- <button class="btn btn-sm btn-default" data-toggle="collapse" data-target="#emails-{{ forloop.counter }}"><span class="octicon octicon-chevron-down" title="Toggle details"></span></button>
+ <button class="btn btn-sm btn-default" data-toggle="collapse" data-target="#emails-{{ forloop.counter }}">{% toggle_chevron %}</button>
{% if email_subscriptions.subscriptions %}
<form style="display: inline-block; margin-bottom: 0px;" action="{% url 'dtracker-api-accounts-unsubscribe-all' %}" method="POST">{% csrf_token %}
<input type="hidden" name="email" value="{{ email }}">
@@ -61,7 +62,7 @@
<div class="accordion-heading">
<div class="row">
<div class="col-md-6">
- <button class="btn btn-sm btn-default" data-toggle="collapse" data-parent="#{{ accordion_id }}" data-target="#{{ details_id }}"><span class="octicon octicon-chevron-down"></span></button>
+ <button class="btn btn-sm btn-default" data-toggle="collapse" data-parent="#{{ accordion_id }}" data-target="#{{ details_id }}">{% toggle_chevron %}</button>
<span class='subscription-package'>
{% if subscription.package.get_absolute_url %}
<a href="{{ subscription.package.get_absolute_url }}">{{ subscription.package }}</a>
@@ -109,7 +110,7 @@
<div class="accordion-heading">
<div class="row">
<div class="col-md-6">
- <button class="btn btn-sm btn-default" data-toggle="collapse" data-parent="#{{ accordion_id }}" data-target="#{{ details_id }}"><span class="octicon octicon-chevron-down"></span></button>
+ <button class="btn btn-sm btn-default" data-toggle="collapse" data-parent="#{{ accordion_id }}" data-target="#{{ details_id }}">{% toggle_chevron %}</button>
<span class='team-membership'>
<a href="{{ membership.team.get_absolute_url }}">{{ membership.team }}</a>
</span>
diff --git a/distro_tracker/core/panels.py b/distro_tracker/core/panels.py
index 7622a76..d72d0b2 100644
--- a/distro_tracker/core/panels.py
+++ b/distro_tracker/core/panels.py
@@ -25,6 +25,7 @@ from distro_tracker.core.models import PackageExtractedInfo
from distro_tracker.core.models import MailingList
from distro_tracker.core.models import News
from distro_tracker.core.models import BinaryPackageBugStats
+from distro_tracker.core.templatetags.distro_tracker_extras import octicon
from debian.debian_support import AptPkgVersion
from collections import defaultdict
@@ -473,9 +474,8 @@ class VersionedLinks(BasePanel):
class DscLinkProvider(VersionedLinks.LinkProvider):
icons = [
- mark_safe(
- '<span title=".dsc, use dget on this link to retrieve source '
- 'package" class="octicon octicon-desktop-download"></span>'),
+ octicon('desktop-download',
+ '.dsc, use dget on this link to retrieve source package'),
]
def get_link_for_icon(self, package, index):
diff --git a/distro_tracker/core/templates/core/edit-team-membership.html b/distro_tracker/core/templates/core/edit-team-membership.html
index 6840046..77c4fe2 100644
--- a/distro_tracker/core/templates/core/edit-team-membership.html
+++ b/distro_tracker/core/templates/core/edit-team-membership.html
@@ -1,5 +1,6 @@
{% extends 'core/base.html' %}
{% load staticfiles %}
+{% load distro_tracker_extras %}
{% block extra-js %}
<script src="{% static 'accounts/js/profile.js' %}"></script>
@@ -21,8 +22,7 @@
<div class="accordion-heading">
<div class="row">
<div class="col-md-10">
- <button class="btn btn-sm btn-default" data-toggle="collapse" data-parent="#{{ accordion_id }}" data-target="#{{ accordion_id }}-details-{{ forloop.counter }}"><span class="octicon
- octicon-chevron-down"></span></button>
+ <button class="btn btn-sm btn-default" data-toggle="collapse" data-parent="#{{ accordion_id }}" data-target="#{{ accordion_id }}-details-{{ forloop.counter }}">{% toggle-chevron %}</button>
{% if pkg.get_absolute_url %}
<a href="{{ pkg.get_absolute_url }}">{{ pkg }}</a>
{% else %}
diff --git a/distro_tracker/core/templates/core/octicon.html b/distro_tracker/core/templates/core/octicon.html
new file mode 100644
index 0000000..7af8464
--- /dev/null
+++ b/distro_tracker/core/templates/core/octicon.html
@@ -0,0 +1 @@
+<span class="octicon octicon-{{ name }}" title="{{ text }}"><span class="sr-only">{{ text }}</span></span>
diff --git a/distro_tracker/core/templates/core/panels/action-needed.html b/distro_tracker/core/templates/core/panels/action-needed.html
index 427d648..9d4078c 100644
--- a/distro_tracker/core/templates/core/panels/action-needed.html
+++ b/distro_tracker/core/templates/core/panels/action-needed.html
@@ -1,5 +1,6 @@
{% extends 'core/panels/panel.html' %}
{% load
+{% load distro_tracker_extras %}
{% block panel-body %}
<div class="list-group list-group-flush" id="action-needed-list">
@@ -9,9 +10,8 @@
<span data-toggle="collapse"
data-parent="#action-needed-list"
data-target="#action-needed-details-{{ forloop.counter }}"
- class="chevron"
- title="Click to toggle more details">
- <span class="octicon octicon-chevron-down"></span>
+ class="chevron">
+ {% toggle-chevron %}
</span>
{# The short description is allowed to contain some HTML markup #}
{{ item.short_description|safe }}
diff --git a/distro_tracker/core/templates/core/panels/news.html b/distro_tracker/core/templates/core/panels/news.html
index 9706bb7..fc696b3 100644
--- a/distro_tracker/core/templates/core/panels/news.html
+++ b/distro_tracker/core/templates/core/panels/news.html
@@ -1,12 +1,13 @@
{% extends 'core/panels/panel.html' %}
+{% load distro_tracker_extras %}
{% block panel-header %}
<div class="row">
<div class="col-xs-12">
<a href="{% url 'dtracker-package-news' package.name %}">{{ panel.title }}</a>
<div class="pull-xs-right">
- <a title="rss feed" href="{% url 'dtracker-package-rss-news-feed' package.name %}">
- <span class="octicon octicon-rss"></span>
+ <a href="{% url 'dtracker-package-rss-news-feed' package.name %}">
+ {% octicon 'rss' 'rss feed' %}
</a>
</div>
</div>
diff --git a/distro_tracker/core/templates/core/panels/versions.html b/distro_tracker/core/templates/core/panels/versions.html
index 595727d..e7e6416 100644
--- a/distro_tracker/core/templates/core/panels/versions.html
+++ b/distro_tracker/core/templates/core/panels/versions.html
@@ -1,4 +1,5 @@
{% extends 'core/panels/panel.html' %}
+{% load distro_tracker_extras %}
{% block panel-header %}
<div class="row">
@@ -6,15 +7,15 @@
{{ panel.title }}
{% if panel.context.external_resources %}
{% for external in panel.context.external_resources %}
- <a class="m-l-1" href="{{ external.url }}" title="{{ external.description }}">
- <span class="octicon octicon-link-external"></span>
+ <a class="m-l-1" href="{{ external.url }}">
+ {% octicon 'link-external' external.description %}
</a>
{% endfor %}
{% endif %}
{% with versions=panel.context.version_info %}
<div class="pull-xs-right">
{% if versions.default_pool_url %}
- <a href="{{ versions.default_pool_url }}" title="pool directory"><span class="octicon octicon-file-directory"></span></a>
+ <a href="{{ versions.default_pool_url }}">{% octicon 'file-directory' 'pool directory' %}</a>
{% endif %}
</div>
{% endwith %}
diff --git a/distro_tracker/core/templates/core/team.html b/distro_tracker/core/templates/core/team.html
index 11b9f02..b328bf3 100644
--- a/distro_tracker/core/templates/core/team.html
+++ b/distro_tracker/core/templates/core/team.html
@@ -1,5 +1,6 @@
{% extends "core/base.html" %}
{% load staticfiles %}
+{% load distro_tracker_extras %}
{% with team=object %}
{% block title %}{{ block.super }} - {{ team }}{% endblock %}
@@ -111,7 +112,7 @@
{% endif %}
{% if user_member_of_team %}
<div class="pull-xs-right">
- <a href="{% url 'dtracker-team-remove-package' team.slug %}?package={{ package }}"><span data-package="{{ package }}" class="remove-package-from-team-button octicon octicon-trashcan"></span></a>
+ <a href="{% url 'dtracker-team-remove-package' team.slug %}?package={{ package }}"><span data-package="{{ package }}" class="remove-package-from-team-button">{% octicon 'trashcan' 'remove package from team' %}</span></a>
</div>
{% endif %}
</div>
diff --git a/distro_tracker/core/templates/core/toggle-chevron.html b/distro_tracker/core/templates/core/toggle-chevron.html
new file mode 100644
index 0000000..9ec7def
--- /dev/null
+++ b/distro_tracker/core/templates/core/toggle-chevron.html
@@ -0,0 +1,2 @@
+{% load distro_tracker_extras %}
+{% octicon 'chevron-down' 'Toggle details' %}
diff --git a/distro_tracker/core/templatetags/distro_tracker_extras.py b/distro_tracker/core/templatetags/distro_tracker_extras.py
index 9ae3924..fd81af6 100644
--- a/distro_tracker/core/templatetags/distro_tracker_extras.py
+++ b/distro_tracker/core/templatetags/distro_tracker_extras.py
@@ -49,6 +49,22 @@ def repeat(parser, token):
return RepeatNode(nodelist, count)
+@register.inclusion_tag('core/octicon.html')
+def octicon(name, text):
+ """
+ Renders an octicon with alternate text.
+ """
+ return { 'name':name, 'text':text }
+
+
+@register.inclusion_tag('core/toggle-chevron.html')
+def toggle_chevron():
+ """
+ Renders a chevron to toggle details.
+ """
+ return {}
+
+
@register.filter(name='zip')
def zip_iterables(first, second):
"""
diff --git a/distro_tracker/core/tests/tests_news_feed.py b/distro_tracker/core/tests/tests_news_feed.py
index 1dbc620..7d9e70d 100644
--- a/distro_tracker/core/tests/tests_news_feed.py
+++ b/distro_tracker/core/tests/tests_news_feed.py
@@ -357,5 +357,5 @@ class NewsFeedTests(TestCase):
response = self.client.get(pkg_url)
- self.assertIn('<a title="rss feed" href="{}">'.format(rss_url),
+ self.assertIn('<a href="{}">'.format(rss_url),
response.content.decode('utf8'))
diff --git a/distro_tracker/extract_source_files/tracker_panels.py b/distro_tracker/extract_source_files/tracker_panels.py
index cc87e8c..ffdf80b 100644
--- a/distro_tracker/extract_source_files/tracker_panels.py
+++ b/distro_tracker/extract_source_files/tracker_panels.py
@@ -14,7 +14,7 @@ files in the :class:`distro_tracker.core.panels.VersionedLinks` panel.
from __future__ import unicode_literals
from distro_tracker.core.panels import VersionedLinks
from distro_tracker.core.models import ExtractedSourceFile
-from django.utils.safestring import mark_safe
+from distro_tracker.core.templatetags.distro_tracker_extras import octicon
class SourceFilesLinkProvider(VersionedLinks.LinkProvider):
@@ -23,13 +23,10 @@ class SourceFilesLinkProvider(VersionedLinks.LinkProvider):
:class:`distro_tracker.core.panels.VersionedLinks` panel.
"""
icons = [
- mark_safe('<span class="octicon octicon-tasklist" '
- 'title="changelog"></span>'),
- mark_safe('<span class="octicon octicon-law" '
- 'title="copyright"></span>'),
- mark_safe('<span class="octicon octicon-tools" title="rules"></span>'),
- mark_safe('<span class="octicon octicon-package" '
- 'title="control"></span>'),
+ octicon('tasklist', 'changelog'),
+ octicon('law', 'copyright'),
+ octicon('tools', 'rules'),
+ octicon('package', 'control'),
]
_file_names = [
diff --git a/distro_tracker/vendor/debian/templates/debian/bugs.html b/distro_tracker/vendor/debian/templates/debian/bugs.html
index 4770973..442db7e 100644
--- a/distro_tracker/vendor/debian/templates/debian/bugs.html
+++ b/distro_tracker/vendor/debian/templates/debian/bugs.html
@@ -1,9 +1,10 @@
{% extends 'core/panels/bugs.html' %}
+{% load distro_tracker_extras %}
{# Add the bug history graph to the panel's heading #}
{% block panel-header %}
{{ block.super }}
-<a class="m-l-1" href="{{ panel.context.graph_url }}"><span class="octicon octicon-graph" title="bug history graph"></span></a>
+<a class="m-l-1" href="{{ panel.context.graph_url }}">{% octicon 'graph' 'bug history graph' %}</a>
{% endblock %}
{% block bugs-list %}
diff --git a/distro_tracker/vendor/debian/templates/debian/ubuntu-panel.html b/distro_tracker/vendor/debian/templates/debian/ubuntu-panel.html
index 5157318..6130227 100644
--- a/distro_tracker/vendor/debian/templates/debian/ubuntu-panel.html
+++ b/distro_tracker/vendor/debian/templates/debian/ubuntu-panel.html
@@ -1,10 +1,11 @@
{% extends 'core/panels/panel.html' %}
{% load staticfiles %}
+{% load distro_tracker_extras %}
{% block panel-header %}
{{ block.super }}
<img class="m-l-1" style="width: 14px; height: 14px" src="{% static 'img/ubuntu.png' %}" alt="Ubuntu logo">
-<a class="pull-xs-right" href="https://wiki.ubuntu.com/Ubuntu/ForDebianDevelopers" title="Information about Ubuntu for Debian Developers"><span class="octicon octicon-info"></span></a>
+<a class="pull-xs-right" href="https://wiki.ubuntu.com/Ubuntu/ForDebianDevelopers">{% octicon 'info' 'Information about Ubuntu for Debian Developers' %}</a>
{% endblock %}
{% block panel-body %}
Reply to: