Commit 0f6cf4ab authored by Julien Phalip's avatar Julien Phalip
Browse files

Improved on r17454 to ensure that `collapse.js` only gets minified when `DEBUG` is `False`.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17455 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent a90aad35
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ from django.utils.encoding import force_unicode, smart_unicode
from django.utils.html import escape, conditional_escape
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from django.conf import settings


ACTION_CHECKBOX_NAME = '_selected_action'
@@ -75,7 +76,10 @@ class Fieldset(object):

    def _media(self):
        if 'collapse' in self.classes:
            js = ['jquery.min.js', 'jquery.init.js', 'collapse.min.js']
            extra = '' if settings.DEBUG else '.min'
            js = ['jquery%s.js' % extra,
                  'jquery.init.js',
                  'collapse%s.js' % extra]
            return forms.Media(js=[static('admin/js/%s' % url) for url in js])
        return forms.Media()
    media = property(_media)
+3 −3
Original line number Diff line number Diff line
@@ -395,7 +395,7 @@ class ModelAdmin(BaseModelAdmin):

    @property
    def media(self):
        extra = "" if settings.DEBUG else ".min"
        extra = '' if settings.DEBUG else '.min'
        js = [
            'core.js',
            'admin/RelatedObjectLookups.js',
@@ -1373,8 +1373,8 @@ class InlineModelAdmin(BaseModelAdmin):

    @property
    def media(self):
        extra = "" if settings.DEBUG else ".min"
        js = ['jquery%s.js' % extra, 'jquery.init.js', "inlines%s.js" % extra]
        extra = '' if settings.DEBUG else '.min'
        js = ['jquery%s.js' % extra, 'jquery.init.js', 'inlines%s.js' % extra]
        if self.prepopulated_fields:
            js.extend(['urlify.js', 'prepopulate%s.js' % extra])
        if self.filter_vertical or self.filter_horizontal:
+14 −1
Original line number Diff line number Diff line
@@ -35,7 +35,19 @@ callable_year.admin_order_field = 'date'

class ArticleInline(admin.TabularInline):
    model = Article

    prepopulated_fields = {
        'title' : ('content',)
    }
    fieldsets=(
        ('Some fields', {
            'classes': ('collapse',),
            'fields': ('title', 'content')
        }),
        ('Some other fields', {
            'classes': ('wide',),
            'fields': ('date', 'section')
        })
    )

class ChapterInline(admin.TabularInline):
    model = Chapter
@@ -512,6 +524,7 @@ class ReportAdmin(admin.ModelAdmin):
                name='cable_extra'),
        )


site = admin.AdminSite(name="admin")
site.register(Article, ArticleAdmin)
site.register(CustomArticle, CustomArticleAdmin)
+0 −1
Original line number Diff line number Diff line
@@ -3,7 +3,6 @@ import datetime
import tempfile
import os

from django import forms
from django.contrib.auth.models import User
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
+35 −0
Original line number Diff line number Diff line
@@ -573,6 +573,7 @@ class AdminViewBasicTest(TestCase):
        except SuspiciousOperation:
            self.fail("Filters should be allowed if they are defined on a ForeignKey pointing to this model")


class AdminJavaScriptTest(AdminViewBasicTest):
    urls = "regressiontests.admin_views.urls"

@@ -598,6 +599,40 @@ class AdminJavaScriptTest(AdminViewBasicTest):
        )


    def test_js_minified_only_if_debug_is_false(self):
        """
        Ensure that the minified versions of the JS files are only used when
        DEBUG is False.
        Refs #17521.
        """
        with override_settings(DEBUG=False):
            response = self.client.get(
                '/test_admin/%s/admin_views/section/add/' % self.urlbit)
            self.assertNotContains(response, 'jquery.js')
            self.assertContains(response, 'jquery.min.js')
            self.assertNotContains(response, 'prepopulate.js')
            self.assertContains(response, 'prepopulate.min.js')
            self.assertNotContains(response, 'actions.js')
            self.assertContains(response, 'actions.min.js')
            self.assertNotContains(response, 'collapse.js')
            self.assertContains(response, 'collapse.min.js')
            self.assertNotContains(response, 'inlines.js')
            self.assertContains(response, 'inlines.min.js')
        with override_settings(DEBUG=True):
            response = self.client.get(
                '/test_admin/%s/admin_views/section/add/' % self.urlbit)
            self.assertContains(response, 'jquery.js')
            self.assertNotContains(response, 'jquery.min.js')
            self.assertContains(response, 'prepopulate.js')
            self.assertNotContains(response, 'prepopulate.min.js')
            self.assertContains(response, 'actions.js')
            self.assertNotContains(response, 'actions.min.js')
            self.assertContains(response, 'collapse.js')
            self.assertNotContains(response, 'collapse.min.js')
            self.assertContains(response, 'inlines.js')
            self.assertNotContains(response, 'inlines.min.js')


class SaveAsTests(TestCase):
    urls = "regressiontests.admin_views.urls"
    fixtures = ['admin-views-users.xml','admin-views-person.xml']
Loading