def sorted_allowed_senders_data(self): # User info for listen membership views, annotated with stuff # used by templates, and sorted case-insensitively. data = super(NuiManageMembersView, self).allowed_senders_data() people_url = '%s/people' % getToolByName(self.context, 'portal_url')() sortable = [] for key in data: user = data[key].copy() user.update({'id': key, 'is_member': self.is_member(key), 'pending_status': self.pending_status(key), 'profile_url': '%s/%s/profile' % (people_url, key), 'contact_url': '%s/%s/contact' % (people_url, key), }) if user['is_member']: name = member_title(key) user['name'] = name user['sortkey'] = name.lower() else: # It's an email. user['name'] = self.obfuscate(key) if self.__name__ == 'membership' and len(user['name']) > 3: parts = user['name'].split("@") midlen = len(parts[0]) / 2 user['name'] = parts[0][:midlen-1] + "[...]" + parts[0][midlen+2:] if len(parts) > 1: user['name'] += '@%s' % parts[1] user['sortkey'] = key.lower() sortable.append(user) import operator return sorted(sortable, key=operator.itemgetter('sortkey'))
def member_title(self, arg): return member_title(arg)