def is_listen_featurelet_installed(f, mship_obj, action): team = mship_obj.aq_inner.aq_parent proj_id = team.getId() portal = getToolByName(mship_obj, 'portal_url').getPortalObject() try: project = portal.projects[proj_id] except KeyError: # cannot find project with same name as team (unit test only?) return for flet in get_featurelets(project): if flet['name'] == 'listen': break else: # no mailing lists on project return f(mship_obj, action)
def project_contains_blog(f, obj, event): """decorator to verify that the project has a blog before sending the event to wordpress""" if IProject.providedBy(obj): proj_id = obj.getId() project = obj else: # it's a membership object team = obj.aq_inner.aq_parent proj_id = team.getId() portal = getToolByName(obj, 'portal_url').getPortalObject() try: project = portal.projects._getOb(proj_id) except KeyError: # cannot find project with same name as team (unit test only?) return for flet in get_featurelets(project): if flet['name'] == 'blog': break else: # no blog on project return f(obj, event)
def _get_featurelet(self, flet_id): flets = get_featurelets(self.context) for flet in flets: if flet['name'] == flet_id: return flet return None
def featurelets(self): flets = [] if self.project is not None: flets = get_featurelets(self.project) return flets