Ejemplo n.º 1
0
    def items(self, n_items=12):
        if hasattr(self,'_items'):
            # If the property already contains something, there's no need to
            # regenerate it.
            return self._items

        project = self.context
#        members = list(project.projectMembers())
        members = project.projectMemberBrains()

        # XXX should probably go in Products.Openplans' project
        # maybe related to docstring above while filtering by hand is necessary?
        team = project.getTeams()[0]
        wf = getToolByName(project, 'portal_workflow')
        members = [ member for member in members 
                    if wf.getInfoFor(team.getMembershipByMemberId(member.getId), 'review_state') == 'public' ]

        members.sort(key=portrait_sort_key, reverse=True) # could also sort by admin-ness, lastlogin, etc
        members = members[:n_items]

        self._items = []
        for member in members:
            link = profile_path(member.getId)
            self.add_item(title=member.getId,
                          description=member.getFullname,
                          link=link,
                          author=member.getId,
                          pubDate=member.getLast_login_time)

        return self._items
Ejemplo n.º 2
0
 def memberURL(self, id):
     """Utility method that uses the current context to convert a member id
     into a URL"""
     return '%s/%s' % (getToolByName(self.context, 'portal_url')(),
                       profile_path(id))