예제 #1
0
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)
예제 #2
0
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)