def __delitem__(self, item, flush=True): """Delete a value from the container using the key.""" if isinstance(item, string_types): item = self[item] if item.__parent_uri__ == self.__uri__: if isinstance(item, BaseContainer): for key in item.keys(): item.__delitem__(key, False) get_current_registry().notify( ptah.events.ContentDeletingEvent(item)) name = item.__name__ if self._v_keys: self._v_keys.remove(name) if self._v_items and name in self._v_items: del self._v_items[name] if item in Session: try: Session.delete(item) if flush: Session.flush() except: pass return raise KeyError(item)
def __call__(self, request=None): root = self._sql_get_root.first(name=self.name, type=self.type.__uri__) if root is None: root = self.type.create(title=self.title) root.__name_id__ = self.name root.__path__ = '/%s/' % root.__uri__ Session.add(root) Session.flush() root.__root_path__ = self.path root.__parent__ = policy = self.policy(request) root.__default_root__ = self.default_root if request is not None: set_policy(policy) request.root = root if self.parent_factory: policy.__parent__ = self.parent_factory() return root
def __call__(self, request=None): root = self._sql_get_root.first(name=self.name, type=self.type.__uri__) if root is None: root = self.type.create(title=self.title) root.__name_id__ = self.name root.__path__ = '/%s/'%root.__uri__ Session.add(root) Session.flush() root.__root_path__ = self.path root.__parent__ = policy = self.policy(request) root.__default_root__ = self.default_root if request is not None: set_policy(policy) request.root = root if self.parent_factory: policy.__parent__ = self.parent_factory() return root
def create(self, parent=None): blob = Blob(__parent__=parent) Session.add(blob) Session.flush() return blob