[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: