use django.contrib.staticfiles everywhere
authorStefan Kögl <stefan@skoegl.net>
Sun, 21 Jul 2013 13:06:30 +0000 (21 15:06 +0200)
committerStefan Kögl <stefan@skoegl.net>
Sun, 21 Jul 2013 13:06:30 +0000 (21 15:06 +0200)
14 files changed:
mygpo/directory/templates/toplist.html
mygpo/publisher/templates/link.html
mygpo/publisher/templates/publisher/podcast.html
mygpo/settings.py
mygpo/share/templates/share/overview.html
mygpo/urls.py
mygpo/web/templates/404.html
mygpo/web/templates/500.html
mygpo/web/templates/episode.html
mygpo/web/templates/podcast.html
mygpo/web/templatetags/charts.py
mygpo/web/templatetags/devices.py
mygpo/web/templatetags/episodes.py
mygpo/web/templatetags/podcasts.py

index ade65ae..84ee70e 100644 (file)
@@ -5,6 +5,7 @@
 {% load charts %}
 {% load math %}
 {% load utils %}
+{% load static %}
 
 {% load menu %}
 {% block mainmenu %}{{ "/toplist/"|main_menu }}{% endblock %}
@@ -38,7 +39,7 @@
        {{ oldpos|subtract:forloop.counter|format_diff }}
       {% endif %}
      {% else %}
-      <img src="/media/charts-new.png" alt="new">
+      <img src="{% static "charts-new.png" %}" alt="new">
      {% endif %}
     </td>
     <td class="logo">{{ podcast|podcast_logo }}</td>
index 9cdd24d..d4d7b41 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "base.html" %}
 {% load i18n %}
-
+{% load static %}
 {% load menu %}
 {% block mainmenu %}{{ "/publisher/"|main_menu }}{% endblock %}
 {% block sectionmenu %}{{ "/publisher/link/"|section_menu }}{% endblock %}
 
 
 {% block content %}
-  <p><img src="/media/author_subscribe.png" /></p>
+  <p><img src="{% static "author_subscribe.png" %}" /></p>
   <p>{% blocktrans with url as sitename %}You can paste this code on your website, so users of {{ sitename }} can directly subscribe to your podcast.{% endblocktrans %}</p>
   <p>{% trans "Change the field 'YOUR_ADRESS' with the adress of your podcast feed." %}</p>
   <p>
-   <textarea style="width: 100%;" rows="3"><a href="http://{{ url }}{% url "subscribe-by-url" %}?url=YOUR_ADRESS"><img src="http://{{ url }}/media/author_subscribe.png" /></a></textarea>
+   <textarea style="width: 100%;" rows="3"><a href="http://{{ url }}{% url "subscribe-by-url" %}?url=YOUR_ADRESS"><img src="http://{{ url }}{% static "author_subscribe.png" %}" /></a></textarea>
   </p>
 {% endblock %}
index de4d1c5..1a625d7 100644 (file)
@@ -4,7 +4,7 @@
 {% load podcasts %}
 {% load charts %}
 {% load pcharts %}
-
+{% load static %}
 {% load menu %}
 {% block mainmenu %}{{ "/publisher/"|main_menu }}{% endblock %}
 {% block sectionmenu %}{{ "/publisher/podcast/"|section_menu:podcast.title }}{% endblock %}
 
   <h2>{% trans "Link" %}</h2>
    <p>{% blocktrans with url as sitename %}You can paste this code on your website, so users of {{ sitename }} can directly subscribe to your podcast.{% endblocktrans %}</p>
-   <textarea style="width: 100%;" rows="2"><a href="http://{{ site.domain }}{% url "subscribe-by-url" %}?url={{ feedurl_quoted }}"><img src="http://{{ site.domain }}/media/author_subscribe.png" /></a></textarea>
-   <p><a href="http://{{ site.domain }}{% url "subscribe-by-url" %}?url={{ feedurl_quoted }}"><img src="http://{{ site.domain }}/media/author_subscribe.png" /></a></p>
+   <textarea style="width: 100%;" rows="2"><a href="http://{{ site.domain }}{% url "subscribe-by-url" %}?url={{ feedurl_quoted }}"><img src="http://{{ site.domain }}{% static "author_subscribe.png" %}" /></a></textarea>
+   <p><a href="http://{{ site.domain }}{% url "subscribe-by-url" %}?url={{ feedurl_quoted }}"><img src="http://{{ site.domain }}{% static "author_subscribe.png" %}" /></a></p>
 
   <h2>Stats</h2>
 
index 2bfd81b..e12ad80 100644 (file)
@@ -103,7 +103,7 @@ SITE_ID = 1
 USE_I18N = True
 
 STATIC_ROOT = 'staticfiles'
-STATIC_URL = '/static/'
+STATIC_URL = '/media/'
 
 STATICFILES_DIRS = (
     os.path.abspath(os.path.join(BASE_DIR, '..', 'htdocs', 'media')),
index 6b5f5c0..04a8e65 100644 (file)
@@ -1,7 +1,7 @@
 {% extends "base.html" %}
 {% load i18n %}
 {% load podcasts %}
-
+{% load static %}
 {% load menu %}
 {% block mainmenu %}{{ "/share/"|main_menu }}{% endblock %}
 {% block sectionmenu %}{{ "/share/"|section_menu }}{% endblock %}
    </td>
    <td>
     <a href="{% url "shared-subscriptions" user.username %}{% if subscriptions_token %}?token={{ subscriptions_token }}{% endif %}">
-     <img src="/media/22x22/internet-web-browser.png" class="action-button" /></a>
+     <img src="{% static "22x22/internet-web-browser.png" %}" class="action-button" /></a>
     <a href="{% url "shared-subscriptions-rss" user.username %}{% if subscriptions_token %}?token={{ subscriptions_token }}{% endif %}">
-     <img height="22" width="22" src="/media/28x28/feed-icon.png" class="action-button" /></a>
+     <img height="22" width="22" src="{% static "28x28/feed-icon.png" %}" class="action-button" /></a>
     <a href="{% url "shared-subscriptions-opml" user.username %}{% if subscriptions_token %}?token={{ subscriptions_token }}{% endif %}">
-     <img src="/media/22x22/opml-icon.png" class="action-button" /></a>
+     <img src="{% static "22x22/opml-icon.png" %}" class="action-button" /></a>
    </td>
    <td>
     <button class="btn btn-small btn-link {% if not subscriptions_token %}disabled{% endif %}" {% if subscriptions_token %}type="submit" onclick="submitForm('subscriptions_private');"{% endif %}>{% trans "New Token" %}</button>
@@ -48,7 +48,7 @@
     </div>
    <td>
     <a href="{% url "user" user.username %}{% if userpage_token %}?token={{ userpage_token }}{% endif %}">
-     <img src="/media/22x22/internet-web-browser.png" class="action-button" />
+     <img src="{% static "22x22/internet-web-browser.png" %}" class="action-button" />
     </a>
    </td>
    <td>
    </td>
    <td>
     {% if favfeed_podcast %}
-     <a href="{% podcast_link_target favfeed_podcast %}"><img src="/media/22x22/internet-web-browser.png" class="action-button" /></a>
+     <a href="{% podcast_link_target favfeed_podcast %}"><img src="{% static "22x22/internet-web-browser.png" %}" class="action-button" /></a>
     {% endif %}
     {% if favfeed_token %}
      <a href="https://{{ user.username }}:{{ favfeed_token }}@{{ site.domain }}{% url "favorites-feed" user.username %}">
-      <img height="22" width="22" src="/media/28x28/feed-icon.png" class="action-button" />
+      <img height="22" width="22" src="{% static "28x28/feed-icon.png" %}" class="action-button" />
      </a>
     {% else %}
      <a href="{% url "favorites-feed" user.username %}">
-      <img height="22" width="22" src="/media/28x28/feed-icon.png" class="action-button" />
+      <img height="22" width="22" src="{% static "28x28/feed-icon.png" %}" class="action-button" />
      </a>
     {% endif %}
    </td>
index 71092b0..99c4ceb 100644 (file)
 
 import os.path
 from django.conf.urls import *
+from django.conf import settings
+
+# strip the leading "/"
+static_prefix = settings.STATIC_URL[1:]
 
 # This URLs should be always be served, even during maintenance mode
 urlpatterns = patterns('',
-    (r'^media/(?P<path>.*)$', 'django.views.static.serve',
-        {'document_root': os.path.abspath('%s/../htdocs/media/' % os.path.dirname(__file__))}),
+    (r'^%s(?P<path>.*)$' % static_prefix, 'django.contrib.staticfiles.views.serve')
 )
 
 
index 36c321c..0767053 100644 (file)
@@ -1,7 +1,8 @@
+{% load static %}
 <html>
     <head>
         <title>404 Not found (gpodder.net)</title>
-        <link rel="stylesheet" type="text/css" href="/media/fail.css" />
+        <link rel="stylesheet" type="text/css" href="{% static "fail.css" %}" />
     </head>
     <body>
         <div id="c">
@@ -13,7 +14,7 @@
                 </p>
             </div>
         </div>
-        <img id="icon" src="/media/failpodder.png">
+        <img id="icon" src="{% static "failpodder.png" %}">
     </body>
 </html>
 
index 745a1b5..a7c6464 100644 (file)
@@ -1,7 +1,9 @@
+{% load static %}
+
 <html>
     <head>
         <title>500 Internal server error (gpodder.net)</title>
-        <link rel="stylesheet" type="text/css" href="/media/fail.css" />
+        <link rel="stylesheet" type="text/css" href="{% static "fail.css" %}" />
     </head>
     <body>
         <div id="c">
@@ -13,7 +15,7 @@
                 </p>
             </div>
         </div>
-        <img id="icon" src="/media/failpodder.png">
+        <img id="icon" src="{% static "failpodder.png" %}">
     </body>
 </html>
 
index f8cc0e2..da6f7cd 100644 (file)
@@ -12,6 +12,7 @@
 {% load google %}
 {% load charts %}
 {% load utils %}
+{% load static %}
 
 {% load menu %}
 {% block mainmenu %}{{ "/podcast/"|main_menu }}{% endblock %}
@@ -25,9 +26,9 @@
 
 {% block head %}
  {% if episode.url|is_youtube_video %}
-  <script type="text/javascript" src="/media/js/swfobject.js"></script>
-  <script type="text/javascript" src="/media/js/json2.js"></script>
-  <script type="text/javascript" src="/media/js/youtube-handler.js"></script>
+  <script type="text/javascript" src="{% static "js/swfobject.js" %}"></script>
+  <script type="text/javascript" src="{% static "js/json2.js" %}"></script>
+  <script type="text/javascript" src="{% static "js/youtube-handler.js" %}"></script>
  {% endif %}
  {% opengraph_episode episode podcast %}
  {% google_plus_one_head %}
       <td>
        {% if chapter.is_own %}
         <a href="{% episode_link_target episode "remove-chapter" chapter.start chapter.end %}">
-         <img src="/media/unsubscribe.png" alt="{% trans "Remove" %}" />
+         <img src="{% static "unsubscribe.png" %}" alt="{% trans "Remove" %}" />
         </a>
        {% endif %}
       </td>
index 7a15507..666876f 100755 (executable)
@@ -8,7 +8,7 @@
 {% load facebook %}
 {% load google %}
 {% load utils %}
-
+{% load static %}
 {% load menu %}
 {% block mainmenu %}{{ "/podcast/"|main_menu }}{% endblock %}
 {% block sectionmenu %}
    {% if not user.is_authenticated %}
     <div class="subscribe">
      <a href="{% podcast_link_target podcast "subscribe" %}">
-      <img src="/media/subscribe.png" style="vertical-align: middle;" alt=""/>
+      <img src="{% static "subscribe.png" %}" style="vertical-align: middle;" alt=""/>
       {% trans "Subscribe to this podcast" %}
      </a>
     </div>
index d292f4e..c986f36 100644 (file)
@@ -1,5 +1,6 @@
 from django import template
 from django.utils.safestring import mark_safe
+from django.contrib.staticfiles.storage import staticfiles_storage
 
 from mygpo.utils import format_time
 from mygpo.publisher.utils import colour_repr
@@ -28,9 +29,11 @@ def vertical_bar(value, max_value, display=None):
 @register.filter
 def format_diff(value):
     if value > 1:
-        s = '<img src="/media/better.png" title="+%s">' % value
+        s = '<img src="%s" title="+%s">' % \
+            (staticfiles_storage.url('better.png'), value)
     elif value < -1:
-        s = '<img src="/media/worse.png" title="%s">' % value
+        s = '<img src="%s" title="%s">' % \
+            (staticfiles_storage.url('worse.png'), value)
     else:
         s = ''
 
index 55dfe85..c94b1e5 100644 (file)
@@ -1,7 +1,10 @@
+import os.path
+
 from django import template
 from django.utils.safestring import mark_safe
 from django.utils.translation import ugettext
 from django.core.urlresolvers import reverse
+from django.contrib.staticfiles.storage import staticfiles_storage
 
 from mygpo.api.constants import DEVICE_TYPES
 from mygpo.web.views.device import show
@@ -50,8 +53,9 @@ def device_icon(device):
 
     if icon is not None and caption is not None:
         caption = ugettext(caption)
-        html = ('<img src="/media/clients/%(icon)s" '+
-                'alt="%(caption)s" class="device_icon"/>') % locals()
+        html = '<img src="%(icon)s" alt="%(caption)s" class="device_icon"/>' \
+            % dict(icon=staticfiles_storage.url(os.path.join('clients', icon)),
+                   caption=caption)
         return mark_safe(html)
 
     return ''
index b7e9727..2ab2ffc 100644 (file)
@@ -2,6 +2,7 @@ from django import template
 from django.utils.safestring import mark_safe
 from django.utils.translation import ugettext as _
 from django.utils.html import strip_tags
+from django.contrib.staticfiles.storage import staticfiles_storage
 
 from mygpo.core.models import Episode
 from mygpo import utils
@@ -39,7 +40,8 @@ def episode_status_text(episode):
 @register.filter
 def episode_status_icon(action):
     if not action or not action.action:
-        s = '<img src="/media/nothing.png" alt="nothing" title="%s" />' % _('Unplayed episode')
+        s = '<img src="%s" alt="nothing" title="%s" />' % \
+            (staticfiles_storage.url('nothing.png'), _('Unplayed episode'))
 
     else:
         date_string   = (_(' on %s') % (action.timestamp)) if action.timestamp else ''
@@ -49,9 +51,9 @@ def episode_status_icon(action):
             s = '<img src="https://flattr.com/_img/icons/flattr_logo_16.png" alt="flattr" title="%s" />' % (_("The episode has been flattr'd"),)
 
         elif action.action == 'new':
-            s = '<img src="/media/new.png" alt="new" title="%s" />' % ('%s%s%s' % (_('This episode has been marked new'),date_string, device_string))
+            s = '<img src="%s" alt="new" title="%s" />' % (staticfiles_storage.url('new.png'), '%s%s%s' % (_('This episode has been marked new'),date_string, device_string))
         elif action.action == 'download':
-            s = '<img src="/media/download.png" alt="downloaded" title="%s" />' % ('%s%s%s' % (_('This episode has been downloaded'),date_string, device_string))
+            s = '<img src="%s" alt="downloaded" title="%s" />' % (staticfiles_storage.url('download.png'), '%s%s%s' % (_('This episode has been downloaded'),date_string, device_string))
         elif action.action == 'play':
             if action.playmark is not None:
                 if getattr(action, 'started', None) is not None:
@@ -63,9 +65,9 @@ def episode_status_icon(action):
                             utils.format_time(action.playmark),)
             else:
                 playback_info = ''
-            s = '<img src="/media/playback.png" alt="played" title="%s" />' % ('%s%s%s%s' % (_('This episode has been played'),date_string, device_string, playback_info))
+            s = '<img src="%s" alt="played" title="%s" />' % (staticfiles_storage.url('playback.png'), '%s%s%s%s' % (_('This episode has been played'),date_string, device_string, playback_info))
         elif action.action == 'delete':
-            s = '<img src="/media/delete.png" alt="deleted" title="%s"/>' % ('%s%s%s' % (_('This episode has been deleted'),date_string, device_string))
+            s = '<img src="%s" alt="deleted" title="%s"/>' % (staticfiles_storage.url('delete.png'), '%s%s%s' % (_('This episode has been deleted'),date_string, device_string))
         else:
             return action.action  # this is not marked safe by intention
 
index 5400180..8d33d6a 100644 (file)
@@ -4,6 +4,7 @@ from django import template
 from django.utils.safestring import mark_safe
 from django.utils.translation import ugettext as _
 from django.utils.html import strip_tags
+from django.contrib.staticfiles.storage import staticfiles_storage
 
 from mygpo.constants import PODCAST_LOGO_SIZE, PODCAST_LOGO_BIG_SIZE, \
          PODCAST_LOGO_MEDIUM_SIZE
@@ -33,9 +34,9 @@ def podcast_logo_medium(podcast):
 @register.filter
 def podcast_status_icon(action):
     if action.action == 'subscribe':
-        s = '<img src="/media/subscribe.png" />'
+        s = '<img src="%s" />' % (staticfiles_storage.url('subscribe.png'),)
     elif action.action == 'unsubscribe':
-        s = '<img src="/media/unsubscribe.png" />'
+        s = '<img src="%s" />' % (staticfiles_storage.url('unsubscribe.png'),)
     elif action.action == 'flattr':
         s = '<img src="https://flattr.com/_img/icons/flattr_logo_16.png" />'