コード例 #1
0
def set_defaults(config):
    config.setdefault('plugins_with_extra_fields', {})
    config['plugins_with_extra_fields'].setdefault('ShopReorderButtonPlugin', PluginExtraFieldsConfig(
        inline_styles={
            'extra_fields:Margins': ['margin-top', 'margin-right', 'margin-bottom', 'margin-left'],
            'extra_units:Margins': 'px,em'
        },
    ))
    config['plugins_with_extra_fields'].setdefault('ShopCancelOrderButtonPlugin', PluginExtraFieldsConfig(
        inline_styles={
            'extra_fields:Margins': ['margin-top', 'margin-right', 'margin-bottom', 'margin-left'],
            'extra_units:Margins': 'px,em'
        },
    ))
コード例 #2
0
def set_defaults(config):
    config.setdefault('bootstrap3', {})
    config['bootstrap3'].setdefault(
        'breakpoints', (
            ('xs', (768, 'mobile', _("mobile phones"), 750, 768)),
            ('sm', (768, 'tablet', _("tablets"), 750, 992)),
            ('md', (992, 'laptop', _("laptops"), 970, 1200)),
            ('lg', (1200, 'desktop', _("large desktops"), 1170, 1980)),))
    for tpl in config['bootstrap3']['breakpoints']:
        if len(tpl[1]) != 5:
            msg = "The configuration directive CMSPLUGIN_CASCADE['bootstrap3']['bootstrap3']['{}'] requires 5 parameters"
            raise ImproperlyConfigured(msg.format(tpl[0]))

    config['bootstrap3'].setdefault('gutter', 30)

    config['plugins_with_extra_fields'].setdefault('BootstrapButtonPlugin', PluginExtraFieldsConfig())
    config['plugins_with_extra_fields'].setdefault('BootstrapRowPlugin', PluginExtraFieldsConfig())
    config['plugins_with_extra_fields'].setdefault('BootstrapJumbotronPlugin', PluginExtraFieldsConfig(
        inline_styles={
            'extra_fields:Paddings': ['margin-top', 'margin-bottom', 'padding-top', 'padding-bottom'],
            'extra_units:Paddings': 'px,em'
        }
    ))
    config['plugins_with_extra_fields'].setdefault('HeadingPlugin', PluginExtraFieldsConfig(
        inline_styles={
            'extra_fields:Margins': ['margin-top', 'margin-right', 'margin-bottom', 'margin-left'],
            'extra_units:Margins': 'px,em'
        },
        allow_override=False
    ))
    config['plugins_with_extra_fields'].setdefault('HorizontalRulePlugin', PluginExtraFieldsConfig(
        inline_styles={
            'extra_fields:Paddings': ['margin-top', 'margin-bottom'],
            'extra_units:Paddings': 'px,em'
        },
        allow_override=False
    ))

    config['plugins_with_extra_render_templates'].setdefault('BootstrapSecondaryMenuPlugin', (
        ('cascade/bootstrap3/secmenu-list-group.html', _("List Group")),
        ('cascade/bootstrap3/secmenu-unstyled-list.html', _("Unstyled List")),))

    if os.getenv('DJANGO_CLIENT_FRAMEWORK', '').startswith('angular'):
        config['bootstrap3']['template_basedir'] = 'angular-ui'
コード例 #3
0
def set_defaults(config):
    config.setdefault('bootstrap4', {})
    config['bootstrap4'].setdefault('default_bounds', {
        Breakpoint.xs: Bound(320, 572),
        Breakpoint.sm: Bound(540, 540),
        Breakpoint.md: Bound(720, 720),
        Breakpoint.lg: Bound(960, 960),
        Breakpoint.xl: Bound(1140, 1140),
    })
    config['bootstrap4'].setdefault('fluid_bounds', {
        Breakpoint.xs: Bound(320, 576),
        Breakpoint.sm: Bound(576, 768),
        Breakpoint.md: Bound(768, 992),
        Breakpoint.lg: Bound(992, 1200),
        Breakpoint.xl: Bound(1200, 1980),
    })
    config['bootstrap4'].setdefault('gutter', 30)

    config['plugins_with_extra_mixins'].setdefault('BootstrapAccordionPlugin', BootstrapUtilities(
        BootstrapUtilities.margins,
    ))
    config['plugins_with_extra_mixins'].setdefault('BootstrapAccordionGroupPlugin', BootstrapUtilities(
        BootstrapUtilities.background_and_color,
        BootstrapUtilities.margins,
    ))
    config['plugins_with_extra_mixins'].setdefault('BootstrapCardPlugin', BootstrapUtilities(
        BootstrapUtilities.background_and_color,
        BootstrapUtilities.margins,
    ))
    config['plugins_with_extra_mixins'].setdefault('BootstrapCarouselPlugin', BootstrapUtilities(
        BootstrapUtilities.margins,
    ))
    config['plugins_with_extra_mixins'].setdefault('BootstrapContainerPlugin', BootstrapUtilities(
        BootstrapUtilities.paddings,
    ))
    config['plugins_with_extra_mixins'].setdefault('HeadingPlugin', BootstrapUtilities(
        BootstrapUtilities.margins,
    ))

    config['plugins_with_extra_fields'].setdefault('BootstrapJumbotronPlugin', PluginExtraFieldsConfig(
        inline_styles={
            'extra_fields:Paddings': ['margin-top', 'margin-bottom', 'padding-top', 'padding-bottom'],
            'extra_units:Paddings': 'px,rem'
        }
    ))

    config['plugins_with_extra_render_templates'].setdefault('BootstrapSecondaryMenuPlugin', [
        ('cascade/bootstrap4/secmenu-list-group.html', _("List Group")),
        ('cascade/bootstrap4/secmenu-unstyled-list.html', _("Unstyled List"))
    ])
コード例 #4
0
ファイル: settings.py プロジェクト: stapaw/djangocms-cascade
def set_defaults(config):
    from cmsplugin_cascade.extra_fields.config import PluginExtraFieldsConfig

    config.setdefault('plugins_with_extra_fields', {})
    plugins_with_extra_fields = config['plugins_with_extra_fields']
    plugins_with_extra_fields.setdefault(
        'HorizontalRulePlugin',
        PluginExtraFieldsConfig(
            inline_styles={
                'extra_fields:Border': ['border-top'],
                'extra_fields:Border Radius': ['border-radius'],
                'extra_units:Border Radius': 'px,rem',
            },
            allow_override=False,
        ))
コード例 #5
0
def set_defaults(config):
    config.setdefault('bootstrap4', {})
    config['bootstrap4'].setdefault(
        'default_bounds',
        OrderedDict([
            (Breakpoint.xs, Bound(320, 572)),
            (Breakpoint.sm, Bound(540, 540)),
            (Breakpoint.md, Bound(720, 720)),
            (Breakpoint.lg, Bound(960, 960)),
            (Breakpoint.xl, Bound(1140, 1140)),
        ]))
    config['bootstrap4'].setdefault(
        'fluid_bounds',
        OrderedDict([
            (Breakpoint.xs, Bound(320, 576)),
            (Breakpoint.sm, Bound(576, 768)),
            (Breakpoint.md, Bound(768, 992)),
            (Breakpoint.lg, Bound(992, 1200)),
            (Breakpoint.xl, Bound(1200, 1980)),
        ]))
    config['bootstrap4'].setdefault('gutter', 30)

    config['plugins_with_extra_mixins'].setdefault(
        'BootstrapAccordionPlugin',
        BootstrapUtilities(BootstrapUtilities.margins, ))
    config['plugins_with_extra_mixins'].setdefault(
        'BootstrapAccordionGroupPlugin',
        BootstrapUtilities(
            BootstrapUtilities.background_and_color,
            BootstrapUtilities.margins,
        ))
    config['plugins_with_extra_mixins'].setdefault(
        'BootstrapCardPlugin',
        BootstrapUtilities(
            BootstrapUtilities.background_and_color,
            BootstrapUtilities.margins,
        ))
    config['plugins_with_extra_mixins'].setdefault(
        'BootstrapCarouselPlugin',
        BootstrapUtilities(BootstrapUtilities.margins, ))
    config['plugins_with_extra_mixins'].setdefault(
        'BootstrapContainerPlugin',
        BootstrapUtilities(BootstrapUtilities.paddings, ))
    config['plugins_with_extra_mixins'].setdefault(
        'HeadingPlugin', BootstrapUtilities(BootstrapUtilities.margins, ))
    config['plugins_with_extra_mixins'].setdefault(
        'HorizontalRulePlugin',
        BootstrapUtilities(BootstrapUtilities.margins, ))

    config['plugins_with_extra_fields'].setdefault(
        'BootstrapTabSetPlugin',
        PluginExtraFieldsConfig(css_classes={
            'multiple':
            True,
            'class_names':
            ['nav-tabs', 'nav-pills', 'nav-fill', 'nav-justified'],
        }, ))

    config['plugins_with_extra_render_templates'].setdefault(
        'BootstrapSecondaryMenuPlugin',
        [('cascade/bootstrap4/secmenu-list-group.html', _("List Group")),
         ('cascade/bootstrap4/secmenu-unstyled-list.html', _("Unstyled List"))
         ])
コード例 #6
0
)

LANGUAGE_CODE = 'en'

CMS_TEMPLATES = (
    ('cascade/testing.html', 'Default Page'),
)

CMSPLUGIN_CASCADE_PLUGINS = (
    'cmsplugin_cascade.link',
    'cmsplugin_cascade.bootstrap3',
)

CMSPLUGIN_CASCADE = {
    'plugins_with_extra_fields': {
        'BootstrapButtonPlugin': PluginExtraFieldsConfig(),
        'BootstrapContainerPlugin': PluginExtraFieldsConfig(),
        'BootstrapColumnPlugin': PluginExtraFieldsConfig(),
        'BootstrapRowPlugin': PluginExtraFieldsConfig(),
        'BootstrapPicturePlugin': PluginExtraFieldsConfig(),
        'SimpleWrapperPlugin': PluginExtraFieldsConfig(),
    },
    'plugins_with_sharables': {
        'BootstrapImagePlugin': (
            'image_shapes',
            'image_width_responsive',
            'image_width_fixed',
            'image_height',
            'resize_options',
        ),
        'BootstrapPicturePlugin': (
コード例 #7
0
##################### DJANGOCMS-CASCADE
CMSPLUGIN_CASCADE_PLUGINS = (
    'cmsplugin_cascade.segmentation',
    'cmsplugin_cascade.generic',
    'cmsplugin_cascade.leaflet',
    'cmsplugin_cascade.link',
    # 'cmsplugin_cascade.sharable',
    'cmsplugin_cascade.bootstrap3',

)

CMSPLUGIN_CASCADE = {
    'alien_plugins': ('TextPlugin', 'TextLinkPlugin',),
    'plugins_with_extra_fields': {
        'BootstrapRowPlugin'      : PluginExtraFieldsConfig(inline_styles={
            'extra_fields:Margins': ['margin-top', 'margin-bottom'],
            'extra_units:Margins' : 'px,em'}),
        'BootstrapJumbotronPlugin': PluginExtraFieldsConfig(inline_styles={
            'extra_fields:Margins': ['padding-top', 'padding-bottom', 'margin-bottom'],
            'extra_units:Margins' : 'px,em'}),
    },
    # 'bootstrap3'               : (
    #     ('xs', (768, 'mobile', _("mobile phones"), 750, 768)),
    #     ('sm', (768, 'tablet', _("tablets"), 750, 992)),
    #     ('md', (992, 'laptop', _("laptops"), 970, 1200)),
    #     ('lg', (1200, 'desktop', _("large desktops"), 1170, 2500)),
    # ),
    'segmentation_mixins'      : (
        (
            'cmsplugin_cascade.segmentation.mixins.EmulateUserModelMixin',
            'cmsplugin_cascade.segmentation.mixins.EmulateUserAdminMixin',
コード例 #8
0
    def CMSPLUGIN_CASCADE(self):
        import os
        from collections import OrderedDict
        from importlib import import_module
        from django.core.exceptions import ImproperlyConfigured
        from django.utils.translation import ugettext_lazy
        from cmsplugin_cascade.widgets import (NumberInputWidget,
                                               MultipleCascadingSizeWidget,
                                               ColorPickerWidget,
                                               SelectTextAlignWidget,
                                               SelectOverflowWidget)

        if hasattr(self, '_config_CMSPLUGIN_CASCADE'):
            return self._config_CMSPLUGIN_CASCADE

        INSTALLED_APPS = self._setting('INSTALLED_APPS')
        config = self._setting('CMSPLUGIN_CASCADE', {})
        config.setdefault('alien_plugins', ['TextPlugin'])
        config.setdefault('plugin_prefix', None)

        config.setdefault('plugins_with_extra_fields', {})
        if 'cmsplugin_cascade.extra_fields' in INSTALLED_APPS:
            from cmsplugin_cascade.extra_fields.config import PluginExtraFieldsConfig

            plugins_with_extra_fields = config['plugins_with_extra_fields']
            plugins_with_extra_fields.setdefault('SimpleWrapperPlugin',
                                                 PluginExtraFieldsConfig())
            plugins_with_extra_fields.setdefault(
                'HeadingPlugin',
                PluginExtraFieldsConfig(inline_styles={
                    'extra_fields:Margins': [
                        'margin-top', 'margin-right', 'margin-bottom',
                        'margin-left'
                    ],
                    'extra_units:Margins':
                    'px,em'
                },
                                        allow_override=False))
            plugins_with_extra_fields.setdefault(
                'HorizontalRulePlugin',
                PluginExtraFieldsConfig(inline_styles={
                    'extra_fields:Paddings': ['margin-top', 'margin-bottom'],
                    'extra_units:Paddings':
                    'px,em'
                },
                                        allow_override=False))
            for plugin, plugin_config in plugins_with_extra_fields.items():
                if not isinstance(plugin_config, PluginExtraFieldsConfig):
                    msg = "CMSPLUGIN_CASCADE['plugins_with_extra_fields']['{}'] must instantiate a class of type PluginExtraFieldsConfig"
                    raise ImproperlyConfigured(msg.format(plugin))

        config.setdefault('plugins_with_sharables', {})
        if 'cmsplugin_cascade.sharable' in INSTALLED_APPS:
            config['plugins_with_sharables'].setdefault(
                'FramedIconPlugin', (
                    'font_size',
                    'color',
                    'background_color',
                    'text_align',
                    'border',
                    'border_radius',
                ))

        config['exclude_hiding_plugin'] = list(
            config.get('exclude_hiding_plugin', []))
        config['exclude_hiding_plugin'].append('SegmentPlugin')

        config.setdefault('link_plugin_classes', (
            'cmsplugin_cascade.link.plugin_base.DefaultLinkPluginBase',
            'cmsplugin_cascade.link.plugin_base.LinkElementMixin',
            'cmsplugin_cascade.link.forms.LinkForm',
        ))

        config['plugins_with_bookmark'] = list(
            config.get('plugins_with_bookmark', []))
        config['plugins_with_bookmark'].extend(
            ['SimpleWrapperPlugin', 'HeadingPlugin'])
        config.setdefault('bookmark_prefix', '')

        config.setdefault('extra_inline_styles', OrderedDict())
        extra_inline_styles = config['extra_inline_styles']
        extra_inline_styles.setdefault(
            'Margins',
            (['margin-top', 'margin-right', 'margin-bottom', 'margin-left'
              ], MultipleCascadingSizeWidget))
        extra_inline_styles.setdefault('Paddings', ([
            'padding-top', 'padding-right', 'padding-bottom', 'padding-left'
        ], MultipleCascadingSizeWidget))
        extra_inline_styles.setdefault(
            'Widths',
            (['min-width', 'width', 'max-width'], MultipleCascadingSizeWidget))
        extra_inline_styles.setdefault('Heights',
                                       (['min-height', 'height', 'max-height'
                                         ], MultipleCascadingSizeWidget))
        extra_inline_styles.setdefault(
            'Text Alignement', (('text-align', ), SelectTextAlignWidget))
        extra_inline_styles.setdefault(
            'Font Size', (('font-size', ), MultipleCascadingSizeWidget))
        extra_inline_styles.setdefault('Line Height',
                                       (('line-height', ), NumberInputWidget))
        extra_inline_styles.setdefault('Colors', ((
            'color',
            'background-color',
        ), ColorPickerWidget))
        extra_inline_styles.setdefault('Overflow', ((
            'overflow',
            'overflow-x',
            'overflow-y',
        ), SelectOverflowWidget))

        if 'cmsplugin_cascade.segmentation' in INSTALLED_APPS:
            config.setdefault('segmentation_mixins', [
                ('cmsplugin_cascade.segmentation.mixins.EmulateUserModelMixin',
                 'cmsplugin_cascade.segmentation.mixins.EmulateUserAdminMixin')
            ])

        config.setdefault(
            'icon_font_root',
            os.path.abspath(
                os.path.join(self._setting('MEDIA_ROOT'), 'icon_fonts')))

        config.setdefault('plugins_with_extra_render_templates', {})
        config['plugins_with_extra_render_templates'].setdefault(
            'TextLinkPlugin', [
                ('cascade/link/text-link.html', ugettext_lazy("default")),
                ('cascade/link/text-link-linebreak.html',
                 ugettext_lazy("with line break")),
            ])
        config['plugins_with_extra_render_templates'].setdefault(
            'LeafletPlugin', [
                ('cascade/plugins/leaflet.html', ugettext_lazy("default")),
                ('cascade/plugins/googlemap.html',
                 ugettext_lazy("Google Map")),
            ])

        config.setdefault('allow_plugin_hiding', False)

        config.setdefault('cache_strides', True)

        for module_name in self.CASCADE_PLUGINS:
            try:
                settings_module = import_module(
                    '{}.settings'.format(module_name))
                getattr(settings_module, 'set_defaults')(config)
            except (ImportError, AttributeError, AppRegistryNotReady):
                continue

        self._config_CMSPLUGIN_CASCADE = config
        return config
コード例 #9
0
ファイル: settings.py プロジェクト: anasir514/07
         ('shop/catalog/product-heading.html', _("Product Heading")),
         ('myshop/catalog/manufacturer-filter.html', _("Manufacturer Filter")),
     ],
     # required to purchase real estate
     'ShopAddToCartPlugin': [
         (None, _("Default")),
         ('myshop/catalog/commodity-add2cart.html', _("Add Commodity to Cart")),
     ],
 },
 'plugins_with_sharables': {
     'BootstrapImagePlugin': ['image_shapes', 'image_width_responsive', 'image_width_fixed',
                              'image_height', 'resize_options'],
     'BootstrapPicturePlugin': ['image_shapes', 'responsive_heights', 'responsive_zoom', 'resize_options'],
 },
 'plugins_with_extra_fields': {
     'BootstrapCardPlugin': PluginExtraFieldsConfig(),
     'BootstrapCardHeaderPlugin': PluginExtraFieldsConfig(),
     'BootstrapCardBodyPlugin': PluginExtraFieldsConfig(),
     'BootstrapCardFooterPlugin': PluginExtraFieldsConfig(),
     'SimpleIconPlugin': PluginExtraFieldsConfig(),
 },
 'plugins_with_extra_mixins': {
     'BootstrapContainerPlugin': BootstrapUtilities(),
     'BootstrapRowPlugin': BootstrapUtilities(BootstrapUtilities.paddings),
     'BootstrapYoutubePlugin': BootstrapUtilities(BootstrapUtilities.margins),
     'BootstrapButtonPlugin': BootstrapUtilities(BootstrapUtilities.floats),
 },
 'leaflet': {
     'tilesURL': 'https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}',
     'accessToken': 'pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw',
     'apiKey': 'AIzaSyD71sHrtkZMnLqTbgRmY_NsO0A9l9BQmv4',
コード例 #10
0
    'cascade/js/admin/linkpluginbase.js':
    ('cascade/js/admin/sharableglossary.js', ),
    'cascade/js/admin/defaultlinkplugin.js':
    ('cascade/js/admin/linkpluginbase.js', ),
    'cascade/js/admin/imageplugin.js':
    ('cascade/js/admin/linkpluginbase.js', ),
    'cascade/js/admin/pictureplugin.js':
    ('cascade/js/admin/linkpluginbase.js', ),
}
"""The editor of some plugins requires JavaScript file. Here we can specify which is a list of dependencies"""
CMSPLUGIN_CASCADE['dependencies'].update(orig_config.get('dependencies', {}))

if 'cmsplugin_cascade.extra_fields' in settings.INSTALLED_APPS:
    CMSPLUGIN_CASCADE['plugins_with_extra_fields'] = {
        'BootstrapButtonPlugin':
        PluginExtraFieldsConfig(),
        'BootstrapRowPlugin':
        PluginExtraFieldsConfig(),
        'BootstrapJumbotronPlugin':
        PluginExtraFieldsConfig(
            inline_styles={
                'extra_fields:Paddings': ['padding-top', 'padding-bottom'],
                'extra_units:Paddings': 'px,em'
            }),
        'SimpleWrapperPlugin':
        PluginExtraFieldsConfig(),
        'HeadingPlugin':
        PluginExtraFieldsConfig(inline_styles={
            'extra_fields:Paddings':
            ['margin-top', 'margin-right', 'margin-bottom', 'margin-left'],
            'extra_units:Paddings':
コード例 #11
0
ファイル: common_settings.py プロジェクト: comdragon/repanier
    'cmsplugin_cascade.leaflet',
    'cmsplugin_cascade.link',
    # 'cmsplugin_cascade.sharable',
    'cmsplugin_cascade.bootstrap3',
)

CMSPLUGIN_CASCADE = {
    'alien_plugins': (
        'TextPlugin',
        'TextLinkPlugin',
    ),
    'plugins_with_extra_fields': {
        'BootstrapRowPlugin':
        PluginExtraFieldsConfig(
            inline_styles={
                'extra_fields:Margins': ['margin-top', 'margin-bottom'],
                'extra_units:Margins': 'px,em'
            }),
        'BootstrapJumbotronPlugin':
        PluginExtraFieldsConfig(
            inline_styles={
                'extra_fields:Margins':
                ['padding-top', 'padding-bottom', 'margin-bottom'],
                'extra_units:Margins':
                'px,em'
            }),
    },
    # 'bootstrap3'               : (
    #     ('xs', (768, 'mobile', _("mobile phones"), 750, 768)),
    #     ('sm', (768, 'tablet', _("tablets"), 750, 992)),
    #     ('md', (992, 'laptop', _("laptops"), 970, 1200)),
コード例 #12
0
    'cascade/js/ring.js': 'cascade/js/underscore.js',
    'cascade/js/admin/sharableglossary.js': 'cascade/js/ring.js',
    'cascade/js/admin/segmentplugin.js': 'cascade/js/ring.js',
    'cascade/js/admin/jumbotronplugin.js': 'cascade/js/ring.js',
    'cascade/js/admin/fonticonplugin.js': 'cascade/js/ring.js',
    'cascade/js/admin/linkpluginbase.js': ('cascade/js/admin/sharableglossary.js',),
    'cascade/js/admin/defaultlinkplugin.js': ('cascade/js/admin/linkpluginbase.js',),
    'cascade/js/admin/imageplugin.js': ('cascade/js/admin/linkpluginbase.js',),
    'cascade/js/admin/pictureplugin.js': ('cascade/js/admin/linkpluginbase.js',),
}
"""The editor of some plugins requires JavaScript file. Here we can specify which is a list of dependencies"""
CMSPLUGIN_CASCADE['dependencies'].update(orig_config.get('dependencies', {}))

if 'cmsplugin_cascade.extra_fields' in settings.INSTALLED_APPS:
    CMSPLUGIN_CASCADE['plugins_with_extra_fields'] = {
        'BootstrapButtonPlugin': PluginExtraFieldsConfig(),
        'BootstrapRowPlugin': PluginExtraFieldsConfig(),
        'BootstrapJumbotronPlugin': PluginExtraFieldsConfig(inline_styles={
            'extra_fields:Paddings': ['padding-top', 'padding-bottom'],
            'extra_units:Paddings': 'px,em'}),
        'SimpleWrapperPlugin': PluginExtraFieldsConfig(),
        'HeadingPlugin': PluginExtraFieldsConfig(inline_styles={
            'extra_fields:Paddings': ['margin-top', 'margin-right', 'margin-bottom', 'margin-left'],
            'extra_units:Paddings': 'px,em'}, allow_override=False),
        'HorizontalRulePlugin': PluginExtraFieldsConfig(inline_styles={
            'extra_fields:Paddings': ['margin-top', 'margin-bottom'],
            'extra_units:Paddings': 'px,em'}, allow_override=False),
    }
    CMSPLUGIN_CASCADE['plugins_with_extra_fields'].update(
        orig_config.get('plugins_with_extra_fields', {}))
    for plugin, config in CMSPLUGIN_CASCADE['plugins_with_extra_fields'].items():