def activities_dashboard(): search_parameters = request.args name = request.args.get('name') # get event event_id = request.args.get('event', None) if (event_id is None): event = EventsFinder.get_default_event() else: event = EventsFinder.get_from_external_id(event_id) events = EventsFinder.get_all() if event is None: error = 'No default event found! Please set a default event in the menu "Events"' return render_template('admin/activities/activities_dashboard.html', event=None, events=events, activities=None, error=error, search=None, role=current_user.role.name) # handle search bar requests if name is not None: search = name activities_list = ActivitiesFinder.search_by_name_and_event( name, event) # handle parameter requests elif len(search_parameters) != 0: search_parameters = request.args search = 'search name' if 'type' in search_parameters: type_external_id = search_parameters['type'] activity_type = ActivityTypesFinder.get_from_external_id( uuid.UUID(type_external_id)) activities_list = ActivitiesFinder.get_all_from_type_and_event( activity_type) else: activities_list = event.activities # request endpoint with no parameters should return all activities else: search = None activities_list = event.activities if not activities_list: error = 'No results found' return render_template('admin/activities/activities_dashboard.html', event=event, events=events, activities=None, error=error, search=search, role=current_user.role.name) return render_template('admin/activities/activities_dashboard.html', event=event, events=events, activities=activities_list, error=None, search=search, role=current_user.role.name)
def get_activities(): search_parameters = request.args name = request.args.get('name') speaker = request.args.get('speaker') company = request.args.get('company') event = request.args.get('event') if event is None: event = EventsFinder.get_default_event() else: event = EventsFinder.get_from_name(event) if event is None: return APIErrorValue("Event no found!").json(404) activities_list = [] # handle search bar requests if name is not None: search = name activities_list = ActivitiesFinder.search_by_name_and_event( search, event) # handle parameter requests elif speaker is not None: search = speaker speaker = SpeakersFinder.get_from_name(search) if speaker: activities_list = ActivitiesFinder.get_activities_from_speaker_and_event( speaker, event) elif company is not None: search = company company = CompaniesFinder.get_from_name(search) if company: activities_list = ActivitiesFinder.get_activities_from_company_and_event( company, event) elif len(search_parameters) != 0: search = 'search name' try: search_parameters = request.args.to_dict() search_parameters['type'] = ActivityTypesFinder.get_from_name( search_parameters['type']).id search_parameters['activity_type_id'] = search_parameters.pop( 'type') except: pass activities_list = ActivitiesFinder.get_from_parameters( search_parameters) # request endpoint with no parameters should return all activities else: search = None activities_list = ActivitiesFinder.get_activities_from_event(event) if activities_list is None: return APIErrorValue('No results found').json(400) return ActivitiesValue(activities_list).json(200)