Esempio n. 1
0
def store_contribution(contribution,
                       event,
                       color=None,
                       is_poster=False,
                       slot=None):
    convert_dates(contribution)
    clean_html_tags(contribution)

    contribution.update({
        'isPoster': is_poster,
        'slot': ref(slot) if slot else None,
        'color': color
    })

    contribution.pop('id')
    contribution.pop('_type')
    contribution.pop('sessionId')
    contribution.pop('sessionSlotId')
    contribution.pop('sessionCode')
    contribution['event'] = ref(event)
    contribution['hasAnyProtection'] = event['hasAnyProtection']
    store_material(contribution)
    store_presenters(contribution)
    db_contribution = db.Contribution()
    db_contribution.update(contribution)
    return db.Contribution.find_and_modify(
        {
            'conferenceId': db_contribution["conferenceId"],
            'contributionId': db_contribution["contributionId"]
        },
        db_contribution,
        upsert=True,
        new=True)
Esempio n. 2
0
def store_event(event_http, event_tt):
    convert_dates(event_http)
    clean_html_tags(event_http)

    event_id = event_http['id']
    store_material(event_http)
    store_chairs(event_http)

    event_db = db.Event()
    event_db.update(event_http)
    event_db.pop('_type')
    event_db.pop('visibility')
    event_db.save()

    for day, day_content in event_tt.get(event_id, {}).iteritems():
        entries = []

        for _, block_content in day_content.iteritems():
            if block_content['_type'] == 'LinkedTimeSchEntry':
                entry = store_slot(block_content, event_db)
            else:
                entry = store_contribution(block_content, event_db)
            entries.append(ref(entry))
        if len(day_content.keys()) > 0:
            date = datetime.strptime(day, '%Y%M%d').strftime('%Y-%M-%d').decode('utf-8')
            day = db.Day()
            day['date'] = date
            day['conferenceId'] = event_id
            day['entries'] = entries
            day.save()
Esempio n. 3
0
def store_event(event_http, event_tt):
    convert_dates(event_http)
    clean_html_tags(event_http)

    event_id = event_http['id']
    store_material(event_http)
    store_chairs(event_http)

    event_db = db.Event()
    event_db.update(event_http)
    event_db.pop('_type')
    event_db.pop('visibility')
    saved_event = db.Event.find_and_modify({'id': event_id}, event_db, upsert=True, new=True)

    for day, day_content in event_tt.get(event_id, {}).iteritems():
        entries = []

        for _, block_content in day_content.iteritems():
            if block_content['entryType'] == 'Block':
                entry = store_slot(block_content, saved_event)
            else:
                entry = store_contribution(block_content, saved_event)
            entries.append(ref(entry))
        if len(day_content.keys()) > 0:
            date = datetime.strptime(day, '%Y%M%d').strftime('%Y-%M-%d').decode('utf-8')
            day = db.Day()
            day['date'] = date
            day['conferenceId'] = event_id
            day['entries'] = entries
            db.Day.find_and_modify({'conferenceId': event_id, 'date': date}, day, upsert=True)
Esempio n. 4
0
def store_slot(slot, event):
    convert_dates(slot)
    clean_html_tags(slot)

    is_poster = slot['isPoster']
    slot_id = slot['id']
    color = slot['color']

    slot['event'] = ref(event)
    slot.pop('conveners')
    slot.pop('_type')

    db_slot = db.SessionSlot()
    db_slot.update(slot)
    db_slot['entries'] = []

    db_slot=db.SessionSlot.find_and_modify({'conferenceId': db_slot["conferenceId"], 'id': slot_id}, db_slot, upsert=True, new=True)


    entries = []

    for _, block_content in slot.get('entries', {}).iteritems():
        if block_content['_type'] == 'ContribSchEntry':
            entries.append(ref(store_contribution(block_content, event, color, is_poster, db_slot)))
    db_slot['entries'] = entries
    if len(db_slot['entries']) > 0:
        db_slot=db.SessionSlot.find_and_modify({'conferenceId': db_slot["conferenceId"], 'id': slot_id}, db_slot, upsert=True, new=True)
        store_material(slot)
    return db_slot
Esempio n. 5
0
def store_slot(slot, event):
    convert_dates(slot)
    clean_html_tags(slot)

    session_id = slot['sessionId']
    is_poster = slot['isPoster']
    slot_id = slot['id']
    color = slot['color']

    slot['event'] = ref(event)
    slot.pop('conveners')
    slot.pop('_type')

    db_slot = db.SessionSlot()
    db_slot.update(slot)
    db_slot['entries'] = []

    db_slot.save()

    entries = []

    for contribution, block_content in slot.get('entries', {}).iteritems():
        if block_content['_type'] == 'ContribSchEntry':
            entries.append(ref(store_contribution(block_content, event, color, is_poster, db_slot)))
    db_slot['entries'] = entries
    if len(db_slot['entries']) > 0:
        db_slot.save()
        store_material(slot)
    return db_slot
Esempio n. 6
0
def store_slot(slot, event):
    convert_dates(slot)
    clean_html_tags(slot)

    is_poster = slot['isPoster']
    slot_id = slot['id']
    color = slot['color']

    slot['event'] = ref(event)
    slot.pop('conveners')
    slot.pop('_type')

    db_slot = db.SessionSlot()
    db_slot.update(slot)
    db_slot['entries'] = []

    db_slot = db.SessionSlot.find_and_modify(
        {
            'conferenceId': db_slot["conferenceId"],
            'id': slot_id
        },
        db_slot,
        upsert=True,
        new=True)

    entries = []

    for _, block_content in slot.get('entries', {}).iteritems():
        if block_content['_type'] == 'ContribSchEntry':
            entries.append(
                ref(
                    store_contribution(block_content, event, color, is_poster,
                                       db_slot)))
    db_slot['entries'] = entries
    if len(db_slot['entries']) > 0:
        db_slot = db.SessionSlot.find_and_modify(
            {
                'conferenceId': db_slot["conferenceId"],
                'id': slot_id
            },
            db_slot,
            upsert=True,
            new=True)
        store_material(slot)
    return db_slot
Esempio n. 7
0
def store_contribution(contribution, event, color=None, is_poster=False, slot=None):
    convert_dates(contribution)
    clean_html_tags(contribution)

    contribution.update({'isPoster': is_poster,
                         'slot': ref(slot) if slot else None,
                         'color': color})

    contribution.pop('id')
    contribution.pop('sessionId')
    contribution.pop('sessionSlotId')
    contribution.pop('sessionCode')
    contribution['event'] = ref(event)
    contribution['hasAnyProtection'] = event['hasAnyProtection']
    store_material(contribution)
    store_presenters(contribution)
    db_contribution = db.Contribution()
    db_contribution.update(contribution)
    return db.Contribution.find_and_modify({'conferenceId': db_contribution["conferenceId"], 'contributionId': db_contribution["contributionId"]}, db_contribution, upsert=True, new=True)
Esempio n. 8
0
def store_event(event_http, event_tt):
    convert_dates(event_http)
    clean_html_tags(event_http)

    event_id = event_http['id']
    store_material(event_http)
    store_chairs(event_http)

    event_db = db.Event()
    event_db.update(event_http)
    event_db.pop('_type')
    event_db.pop('visibility')
    saved_event = db.Event.find_and_modify({'id': event_id},
                                           event_db,
                                           upsert=True,
                                           new=True)

    for day, day_content in event_tt.get(event_id, {}).iteritems():
        entries = []

        for _, block_content in day_content.iteritems():
            if block_content['_type'] == 'LinkedTimeSchEntry':
                entry = store_slot(block_content, saved_event)
            else:
                entry = store_contribution(block_content, saved_event)
            entries.append(ref(entry))
        if len(day_content.keys()) > 0:
            date = datetime.strptime(
                day, '%Y%M%d').strftime('%Y-%M-%d').decode('utf-8')
            day = db.Day()
            day['date'] = date
            day['conferenceId'] = event_id
            day['entries'] = entries
            db.Day.find_and_modify({
                'conferenceId': event_id,
                'date': date
            },
                                   day,
                                   upsert=True)
Esempio n. 9
0
def store_contribution(contribution, event, color=None, is_poster=False, slot=None):
    convert_dates(contribution)
    clean_html_tags(contribution)

    contribution.update({
            'isPoster': is_poster,
            'slot': ref(slot) if slot else None,
            'color': color})

    contribution.pop('id')
    contribution.pop('_type')
    contribution.pop('sessionId')
    contribution.pop('sessionSlotId')
    contribution.pop('sessionCode')
    contribution['event'] = ref(event)
    contribution['hasAnyProtection'] = event['hasAnyProtection']
    store_material(contribution)
    store_presenters(contribution)
    db_contribution = db.Contribution()
    db_contribution.update(contribution)
    db_contribution.save()
    return db_contribution
Esempio n. 10
0
def store_cached_event(user_id, date, event):
    clean_html_tags(event)
    new_cached_events = db.CachedLatestEvent()
    new_cached_events.update({
        'user_id':
        user_id,
        'event_id':
        event['id'],
        'event_start_date':
        dt_from_indico(event["startDate"]),
        'timestamp':
        date,
        'event':
        event
    })
    db.CachedLatestEvent.find_and_modify(
        {
            'user_id': user_id,
            'event_id': event['id'],
            'timestamp': date
        },
        new_cached_events,
        upsert=True)
Esempio n. 11
0
def store_cached_event(user_id, type_events, date, event):
    clean_html_tags(event)
    new_cached_events = db.CachedLatestEvent()
    new_cached_events.update({'user_id': user_id, 'event_id': event['id'], "type": type_events, 'timestamp': date, 'event': event})
    new_cached_events.save()
Esempio n. 12
0
def store_cached_event(user_id, date, event):
    clean_html_tags(event)
    new_cached_events = db.CachedLatestEvent()
    new_cached_events.update({'user_id': user_id, 'event_id': event['id'], 'event_start_date': dt_from_indico(event["startDate"]), 'timestamp': date, 'event': event})
    db.CachedLatestEvent.find_and_modify({'user_id': user_id, 'event_id': event['id'], 'timestamp': date}, new_cached_events, upsert=True)