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)