Skip to content

Commit

Permalink
Added cms.utils.cms_static_url, thanks go to @jezdez for this code
Browse files Browse the repository at this point in the history
Replaced all os.path.join powered URL constructing with cms.utils.cms_static_url
  • Loading branch information
Jonas Obrist committed Aug 4, 2011
1 parent a040642 commit 3780159
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 64 deletions.
31 changes: 14 additions & 17 deletions cms/admin/pageadmin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@
from cms.admin.change_list import CMSChangeList
from cms.admin.dialog.views import get_copy_dialog
from cms.admin.forms import PageForm, PageAddForm
from cms.admin.permissionadmin import PAGE_ADMIN_INLINES, \
PagePermissionInlineAdmin, ViewRestrictionInlineAdmin
from cms.admin.permissionadmin import (PAGE_ADMIN_INLINES,
PagePermissionInlineAdmin, ViewRestrictionInlineAdmin)
from cms.admin.views import revert_plugins
from cms.apphook_pool import apphook_pool
from cms.exceptions import NoPermissionsException
from cms.forms.widgets import PluginEditor
from cms.models import Page, Title, CMSPlugin, PagePermission, \
PageModeratorState, EmptyTitle, GlobalPagePermission
from cms.models import (Page, Title, CMSPlugin, PagePermission,
PageModeratorState, EmptyTitle, GlobalPagePermission)
from cms.models.managers import PagePermissionsPermissionManager
from cms.models.placeholdermodel import Placeholder
from cms.plugin_pool import plugin_pool
from cms.utils import copy_plugins, helpers, moderator, permissions, plugins, \
get_template_from_request, get_language_from_request, \
placeholder as placeholder_utils, admin as admin_utils
from cms.utils import (copy_plugins, helpers, moderator, permissions, plugins,
get_template_from_request, get_language_from_request,
placeholder as placeholder_utils, admin as admin_utils, cms_static_url)
from cms.utils.permissions import has_plugin_permission
from copy import deepcopy
from django import template
Expand All @@ -28,20 +28,17 @@
from django.core.urlresolvers import reverse
from django.db import transaction, models
from django.forms import CharField
from django.http import HttpResponseRedirect, HttpResponse, Http404, \
HttpResponseBadRequest, HttpResponseForbidden, HttpResponseNotAllowed
from django.http import (HttpResponseRedirect, HttpResponse, Http404,
HttpResponseBadRequest, HttpResponseForbidden, HttpResponseNotAllowed)
from django.shortcuts import render_to_response, get_object_or_404
from django.template.context import RequestContext
from django.template.defaultfilters import title, escape, force_escape, \
escapejs
from django.template.defaultfilters import (title, escape, force_escape,
escapejs)
from django.utils.encoding import force_unicode
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext
from django.utils.translation import ugettext, ugettext_lazy as _
from menus.menu_pool import menu_pool
import django
import inspect
import os




Expand Down Expand Up @@ -164,14 +161,14 @@ class PageAdmin(ModelAdmin):

class Media:
css = {
'all': [os.path.join(settings.STATIC_URL, 'cms', path) for path in (
'all': [cms_static_url(path) for path in (
'css/rte.css',
'css/pages.css',
'css/change_form.css',
'css/jquery.dialog.css',
)]
}
js = ['%sjs/jquery.min.js' % settings.ADMIN_MEDIA_PREFIX] + [os.path.join(settings.STATIC_URL, 'cms', path) for path in [
js = ['%sjs/jquery.min.js' % settings.ADMIN_MEDIA_PREFIX] + [cms_static_url(path) for path in [
'js/plugins/admincompat.js',
'js/libs/jquery.query.js',
'js/libs/jquery.ui.core.js',
Expand Down
11 changes: 5 additions & 6 deletions cms/admin/placeholderadmin.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,32 @@
from cms.models.placeholdermodel import Placeholder
from cms.models.pluginmodel import CMSPlugin
from cms.plugin_pool import plugin_pool
from cms.utils import get_language_from_request
from cms.utils import get_language_from_request, cms_static_url
from cms.utils.permissions import has_plugin_permission
from copy import deepcopy
from django.conf import settings
from django.contrib.admin import ModelAdmin
from django.http import HttpResponse, Http404, HttpResponseBadRequest, HttpResponseForbidden
from django.http import (HttpResponse, Http404, HttpResponseBadRequest,
HttpResponseForbidden)
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.template.defaultfilters import force_escape, escapejs
from django.utils.translation import ugettext as _
import os


class PlaceholderAdmin(ModelAdmin):

class Media:
css = {
'all': [os.path.join(settings.STATIC_URL, 'cms', path) for path in (
'all': [cms_static_url(path) for path in (
'css/rte.css',
'css/pages.css',
'css/change_form.css',
'css/jquery.dialog.css',
'css/plugin_editor.css',
)]
}
js = ['%sjs/jquery.min.js' % settings.ADMIN_MEDIA_PREFIX] + [
os.path.join(settings.STATIC_URL, 'cms', path) for path in [
js = ['%sjs/jquery.min.js' % settings.ADMIN_MEDIA_PREFIX] + [cms_static_url(path) for path in [
'js/plugins/admincompat.js',
'js/csrf.js',
'js/libs/jquery.query.js',
Expand Down
24 changes: 12 additions & 12 deletions cms/cms_toolbar.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from cms.toolbar.constants import LEFT, RIGHT
from cms.toolbar.items import (Anchor, Switcher, TemplateHTML, ListItem, List,
GetButton)
from cms.utils import cms_media
from cms.utils import cms_static_url
from cms.utils.moderator import page_moderator_state, I_APPROVE
from django import forms
from django.conf import settings
Expand Down Expand Up @@ -125,7 +125,7 @@ def get_items(self, context, **kwargs):

items.append(
GetButton(RIGHT, 'logout', _('Logout'), '?cms-toolbar-logout',
cms_media('images/toolbar/icons/icon_lock.png'))
cms_static_url('images/toolbar/icons/icon_lock.png'))
)
elif not self.request.user.is_authenticated():
items.append(
Expand All @@ -134,7 +134,7 @@ def get_items(self, context, **kwargs):
else:
items.append(
GetButton(RIGHT, 'logout', _('Logout'), '?cms-toolbar-logout',
cms_media('images/toolbar/icons/icon_lock.png'))
cms_static_url('images/toolbar/icons/icon_lock.png'))
)
return items

Expand All @@ -159,26 +159,26 @@ def get_page_menu(self, context, can_change, is_staff):
menu_items = [
ListItem('overview', _('Move/add Pages'),
reverse('admin:cms_page_changelist'),
icon=cms_media('images/toolbar/icons/icon_sitemap.png')),
icon=cms_static_url('images/toolbar/icons/icon_sitemap.png')),
]
menu_items.append(
ListItem('addchild', _('Add child page'),
_get_add_child_url,
icon=cms_media('images/toolbar/icons/icon_child.png'))
icon=cms_static_url('images/toolbar/icons/icon_child.png'))
)

menu_items.append(
ListItem('addsibling', _('Add sibling page'),
_get_add_sibling_url,
icon=cms_media('images/toolbar/icons/icon_sibling.png'))
icon=cms_static_url('images/toolbar/icons/icon_sibling.png'))
)

menu_items.append(
ListItem('delete', _('Delete Page'), _get_delete_url,
icon=cms_media('images/toolbar/icons/icon_delete.png'))
icon=cms_static_url('images/toolbar/icons/icon_delete.png'))
)
return List(RIGHT, 'page', _('Page'),
cms_media('images/toolbar/icons/icon_page.png'),
cms_static_url('images/toolbar/icons/icon_page.png'),
items=menu_items)

def get_admin_menu(self, context, can_change, is_staff):
Expand All @@ -188,22 +188,22 @@ def get_admin_menu(self, context, can_change, is_staff):
admin_items = [
ListItem('admin', _('Site Administration'),
reverse('admin:index'),
icon=cms_media('images/toolbar/icons/icon_admin.png')),
icon=cms_static_url('images/toolbar/icons/icon_admin.png')),
]
if can_change:
admin_items.append(
ListItem('settings', _('Page Settings'),
_get_page_admin_url,
icon=cms_media('images/toolbar/icons/icon_page.png'))
icon=cms_static_url('images/toolbar/icons/icon_page.png'))
)
if 'reversion' in settings.INSTALLED_APPS:
admin_items.append(
ListItem('history', _('View History'),
_get_page_history_url,
icon=cms_media('images/toolbar/icons/icon_history.png'))
icon=cms_static_url('images/toolbar/icons/icon_history.png'))
)
return List(RIGHT, 'admin', _('Admin'),
cms_media('images/toolbar/icons/icon_admin.png'),
cms_static_url('images/toolbar/icons/icon_admin.png'),
items=admin_items)

def request_hook(self):
Expand Down
7 changes: 3 additions & 4 deletions cms/forms/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from cms.forms.utils import get_site_choices, get_page_choices
from cms.models import Page, PageUser, Placeholder
from cms.plugin_pool import plugin_pool
from cms.utils import get_language_from_request
from cms.utils import get_language_from_request, cms_static_url
from django.conf import settings
from django.contrib.sites.models import Site
from django.forms.widgets import Select, MultiWidget, Widget
Expand All @@ -11,7 +11,6 @@
from django.utils.encoding import force_unicode
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext as _
from os.path import join
import copy

class PageSelectWidget(MultiWidget):
Expand Down Expand Up @@ -130,12 +129,12 @@ def __init__(self, attrs=None):
self.attrs = {}

class Media:
js = [join(settings.STATIC_URL, 'cms', path) for path in (
js = [cms_static_url(path) for path in (
'js/libs/jquery.ui.core.js',
'js/libs/jquery.ui.sortable.js',
)]
css = {
'all': [join(settings.STATIC_URL, 'cms', path) for path in (
'all': [cms_static_url(path) for path in (
'css/plugin_editor.css',
)]
}
Expand Down
34 changes: 19 additions & 15 deletions cms/plugins/text/widgets/tinymce_widget.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
from tinymce.widgets import TinyMCE, get_language_config
from cms.utils import cms_static_url
from django.conf import settings
from django.utils.translation import get_language
from django.forms.widgets import flatatt
from django.template.defaultfilters import escape
from django.template.loader import render_to_string
from django.utils.safestring import mark_safe
from os.path import join
from django.utils.encoding import smart_unicode
import tinymce.settings
from django.utils import simplejson
from django.template.defaultfilters import escape
from django.forms.widgets import flatatt
from django.utils.encoding import smart_unicode
from django.utils.safestring import mark_safe
from django.utils.translation import get_language
from tinymce.widgets import TinyMCE, get_language_config
import cms.plugins.text.settings
import tinymce.settings

class TinyMCEEditor(TinyMCE):

Expand All @@ -30,13 +30,17 @@ def render_additions(self, name, value, attrs=None):

def _media(self):
media = super(TinyMCEEditor, self)._media()
media.add_js([join(settings.STATIC_URL, 'cms', path) for path in (
'js/tinymce.placeholdereditor.js',
'js/libs/jquery.ui.core.js',
'js/placeholder_editor_registry.js',
)])
media.add_css({"all":[join(settings.STATIC_URL, 'cms', path) for path in ('css/jquery/cupertino/jquery-ui.css',
'css/tinymce_toolbar.css')]})
media.add_js([cms_static_url(path) for path in (
'js/tinymce.placeholdereditor.js',
'js/libs/jquery.ui.core.js',
'js/placeholder_editor_registry.js',
)])
media.add_css({
"all": [
cms_static_url(path) for path in ('css/jquery/cupertino/jquery-ui.css',
'css/tinymce_toolbar.css')
]
})

return media

Expand Down
11 changes: 5 additions & 6 deletions cms/plugins/text/widgets/wymeditor_widget.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
from os.path import join
from cms.plugins.text import settings as text_settings
from cms.utils import cms_static_url
from django.conf import settings
from django.forms import Textarea
from django.utils.safestring import mark_safe
from django.template.loader import render_to_string

from cms.plugins.text import settings as text_settings
from django.utils.safestring import mark_safe
from django.utils.translation.trans_real import get_language


class WYMEditor(Textarea):
class Media:
js = [join(settings.STATIC_URL, 'cms', path) for path in (
js = [cms_static_url(path) for path in (
'wymeditor/jquery.wymeditor.js',
'wymeditor/plugins/resizable/jquery.wymeditor.resizable.js',
'js/wymeditor.placeholdereditor.js',
'js/libs/jquery.ui.core.js',
'js/placeholder_editor_registry.js',
)]
css = {
'all': [join(settings.STATIC_URL, 'cms', path) for path in (
'all': [cms_static_url(path) for path in (
'css/jquery/cupertino/jquery-ui.css',
)],
}
Expand Down
22 changes: 18 additions & 4 deletions cms/utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
# TODO: this is just stuff from utils.py - should be splitted / moved
from cms.utils.i18n import get_default_language
from django.conf import settings
from django.core.files.storage import get_storage_class
from django.core.urlresolvers import reverse
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.functional import LazyObject
import os
import urllib


Expand Down Expand Up @@ -74,10 +77,21 @@ def get_page_from_request(request):
"in Django-CMS 2.2.", DeprecationWarning)
return new(request)

def cms_media(suffix):

"""
The following class is taken from https://github.com/jezdez/django/compare/feature/staticfiles-templatetag
and should be removed and replaced by the django-core version in 1.4
"""
class ConfiguredStorage(LazyObject):
def _setup(self):
self._wrapped = get_storage_class(settings.STATICFILES_STORAGE)()

configured_storage = ConfiguredStorage()

def cms_static_url(path):
'''
Helper that prefixes a URL with STATIC_URL and cms
'''
if suffix:
return u'%scms/%s' % (settings.STATIC_URL, suffix)
return ''
if not path:
''
return configured_storage.url(os.path.join('cms', path))

0 comments on commit 3780159

Please sign in to comment.