Refactored openstack-dashboard to use Django 1.3's contrib.staticfiles app as per current best-practices. This bumps the minimum required version of Django to 1.3 and introduces a backwards-incompatible change for any third-party code that relied on hard-coded paths to the media directory.
@ -37,9 +37,11 @@ ENABLE_VNC = True
|
|||||||
LOGIN_URL = '/auth/login'
|
LOGIN_URL = '/auth/login'
|
||||||
LOGIN_REDIRECT_URL = '/'
|
LOGIN_REDIRECT_URL = '/'
|
||||||
|
|
||||||
MEDIA_ROOT = os.path.join(ROOT_PATH, '..', 'media')
|
MEDIA_ROOT = os.path.abspath(os.path.join(ROOT_PATH, '..', 'media'))
|
||||||
MEDIA_URL = '/media/'
|
MEDIA_URL = '/media/'
|
||||||
ADMIN_MEDIA_PREFIX = '/media/admin/'
|
STATIC_ROOT = os.path.abspath(os.path.join(ROOT_PATH, '..', 'static'))
|
||||||
|
STATIC_URL = '/static/'
|
||||||
|
ADMIN_MEDIA_PREFIX = '/static/admin/'
|
||||||
|
|
||||||
CREDENTIAL_AUTHORIZATION_DAYS = '5'
|
CREDENTIAL_AUTHORIZATION_DAYS = '5'
|
||||||
|
|
||||||
@ -61,6 +63,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
|
|||||||
'django.core.context_processors.i18n',
|
'django.core.context_processors.i18n',
|
||||||
'django.core.context_processors.request',
|
'django.core.context_processors.request',
|
||||||
'django.core.context_processors.media',
|
'django.core.context_processors.media',
|
||||||
|
'django.core.context_processors.static',
|
||||||
'django.contrib.messages.context_processors.messages',
|
'django.contrib.messages.context_processors.messages',
|
||||||
'django_openstack.context_processors.swift',
|
'django_openstack.context_processors.swift',
|
||||||
'django_openstack.context_processors.tenants',
|
'django_openstack.context_processors.tenants',
|
||||||
@ -76,11 +79,16 @@ TEMPLATE_DIRS = (
|
|||||||
os.path.join(ROOT_PATH, 'templates'),
|
os.path.join(ROOT_PATH, 'templates'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
STATICFILES_DIRS = (
|
||||||
|
os.path.join(ROOT_PATH, 'static'),
|
||||||
|
)
|
||||||
|
|
||||||
INSTALLED_APPS = (
|
INSTALLED_APPS = (
|
||||||
'dashboard',
|
'dashboard',
|
||||||
'django.contrib.contenttypes',
|
'django.contrib.contenttypes',
|
||||||
'django.contrib.sessions',
|
'django.contrib.sessions',
|
||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
|
'django.contrib.staticfiles',
|
||||||
'django_openstack',
|
'django_openstack',
|
||||||
'django_openstack.templatetags',
|
'django_openstack.templatetags',
|
||||||
'mailer',
|
'mailer',
|
||||||
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 181 B After Width: | Height: | Size: 181 B |
Before Width: | Height: | Size: 158 B After Width: | Height: | Size: 158 B |
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 124 B After Width: | Height: | Size: 124 B |
Before Width: | Height: | Size: 103 B After Width: | Height: | Size: 103 B |
Before Width: | Height: | Size: 118 B After Width: | Height: | Size: 118 B |
Before Width: | Height: | Size: 104 B After Width: | Height: | Size: 104 B |
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 119 B |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
@ -5,10 +5,10 @@ All rights reserved.
|
|||||||
Redistribution and use in source and binary forms, with or without modification,
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
are permitted provided that the following conditions are met:
|
are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice,
|
1. Redistributions of source code must retain the above copyright notice,
|
||||||
this list of conditions and the following disclaimer.
|
this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
notice, this list of conditions and the following disclaimer in the
|
notice, this list of conditions and the following disclaimer in the
|
||||||
documentation and/or other materials provided with the distribution.
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
@ -48,12 +48,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
.selector-available h2, .selector-chosen h2 {
|
.selector-available h2, .selector-chosen h2 {
|
||||||
border: 1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
background: #C9DBED url(/media/admin/img/admin/default-bg.gif) bottom left repeat-x;
|
background: #C9DBED url(../admin/img/admin/default-bg.gif) bottom left repeat-x;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector .selector-available h2 {
|
.selector .selector-available h2 {
|
||||||
background: white url(/media/admin/img/admin/nav-bg.gif) bottom left repeat-x;
|
background: white url(../admin/img/admin/nav-bg.gif) bottom left repeat-x;
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
float: left;
|
float: left;
|
||||||
width: 22px;
|
width: 22px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
background: url(/media/admin/img/admin/chooser-bg.gif) top center no-repeat;
|
background: url(../admin/img/admin/chooser-bg.gif) top center no-repeat;
|
||||||
margin: 8em 3px 0 3px;
|
margin: 8em 3px 0 3px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
@ -104,12 +104,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
}
|
}
|
||||||
|
|
||||||
.selector-add {
|
.selector-add {
|
||||||
background: url(/media/admin/img/admin/selector-add.gif) top center no-repeat;
|
background: url(../admin/img/admin/selector-add.gif) top center no-repeat;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector-remove {
|
.selector-remove {
|
||||||
background: url(/media/admin/img/admin/selector-remove.gif) top center no-repeat;
|
background: url(../admin/img/admin/selector-remove.gif) top center no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.selector-chooseall, a.selector-clearall {
|
a.selector-chooseall, a.selector-clearall {
|
||||||
@ -129,11 +129,11 @@ a.selector-chooseall:hover, a.selector-clearall:hover {
|
|||||||
|
|
||||||
a.selector-chooseall {
|
a.selector-chooseall {
|
||||||
width: 7em;
|
width: 7em;
|
||||||
background: url(/media/admin/img/admin/selector-addall.gif) left center no-repeat;
|
background: url(../admin/img/admin/selector-addall.gif) left center no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.selector-clearall {
|
a.selector-clearall {
|
||||||
background: url(/media/admin/img/admin/selector-removeall.gif) left center no-repeat;
|
background: url(../admin/img/admin/selector-removeall.gif) left center no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ a.selector-clearall {
|
|||||||
height: 22px;
|
height: 22px;
|
||||||
width: 50px;
|
width: 50px;
|
||||||
margin: 0 0 3px 40%;
|
margin: 0 0 3px 40%;
|
||||||
background: url(/media/admin/img/admin/chooser_stacked-bg.gif) top center no-repeat;
|
background: url(../admin/img/admin/chooser_stacked-bg.gif) top center no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stacked .selector-chooser li {
|
.stacked .selector-chooser li {
|
||||||
@ -178,11 +178,11 @@ a.selector-clearall {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.stacked .selector-add {
|
.stacked .selector-add {
|
||||||
background-image: url(/media/admin/img/admin/selector_stacked-add.gif);
|
background-image: url(../admin/img/admin/selector_stacked-add.gif);
|
||||||
}
|
}
|
||||||
|
|
||||||
.stacked .selector-remove {
|
.stacked .selector-remove {
|
||||||
background-image: url(/media/admin/img/admin/selector_stacked-remove.gif);
|
background-image: url(../admin/img/admin/selector_stacked-remove.gif);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -269,7 +269,7 @@ p.file-upload {
|
|||||||
color: #666;
|
color: #666;
|
||||||
padding: 2px 3px;
|
padding: 2px 3px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background: #e1e1e1 url(/media/admin/img/admin/nav-bg.gif) 0 50% repeat-x;
|
background: #e1e1e1 url(../admin/img/admin/nav-bg.gif) 0 50% repeat-x;
|
||||||
border-bottom: 1px solid #ddd;
|
border-bottom: 1px solid #ddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -337,7 +337,7 @@ p.file-upload {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
background: #C9DBED url(/media/admin/img/admin/default-bg.gif) bottom left repeat-x;
|
background: #C9DBED url(../admin/img/admin/default-bg.gif) bottom left repeat-x;
|
||||||
padding: 1px 4px 2px 4px;
|
padding: 1px 4px 2px 4px;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
@ -360,7 +360,7 @@ p.file-upload {
|
|||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
background: #e1e1e1 url(/media/admin/img/admin/nav-bg.gif) 0 50% repeat-x;
|
background: #e1e1e1 url(../admin/img/admin/nav-bg.gif) 0 50% repeat-x;
|
||||||
border-top: 1px solid #ddd;
|
border-top: 1px solid #ddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -397,7 +397,7 @@ ul.orderer li {
|
|||||||
border-width: 0 1px 1px 0;
|
border-width: 0 1px 1px 0;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #e2e2e2 url(/media/admin/img/admin/nav-bg-grabber.gif) repeat-y;
|
background: #e2e2e2 url(../admin/img/admin/nav-bg-grabber.gif) repeat-y;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.orderer li:hover {
|
ul.orderer li:hover {
|
||||||
@ -429,7 +429,7 @@ ul.orderer li.selected {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ul.orderer li.deleted {
|
ul.orderer li.deleted {
|
||||||
background: #bbb url(/media/admin/img/admin/deleted-overlay.gif);
|
background: #bbb url(../admin/img/admin/deleted-overlay.gif);
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.orderer li.deleted a:link, ul.orderer li.deleted a:visited {
|
ul.orderer li.deleted a:link, ul.orderer li.deleted a:visited {
|
||||||
@ -437,7 +437,7 @@ ul.orderer li.deleted a:link, ul.orderer li.deleted a:visited {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ul.orderer li.deleted .inline-deletelink {
|
ul.orderer li.deleted .inline-deletelink {
|
||||||
background-image: url(/media/admin/img/admin/inline-restore.png);
|
background-image: url(../admin/img/admin/inline-restore.png);
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.orderer li.deleted:hover, ul.orderer li.deleted a.selector:hover {
|
ul.orderer li.deleted:hover, ul.orderer li.deleted a.selector:hover {
|
||||||
@ -449,7 +449,7 @@ ul.orderer li.deleted:hover, ul.orderer li.deleted a.selector:hover {
|
|||||||
.inline-deletelink {
|
.inline-deletelink {
|
||||||
display: block;
|
display: block;
|
||||||
text-indent: -9999px;
|
text-indent: -9999px;
|
||||||
background: transparent url(/media/admin/img/admin/inline-delete.png) no-repeat;
|
background: transparent url(../admin/img/admin/inline-delete.png) no-repeat;
|
||||||
width: 15px;
|
width: 15px;
|
||||||
height: 15px;
|
height: 15px;
|
||||||
margin: 0.4em 0;
|
margin: 0.4em 0;
|
||||||
@ -488,11 +488,11 @@ ul.orderer li.deleted:hover, ul.orderer li.deleted a.selector:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.editinline tr.deleted {
|
.editinline tr.deleted {
|
||||||
background: #ddd url(/media/admin/img/admin/deleted-overlay.gif);
|
background: #ddd url(../admin/img/admin/deleted-overlay.gif);
|
||||||
}
|
}
|
||||||
|
|
||||||
.editinline tr.deleted .inline-deletelink {
|
.editinline tr.deleted .inline-deletelink {
|
||||||
background-image: url(/media/admin/img/admin/inline-restore.png);
|
background-image: url(../admin/img/admin/inline-restore.png);
|
||||||
}
|
}
|
||||||
|
|
||||||
.editinline tr.deleted td:hover {
|
.editinline tr.deleted td:hover {
|
||||||
@ -523,13 +523,13 @@ ul.orderer li.deleted:hover, ul.orderer li.deleted a.selector:hover {
|
|||||||
.editinline-stacked .inline-splitter {
|
.editinline-stacked .inline-splitter {
|
||||||
float: left;
|
float: left;
|
||||||
width: 9px;
|
width: 9px;
|
||||||
background: #f8f8f8 url(/media/admin/img/admin/inline-splitter-bg.gif) 50% 50% no-repeat;
|
background: #f8f8f8 url(../admin/img/admin/inline-splitter-bg.gif) 50% 50% no-repeat;
|
||||||
border-right: 1px solid #ccc;
|
border-right: 1px solid #ccc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editinline-stacked .controls {
|
.editinline-stacked .controls {
|
||||||
clear: both;
|
clear: both;
|
||||||
background: #e1e1e1 url(/media/admin/img/admin/nav-bg.gif) top left repeat-x;
|
background: #e1e1e1 url(../admin/img/admin/nav-bg.gif) top left repeat-x;
|
||||||
padding: 3px 4px;
|
padding: 3px 4px;
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
border-top: 1px solid #ddd;
|
border-top: 1px solid #ddd;
|
Before Width: | Height: | Size: 180 B After Width: | Height: | Size: 180 B |
Before Width: | Height: | Size: 144 B After Width: | Height: | Size: 144 B |
Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 105 B |
Before Width: | Height: | Size: 111 B After Width: | Height: | Size: 111 B |
Before Width: | Height: | Size: 151 B After Width: | Height: | Size: 151 B |
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 107 B |
Before Width: | Height: | Size: 101 B After Width: | Height: | Size: 101 B |
Before Width: | Height: | Size: 123 B After Width: | Height: | Size: 123 B |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
@ -165,7 +165,7 @@ p .ui-icon {
|
|||||||
|
|
||||||
#content.home #projects a {
|
#content.home #projects a {
|
||||||
display: block;
|
display: block;
|
||||||
background: url(/media/dashboard/img/server_icon.png) no-repeat 13px 9px;
|
background: url(../img/server_icon.png) no-repeat 13px 9px;
|
||||||
padding: 5px 0 5px 58px;
|
padding: 5px 0 5px 58px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
@ -213,7 +213,7 @@ span.data {
|
|||||||
#home_login input[type="submit"], #lnk_register {
|
#home_login input[type="submit"], #lnk_register {
|
||||||
float: right;
|
float: right;
|
||||||
height: 31px;
|
height: 31px;
|
||||||
background: url(/media/dashboard/img/login_btn.png) top left repeat-x;
|
background: url(../img/login_btn.png) top left repeat-x;
|
||||||
border: 1px solid #206cb5;
|
border: 1px solid #206cb5;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
@ -508,7 +508,7 @@ td.detail_wrapper {
|
|||||||
|
|
||||||
}
|
}
|
||||||
div.image_detail, div.instance_detail {
|
div.image_detail, div.instance_detail {
|
||||||
background: url(/media/dashboard/img/image_detail.png) top left no-repeat;
|
background: url(../img/image_detail.png) top left no-repeat;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
width: 674px;
|
width: 674px;
|
||||||
padding: 8px 8px 16px 8px;
|
padding: 8px 8px 16px 8px;
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 741 B After Width: | Height: | Size: 741 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 627 B After Width: | Height: | Size: 627 B |
Before Width: | Height: | Size: 847 B After Width: | Height: | Size: 847 B |
Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 105 B |
Before Width: | Height: | Size: 138 B After Width: | Height: | Size: 138 B |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 957 B After Width: | Height: | Size: 957 B |
Before Width: | Height: | Size: 255 B After Width: | Height: | Size: 255 B |
Before Width: | Height: | Size: 996 B After Width: | Height: | Size: 996 B |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 966 B After Width: | Height: | Size: 966 B |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 476 B After Width: | Height: | Size: 476 B |
Before Width: | Height: | Size: 238 B After Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 166 B After Width: | Height: | Size: 166 B |
Before Width: | Height: | Size: 166 B After Width: | Height: | Size: 166 B |
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 471 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 598 B After Width: | Height: | Size: 598 B |
Before Width: | Height: | Size: 782 B After Width: | Height: | Size: 782 B |
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 408 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 431 B After Width: | Height: | Size: 431 B |
Before Width: | Height: | Size: 433 B After Width: | Height: | Size: 433 B |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 282 B |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 426 B After Width: | Height: | Size: 426 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 157 B After Width: | Height: | Size: 157 B |
Before Width: | Height: | Size: 968 B After Width: | Height: | Size: 968 B |
Before Width: | Height: | Size: 435 B After Width: | Height: | Size: 435 B |