Пример #1
0
class TabBlockController(BlockController):
    grok.adapts(TabBlock, Interface, IHTTPRequest)

    def __init__(self, block, context, request):
        super(TabBlockController, self).__init__(block, context, request)
        self._references = ReferenceSet(self.context, block.identifier)

    def editable(self):
        return True

    @apply
    def content():

        def getter(self):
            return self._references.get()

        def setter(self, value):
            self._references.set(value)

        return property(getter, setter)

    def remove(self):
        self._references.clear()

    def render(self, view=None):
        return TabRenderer(self.content, self.request)()
Пример #2
0
 def get_references(self, name):
     ref_set = ReferenceSet(self.context, name)
     options = self.getOptions()
     exported = self.getExported()
     have_external = 0
     root = exported.root
     for reference in ref_set.get_references():
         if not options.external_rendering:
             if not reference.target_id:
                 # The reference is broken. Return an empty path.
                 yield ""
             if not reference.is_target_inside_container(root):
                 if options.external_references:
                     have_external += 1
                     continue
                 else:
                     raise ExternalReferenceError(
                         _(u"External references"),
                         self.context, reference.target, root)
             # Add root path id as it is always mentioned in exports
             path = [root.getId()] + reference.relative_path_to(root)
             yield '/'.join(canonical_tuple_path(path))
         else:
             # Return url to the target
             yield absoluteURL(reference.target, exported.request)
     if have_external:
         # Report the collected problems.
         exported.reportProblem(
             (u'Content contains {0} reference(s) pointing outside ' +
              u'of the export.').format(
                 have_external),
             self.context)
Пример #3
0
class TabBlockController(BlockController):
    grok.adapts(TabBlock, Interface, IHTTPRequest)

    def __init__(self, block, context, request):
        super(TabBlockController, self).__init__(block, context, request)
        self._references = ReferenceSet(self.context, block.identifier)

    def editable(self):
        return True

    @apply
    def content():
        def getter(self):
            return self._references.get()

        def setter(self, value):
            self._references.set(value)

        return property(getter, setter)

    def remove(self):
        self._references.clear()

    def render(self, view=None):
        return TabRenderer(self.content, self.request)()
Пример #4
0
    def __call__(self, value):
        multiple = bool(self.field._field.get_value('multiple'))
        if isinstance(value, ReferencesSolver):
            value.defer(self.__call__, not multiple, self.context)
            return
        if value is None:
            value = []
        elif multiple:
            assert isinstance(value, list)
        else:
            assert ISilvaObject.providedBy(value)
            value = [value]

        if self.identifier in self.content.__dict__:
            identifier = self.content.__dict__[self.identifier]
        else:
            identifier = unicode(uuid.uuid1())
            self.content.__dict__[self.identifier] = identifier
            self.content._p_changed = True
        references = ReferenceSet(self.context, identifier)
        references.set(value)
Пример #5
0
    def test_source_asset(self):
        importer = self.assertImportFile(
            'test_import_source_asset.silvaxml',
            ['/root/folder',
             '/root/folder/asset'])
        self.assertEqual(importer.getProblems(), [])

        asset = self.root.folder.asset
        self.assertTrue(verifyObject(ISourceAsset, asset))
        version = asset.get_editable()
        self.assertTrue(verifyObject(ISourceAssetVersion, version))
        source = version.get_source()
        self.assertEquals('cs_toc', source.getId())
        params = version.get_parameters()
        self.assertIn(self.root.folder, ReferenceSet(version, params.paths))
        self.assertEquals(set(['Silva Folder']), set(params.toc_types))
Пример #6
0
    def test_source_asset_unknown_parameters(self):
        """This export contains extra unknown parameters.
        """
        importer = self.assertImportFile(
            'test_import_source_asset_unknown_parameters.silvaxml',
            ['/root/folder',
             '/root/folder/asset'])
        self.assertEqual(importer.getProblems(), [])

        asset = self.root.folder.asset
        self.assertTrue(verifyObject(ISourceAsset, asset))
        version = asset.get_editable()
        self.assertTrue(verifyObject(ISourceAssetVersion, version))
        source = version.get_source()
        self.assertEqual(source.getId(), 'cs_toc')
        params = version.get_parameters()
        self.assertIn(self.root.folder, ReferenceSet(version, params.paths))
        self.assertEqual(set(params.toc_types), set(['Silva Folder']))
        self.assertIs(getattr(params, 'space_depth', None), None)
Пример #7
0
 def __init__(self, block, context, request):
     super(TabBlockController, self).__init__(block, context, request)
     self._references = ReferenceSet(self.context, block.identifier)
Пример #8
0
 def delete(self):
     if self.identifier in self.content.__dict__:
         identifier = self.content.__dict__[self.identifier]
         references = ReferenceSet(self.context, identifier)
         references.set([])
         del self.content.__dict__[self.identifier]
Пример #9
0
 def __init__(self, block, context, request):
     super(TabBlockController, self).__init__(block, context, request)
     self._references = ReferenceSet(self.context, block.identifier)