Пример #1
0
def get_event_sessions(event_id):
    event = db_event.get_event(event_id)

    if not event:
        abort(400)

    sessions = db_session.get_full_event_sessions(event["id"])
    return sorted(sessions.values(), key=lambda x: x['title'])
Пример #2
0
def get_event_sessions(event_id):
    event = db_event.get_event(event_id)

    if not event:
        abort(400)

    sessions = db_session.get_full_event_sessions(event["id"])
    return sorted(sessions.values(), key=lambda x: x["title"])
Пример #3
0
def my_favorites_events():
    user_id = flask_session['indico_user']
    events = []
    contributions = db_contribution.get_favorites_contributions(user_id, distinct=True)
    for event_id in contributions:
        event = db_event.get_event(event_id)
        if not event in events:
            events.append(event)
    sessions = db_session.get_favorites_sessions(user_id, distinct=True)
    for event_id in sessions:
        event = db_event.get_event(event_id)
        if not event in events:
            events.append(event)
    events_in_db = db_event.get_favorites_events(user_id)
    for event in events_in_db:
        events.append(event['event'])
    events = sorted(events, key=lambda x:x['startDate'])
    events.reverse()
    return Response(json.dumps(events), mimetype='application/json')
Пример #4
0
def get_event(event_id):
    event = db_event.get_event(event_id)
    if event is None:
        if flask_session.get("indico_user", ""):
            abort(404)
        else:
            abort(Response('Not logged in'))
    if flask_session.get("indico_user", ""):
        event["favorite"] = db_event.is_favorite(event_id, flask_session["indico_user"])
    return Response(json.dumps(event), mimetype='application/json')
Пример #5
0
def add_event(event_id):
    user_id = flask_session['indico_user']
    event_logic.update_event_info(event_id)
    event = db_event.get_event(event_id)
    if db_event.get_favorites_event(user_id, event_id):
        print 'already in favorites'
    else:
        db_contribution.remove_event_contributions_from_favorites(user_id, event_id)
        db_session.remove_event_sessions_from_favorites(user_id, event_id)
        db_event.add_event_to_favorites(user_id, event)
    return ''
Пример #6
0
def get_event(event_id):
    event = db_event.get_event(event_id)
    if event is None:
        if flask_session.get("indico_user", ""):
            abort(404)
        else:
            abort(Response('Not logged in'))
    if flask_session.get("indico_user", ""):
        event["favorite"] = db_event.is_favorite(event_id,
                                                 flask_session["indico_user"])
    return Response(json.dumps(event), mimetype='application/json')
Пример #7
0
def my_favorites_events():
    user_id = flask_session['indico_user']
    events = []
    contributions = db_contribution.get_favorites_contributions(user_id,
                                                                distinct=True)
    for event_id in contributions:
        event = db_event.get_event(event_id)
        if not event in events:
            events.append(event)
    sessions = db_session.get_favorites_sessions(user_id, distinct=True)
    for event_id in sessions:
        event = db_event.get_event(event_id)
        if not event in events:
            events.append(event)
    events_in_db = db_event.get_favorites_events(user_id)
    for event in events_in_db:
        events.append(event['event'])
    events = sorted(events, key=lambda x: x['startDate'])
    events.reverse()
    return Response(json.dumps(events), mimetype='application/json')
Пример #8
0
def add_event(event_id):
    user_id = flask_session['indico_user']
    event_logic.update_event_info(event_id)
    event = db_event.get_event(event_id)
    if db_event.get_favorites_event(user_id, event_id):
        print 'already in favorites'
    else:
        db_contribution.remove_event_contributions_from_favorites(
            user_id, event_id)
        db_session.remove_event_sessions_from_favorites(user_id, event_id)
        db_event.add_event_to_favorites(user_id, event)
    return ''
Пример #9
0
def update_event_info(event_id):
    if event_id:
        event_http = api.get_event_info(event_id)
        if event_http:
            event_db = db_event.get_event(event_id)
            if not event_db:
                event_tt = api.fetch_timetable(event_id)
                db_event.store_event(event_http, event_tt)
            elif utc.localize(event_db["modificationDate"]) < dt_from_indico(event_http["modificationDate"]):
                db_event.remove_event(event_id)
                event_tt = api.fetch_timetable(event_id)
                db_event.store_event(event_http, event_tt)
Пример #10
0
def update_event_info(event_id):
    if event_id:
        event_http = api.get_event_info(event_id)
        if event_http:
            event_db = db_event.get_event(event_id)
            if not event_db:
                event_tt = api.fetch_timetable(event_id)
                db_event.store_event(event_http, event_tt)
            elif utc.localize(event_db['modificationDate']) < dt_from_indico(
                    event_http['modificationDate']):
                db_event.remove_event(event_id)
                event_tt = api.fetch_timetable(event_id)
                db_event.store_event(event_http, event_tt)
Пример #11
0
def get_future_contributions():
    events = api.get_future_events()
    for event in events:
        if not db_event.get_event(event['id']):
            # store event
            event_tt = api.fetch_timetable(event['id'])
            db_event.store_event(event, event_tt)

    now = datetime.utcnow()
    tomorrow = now + timedelta(hours=6)
    results = list(db_contribution.get_contributions(now, tomorrow, [{'hasAnyProtection': False},
                                                                     {'_fossil': 'contribSchEntryDisplay'}])) \
            + list(db_event.get_ongoing_lectures(now, tomorrow))
    return sorted(results, key=lambda x: x['startDate'])
Пример #12
0
def get_ongoing_contributions():
    events = api.get_ongoing_events()
    for event in events:
        if not db_event.get_event(event['id']):
            # store event
            event_tt = api.fetch_timetable(event['id'])
            db_event.store_event(event, event_tt)

    now = datetime.utcnow()
    tomorrow = now + timedelta(hours=6)
    results = list(db_contribution.get_contributions(now, tomorrow, [{'hasAnyProtection': False},
                                                                             {'_fossil': 'contribSchEntryDisplay'}])) \
            + list(db_event.get_ongoing_lectures(now, tomorrow))
    return sorted(results, key=lambda x: x['startDate'])
Пример #13
0
def add_history_event(event_id):
    if 'indico_user' in flask_session:
        if flask_session['indico_user']:
            user_id = flask_session['indico_user']
            now = datetime.utcnow()
            event_db = db_event.get_event(event_id)
            event_in_history = db_event.get_event_in_history(user_id, event_id)
            if event_in_history:
                db_event.update_event_to_history(event_in_history, now)
            else:
                history_events = list(db_event.get_history(user_id, order=1))
                if len(history_events) > 9:
                    oldest = history_events[0]
                    db_event.remove_event_from_history(user_id, oldest["id"])
                db_event.add_event_to_history(user_id, now, event_db, event_id)
    return Response(json.dumps({'status': 'ok'}), mimetype='application/json')
Пример #14
0
def add_history_event(event_id):
    if 'indico_user' in flask_session:
        if flask_session['indico_user']:
            user_id = flask_session['indico_user']
            now = datetime.utcnow()
            event_db = db_event.get_event(event_id)
            event_in_history = db_event.get_event_in_history(user_id, event_id)
            if event_in_history:
                db_event.update_event_to_history(event_in_history, now)
            else:
                history_events = list(db_event.get_history(user_id, order=1))
                if len(history_events) > 9:
                    oldest = history_events[0]
                    db_event.remove_event_from_history(user_id, oldest["id"])
                db_event.add_event_to_history(user_id, now, event_db, event_id)
    return Response(json.dumps({'status': 'ok'}), mimetype='application/json')
Пример #15
0
def get_future_contributions():
    events = api.get_future_events()
    for event in events:
        if not db_event.get_event(event["id"]):
            # store event
            event_tt = api.fetch_timetable(event["id"])
            db_event.store_event(event, event_tt)

    now = datetime.utcnow()
    tomorrow = now + timedelta(hours=6)
    results = list(
        db_contribution.get_contributions(
            now, tomorrow, [{"hasAnyProtection": False}, {"_fossil": "contribSchEntryDisplay"}]
        )
    ) + list(db_event.get_ongoing_lectures(now, tomorrow))
    return sorted(results, key=lambda x: x["startDate"])
Пример #16
0
def get_ongoing_contributions():
    events = api.get_ongoing_events()
    for event in events:
        if not db_event.get_event(event['id']):
            # store event
            event_tt = api.fetch_timetable(event['id'])
            db_event.store_event(event, event_tt)

    now = datetime.utcnow()
    tomorrow = now + timedelta(hours=6)
    results = list(db_contribution.get_contributions(now, tomorrow, [{'hasAnyProtection': False},
                                                                             {'_fossil': 'contribSchEntryDisplay'}])) \
            + list(db_event.get_ongoing_lectures(now, tomorrow))

    if flask_session.get("indico_user", ""):
        for contrib in results:
            contrib["favorite"] = favorites.is_contribution_favorite(
                contrib, flask_session["indico_user"])
    return sorted(results, key=lambda x: x['startDate'])
Пример #17
0
def get_ongoing_contributions():
    events = api.get_ongoing_events()
    for event in events:
        if not db_event.get_event(event["id"]):
            # store event
            event_tt = api.fetch_timetable(event["id"])
            db_event.store_event(event, event_tt)

    now = datetime.utcnow()
    tomorrow = now + timedelta(hours=6)
    results = list(
        db_contribution.get_contributions(
            now, tomorrow, [{"hasAnyProtection": False}, {"_fossil": "contribSchEntryDisplay"}]
        )
    ) + list(db_event.get_ongoing_lectures(now, tomorrow))

    if flask_session.get("indico_user", ""):
        for contrib in results:
            contrib["favorite"] = favorites.is_contribution_favorite(contrib, flask_session["indico_user"])
    return sorted(results, key=lambda x: x["startDate"])
Пример #18
0
def get_event(event_id):
    event = db_event.get_event(event_id)
    if event == None:
        abort(404)
    return Response(json.dumps(event), mimetype='application/json')
Пример #19
0
def get_event_speaker(event_id, speaker_id):
    result = db_event.get_event_speaker(event_id, speaker_id)
    event = db_event.get_event(event_id)
    result["event"] = event
    return Response(json.dumps(result), mimetype='application/json')
Пример #20
0
def get_event_speaker(event_id, speaker_id):
    result = db_event.get_event_speaker(event_id, speaker_id)
    event = db_event.get_event(event_id)
    result["event"] = event
    return Response(json.dumps(result), mimetype='application/json')