def getSubscribedMembers(self): sm = ISubscriptionManager(self.context) subscribers = sm.getSubscribedMembers() project = self.context.getProject() adapter = IOrganizedEmployess(project.teams) return adapter.caculateCompanyPeople(subscribers)
def getSubscribedMembers(self): sm = ISubscriptionManager(self.context) subscribers = sm.getSubscribedMembers() project = self.context.getProject() adapter = IOrganizedEmployess(project.teams) return adapter.caculateCompanyPeople(subscribers)
def notifyAboutReview(ob, event): # 仅当文件或者图片(File/Image)的时候,才发送 if ob.getPortalTypeName() not in ['File', 'Image']: return # 仅当处于提交、审核通过、拒绝的时候才通知 mtool = getToolByName(ob, 'portal_membership') userid = mtool.getAuthenticatedMember().getId() operation = '' if event.action.endswith('submit'): operation = 'submit' elif event.action.endswith('publish'): operation = 'publish' elif event.action.endswith('reject'): operation = 'reject' # 工作流就是这样定义的, 下面逻辑没错! elif event.action.endswith('retract') and ob.Creator() != userid: operation = 'reject' else: return # 必须在项目中 if hasattr(ob, 'getProject'): project = ob.getProject().aq_inner acl_users = getToolByName(project, 'acl_users') oe = IOrganizedEmployess(project.teams) all_members = oe.get_all_people() members = [] if operation == 'submit': # 只有Administrator或者Reviewer才能收到邮件 # userids = ob.users_with_local_role('Administrator') + ob.users_with_local_role('Reviewer') originalSecurityManager = SecurityManagement.getSecurityManager() for member in all_members: user = acl_users.getUserById(member.getId()) if user is not None: # 模拟那个用户来登录 SecurityManagement.newSecurityManager(None, user) if mtool.checkPermission('Review portal content', ob): members.append(member) SecurityManagement.setSecurityManager(originalSecurityManager) else: member = mtool.getMemberById(ob.Creator()) if member: members.append(member) sendNotification(ob, members, operation)
def notifyAboutReview(ob, event): # 仅当文件或者图片(File/Image)的时候,才发送 if ob.getPortalTypeName() not in ['File', 'Image']: return # 仅当处于提交、审核通过、拒绝的时候才通知 mtool = getToolByName(ob, 'portal_membership') userid = mtool.getAuthenticatedMember().getId() operation = '' if event.action.endswith('submit'): operation = 'submit' elif event.action.endswith('publish'): operation = 'publish' elif event.action.endswith('reject'): operation = 'reject' # 工作流就是这样定义的, 下面逻辑没错! elif event.action.endswith('retract') and ob.Creator() != userid: operation = 'reject' else: return # 必须在项目中 if hasattr(ob, 'getProject'): project = ob.getProject().aq_inner acl_users = getToolByName(project, 'acl_users') oe = IOrganizedEmployess(project.teams) all_members = oe.get_all_people() members = [] if operation == 'submit': # 只有Administrator或者Reviewer才能收到邮件 # userids = ob.users_with_local_role('Administrator') + ob.users_with_local_role('Reviewer') originalSecurityManager = SecurityManagement.getSecurityManager() for member in all_members: user = acl_users.getUserById(member.getId()) if user is not None: # 模拟那个用户来登录 SecurityManagement.newSecurityManager(None, user) if mtool.checkPermission('Review portal content', ob): members.append(member) SecurityManagement.setSecurityManager(originalSecurityManager) else: member = mtool.getMemberById(ob.Creator()) if member: members.append(member) sendNotification(ob, members, operation)
def getMembers(self): project = self.context.getProject() adapter = IOrganizedEmployess(project.teams) cp = adapter.get_all_companies_and_people() members = [] for k in cp.keys(): count = 0 for i in cp[k]: if count == 0: count += 1 continue else: members.append(i) count += 1 return members
def getMembers(self): project = self.context.getProject() adapter = IOrganizedEmployess(project.teams) cp = adapter.get_all_companies_and_people() members = [] for k in cp.keys(): count = 0 for i in cp[k]: if count == 0: count += 1 continue else: members.append(i) count += 1 return members
def getTeamsOrUsers(self): teams = self.context.aq_inner.contentValues({'portal_type':['Team']}) teamsids = [team.getId() for team in teams] ksscore = self.getCommandSet('core') selector = ksscore.getSelector('samenode','') content = "<select class=\"selectarea\" style=\"display: inline;\">" content += "<option value=\"please select a option\">分配权限给...</option>" content += "<optgroup label='项目组'>" for team in teams: if team.getId() != 'projectmanagers': content += "<option value=\"" + IGroup(team).getGroupId() + \ "\">" + team.pretty_title_or_id() + \ "</option>" content += "</optgroup>" project = self.context.getProject() adapter = IOrganizedEmployess(project.teams) cp = adapter.get_all_companies_and_people() for k in cp.keys(): count = 0 for i in cp[k]: if count == 0: content += "<optgroup label='" + i.pretty_title_or_id() \ +"'>" count += 1 else: content += "<option value=\"" + i.getId() + \ "\">" + i.pretty_title_or_id() + \ "</option>" count += 1 content += "</optgroup>" content += "</select>" content = force_unicode(content, 'utf-8') ksscore.insertHTMLAfter(selector, content) selectarea = ksscore.getSelector('css', '.selectarea') ksscore.focus(selectarea)
def getTeamsOrUsers(self): teams = self.context.aq_inner.contentValues({'portal_type': ['Team']}) teamsids = [team.getId() for team in teams] ksscore = self.getCommandSet('core') selector = ksscore.getSelector('samenode', '') content = "<select class=\"selectarea\" style=\"display: inline;\">" content += "<option value=\"please select a option\">分配权限给...</option>" content += "<optgroup label='项目组'>" for team in teams: if team.getId() != 'projectmanagers': content += "<option value=\"" + IGroup(team).getGroupId() + \ "\">" + team.pretty_title_or_id() + \ "</option>" content += "</optgroup>" project = self.context.getProject() adapter = IOrganizedEmployess(project.teams) cp = adapter.get_all_companies_and_people() for k in cp.keys(): count = 0 for i in cp[k]: if count == 0: content += "<optgroup label='" + i.pretty_title_or_id() \ +"'>" count += 1 else: content += "<option value=\"" + i.getId() + \ "\">" + i.pretty_title_or_id() + \ "</option>" count += 1 content += "</optgroup>" content += "</select>" content = force_unicode(content, 'utf-8') ksscore.insertHTMLAfter(selector, content) selectarea = ksscore.getSelector('css', '.selectarea') ksscore.focus(selectarea)
def getMembers(self): project = self.context.getProject() adapter = IOrganizedEmployess(project.teams) return adapter.get_all_people()