[PATCH v5 6/8] Integrate 'django.contrib.staticfiles'
Stephen Finucane
stephenfinucane at hotmail.com
Wed Apr 8 07:20:53 AEST 2015
Rather than providing a custom solution for serving static files, use
the solution provided in the upstream Django source.
This allows us to remove the top-level 'urls.py' file.
Signed-off-by: Stephen Finucane <stephenfinucane at hotmail.com>
---
apps/patchwork/urls.py | 8 +++++--
apps/settings.py | 17 +++++++++++---
apps/urls.py | 44 -------------------------------------
htdocs/css/style.css | 2 +-
templates/base.html | 9 ++++----
templates/patchwork/bundle.html | 13 ++++-------
templates/patchwork/bundles.html | 6 +++--
templates/patchwork/filters.html | 5 +++--
templates/patchwork/list.html | 1 +
templates/patchwork/patch-list.html | 31 +++++++++++++++++++++-----
10 files changed, 64 insertions(+), 72 deletions(-)
delete mode 100644 apps/urls.py
diff --git a/apps/patchwork/urls.py b/apps/patchwork/urls.py
index 9b681f9..b28eb90 100644
--- a/apps/patchwork/urls.py
+++ b/apps/patchwork/urls.py
@@ -17,12 +17,16 @@
# along with Patchwork; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-from django.conf.urls import patterns, url
+from django.conf.urls import patterns, url, include
from django.conf import settings
+from django.contrib import admin
from django.contrib.auth import views as auth_views
+admin.autodiscover()
+
urlpatterns = patterns('',
- # Example:
+ url(r'^admin/', include(admin.site.urls)),
+
(r'^$', 'patchwork.views.projects'),
(r'^project/(?P<project_id>[^/]+)/list/$', 'patchwork.views.patch.list'),
(r'^project/(?P<project_id>[^/]+)/$', 'patchwork.views.project.project'),
diff --git a/apps/settings.py b/apps/settings.py
index dbe0544..01add3e 100644
--- a/apps/settings.py
+++ b/apps/settings.py
@@ -19,6 +19,7 @@ INSTALLED_APPS = (
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
+ 'django.contrib.staticfiles',
'patchwork',
)
@@ -78,7 +79,7 @@ USE_I18N = True
# URLs
-ROOT_URLCONF = 'urls'
+ROOT_URLCONF = 'patchwork.urls'
# Security
@@ -99,8 +100,6 @@ TEMPLATE_DIRS = (
# https://docs.djangoproject.com/en/1.6/ref/settings/#auth
#
-ADMIN_MEDIA_PREFIX = '/media/'
-
LOGIN_URL = '/user/login/'
LOGIN_REDIRECT_URL = '/user/'
@@ -114,6 +113,18 @@ SITE_ID = 1
#
+# Static files settings
+# https://docs.djangoproject.com/en/1.6/ref/settings/#static-files
+#
+
+STATIC_URL = '/static/'
+
+STATICFILES_DIRS = [
+ os.path.join(ROOT_DIR, 'htdocs'),
+]
+
+
+#
# Patchwork settings
#
diff --git a/apps/urls.py b/apps/urls.py
deleted file mode 100644
index a8bd68c..0000000
--- a/apps/urls.py
+++ /dev/null
@@ -1,44 +0,0 @@
-# Patchwork - automated patch tracking system
-# Copyright (C) 2008 Jeremy Kerr <jk at ozlabs.org>
-#
-# This file is part of the Patchwork package.
-#
-# Patchwork is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# Patchwork is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Patchwork; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-import os
-
-from django.conf.urls import patterns, include
-from django.conf import settings
-from django.contrib import admin
-
-admin.autodiscover()
-
-htdocs = os.path.join(settings.ROOT_DIR, 'htdocs')
-
-urlpatterns = patterns('',
- # Example:
- (r'^', include('patchwork.urls')),
-
- # Uncomment this for admin:
- (r'^admin/', include(admin.site.urls)),
-
- (r'^css/(?P<path>.*)$', 'django.views.static.serve',
- {'document_root': os.path.join(htdocs, 'css')}),
- (r'^js/(?P<path>.*)$', 'django.views.static.serve',
- {'document_root': os.path.join(htdocs, 'js')}),
- (r'^images/(?P<path>.*)$', 'django.views.static.serve',
- {'document_root': os.path.join(htdocs, 'images')}),
-)
-
diff --git a/htdocs/css/style.css b/htdocs/css/style.css
index 87e0cd5..e5bbc75 100644
--- a/htdocs/css/style.css
+++ b/htdocs/css/style.css
@@ -14,7 +14,7 @@ body {
#title {
- background: url('/images/title-background.png') top left repeat-x;
+ background: url('/static/images/title-background.png') top left repeat-x;
background-color: #786fb4;
margin: 0px;
padding-top: 0.1em;
diff --git a/templates/base.html b/templates/base.html
index f04d6e1..3d289fb 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -1,12 +1,13 @@
-{% load pwurl %}<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+{% load staticfiles %}
+{% load pwurl %}
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>{% block title %}Patchwork{% endblock %} - Patchwork</title>
- <link rel="stylesheet" type="text/css" href="/css/style.css"/>
- <script language="JavaScript" type="text/javascript" src="/js/common.js">
- </script>
+ <link rel="stylesheet" type="text/css" href="{% static "css/style.css" %}"/>
+ <script type="text/javascript" src="{% static "js/common.js" %}"></script>
{% block headers %}{% endblock %}
</head>
<body>
diff --git a/templates/patchwork/bundle.html b/templates/patchwork/bundle.html
index d47cf13..4a96b6b 100644
--- a/templates/patchwork/bundle.html
+++ b/templates/patchwork/bundle.html
@@ -1,17 +1,12 @@
{% extends "base.html" %}
{% load person %}
+{% load static %}
{% block headers %}
- <script language="JavaScript" type="text/javascript"
- src="/js/jquery-1.10.1.min.js">
- </script>
- <script language="JavaScript" type="text/javascript"
- src="/js/jquery.tablednd.js">
- </script>
- <script language="JavaScript" type="text/javascript"
- src="/js/bundle.js">
- </script>
+ <script type="text/javascript" src="{% static "js/jquery-1.10.1.min.js" %}"></script>
+ <script type="text/javascript" src="{% static "js/jquery.tablednd.js" %}"></script>
+ <script type="text/javascript" src="{% static "js/bundle.js" %}"></script>
{% endblock %}
{% block title %}{{project.name}}{% endblock %}
{% block heading %}bundle: {{bundle.owner.username}} /
diff --git a/templates/patchwork/bundles.html b/templates/patchwork/bundles.html
index a725d95..11fb89d 100644
--- a/templates/patchwork/bundles.html
+++ b/templates/patchwork/bundles.html
@@ -1,5 +1,7 @@
{% extends "base.html" %}
+{% load static %}
+
{% block title %}Bundles{% endblock %}
{% block heading %}Bundles{% endblock %}
@@ -27,7 +29,7 @@
<td style="text-align: right">{{ bundle.n_patches }}</td>
<td style="text-align: center;"><a
href="{% url 'patchwork.views.bundle.mbox' username=bundle.owner.username bundlename=bundle.name %}"
- ><img src="/images/16-em-down.png" width="16" height="16" alt="download"
+ ><img src="{% static "images/16-em-down.png" %}" width="16" height="16" alt="download"
title="download"/></a></td>
<td style="text-align: center;">
<form method="post"
@@ -35,7 +37,7 @@
{% csrf_token %}
{{ bundle.delete_form.as_p }}
<input type="image"
- src="/images/16-em-cross.png" width="16" height="16" alt="delete"
+ src="{% static "images/patchwork/16-em-cross.png" %}" width="16" height="16" alt="delete"
title="delete" border="0" style="border: none;"/>
</form>
</td>
diff --git a/templates/patchwork/filters.html b/templates/patchwork/filters.html
index e2b7585..10ca587 100644
--- a/templates/patchwork/filters.html
+++ b/templates/patchwork/filters.html
@@ -1,3 +1,4 @@
+{% load static %}
<script type="text/javascript" language="JavaScript">
var filterform_displayed = false;
@@ -150,7 +151,7 @@ function submitter_field_change(field)
{% if not filter.forced %}
<a href="{{ filter.url_without_me }}"><img
width="16" height="16" alt="remove filter" title="remove filter"
- src="/images/16-circle-blue-remove.png"></a>
+ src="{% static "images/16-circle-blue-remove.png" %}"></a>
{% endif %}
{% if not forloop.last %} | {% endif %}
{% endfor %}
@@ -158,7 +159,7 @@ function submitter_field_change(field)
none
<a href="javascript:filter_click()"><img
width="16" height="16" alt="add filter" title="add filter"
- src="/images/16-circle-blue-add.png"></a>
+ src="{% static "images/16-circle-blue-add.png" %}"></a>
{% endif %}
</div>
<div id="filterform" style="padding-top: 1em; display: none">
diff --git a/templates/patchwork/list.html b/templates/patchwork/list.html
index 8054063..654fe8c 100644
--- a/templates/patchwork/list.html
+++ b/templates/patchwork/list.html
@@ -1,6 +1,7 @@
{% extends "base.html" %}
{% load person %}
+{% load static %}
{% block title %}{{project.name}}{% endblock %}
{% block heading %}{{project.name}}{% endblock %}
diff --git a/templates/patchwork/patch-list.html b/templates/patchwork/patch-list.html
index 59adbe3..8f089ca 100644
--- a/templates/patchwork/patch-list.html
+++ b/templates/patchwork/patch-list.html
@@ -1,5 +1,6 @@
{% load person %}
{% load listurl %}
+{% load static %}
{% include "patchwork/pagination.html" %}
@@ -50,7 +51,11 @@
{% ifequal order.name "name" %}
<a class="colactive"
href="{% listurl order=order.reversed_name %}"><img
- src="/images/16-arrow-{% if order.reversed %}up{% else %}down{%endif%}.png"
+ {% if order.reversed %}
+ src="{% static "images/16-arrow-up.png" %}"
+ {% else %}
+ src="{% static "images/16-arrow-down.png" %}"
+ {%endif%}
width="16" height="16"
></a> <a class="colactive"
href="{% listurl order=order.reversed_name %}">Patch</a>
@@ -67,7 +72,11 @@
{% ifequal order.name "date" %}
<a class="colactive"
href="{% listurl order=order.reversed_name %}"><img
- src="/images/16-arrow-{% if order.reversed %}up{% else %}down{%endif%}.png"
+ {% if order.reversed %}
+ src="{% static "images/16-arrow-up.png" %}"
+ {% else %}
+ src="{% static "images/16-arrow-down.png" %}"
+ {%endif%}
width="16" height="16"
></a> <a class="colactive"
href="{% listurl order=order.reversed_name %}">Date</a>
@@ -84,7 +93,11 @@
{% ifequal order.name "submitter" %}
<a class="colactive"
href="{% listurl order=order.reversed_name %}"><img
- src="/images/16-arrow-{% if order.reversed %}up{% else %}down{%endif%}.png"
+ {% if order.reversed %}
+ src="{% static "images/16-arrow-up.png" %}"
+ {% else %}
+ src="{% static "images/16-arrow-down.png" %}"
+ {%endif%}
width="16" height="16"
></a> <a class="colactive"
href="{% listurl order=order.reversed_name %}">Submitter</a>
@@ -101,7 +114,11 @@
{% ifequal order.name "delegate" %}
<a class="colactive"
href="{% listurl order=order.reversed_name %}"><img
- src="/images/16-arrow-{% if order.reversed %}up{% else %}down{%endif%}.png"
+ {% if order.reversed %}
+ src="{% static "images/16-arrow-up.png" %}"
+ {% else %}
+ src="{% static "images/16-arrow-down.png" %}"
+ {%endif%}
width="16" height="16"
></a> <a class="colactive"
href="{% listurl order=order.reversed_name %}">Delegate</a>
@@ -118,7 +135,11 @@
{% ifequal order.name "state" %}
<a class="colactive"
href="{% listurl order=order.reversed_name %}"><img
- src="/images/16-arrow-{% if order.reversed %}up{% else %}down{%endif%}.png"
+ {% if order.reversed %}
+ src="{% static "images/16-arrow-up.png" %}"
+ {% else %}
+ src="{% static "images/16-arrow-down.png" %}"
+ {%endif%}
width="16" height="16"
></a> <a class="colactive"
href="{% listurl order=order.reversed_name %}">State</a>
--
2.1.0
More information about the Patchwork
mailing list