예제 #1
0
def get_contribution(event_id, contrib_id):
    contribution = db.Contribution.find_one({
        'conferenceId': event_id,
        'contributionId': contrib_id
    })
    contribution["event"] = db.dereference(contribution["event"])
    if contribution['slot']:
        contribution['slot'] = db.dereference(contribution['slot'])
    return contribution
예제 #2
0
def get_contributions(start_date, end_date, extra_args=[]):
    results = []
    query = [{
        "$or": [{
            "$and": [{
                'startDate': {
                    '$gte': start_date
                }
            }, {
                'startDate': {
                    '$lt': end_date
                }
            }]
        }, {
            "$and": [{
                'endDate': {
                    '$gte': start_date
                }
            }, {
                'endDate': {
                    '$lt': end_date
                }
            }]
        }]
    }]
    query.extend(extra_args)
    contributions = db.Contribution.find({
        '$and': query
    }).sort([('startDate', 1)])
    for contribution in contributions:
        if contribution['slot']:
            contribution['slot'] = db.dereference(contribution['slot'])
        results.append(contribution)
    return results
예제 #3
0
def get_favorites_event_contributions(user_id, event_id, include_slots = False):
    contributions = db.FavoritesContribution.find({'user_id': user_id, 'contribution.conferenceId': event_id})
    results = []
    for contribution in contributions:
        if include_slots and contribution['slot']:
            contribution['slot'] = db.dereference(contribution['slot'])
        results.append(contribution)
    return results
예제 #4
0
def get_speaker_contributions(event_id, speaker):
    contributions = []
    contribs = db.Contribution.find({'$and': [{'presenters': {'$elemMatch': speaker}},
                                    {'conferenceId': event_id}]}).sort([('startDate', 1)])
    for contrib in contribs:
        if contrib['slot']:
            contrib['slot'] = db.dereference(contrib['slot'])
        contributions.append(contrib)
    return contributions
예제 #5
0
def get_event_same_sessions(event_id, session_id):
    slots = list(
        db.SessionSlot.find({
            'conferenceId': event_id,
            'sessionId': session_id
        }).sort([('startDate', 1)]))
    for slot in slots:
        slot["event"] = db.dereference(slot["event"])
    return slots
예제 #6
0
def get_contributions(start_date, end_date, extra_args = []):
    results = []
    query = [{'startDate': {'$gte': start_date}},
              {'startDate': {'$lt': end_date}}]
    query.extend(extra_args)
    contributions = db.Contribution.find({'$and': query}).sort([('startDate', 1)])
    for contribution in contributions:
        if contribution['slot']:
            contribution['slot'] = db.dereference(contribution['slot'])
        results.append(contribution)
    return results
예제 #7
0
def get_session_day_contributions(event_id, session_id, start_date, end_date):
    session = db.SessionSlot.find({'$and': [{'startDate': {'$gte': start_date}},
                                            {'startDate': {'$lt': end_date}},
                                            {'conferenceId': event_id},
                                            {'sessionId': session_id}]}).sort([('startDate', 1)])
    contributions = {}
    for slot in session:
        for contrib in slot['entries']:
            current_contrib = db.dereference(contrib)
            current_contrib['slot'] = slot
            contributions[current_contrib['contributionId']] = current_contrib
    return contributions
예제 #8
0
def get_event_session_slots(event_id, session_id, include_contribs):
    slots = list(db.SessionSlot.find({'conferenceId': event_id,
                                 'sessionId': session_id}))
    if include_contribs:
        for slot in slots:
            contribs = []
            for contrib in slot['entries']:
                current_contrib = db.dereference(contrib)
                current_contrib['slot'] = slot
                contribs.append(current_contrib)
            slot["entries"] = contribs
    return slots
예제 #9
0
def get_event_contributions(event_id, extra_args=[], include_slot=False, sort=False):
    results = []
    query = {'conferenceId': event_id}
    query.update(extra_args)
    contributions = db.Contribution.find(query)
    if sort:
        contributions = contributions.sort([('startDate', 1)])
    for contribution in contributions:
        if include_slot and contribution['slot']:
            contribution['slot'] = db.dereference(contribution['slot'])
        results.append(contribution)
    return results
예제 #10
0
def get_event_contributions(event_id,
                            extra_args=[],
                            include_slot=False,
                            sort=False):
    results = []
    query = {'conferenceId': event_id}
    query.update(extra_args)
    contributions = db.Contribution.find(query)
    if sort:
        contributions = contributions.sort([('startDate', 1)])
    for contribution in contributions:
        if include_slot and contribution['slot']:
            contribution['slot'] = db.dereference(contribution['slot'])
        results.append(contribution)
    return results
예제 #11
0
def get_event_session_slots(event_id, session_id, include_contribs):
    slots = list(
        db.SessionSlot.find({
            'conferenceId': event_id,
            'sessionId': session_id
        }))
    if include_contribs:
        for slot in slots:
            contribs = []
            for contrib in slot['entries']:
                current_contrib = db.dereference(contrib)
                current_contrib['slot'] = slot
                contribs.append(current_contrib)
            slot["entries"] = contribs
    return slots
예제 #12
0
def get_speaker_contributions(event_id, speaker):
    contributions = []
    contribs = db.Contribution.find({
        '$and': [{
            'presenters': {
                '$elemMatch': speaker
            }
        }, {
            'conferenceId': event_id
        }]
    }).sort([('startDate', 1)])
    for contrib in contribs:
        if contrib['slot']:
            contrib['slot'] = db.dereference(contrib['slot'])
        contributions.append(contrib)
    return contributions
예제 #13
0
def get_session_day_contributions(event_id, session_id, start_date, end_date):
    session = db.SessionSlot.find({
        '$and': [{
            'startDate': {
                '$gte': start_date
            }
        }, {
            'startDate': {
                '$lt': end_date
            }
        }, {
            'conferenceId': event_id
        }, {
            'sessionId': session_id
        }]
    }).sort([('startDate', 1)])
    contributions = {}
    for slot in session:
        for contrib in slot['entries']:
            current_contrib = db.dereference(contrib)
            current_contrib['slot'] = slot
            contributions[current_contrib['contributionId']] = current_contrib
    return contributions
예제 #14
0
def get_event_same_sessions(event_id, session_id):
    slots = list(db.SessionSlot.find({'conferenceId': event_id, 'sessionId': session_id}).sort([('startDate', 1)]))
    for slot in slots:
        slot["event"] = db.dereference(slot["event"])
    return slots
예제 #15
0
def get_contribution(event_id, contrib_id):
    contribution = db.Contribution.find_one({'conferenceId': event_id, 'contributionId': contrib_id})
    contribution["event"] = db.dereference(contribution["event"])
    if contribution['slot']:
        contribution['slot'] = db.dereference(contribution['slot'])
    return contribution