Skip to content

Commit

Permalink
Clean up badge code, enable option for redirecting.
Browse files Browse the repository at this point in the history
Needs some style cleanup.
  • Loading branch information
ericholscher committed Aug 14, 2014
1 parent 6c6ffe1 commit 47757de
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 12 deletions.
40 changes: 30 additions & 10 deletions readthedocs/projects/views/public.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import json

from django.core.urlresolvers import reverse
from django.conf import settings
from django.contrib.auth.models import User
from django.http import HttpResponse, HttpResponseRedirect, Http404
Expand Down Expand Up @@ -50,18 +51,35 @@ def project_detail(request, project_slug):
queryset = Project.objects.protected(request.user)
project = get_object_or_404(queryset, slug=project_slug)
versions = project.versions.public(request.user, project)
filter = VersionSlugFilter(request.GET, queryset=versions)
# filter = VersionSlugFilter(request.GET, queryset=versions)
if request.is_secure():
protocol = 'https'
else:
protocol = 'http'
badge_url = "%s://%s%s?version=%s" % (
protocol,
settings.PRODUCTION_DOMAIN,
reverse('project_badge', args=[project.slug]),
project.get_default_version()
)
site_url = "%s://%s%s" % (
protocol,
settings.PRODUCTION_DOMAIN,
reverse('projects_detail', args=[project.slug]),
)
return render_to_response(
'projects/project_detail.html',
{
'project': project,
'versions': versions,
'filter': filter,
'badge_url': badge_url,
'site_url': site_url,
},
context_instance=RequestContext(request),
)

def project_badge(request, project_slug):
def project_badge(request, project_slug, redirect=False):
"""
Return a sweet badge for the project
"""
Expand All @@ -71,16 +89,18 @@ def project_badge(request, project_slug):
version_builds = version.builds.filter(type='html', state='finished').order_by('-date')
if not version_builds.exists():
url = 'http://img.shields.io/badge/Docs-No%20Builds-yellow.svg'
response = requests.get(url)
return HttpResponse(response.content, mimetype="image/svg+xml")
else:
last_build = version_builds[0]
color = 'green'
if not last_build.success:
color = 'red'
url = 'http://img.shields.io/badge/Docs-%s-%s.svg' % (version.slug.replace('-', '--'), color)
response = requests.get(url)
return HttpResponse(response.content, mimetype="image/svg+xml")
if last_build.success:
color = 'green'
else:
color = 'red'
url = 'http://img.shields.io/badge/Docs-%s-%s.svg' % (version.slug.replace('-', '--'), color)
if redirect:
return HttpResponseRedirect(url)
else:
response = requests.get(url)
return HttpResponse(response.content, mimetype="image/svg+xml")

def project_downloads(request, project_slug):
"""
Expand Down
30 changes: 30 additions & 0 deletions readthedocs/templates/core/badge_markup.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<div id="badge_markup" style="display: none;">
<ul class="">
<div class="rst">
<h4>
Rst
</h4>
<div class="rst code">
.. image:: {{ badge_url }}
:target: {{ site_url }}
:alt: Documentation Status
</div>
</div>
<div class="markdown">
<h4>
Markdown
</h4>
<div class="markdown code">
[![Documentation Status]({{ badge_url }})]({{ site_url }})
</div>
</div>
<div class="html">
<h4>
HTML
</h4>
<div class="html code">
&lt;a href='{{ site_url }}'&gt;&lt;img src='{{ badge_url }}' alt='Documentation Status' /&gt;&lt;/a&gt;
</div>
</div>
</ul>
</div>
5 changes: 3 additions & 2 deletions readthedocs/templates/core/project_details.html
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,10 @@ <h3>{% trans "Repository" %}</h3>
{% endif %}

<h3>{% trans "Badge" %}</h3>
<a href="{% url "project_badge" project.slug %}?version={{ project.get_default_version }}">
<img src="{% url "project_badge" project.slug %}?version={{ project.get_default_version }}" />
<a href="{{ site_url }}" onclick="$('#badge_markup').toggle(); return false;">
<img src="{{ badge_url }}" />
</a>
{% include "core/badge_markup.html" with badge_url=badge_url site_url=site_url %}

{% if project.tags.count %}
<h3>{% trans "Tags" %}</h3>
Expand Down

0 comments on commit 47757de

Please sign in to comment.