def index(request, site_id): siteManager = SiteManager(client_json=request.session.get('client',None)) participantManager = ParticipantManager(client_json=request.session.get('client',None)) site = siteManager.get(site_id) if site is None: search_form = SearchForm(request.GET) participants = participantManager.filter(search_form.generate_predicates()) else: participants = participantManager.with_data(site) breadcrumbs = generate_breadcrumbs(request,site) return render(request, 'browse/participants/index.html', { 'request' : request, 'site' : site, 'participants' : participants, 'breadcrumbs' : breadcrumbs })
def search(request): participantManager = ParticipantManager( client_json=request.session.get('client', None)) itemManager = ItemManager(client_json=request.session.get('client', None)) search_form = SearchForm(request.GET) all_participants = participantManager.filter( search_form.generate_predicates()) filtered_participants = user_filtered_participants(request, all_participants) component_form = create_component_search_form(request, filtered_participants) if component_form.is_valid(): items = [] for comp in component_form.return_selected_components(): items += retrieve_items(itemManager, filtered_participants, comp, component_form.get_speaker_no()) return render( request, 'search/results.html', { 'request': request, 'items': generate_paginated_object(request, items), 'item_ids': [item.identifier for item in items] }) else: return render( request, 'search/components.html', { 'form': component_form, 'participant_count': len(filtered_participants), 'participant_url': append_querystring_to_url(request, '/browse/participants'), 'participant_filter_url': append_querystring_to_url(request, '/search/participants') }) # TODO: Should use reverse urls instead of hard coded urls