def getProjectInfo(self): context = self.context dc = IDCTimes(context) principal = getattr(IOwnership(context, None), 'owner', None) info = { 'title': context.title, 'description': context.description, 'owner': principal, 'created': dc.created, 'members': None, 'default': not bool(context.logo), 'ptype': types.getTerm(context.ptype), 'project': context} if IMembersAware.providedBy(context): info['members'] = len(context.members) return info
def getProjectInfo(self, project): context = project dc = IDCTimes(context) principal = getattr(IOwnership(context, None), "owner", None) info = { "title": context.title, "description": context.description, "owner": principal, "created": dc.created, "members": None, "default": not bool(context.logo), "ptype": types.getTerm(context.ptype), "project": context, } if IMembersAware.providedBy(context): info["members"] = len(context.members) return info
def getGroupInfo(self, project): dc = IDCTimes(project) principal = getattr(IOwnership(project, None), 'owner', None) request = self.request info = { 'id': id, 'title': project.title, 'description': project.description, 'owner': principal, 'created': dc.created, 'members': None, 'default': not bool(project.logo), 'type': types.getTerm(project.ptype), 'managers': [], 'project': project, 'tasks': (0, 0, '0')} membersaware = IMembersAware(project, None) if membersaware is not None: members = membersaware.members info['members'] = len(members) info['membersURL'] = u'%s/'%absoluteURL(members, request) managers = [] for mid in members.managers: managerinfo = self.managers.get(mid) if managerinfo is None: member = members[mid] managerinfo = {'title': member.profile.title, 'space': ''} space = member.space if space is not None: managerinfo['space'] = u'%s/'%absoluteURL(space, request) self.managers[mid] = managerinfo managers.append((managerinfo['title'], managerinfo)) managers.sort() info['managers'] = [m for r, m in managers] if u'tasks' in project: tasks = project['tasks'] total = len(tasks)-1 if total>0: tasks = self.catalog.searchResults( type = {'any_of': ('project.task',)}, projectTaskState = {'any_of': (2,)}, searchContext = project, noSecurityChecks = True, noPublishing = True) completed = len(tasks) info['tasks'] = (total, completed, int(completed/(total/100.0))) else: completed = 0 info['tasks'] = (0, 0, '0') return info