def manage_addCourseTeam(self, id, title, result, REQUEST=None): """Add course tean""" if not mangle.Id(self,id).isValid(): return object = CourseTeam(id) self._setObject(id, object) object = getattr(self, id) object.set_title(title) add_and_edit(self, id, REQUEST) return object
def manage_addReview(self, id, title, result, REQUEST=None): """Add review""" if not mangle.Id(self, id).isValid(): return object = Review(id) self._setObject(id, object) object = getattr(self, id) object.set_title(title) add_and_edit(self, id, REQUEST) return object
def _addSilvaContainer(self, context, id): idObj = mangle.Id( context, id, interface=interfaces.IContainer, allow_dup=1) if not idObj.isValid(): return None while id in context.objectIds(): obj = context[id] if interfaces.IContainer.providedBy(obj): return obj id = str(idObj.new()) context.manage_addProduct['Silva'].manage_addFolder(id, id) return context[id]
def startElementNS(self, name, qname, attrs): if name == (NS_URI, 'content'): id = attrs[(None, 'version_id')].encode('utf-8') if not mangle.Id(self._parent, id).isValid(): return version = NewsItemVersion(id) parent = self.parent() parent._setObject(id, version) version = version.__of__(parent) helpers.set_attribute_as_list(version, 'target_audiences', attrs) helpers.set_attribute_as_list(version, 'subjects', attrs) helpers.set_attribute_as_naive_datetime(version, 'display_datetime', attrs) self.setResultId(id) self.updateVersionCount()
def _getUniqueId(self, context, suggestion, **kw): # Make filename valid and unique. id = mangle.Id(context, suggestion, **kw) id.cook().unique() return str(id)
def test_cook_id(self): id = mangle.Id(self.root.folder, u'Gro\N{LATIN SMALL LETTER SHARP S}e Datei').cook() self.assertTrue(id.isValid()) self.assertEqual(str(id), 'Grose_Datei')
def test_validate(self): id = mangle.Id(self.root.folder, 'some_id') self.assertEquals(id.validate(), id.OK) id = mangle.Id(self.root.folder, 'info') self.assertEqual(id.validate(), id.IN_USE_CONTENT) id = mangle.Id(self.root.folder, 'data') self.assertEqual(id.validate(), id.IN_USE_ASSET) id = mangle.Id(self.root.folder, 'info', allow_dup=1) self.assertEqual(id.validate(), id.OK) id = mangle.Id(self.root.folder, 'data', allow_dup=1) self.assertEqual(id.validate(), id.OK) id = mangle.Id(self.root.folder, 'keys') self.assertEqual(id.validate(), id.RESERVED) id = mangle.Id(self.root.folder, 'values') self.assertEqual(id.validate(), id.RESERVED) id = mangle.Id(self.root.folder, 'service_foobar') self.assertEqual(id.validate(), id.RESERVED_PREFIX) # no explicitely forbidden, but would shadow method: id = mangle.Id(self.root.folder, 'content') self.assertEqual(id.validate(), id.RESERVED) id = mangle.Id(self.root.folder, '&*$()') self.assertEqual(id.validate(), id.CONTAINS_BAD_CHARS) id = mangle.Id(self.root.folder, 'index_html') self.assertEqual(id.validate(), id.RESERVED) id = mangle.Id(self.root.folder, 'index.html') self.assertEqual(id.validate(), id.OK) id = mangle.Id(self.root.folder, 'index-html') self.assertEqual(id.validate(), id.OK) # Zope does not allow any id ending with '__' in a hard boiled manner # (see OFS.ObjectManager.checkValidId) id = mangle.Id(self.root.folder, 'index__', allow_dup=1) self.assertEqual(id.validate(), id.RESERVED_POSTFIX) id = mangle.Id(self.root.folder, 'index') self.assertEqual(id.validate(), id.OK) id = mangle.Id(self.root.folder, 'index', interface=IAsset) self.assertEqual(id.validate(), id.RESERVED_FOR_CONTENT) #test IN_USE_ZOPE, by adding a non-reserved object to self.root.folder id = mangle.Id(self.root.folder, 'pt_test') self.assertEqual(id.validate(), id.IN_USE_ZOPE)