def __init__(self, activities): super(ActivitiesValue, self).initialize({}) activities_array = [] for activity in activities: activity_speakers = ActivitiesFinder.get_activity_speakers( activity) activity_companies = ActivitiesFinder.get_activity_companies( activity) activity_value = { "name": activity.name, "description": activity.description, "location": activity.location, "day": activity.day, "time": activity.time, "end_time": activity.end_time, "type": activity.activity_type.name, "registration_open": activity.registration_open, "registration_link": activity.registration_link, "zoom_link": activity.zoom_link, "speakers": SpeakersValue(activity_speakers).to_dict(), "moderator": activity.moderator.name if activity.moderator else "", "reward": RewardsValue(activity.reward).to_dict(), "companies": CompaniesValue(activity_companies, True).to_dict() } activities_array.append(activity_value) self.serialize_with(data=activities_array)
def delete_activity_type(activity_type_external_id): activity_type = ActivityTypesFinder.get_from_external_id( activity_type_external_id) if activity_type.activities: for activity in activity_type.activities: if activity is None: return APIErrorValue('Couldnt find activity').json(500) company_activities = ActivitiesFinder.get_company_activities_from_activity_id( activity.external_id) speaker_activities = ActivitiesFinder.get_speaker_activities_from_activity_id( activity.external_id) if company_activities: for company_activity in company_activities: ActivitiesHandler.delete_company_activities( company_activity) if speaker_activities: for speaker_activity in speaker_activities: ActivitiesHandler.delete_speaker_activities( speaker_activity) if not ActivitiesHandler.delete_activity(activity): return APIErrorValue('Couldnt delete activity').json(500) if ActivityTypesHandler.delete_activity_type(activity_type): return redirect(url_for('admin_api.activity_types_dashboard')) return render_template('admin/activities/update_activity_type.html', activity_type=activity_type, error="Failed to update activity type!")
def get_job_fair(company_user): job_fairs = [] for activity in ActivitiesFinder.get_current_company_activities( company_user.company): if activity.activity_type.name == 'Job Fair Booth': _activity = dict( ActivitiesFinder.get_from_external_id( activity.external_id).__dict__) _activity['external_id'] = _activity['external_id'].hex _activity.pop('_sa_instance_state') _activity.pop('created_at') _activity.pop('chat_type') job_fairs.append(_activity) if len(job_fairs) == 0: return APIErrorValue("Job Fair not found").json(404) now = datetime.utcnow() today = now.strftime('%d %b %Y, %a') if today not in [activity['day'] for activity in job_fairs]: generate_code = False else: generate_code = True chat_token = UsersHandler.get_chat_user_token(company_user.user) chat_url = Config.ROCKET_CHAT_APP_URL + 'home?resumeToken=' + chat_token return render_template('companies/activities/job_fair.html', \ generate_code = generate_code, \ chat_url = chat_url, \ job_fairs=job_fairs, \ error=None, \ user=company_user)
def delete_activity(activity_external_id): activity = ActivitiesFinder.get_from_external_id(activity_external_id) company_activities = ActivitiesFinder.get_company_activities_from_activity_id( activity_external_id) speaker_activities = ActivitiesFinder.get_speaker_activities_from_activity_id( activity_external_id) activity_tags = TagsFinder.get_activity_tags_from_activity_id( activity_external_id) if activity is None: return APIErrorValue('Couldnt find activity').json(500) if company_activities: for company_activity in company_activities: ActivitiesHandler.delete_company_activities(company_activity) if speaker_activities: for speaker_activity in speaker_activities: ActivitiesHandler.delete_speaker_activities(speaker_activity) if activity_tags: for activity_tag in activity_tags: TagsHandler.delete_activity_tag(activity_tag) if ActivitiesHandler.delete_activity(activity): return redirect(url_for('admin_api.activities_dashboard')) else: return render_template('admin/activities/update_activity.html', activity=activity, error="Failed to delete activity!")
def __init__(self, activities, student, bypass_show_in_app=False): super(StudentActivitiesValue, self).initialize({}) activities_array = [] for activity in activities: if (not activity.activity_type.show_in_app and not bypass_show_in_app): continue activity_speakers = ActivitiesFinder.get_activity_speakers( activity) activity_companies = ActivitiesFinder.get_activity_companies( activity) activity_tags = ActivitiesFinder.get_activity_tags(activity) activity_value = { "name": activity.name, "description": activity.description, "location": activity.location, "day": activity.day, "time": activity.time, "end_time": activity.end_time, "type": activity.activity_type.name, "points": activity.points, "quest": activity.quest, "registration_open": activity.registration_open, "registration_link": activity.registration_link, "speakers": SpeakersValue(activity_speakers).to_dict(), "moderator": activity.moderator.name if activity.moderator else "", "companies": CompaniesValue(activity_companies, True).to_dict(), "participated": activity in student.activities, "reward": RewardsValue(activity.reward).to_dict(), "zoom_url": activity.zoom_link, "interest": not set(activity_tags).isdisjoint(student.tags) or not set(activity_companies).isdisjoint(student.companies) } activities_array.append(activity_value) self.serialize_with(data=activities_array)
def get_activity(activity_external_id): activity = ActivitiesFinder.get_from_external_id(activity_external_id) companies = CompaniesFinder.get_all() speakers = SpeakersFinder.get_all() tags = TagsFinder.get_all() rewards = RewardsFinder.get_all_rewards() event = EventsFinder.get_from_parameters({"default": True}) if event is None or len(event) == 0: error = 'No default event found! Please set a default event in the menu "Events"' return render_template('admin/activities/activities_dashboard.html', event=None, error=error, role=current_user.role.name) activity_types = event[0].activity_types company_activities = ActivitiesFinder.get_company_activities_from_activity_id( activity_external_id) speaker_activities = ActivitiesFinder.get_speaker_activities_from_activity_id( activity_external_id) activity_tags = TagsFinder.get_activity_tags_from_activity_id( activity_external_id) try: minDate = datetime.strptime(event[0].start_date, '%d %b %Y, %a').strftime("%Y,%m,%d") maxDate = datetime.strptime(event[0].end_date, '%d %b %Y, %a').strftime("%Y,%m,%d") except: minDate = None maxDate = None companies_zoom_url = {} for company in company_activities: companies_zoom_url[company.company_id] = company.zoom_link return render_template('admin/activities/update_activity.html', \ activity=activity, \ activity_types=activity_types, \ companies=companies, \ speakers=speakers, \ tags=tags, \ rewards=rewards, \ company_activities=[company.company_id for company in company_activities], \ speaker_activities=[speaker.speaker_id for speaker in speaker_activities], \ companies_zoom_url=companies_zoom_url, \ activity_tags=[tag.tag_id for tag in activity_tags], \ minDate=minDate, \ maxDate=maxDate, \ error=None)
def dashboard(company_user): if not company_user.user.accepted_terms: return render_template('companies/terms_conditions.html', user=company_user.user) if company_user.company.cvs_access: event = EventsFinder.get_default_event() today = datetime.now() cvs_access_start = datetime.strptime(event.cvs_access_start, '%d %b %Y, %a') cvs_access_end = datetime.strptime(event.cvs_access_end, '%d %b %Y, %a') if today < cvs_access_start or today > cvs_access_end: cvs_enabled = False else: cvs_enabled = True else: cvs_enabled = False company_auctions = CompaniesFinder.get_company_auctions(company_user.company) company_logo = CompaniesHandler.find_image(company_user.company.name) job_fair = False activity_types = [] for activity in ActivitiesFinder.get_current_company_activities(company_user.company): if (activity.activity_type not in activity_types) and (activity.activity_type.name not in ['Job Fair','Job Fair Booth']): activity_types.append(activity.activity_type) if (activity.activity_type.name in ['Job Fair','Job Fair Booth']): job_fair = True return render_template('companies/dashboard.html', auctions=company_auctions, job_fair=job_fair, company_logo=company_logo, activity_types=activity_types, user=company_user, cvs_enabled=cvs_enabled)
def get_activity_type(company_user, activity_type_external_id): activity_type = ActivityTypesFinder.get_from_external_id( activity_type_external_id) if activity_type is None: return APIErrorValue("No activity type found").json(404) activities = [] for activity in company_user.company.activities: if activity.activity_type == activity_type: _activity = dict( ActivitiesFinder.get_from_external_id( activity.external_id).__dict__) _activity['external_id'] = _activity['external_id'].hex _activity.pop('_sa_instance_state') _activity.pop('created_at') _activity.pop('chat_type') activities.append(_activity) now = datetime.utcnow() today = now.strftime('%d %b %Y, %a') for _ in range(len(activities)): if activities[0]['day'] == today: break activities.append(activities.pop(0)) return render_template('companies/activities/activity_type.html', \ activities=activities, \ activity_type=activity_type, \ error=None, \ user=company_user)
def get_activities(student): event = EventsFinder.get_default_event() date = request.args.get('date', None) if date is None: activities = event.activities else: activities = ActivitiesFinder.get_from_parameters({ "event_id": event.id, "day": date }) return StudentActivitiesValue(activities, student).json(200)
def delete_activity_code(activity_external_id): activity = ActivitiesFinder.get_from_external_id(activity_external_id) if activity is None: return APIErrorValue('Couldnt find activity').json(404) codes = ActivityCodesFinder.get_from_parameters( {'activity_id': activity.id}) for code in codes: if not ActivityCodesHandler.delete_activity_code(code): return jsonify("Failed"), 500 return jsonify("Success")
def get_activity(company_user, activity_external_id): activity = ActivitiesFinder.get_from_external_id(activity_external_id) if activity is None: return APIErrorValue('Couldnt find activity').json(400) codes = ActivityCodesFinder.get_from_parameters( {'activity_id': activity.id}) return render_template('companies/activities/activity.html', \ activity=activity, \ error=None, \ codes=codes, \ user=company_user)
def generate_code(company_user): now = datetime.utcnow() today = now.strftime('%d %b %Y, %a') for activity in ActivitiesFinder.get_current_company_activities( company_user.company): if activity.activity_type.name == 'Job Fair Booth' and activity.day == today: activity_code = ActivityCodesHandler.create_activity_code( activity_id=activity.id) return jsonify(activity_code.code) return APIErrorValue("Not allowed").json(401)
def generate_codes(activity_external_id): activity = ActivitiesFinder.get_from_external_id(activity_external_id) if activity is None: return APIErrorValue('Couldnt find activity').json(404) number = request.form.get('number', 1) activity_codes = [] for _ in range(int(number)): activity_codes.append( ActivityCodesHandler.create_activity_code( activity_id=activity.id).code) return jsonify(activity_codes)
def __init__(self, partner, student): super(PartnersValue, self).initialize({}) self.serialize_with(name=partner.name) self.serialize_with(business_area=partner.business_area) self.serialize_with(logo=CompaniesHandler.find_image(partner.name)) self.serialize_with(team=CompanyUsersValue(partner.users).to_dict()) self.serialize_with(interest=partner in student.companies) activity = ActivitiesFinder.get_next_company_activity(partner) if activity is None: zoom_url = None else: zoom_url = activity.zoom_link self.serialize_with(zoom_url=zoom_url)
def get_notifications(student): notifications = {} if (student.squad): notifications['squad_xp'] = student.squad.total_points notifications['invites'] = [] invitations = SquadsFinder.get_invitations_from_parameters( {"receiver_id": student.id}) for invitation in invitations: sender = StudentsFinder.get_from_id(invitation.sender_id) notifications['invites'].append(sender.user.name) notifications['activities'] = [] activities = ActivitiesFinder.get_next_activity() for activity in activities: notifications['activities'].append(activity.name) return jsonify(notifications), 200
def get_quests(student): activities = ActivitiesFinder.get_quests() return StudentActivitiesValue(activities, student, True).json(200)
def update_activity(activity_external_id): activity = ActivitiesFinder.get_from_external_id(activity_external_id) company_activities = ActivitiesFinder.get_company_activities_from_activity_id( activity_external_id) speaker_activities = ActivitiesFinder.get_speaker_activities_from_activity_id( activity_external_id) activity_tags = TagsFinder.get_activity_tags_from_activity_id( activity_external_id) if activity is None: return APIErrorValue('Couldnt find activity').json(500) name = request.form.get('name') description = request.form.get('description') location = request.form.get('location') day = request.form.get('day') time = request.form.get('time') end_time = request.form.get('end_time') registration_link = request.form.get('registration_link') registration_open = request.form.get('registration_open') points = request.form.get('points') or None quest = request.form.get('quest') chat = request.form.get('chat') zoom_link = request.form.get('zoom_url') reward_id = request.form.get('reward') or None moderator = request.form.get('moderator') or None if time > end_time is None: return APIErrorValue('Activity starting time after ending time').json( 500) if registration_open == 'True': registration_open = True else: registration_open = False if quest == 'True': quest = True else: quest = False chat_type = ActivityChatEnum[chat] if chat else None activity_type_external_id = request.form.get('type') activity_type = ActivityTypesFinder.get_from_external_id( uuid.UUID(activity_type_external_id)) updated_activity = ActivitiesHandler.update_activity( activity=activity, activity_type=activity_type, name=name, description=description, location=location, day=day, time=time, end_time=end_time, registration_link=registration_link, registration_open=registration_open, points=points, quest=quest, zoom_link=zoom_link, chat_type=chat_type, chat=(chat == 'general'), reward_id=reward_id) if company_activities: for company_activity in company_activities: ActivitiesHandler.delete_company_activities(company_activity) if speaker_activities: for speaker_activity in speaker_activities: ActivitiesHandler.delete_speaker_activities(speaker_activity) if activity_tags: for activity_tag in activity_tags: TagsHandler.delete_activity_tag(activity_tag) # extract company names and speaker names from parameters companies = request.form.getlist('company') zoom_urls = request.form.getlist('url') speakers = request.form.getlist('speaker') tags = request.form.getlist('tag') # if company names where provided if companies: for index, name in enumerate(companies): company = CompaniesFinder.get_from_name(name) if company is None: return APIErrorValue('Couldnt find company').json(500) company_activity = ActivitiesHandler.add_company_activity( company, activity, zoom_urls[index]) if company_activity is None: return APIErrorValue('Failed to create company activity').json( 500) if activity_type.name == 'Job Fair': job_fair_booth = ActivityTypesFinder.get_from_name( 'Job Fair Booth') if not ActivitiesFinder.get_from_parameters( { 'name': company.name + " Booth", 'day': day }): job_fair_booth_activity = ActivitiesHandler.create_activity( name=company.name + " Booth", description="Visit " + company.name + " booth to earn extra points", activity_type=job_fair_booth, event=activity.event, location="Job Fair", day=day, time='10:30', end_time='16:30', points=40, quest=False) ActivitiesHandler.add_company_activity( company, job_fair_booth_activity) if speakers: for name in speakers: speaker = SpeakersFinder.get_from_name(name) if speaker is None: return APIErrorValue('Couldnt find speaker').json(500) speaker_activity = ActivitiesHandler.add_speaker_activity( speaker, activity) if speaker_activity is None: return APIErrorValue('Failed to create speaker activity').json( 500) if (moderator and moderator in speakers): moderator = SpeakersFinder.get_from_name(moderator) if moderator is None: return APIErrorValue('Couldnt find moderator').json(500) ActivitiesHandler.update_activity(activity, activity_type, moderator_id=moderator.id) elif (not moderator): ActivitiesHandler.update_activity(activity, activity_type, moderator_id=None) if tags: for name in tags: tag = TagsFinder.get_by_name(name) if tag is None: return APIErrorValue('Couldnt find tag').json(500) activity_tag = TagsHandler.add_activity_tag(activity, tag) if activity_tag is None: return APIErrorValue('Failed to create activity tag').json(500) if updated_activity is None: event = EventsFinder.get_from_parameters({"default": True}) if event is None or len(event) == 0: error = 'No default event found! Please set a default event in the menu "Events"' return render_template( 'admin/activities/activities_dashboard.html', event=None, error=error, role=current_user.role.name) activity_types = event[0].activity_types try: minDate = datetime.strptime(event[0].start_date, '%d %b %Y, %a').strftime("%Y,%m,%d") maxDate = datetime.strptime(event[0].end_date, '%d %b %Y, %a').strftime("%Y,%m,%d") except: minDate = None maxDate = None return render_template('admin/activities/update_activity.html', \ activity=activity, \ types=activity_types, \ companies=CompaniesFinder.get_all(), \ speakers=SpeakersFinder.get_all(), \ tags=TagsFinder.get_all(), \ rewards=RewardsFinder.get_all_rewards(), \ minDate=minDate, \ maxDate=maxDate, \ error="Failed to update activity!") return redirect(url_for('admin_api.activities_dashboard'))
def statistics_dashboard(company_user): event = EventsFinder.get_default_event() company_user = UsersFinder.get_company_user_from_user(current_user) interested_students = StudentsFinder.get_company_students( company_user.company) company_activities = ActivitiesFinder.get_activities_from_company_and_event( company_user.company, event) company = company_user.company interactions = db_session.query(Logs) \ .join(Activities, Logs.entrypoint.contains(Activities.name)) \ .join(Users, Users.username == Logs.user_id) \ .join(Students, Users.id == Students.user_id) \ .with_entities(Activities.name, Students.course, Students.entry_year, func.count(Activities.name)) \ .filter((Events.id == event.id) & (Events.id == Activities.event_id) & (CompanyActivities.activity_id == Activities.id) & (CompanyActivities.company_id == company.id)) \ .group_by(Activities.name, Students.course, Students.entry_year) \ .all() total_interactions = 0 total_interactions_by_activity = {} total_interactions_by_course = {} total_interactions_by_year = {} interactions_by_course = {} interactions_by_year = {} for interaction_type in interactions: total_interactions += interaction_type[3] if "Job Fair" in interaction_type[0]: interaction_type = list(interaction_type) interaction_type[0] = interaction_type[0].rsplit(" ", 1)[0] if interaction_type[0] not in total_interactions_by_activity: total_interactions_by_activity[ interaction_type[0]] = interaction_type[3] interactions_by_course[interaction_type[0]] = {} interactions_by_course[interaction_type[0]][ interaction_type[1]] = interaction_type[3] interactions_by_year[interaction_type[0]] = {} interactions_by_year[interaction_type[0]][ interaction_type[2]] = interaction_type[3] else: total_interactions_by_activity[ interaction_type[0]] += interaction_type[3] if interaction_type[1] not in interactions_by_course[ interaction_type[0]]: interactions_by_course[interaction_type[0]][ interaction_type[1]] = interaction_type[3] else: interactions_by_course[interaction_type[0]][ interaction_type[1]] += interaction_type[3] if interaction_type[2] not in interactions_by_year[ interaction_type[0]]: interactions_by_year[interaction_type[0]][ interaction_type[2]] = interaction_type[3] else: interactions_by_year[interaction_type[0]][ interaction_type[2]] += interaction_type[3] if interaction_type[1] not in total_interactions_by_course: total_interactions_by_course[ interaction_type[1]] = interaction_type[3] else: total_interactions_by_course[ interaction_type[1]] += interaction_type[3] if interaction_type[2] not in total_interactions_by_year: total_interactions_by_year[ interaction_type[2]] = interaction_type[3] else: total_interactions_by_year[ interaction_type[2]] += interaction_type[3] participations = StudentActivities \ .query \ .join(Activities, StudentActivities.activity_id == Activities.id) \ .join(Students, StudentActivities.student_id == Students.id) \ .with_entities(Activities.name, Students.course, Students.entry_year, func.count(Activities.name), Activities.day) \ .filter((Events.id == event.id) & (Events.id == Activities.event_id) & (CompanyActivities.activity_id == Activities.id) & (CompanyActivities.company_id == company.id)) \ .group_by(Activities.name, Students.course, Students.entry_year, Activities.day) \ .all() total_participations = 0 total_participations_by_activity = {} total_participations_by_course = {} total_participations_by_year = {} participations_by_course = {} participations_by_year = {} for participation_type in participations: total_participations += participation_type[3] if "Booth" in participation_type[0]: week_day = participation_type[4][-3:] participation_type = list(participation_type) if week_day == "Mon": participation_type[0] = "Job Fair Monday" elif week_day == "Tue": participation_type[0] = "Job Fair Tuesday" elif week_day == "Wed": participation_type[0] = "Job Fair Wednesday" elif week_day == "Thu": participation_type[0] = "Job Fair Thursday" elif week_day == "Fri": participation_type[0] = "Job Fair Friday" if participation_type[0] not in total_participations_by_activity: total_participations_by_activity[ participation_type[0]] = participation_type[3] participations_by_course[participation_type[0]] = {} participations_by_course[participation_type[0]][ participation_type[1]] = participation_type[3] participations_by_year[participation_type[0]] = {} participations_by_year[participation_type[0]][ participation_type[2]] = participation_type[3] else: total_participations_by_activity[ participation_type[0]] += participation_type[3] if participation_type[1] not in participations_by_course[ participation_type[0]]: participations_by_course[participation_type[0]][ participation_type[1]] = participation_type[3] else: participations_by_course[participation_type[0]][ participation_type[1]] += participation_type[3] if participation_type[2] not in participations_by_year[ participation_type[0]]: participations_by_year[participation_type[0]][ participation_type[2]] = participation_type[3] else: participations_by_year[participation_type[0]][ participation_type[2]] += participation_type[3] if participation_type[1] not in total_participations_by_course: total_participations_by_course[ participation_type[1]] = participation_type[3] else: total_participations_by_course[ participation_type[1]] += participation_type[3] if participation_type[2] not in total_participations_by_year: total_participations_by_year[ participation_type[2]] = participation_type[3] else: total_participations_by_year[ participation_type[2]] += participation_type[3] interactions_by_course["Total"] = total_interactions_by_course interactions_by_year["Total"] = total_interactions_by_year participations_by_course["Total"] = total_participations_by_course participations_by_year["Total"] = total_participations_by_year return render_template('companies/statistics/statistics_dashboard.html', \ participations_by_course=participations_by_course, \ participations_by_year=participations_by_year, \ interactions_by_course=interactions_by_course, \ interactions_by_year=interactions_by_year, \ total_participations_by_year=total_participations_by_year,\ total_participations=total_participations,\ total_participations_by_activity=total_participations_by_activity,\ total_participations_by_course=total_participations_by_course,\ total_interactions_by_year=total_interactions_by_year,\ total_interactions=total_interactions,\ total_interactions_by_course=total_interactions_by_course,\ total_interactions_by_activity=total_interactions_by_activity,\ activity="Total",\ company_activities=company_activities,\ interactions=interactions,\ participations=participations,\ error=None)
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)