示例#1
0
    def __init__(self, id=None, **kwargs):
        CMFOrderedBTreeFolderBase.__init__(self, id)
        if id is not None:
            self.id = id
        for k, v in kwargs.items():
            setattr(self, k, v)

        # Ensure that the alias gets its own workflow history
        self.workflow_history = PersistentMapping()
    def __init__(self, id=None, **kwargs):
        CMFOrderedBTreeFolderBase.__init__(self, id)
        if id is not None:
            self.id = id
        for k, v in kwargs.items():
            setattr(self, k, v)

        # Ensure that the alias gets its own workflow history
        self.workflow_history = PersistentMapping()
示例#3
0
    def __init__(self, id=None, **kwargs):
        dublin_kw = {}
        for arg in [ "title", "subject", "description", "contributors",
                     "effective_date", "expiration_date", "format", "language",
                     "rights"]:
            if arg in kwargs:
                dublin_kw[arg] = kwargs.pop(arg)

        CMFOrderedBTreeFolderBase.__init__(self, id)
        DefaultDublinCoreImpl.__init__(self, **dublin_kw)

        for (k,v) in kwargs.items():
            setattr(self, k, v)
示例#4
0
    def __init__(self, id=None, **kwargs):
        dublin_kw = {}
        for arg in [
                "title", "subject", "description", "contributors",
                "effective_date", "expiration_date", "format", "language",
                "rights"
        ]:
            if arg in kwargs:
                dublin_kw[arg] = kwargs.pop(arg)

        CMFOrderedBTreeFolderBase.__init__(self, id)
        DefaultDublinCoreImpl.__init__(self, **dublin_kw)

        for (k, v) in kwargs.items():
            setattr(self, k, v)
示例#5
0
    def has_key(self, id):
        """Indicates whether the folder has an item by ID.
        """

        if CMFOrderedBTreeFolderBase.has_key(self, id):
            return True
        return id in getSite() and id not in _languagelist and id not in _combinedlanguagelist
示例#6
0
    def __getattr__(self, name):
        try:
            return DexterityContent.__getattr__(self, name)
        except AttributeError:
            pass

        # Be specific about the implementation we use
        return CMFOrderedBTreeFolderBase.__getattr__(self, name)
示例#7
0
    def __getattr__(self, name):
        try:
            return DexterityContent.__getattr__(self, name)
        except AttributeError:
            pass

        # Be specific about the implementation we use
        return CMFOrderedBTreeFolderBase.__getattr__(self, name)
示例#8
0
 def __getitem__(self, key):
     if self._aliasTraversal:
         try:
             aliased = self._target
         except ComponentLookupError:
             aliased = None
         if aliased is not None:
             return aliased.__getitem__(key)
     return CMFOrderedBTreeFolderBase.__getitem__(self, key)
示例#9
0
 def objectIds(self, spec=None, ordered=True):
     if self._aliasTraversal:
         try:
             aliased = self._target
         except ComponentLookupError:
             return []
         if aliased is not None:
             return aliased.objectIds(spec)
     return CMFOrderedBTreeFolderBase.objectIds(self, spec, ordered)
示例#10
0
 def has_key(self, item_id):
     """Indicates whether the folder has an item by ID.
     """
     return (
         CMFOrderedBTreeFolderBase.has_key(self, item_id)  # noqa
         or (
             item_id in getSite()
             and item_id not in BLACK_LIST_IDS
         )
     )
示例#11
0
 def _getOb(self, id, default=_marker):
     link = self._link
     if link is not None:
         obj = link._getOb(id, default)
         if obj is default:
             if default is _marker:
                 raise KeyError(id)
             return default
         return SymlinkSubItem(aq_base(obj).__of__(self)).__of__(self)
     return CMFOrderedBTreeFolderBase._getOb(self, id, default)
示例#12
0
    def __getitem__(self, key):

        aliased = getSite()
        try:
            obj = aliased.__getitem__(key)
            new_object = aq_base(obj).__of__(self)
            new_object._v_is_shared_content = True
            return new_object
        except KeyError:
            return CMFOrderedBTreeFolderBase.__getitem__(self, key)
 def _getOb(self, id, default=_marker):
     if self._aliasTraversal:
         aliased = self._target
         if aliased is not None:
             obj = aliased._getOb(id, default)
             if obj is default:
                 if default is _marker:
                     raise KeyError(id)
                 return default
             return aq_base(obj).__of__(self)
     return CMFOrderedBTreeFolderBase._getOb(self, id, default)
示例#14
0
 def _getOb(self, id, default=_marker):
     if self._aliasTraversal:
         aliased = self._target
         if aliased is not None:
             obj = aliased._getOb(id, default)
             if obj is default:
                 if default is _marker:
                     raise KeyError(id)
                 return default
             return aq_base(obj).__of__(self)
     return CMFOrderedBTreeFolderBase._getOb(self, id, default)
示例#15
0
    def test_getitem_dav_request(self):
        root = TestRequestContainer()
        folder = CMFOrderedBTreeFolderBase("f1").__of__(root)

        root.REQUEST.maybe_webdav_client = True
        root.REQUEST._environ['REQUEST_METHOD'] = 'PUT'

        foo = DummyObject('foo')
        folder['foo'] = foo

        self.assertEquals(folder['foo'], foo)
        self.failUnless(isinstance(folder['bar'], NullResource))
示例#16
0
 def __getattr__(self, name):
     
     # attribute was not found; try to look it up in the schema and return
     # a default
     
     schema = SCHEMA_CACHE.get(self.portal_type)
     if schema is not None:
         field = schema.get(name, None)
         if field is not None:
             return deepcopy(field.default)
     
     # Be specific about the implementation we use
     return CMFOrderedBTreeFolderBase.__getattr__(self, name)
示例#17
0
    def __getattr__(self, name):

        # attribute was not found; try to look it up in the schema and return
        # a default

        schema = SCHEMA_CACHE.get(self.portal_type)
        if schema is not None:
            field = schema.get(name, None)
            if field is not None:
                return deepcopy(field.default)

        # Be specific about the implementation we use
        return CMFOrderedBTreeFolderBase.__getattr__(self, name)
示例#18
0
    def _getOb(self, item_id, default=_marker):
        obj = CMFOrderedBTreeFolderBase._getOb(self, item_id, default)
        if obj is not default:
            return obj

        aliased = getSite()
        if aliased and item_id not in BLACK_LIST_IDS:
            obj = aliased._getOb(item_id, default)
            if obj is default:
                return default
            new_object = aq_base(obj).__of__(self)
            new_object._v_is_shared_content = True
            return new_object
        if default is not _marker:
            return default
示例#19
0
 def _getOb(self, id, default=_marker):
     obj = CMFOrderedBTreeFolderBase._getOb(self, id, default)
     if obj is not default:
         return obj
     else:
         aliased = getSite()
         if aliased:
             if (id not in _languagelist and id not in _combinedlanguagelist):
                 obj = aliased._getOb(id, default)
                 if obj is default:
                     # if default is _marker:
                     #     raise KeyError
                     return default
                 new_object = aq_base(obj).__of__(self)
                 new_object._v_is_shared_content = True
                 return new_object
示例#20
0
    def test_getitem_not_dav_request(self):
        root = TestRequestContainer()
        folder = CMFOrderedBTreeFolderBase("f1").__of__(root)

        root.REQUEST.maybe_webdav_client = False
        root.REQUEST._environ['REQUEST_METHOD'] = 'GET'

        foo = DummyObject('foo')
        folder['foo'] = foo

        self.assertEquals(folder['foo'], foo)
        try:
            folder['bar']
            self.fail()
        except KeyError:
            pass
示例#21
0
 def objectIds(self, spec=None, ordered=True):
     # XXX : need to find better aproach
     aliased = getSite()
     aliased_objectIds = set()
     if aliased is not None:
         try:
             # spec = ['Dexterity Container',
             #         'Dexterity Item',
             #         'ATFolder',
             #         'ATDocument']
             aliased_objectIds.update(aliased.objectIds(spec))
             aliased_objectIds -= BLACK_LIST_IDS
         except AttributeError:
             pass
     own_elements = CMFOrderedBTreeFolderBase.objectIds(self, spec, False)
     return [item for item in own_elements] + list(aliased_objectIds)
示例#22
0
    def objectIds(self, spec=None, ordered=True):
        aliased = getSite()
        # XXX : need to find better aproach

        try:
            if aliased is not None:
                to_remove = []
                # spec = ['Dexterity Container', 'Dexterity Item', 'ATFolder', 'ATDocument']
                aliased_objectIds = list(aliased.objectIds(spec))
                for id in aliased_objectIds:
                    if id in _languagelist or id in _combinedlanguagelist:
                        aliased_objectIds.remove(id)
            else:
                aliased_objectIds = []

        except AttributeError:
            aliased_objectIds = []

        own_elements = CMFOrderedBTreeFolderBase.objectIds(self, spec, False)
        return [item for item in own_elements] + aliased_objectIds
示例#23
0
 def objectIds(self, spec=None, ordered=True):
     if self._aliasTraversal:
         aliased = self._target
         if aliased is not None:
             return aliased.objectIds(spec)
     return CMFOrderedBTreeFolderBase.objectIds(self, spec, ordered)
示例#24
0
 def __init__(self, id=None, **kwargs):
     CMFOrderedBTreeFolderBase.__init__(self, id)
     DexterityContent.__init__(self, id, **kwargs)
示例#25
0
 def __getitem__(self, key):
     link = self._link
     if link is not None:
         return SymlinkSubItem(link.__getitem__(key)).__of__(self)
     return CMFOrderedBTreeFolderBase.__getitem__(self, key)
示例#26
0
 def __init__(self, id=None, **kwargs):
     CMFOrderedBTreeFolderBase.__init__(self, id)
     DexterityContent.__init__(self, id, **kwargs)
示例#27
0
 def objectIds(self, spec=None, ordered=True):
     link = self._link
     if link is not None:
         return link.objectIds(spec)
     return CMFOrderedBTreeFolderBase.objectIds(self, spec, ordered)
 def objectIds(self, spec=None, ordered=True):
     if self._aliasTraversal:
         aliased = self._target
         if aliased is not None:
             return aliased.objectIds(spec)
     return CMFOrderedBTreeFolderBase.objectIds(self, spec, ordered)
示例#29
0
 def __getitem__(self, key):
     if self._aliasTraversal:
         aliased = self._target
         if aliased is not None:
             return aliased.__getitem__(key)
     return CMFOrderedBTreeFolderBase.__getitem__(self, key)
示例#30
0
 def _checkId(self, id, allow_dup=0):
     """ check only locally """
     if not allow_dup and id in CMFOrderedBTreeFolderBase.objectIds(self, None, False):
         raise BadRequestException('The id "%s" is invalid--'
                                   'it is already in use.' % id)
 def __getitem__(self, key):
     if self._aliasTraversal:
         aliased = self._target
         if aliased is not None:
             return aliased.__getitem__(key)
     return CMFOrderedBTreeFolderBase.__getitem__(self, key)