예제 #1
0
    def get_options(self):
        registry = queryUtility(IRegistry)
        adapted = IMosaicRegistryAdapter(registry)
        pt = self.obtainType()
        kwargs = {
            'type': pt,
            'context': self.context,
            'request': self.request,
        }
        result = adapted(**kwargs)

        result['canChangeLayout'] = checkPermission(
            'plone.CustomizeContentLayouts', self.context)
        result['context_url'] = self.context.absolute_url()
        result['tinymce'] = get_tinymce_options(self.context, self.field,
                                                self.request)
        if 'pattern_options' in result['tinymce']:
            # BBB Plone 4.3.x
            result['tinymce'] = result['tinymce']['pattern_options']

        result['customContentLayout_selector'] = '#formfield-{0:s}'.format(
            self.name.replace('.', '-'))
        result['contentLayout_selector'] = '#formfield-{0:s}'.format(
            self.name.replace('.', '-').replace('-content', '-contentLayout'))
        result['customContentLayout_field_selector'] = '[name="{0:s}"]'.format(
            self.name)
        result['contentLayout_field_selector'] = '[name="{0:s}"]'.format(
            self.name.replace('.content', '.contentLayout'))

        result['available_layouts'] = getContentLayoutsForType(pt)

        return {'data': result}
예제 #2
0
    def test__tinymce_options_different_contexts(self):
        """Test if ``get_tinymce_options`` can be called with different
        contexts, including invalid and form contexts.
        """
        request = self.layer['request']
        portal = self.layer['portal']
        portal.invokeFactory('Folder', 'sub')
        sub = portal.sub

        # TinyMCE on portal context
        options = get_tinymce_options(portal, None, request)
        self.assertEqual(options['relatedItems']['basePath'], '/plone')

        # TinyMCE on sub folder context
        options = get_tinymce_options(sub, None, request)
        self.assertEqual(options['relatedItems']['basePath'], '/plone/sub')
예제 #3
0
    def test__tinymce_options_different_contexts(self):
        """Test if ``get_tinymce_options`` can be called with different
        contexts, including invalid and form contexts.
        """
        request = self.layer['request']
        portal = self.layer['portal']
        portal.invokeFactory('Folder', 'sub')
        sub = portal.sub

        # TinyMCE on portal context
        options = get_tinymce_options(portal, None, request)
        self.assertEqual(options['relatedItems']['basePath'], '/plone')

        # TinyMCE on sub folder context
        options = get_tinymce_options(sub, None, request)
        self.assertEqual(options['relatedItems']['basePath'], '/plone/sub')
예제 #4
0
    def get_options(self):
        registry = queryUtility(IRegistry)
        adapted = IMosaicRegistryAdapter(registry)
        pt = self.obtainType()
        kwargs = {
            'type': pt,
            'context': self.context,
            'request': self.request,
        }
        result = adapted(**kwargs)

        result['canChangeLayout'] = checkPermission(
            'plone.CustomizeContentLayouts', self.context)
        result['context_url'] = self.context.absolute_url()
        result['tinymce'] = get_tinymce_options(
            self.context, self.field, self.request)['pattern_options']

        result['customContentLayout_selector'] = '#formfield-%s' % self.name.replace('.', '-')
        result['contentLayout_selector'] = '#formfield-%s' % (
            self.name.replace('.', '-').replace('-content', '-contentLayout'))
        result['customContentLayout_field_selector'] = '[name="%s"]' % self.name
        result['contentLayout_field_selector'] = '[name="%s"]' % (
            self.name.replace('.content', '.contentLayout'))

        result['available_layouts'] = getContentLayoutsForType(pt)

        return {'data': result}
예제 #5
0
    def _base_args(self, context, field, request):
        args = super(TinyMCEWidget, self)._base_args(context, field, request)
        args["name"] = field.getName()
        properties = getToolByName(context, "portal_properties")
        charset = properties.site_properties.getProperty("default_charset", "utf-8")
        args["value"] = (request.get(field.getName(), field.getAccessor(context)())).decode(charset)

        args.setdefault("pattern_options", {})
        merged = dict_merge(get_tinymce_options(context, field, request), args["pattern_options"])
        args["pattern_options"] = merged

        return args
예제 #6
0
    def _base_args(self):
        args = super(RichTextWidget, self)._base_args()
        args['name'] = self.name
        value = self.value and self.value.raw_encoded or ''
        args['value'] = (self.request.get(
            self.field.getName(), value)).decode('utf-8')

        args.setdefault('pattern_options', {})
        merged = dict_merge(get_tinymce_options(self.context, self.field, self.request),  # noqa
                            args['pattern_options'])
        args['pattern_options'] = merged['pattern_options']

        return args
예제 #7
0
    def get_options(self):
        registry = queryUtility(IRegistry)
        adapted = IMosaicRegistryAdapter(registry)
        pt = self.obtainType()
        kwargs = {
            'type': pt,
            'context': self.context,
            'request': self.request,
        }
        result = adapted(**kwargs)

        sm = getSecurityManager()

        result['canChangeLayout'] = sm.checkPermission(
            'Plone: Customize Content Layouts', self.context)
        # This is a site permission...
        # you can either manage layouts globally or not
        result['canManageLayouts'] = sm.checkPermission(
            'Plone: Manage Content Layouts', api.portal.get())
        result['context_url'] = self.context.absolute_url()
        result['tinymce'] = get_tinymce_options(
            self.context,
            self.field,
            self.request
        )
        if 'pattern_options' in result['tinymce']:
            # BBB Plone 4.3.x
            result['tinymce'] = result['tinymce']['pattern_options']

        result['customContentLayout_selector'] = '#formfield-{0:s}'.format(
            self.name.replace('.', '-')
        )
        result['contentLayout_selector'] = '#formfield-{0:s}'.format(
            self.name.replace(
                '.', '-'
            ).replace(
                '-customContentLayout', '-contentLayout'
            )
        )
        result['customContentLayout_field_selector'] = '[name="{0:s}"]'.format(
            self.name
        )
        result['contentLayout_field_selector'] = '[name="{0:s}"]'.format(
            self.name.replace('.customContentLayout', '.contentLayout')
        )

        result['available_layouts'] = getContentLayoutsForType(pt)
        result['user_layouts'] = getUserContentLayoutsForType(pt)

        return {'data': result}
예제 #8
0
 def get_options(self):
     registry = queryUtility(IRegistry)
     adapted = IMosaicRegistryAdapter(registry)
     kwargs = {
         'type': self.obtainType(),
         'context': self.context,
         'request': self.request,
     }
     result = adapted(**kwargs)
     result['can_change_layout'] = True
     result['context_url'] = self.context.absolute_url()
     result['tinymce'] = get_tinymce_options(
         self.context, self.field, self.request)['pattern_options']
     return {'data': result}
예제 #9
0
 def get_options(self):
     registry = queryUtility(IRegistry)
     adapted = IMosaicRegistryAdapter(registry)
     kwargs = {
         'type': self.obtainType(),
         'context': self.context,
         'request': self.request,
     }
     result = adapted(**kwargs)
     result['can_change_layout'] = True
     result['context_url'] = self.context.absolute_url()
     result['tinymce'] = get_tinymce_options(
         self.context, self.field, self.request)['pattern_options']
     return {'data': result}
예제 #10
0
    def _base_args(self):
        args = super(RichTextWidget, self)._base_args()
        args["name"] = self.name
        properties = getToolByName(self.context, "portal_properties")
        charset = properties.site_properties.getProperty("default_charset", "utf-8")
        value = self.value and self.value.raw_encoded or ""
        args["value"] = (self.request.get(self.field.getName(), value)).decode(charset)

        args.setdefault("pattern_options", {})
        merged = dict_merge(
            get_tinymce_options(self.context, self.field, self.request), args["pattern_options"]  # noqa
        )
        args["pattern_options"] = merged["pattern_options"]

        return args
예제 #11
0
    def _base_args(self):
        args = super(RichTextWidget, self)._base_args()
        args['name'] = self.name
        properties = getToolByName(self.context, 'portal_properties')
        charset = properties.site_properties.getProperty('default_charset',
                                                         'utf-8')
        value = self.value and self.value.raw_encoded or ''
        args['value'] = (self.request.get(
            self.field.getName(), value)).decode(charset)

        args.setdefault('pattern_options', {})
        merged = dict_merge(get_tinymce_options(self.context, self.field, self.request),  # noqa
                            args['pattern_options'])
        args['pattern_options'] = merged['pattern_options']

        return args
예제 #12
0
    def _base_args(self, context, field, request):
        args = super(TinyMCEWidget, self)._base_args(context, field, request)
        args['name'] = field.getName()
        properties = getToolByName(context, 'portal_properties')
        charset = properties.site_properties.getProperty(
            'default_charset', 'utf-8')
        args['value'] = (request.get(
            field.getName(),
            field.getAccessor(context)())).decode(charset)

        args.setdefault('pattern_options', {})
        merged = dict_merge(get_tinymce_options(context, field, request),
                            args['pattern_options'])
        args['pattern_options'] = merged['pattern_options']

        return args
예제 #13
0
    def _base_args(self, context, field, request):
        args = super(TinyMCEWidget, self)._base_args(context, field, request)
        args['name'] = field.getName()
        properties = getToolByName(context, 'portal_properties')
        charset = properties.site_properties.getProperty('default_charset',
                                                         'utf-8')
        args['value'] = (request.get(field.getName(),
                                     field.getAccessor(context)())
                         ).decode(charset)

        args.setdefault('pattern_options', {})
        merged = dict_merge(get_tinymce_options(context, field, request),
                            args['pattern_options'])
        args['pattern_options'] = merged['pattern_options']

        return args
예제 #14
0
    def _base_args(self):
        args = super(RichTextWidget, self)._base_args()
        args['name'] = self.name
        properties = getToolByName(self.context, 'portal_properties')
        charset = properties.site_properties.getProperty('default_charset',
                                                         'utf-8')
        value = self.value and self.value.raw_encoded or ''
        args['value'] = (self.request.get(
            self.field.getName(), value)).decode(charset)

        args.setdefault('pattern_options', {})
        merged = dict_merge(get_tinymce_options(self.context, self.field, self.request),  # noqa
                            args['pattern_options'])
        args['pattern_options'] = merged['pattern_options']

        return args
예제 #15
0
    def _base_args(self):
        args = super(RichTextWidget, self)._base_args()
        args['name'] = self.name
        value = self.value and self.value.raw_encoded or ''
        args['value'] = (self.request.get(
            self.field.getName(), value)).decode('utf-8')

        args.setdefault('pattern_options', {})
        merged_options = dict_merge(
            get_tinymce_options(
                self.context,
                self.field,
                self.request
            ),
            args['pattern_options']
        )
        args['pattern_options'] = merged_options

        return args
예제 #16
0
def rich_text_args(self):
    args = super(RichTextWidget, self)._base_args()
    args['name'] = self.name
    value = self.value and self.value.raw_encoded or ''
    args['value'] = (self.request.get(self.field.getName(),
                                      value)).decode('utf-8')
    args.setdefault('pattern_options', {})

    # displays tinymce editor for anonymous users
    if api.user.is_anonymous():
        add_resource_on_request(self.request,
                                'mockup-patterns-tinymce-logged-out')

    merged_options = dict_merge(
        get_tinymce_options(self.context, self.field, self.request),  # noqa
        args['pattern_options'])
    args['pattern_options'] = merged_options

    return args
예제 #17
0
    def _base_args(self):
        args = super(RichTextWidget, self)._base_args()
        args['name'] = self.name
        value = self.value and self.value.raw or u''
        value = self.request.get(self.name, value)
        args['value'] = value

        args.setdefault('pattern_options', {})
        merged_options = dict_merge(
            get_tinymce_options(
                self.wrapped_context(),
                self.field,
                self.request,
            ),
            args['pattern_options'],
        )
        args['pattern_options'] = merged_options

        return args
예제 #18
0
        def _base_args(self):
            args = {
                'pattern': self.pattern,
                'pattern_options': self.pattern_options.copy(),
            }
            context = aq_parent(self.wrapped_context())
            args['name'] = self.name
            properties = getToolByName(context, 'portal_properties')
            charset = properties.site_properties.getProperty('default_charset',
                                                             'utf-8')
            value = self.value and self.value.raw_encoded or ''
            args['value'] = (self.request.get(
                self.field.getName(), value)).decode(charset)

            args.setdefault('pattern_options', {})
            merged = dict_merge(get_tinymce_options(context, self.field, self.request),  # noqa
                                args['pattern_options'])
            args['pattern_options'] = merged

            return args
예제 #19
0
    def get_options(self):
        registry = queryUtility(IRegistry)
        adapted = IMosaicRegistryAdapter(registry)
        pt = self.obtainType()
        kwargs = {
            'type': pt,
            'context': self.context,
            'request': self.request,
        }
        result = adapted(**kwargs)

        sm = getSecurityManager()

        result['canChangeLayout'] = sm.checkPermission(
            'Plone: Customize Content Layouts', self.context)
        # This is a site permission...
        # you can either manage layouts globally or not
        result['canManageLayouts'] = sm.checkPermission(
            'Plone: Manage Content Layouts', api.portal.get())
        result['context_url'] = self.context.absolute_url()
        result['tinymce'] = get_tinymce_options(self.context, self.field,
                                                self.request)
        if 'pattern_options' in result['tinymce']:
            # BBB Plone 4.3.x
            result['tinymce'] = result['tinymce']['pattern_options']

        result['customContentLayout_selector'] = '#formfield-{0:s}'.format(
            self.name.replace('.', '-'))
        result['contentLayout_selector'] = '#formfield-{0:s}'.format(
            self.name.replace('.', '-').replace('-customContentLayout',
                                                '-contentLayout'))
        result['customContentLayout_field_selector'] = '[name="{0:s}"]'.format(
            self.name)
        result['contentLayout_field_selector'] = '[name="{0:s}"]'.format(
            self.name.replace('.customContentLayout', '.contentLayout'))

        result['available_layouts'] = getContentLayoutsForType(
            pt, self.context)  # noqa
        result['user_layouts'] = getUserContentLayoutsForType(pt)

        return {'data': result}