def show_members_view(context, request): """Default view of community members (with/without pictures).""" page_title = 'Community Members' api = TemplateAPI(context, request, page_title) # Filter the actions based on permission in the **community** community = find_interface(context, ICommunity) actions = _get_manage_actions(community, request) # Did we get the "show pictures" flag? list_view = request.view_name == 'list_view.html' pictures_href = request.resource_url(context) list_href = request.resource_url(context, 'list_view.html') submenu = [ {'label': 'Show Pictures', 'href': pictures_href, 'make_link': list_view}, {'label': 'Hide Pictures', 'href': list_href, 'make_link': not(list_view)}, ] profiles = find_profiles(context) member_batch = _member_profile_batch(context, request) member_entries = member_batch['entries'] moderator_names = community.moderator_names member_info = [] for i in range(len(member_entries)): derived = {} entry = member_entries[i] derived['title'] = entry.title derived['href'] = resource_url(entry, request) derived['position'] = entry.position derived['organization'] = entry.organization derived['phone'] = entry.phone derived['department'] = entry.department derived['email'] = entry.email derived['city'] = entry.location photo = entry.get('photo') if photo is not None: derived['photo_url'] = thumb_url(photo, request, PROFILE_THUMB_SIZE) else: derived['photo_url'] = api.static_url + "/images/defaultUser.gif" derived['is_moderator'] = entry.__name__ in moderator_names # Chameleon's tal:repeat and repeat variable support for # things like index is pretty iffy. Fix the entry info to # supply the CSS class information. derived['css_class'] = 'photoProfile' if derived['is_moderator']: derived['css_class'] += ' moderator' member_info.append(derived) moderator_info = [] profiles = find_profiles(context) for moderator_name in moderator_names: if moderator_name in profiles: derived = {} profile = profiles[moderator_name] if not has_permission('view', profile, request): continue derived['title'] = profile.title derived['href'] = resource_url(profile, request) moderator_info.append(derived) renderer_data = dict( api=api, actions=actions, submenu=submenu, moderators=moderator_info, members=member_info, batch_info=member_batch, hide_pictures=list_view) if not list_view: renderer_data['rows'] = profile_photo_rows( member_batch['entries'], request, api) return renderer_data
def show_members_view(context, request): """Default view of community members (with/without pictures).""" layout = request.layout_manager.layout layout.page_title = 'Community Members' api = TemplateAPI(context, request, layout.page_title) # Filter the actions based on permission in the **community** community = find_interface(context, ICommunity) actions = _get_manage_actions(community, request) actions_menu = _get_actions_menu(context, request, actions) # Did we get the "show pictures" flag? list_view = request.view_name == 'list_view.html' pictures_href = request.resource_url(context) list_href = request.resource_url(context, 'list_view.html') submenu = [ # deprecated in ux2 { 'label': 'Show Pictures', 'href': pictures_href, 'make_link': list_view }, { 'label': 'Hide Pictures', 'href': list_href, 'make_link': not (list_view) }, ] formats = [ # ux2 { 'name': 'tabular', 'selected': list_view, 'bs-icon': 'icon-th-list', 'url': list_href, 'title': 'Tabular View', 'description': 'Show table' }, { 'name': 'picture', 'selected': not list_view, 'bs-icon': 'icon-th', 'url': pictures_href, 'title': 'Picture View', 'description': 'Show pictures' } ] profiles = find_profiles(context) member_batch = _member_profile_batch(context, request) member_entries = member_batch['entries'] moderator_names = community.moderator_names member_info = [] for i in range(len(member_entries)): derived = {} entry = member_entries[i] derived['title'] = entry.title derived['href'] = resource_url(entry, request) derived['position'] = entry.position derived['organization'] = entry.organization derived['phone'] = entry.phone derived['department'] = entry.department derived['email'] = entry.email derived['city'] = entry.location photo = entry.get('photo') if photo is not None: derived['photo_url'] = thumb_url(photo, request, PROFILE_THUMB_SIZE) else: derived['photo_url'] = api.static_url + "/images/defaultUser.gif" derived['is_moderator'] = entry.__name__ in moderator_names # Chameleon's tal:repeat and repeat variable support for # things like index is pretty iffy. Fix the entry info to # supply the CSS class information. derived['css_class'] = 'photoProfile' if derived['is_moderator']: derived['css_class'] += ' moderator' member_info.append(derived) moderator_info = [] profiles = find_profiles(context) for moderator_name in moderator_names: if moderator_name in profiles: derived = {} profile = profiles[moderator_name] if not has_permission('view', profile, request): continue derived['title'] = profile.title derived['href'] = resource_url(profile, request) moderator_info.append(derived) renderer_data = dict( api=api, # deprecated in ux2 actions=actions, # deprecated in ux2 actions_menu=actions_menu, submenu=submenu, # deprecated in ux2 formats=formats, moderators=moderator_info, # deprecated in ux2 members=member_info, # deprecated in ux2 batch=member_batch, batch_info=member_batch, # deprecated in ux2 hide_pictures=list_view) # deprecated in ux2 if not list_view: renderer_data['rows'] = profile_photo_rows(member_batch['entries'], request, api) return renderer_data
def _callFUT(self, entries, request, api): from karl.views.peopledirectory import profile_photo_rows return profile_photo_rows(entries, request, api)