Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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