def getParticipantInfo(self, uid):
     """ """
     site = self.getSite()
     name = getUserFullName(site, uid)
     email = getUserEmail(site, uid)
     organisation = getUserOrganisation(site, uid)
     phone = getUserPhoneNumber(site, uid)
     return {'uid': uid, 'name': name, 'email': email, 'organisation': organisation, 'phone': phone}
    def jstree_organisations(self):
        """ """
        jstree, organisations = [], {}
        site = self.getSite()
        meeting_config = meeting_module.get_config()
        meeting_obs = site.getCatalogedObjectsCheckView(meta_type=meeting_config['meta_type'], approved=1)

        for i, meeting in enumerate(meeting_obs):
            for uid in meeting.participants.uids:
                organisation = getUserOrganisation(site, uid)
                if organisation not in organisations:
                    organisations[organisation] = {}
                if i not in organisations[organisation]:
                    organisations[organisation][i] = []
                organisations[organisation][i].append(uid)

        for organisation, values in organisations.iteritems():
            meeting_nodes = []
            for i, uids in values.iteritems():
                meeting = meeting_obs[i]

                user_nodes = []
                for uid in uids:
                    name = getUserFullName(site, uid)
                    user_node = {'data':
                                        {'title': name,
                                        'icon': self.participant_icon,
                                        'attributes':
                                            {'href': ''}
                                        }}
                    email = getUserEmail(site, uid)
                    if email is not None:
                        href = 'mailto:' + email
                        user_node['data']['attributes']['href'] = href
                    user_nodes.append(user_node)

                title = meeting.title_or_id()
                href = meeting.absolute_url()
                meeting_nodes.append({'data':
                                        {'title': title,
                                        'icon': meeting.icon,
                                        'attributes':
                                            {'href': href}},
                                    'children': user_nodes})


            jstree.append({'data':
                                {'title': organisation,
                                'icon': self.organisation_icon
                            },
                            'children': meeting_nodes
                        })
        return json.dumps(jstree)
    def getParticipants(self, sort_on=''):
        """ """
        site = self.getSite()
        key = None
        if sort_on == 'o':
            key = lambda x: getUserOrganisation(site, x)
        elif sort_on == 'name':
            key = lambda x: getUserFullName(site, x)
        elif sort_on == 'email':
            key = lambda x: getUserEmail(site, x)
        elif sort_on == 'uid':
            key = lambda x: x

        if key is None:
            return self.uids
        return sorted(self.uids, key=key)