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): 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)
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)
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
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)
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)
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)
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 ) )
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)
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)
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))
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)
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
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
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
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)
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
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)
def __init__(self, id=None, **kwargs): CMFOrderedBTreeFolderBase.__init__(self, id) DexterityContent.__init__(self, id, **kwargs)
def __getitem__(self, key): link = self._link if link is not None: return SymlinkSubItem(link.__getitem__(key)).__of__(self) return CMFOrderedBTreeFolderBase.__getitem__(self, key)
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 __getitem__(self, key): if self._aliasTraversal: aliased = self._target if aliased is not None: return aliased.__getitem__(key) return CMFOrderedBTreeFolderBase.__getitem__(self, key)
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)