def insertAlias(self): uid_catalog = cmfutils.getToolByName(self.context, 'uid_catalog') uid = self.request.get('uid') container = self.context # check that target object exists brains = uid_catalog(UID=uid) if brains: # find first available id for the alias object ids = [i[6:] for i in container.objectIds() if i.startswith('alias-')] alias_id = 'alias-%s' % findFirstAvailableInteger(ids) # create new alias container.invokeFactory('CollageAlias', id=alias_id) alias = container[alias_id] # set target alias.set_target(uid) event.notify(ObjectModifiedEvent(alias)) msg = _(u'msg_alias_inserted', default=u"Alias inserted.") else: msg = _( u'msg_target_object_not_found', default=u"Target object not found.") referer = self.request.get('HTTP_REFERER', self.context.absolute_url()) self.context.plone_utils.addPortalMessage(msg) return self.request.RESPONSE.redirect(referer)
def insertAlias(col, uid): ids = [i[6:] for i in col.objectIds() if i.startswith('alias-')] alias_id = 'alias-%s' % findFirstAvailableInteger(ids) # create new alias col.invokeFactory('CollageAlias', id=alias_id) alias = col[alias_id] # set target alias.set_target(uid) return alias