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
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
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
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
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
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
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
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
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
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
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
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
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
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