def trash_session(session_id):
    session = DataGetter.get_session(session_id)
    session.deleted_at = datetime.now()
    sessions_modified.send(current_app._get_current_object(), event_id=session.event_id)
    save_to_db(session, "Session added to Trash")
    update_version(session.event_id, False, 'sessions_ver')
    return session
Exemple #2
0
def restore_session(session_id):
    session = DataGetter.get_session(session_id)
    session.deleted_at = None
    sessions_modified.send(current_app._get_current_object(),
                           event_id=session.event_id)
    save_to_db(session, "Session restored from Trash")
    update_version(session.event_id, False, 'sessions_ver')
def withdraw_session_view(session_id):
    session = DataGetter.get_sessions_of_user_by_id(session_id)
    session.deleted_at = datetime.now()
    sessions_modified.send(current_app._get_current_object(), event_id=session.event_id)
    save_to_db(session)
    flash("The session has been withdrawn", "success")
    return redirect(url_for('.display_my_sessions_view', session_id=session_id))
def withdraw_session_view(session_id):
    session = DataGetter.get_sessions_of_user_by_id(session_id)
    session.deleted_at = datetime.now()
    sessions_modified.send(current_app._get_current_object(), event_id=session.event_id)
    save_to_db(session)
    flash("The session has been withdrawn", "success")
    return redirect(url_for('.display_my_sessions_view', session_id=session_id))
Exemple #5
0
def trash_session(session_id):
    session = DataGetter.get_session(session_id)
    session.deleted_at = datetime.now()
    sessions_modified.send(current_app._get_current_object(),
                           event_id=session.event_id)
    save_to_db(session, "Session added to Trash")
    update_version(session.event_id, False, 'sessions_ver')
    return session
 def session_accept_reject(session, event_id, state, send_email=True, message=None, subject=None):
     session.state = state
     session.submission_date = datetime.now()
     session.submission_modifier = login.current_user.email
     session.state_email_sent = False
     sessions_modified.send(current_app._get_current_object(), event_id=session.event_id)
     save_to_db(session, 'Session State Updated')
     if send_email:
         trigger_session_state_change_notifications(session, event_id, message=message, subject=subject)
     flash("The session has been %s" % state)
 def add_speaker_to_session(request, event_id, session_id, user=login.current_user):
     """
     Session will be saved to database with proper Event id
     :param session_id:
     :param user:
     :param request: view data form
     :param event_id: Session belongs to Event by event id
     """
     session = DataGetter.get_session(session_id)
     speaker = save_speaker(request, event_id, user=user)
     session.speakers.append(speaker)
     sessions_modified.send(current_app._get_current_object(), event_id=session.event_id)
     save_to_db(session, "Session updated")
     update_version(event_id, False, "speakers_ver")
     update_version(event_id, False, "sessions_ver")
Exemple #8
0
 def session_accept_reject(session,
                           event_id,
                           state,
                           send_email=True,
                           message=None,
                           subject=None):
     session.state = state
     session.submission_date = datetime.now()
     session.submission_modifier = login.current_user.email
     session.state_email_sent = False
     sessions_modified.send(current_app._get_current_object(),
                            event_id=session.event_id)
     save_to_db(session, 'Session State Updated')
     if send_email:
         trigger_session_state_change_notifications(session,
                                                    event_id,
                                                    message=message,
                                                    subject=subject)
     flash("The session has been %s" % state)
Exemple #9
0
 def add_speaker_to_session(request,
                            event_id,
                            session_id,
                            user=login.current_user):
     """
     Session will be saved to database with proper Event id
     :param session_id:
     :param user:
     :param request: view data form
     :param event_id: Session belongs to Event by event id
     """
     session = DataGetter.get_session(session_id)
     speaker = save_speaker(request, event_id, user=user)
     session.speakers.append(speaker)
     sessions_modified.send(current_app._get_current_object(),
                            event_id=session.event_id)
     save_to_db(session, "Session updated")
     update_version(event_id, False, "speakers_ver")
     update_version(event_id, False, "sessions_ver")
    def edit_session(request, session, speaker=None):
        with db.session.no_autoflush:
            form = request.form
            event_id = session.event_id

            slide_temp_url = form.get('slides_url')
            video_temp_url = form.get('video_url')
            audio_temp_url = form.get('audio_url')

            slide_file = ''
            video_file = ''
            audio_file = ''

            if slide_temp_url and slide_temp_url != session.slides and not is_external_file(slide_temp_url):
                slide_file = UploadedFile(get_path_of_temp_url(slide_temp_url), slide_temp_url.rsplit('/', 1)[1])

            if video_temp_url and video_temp_url != session.video and not is_external_file(video_temp_url):
                video_file = UploadedFile(get_path_of_temp_url(video_temp_url), video_temp_url.rsplit('/', 1)[1])

            if audio_temp_url and audio_temp_url != session.audio and not is_external_file(audio_temp_url):
                audio_file = UploadedFile(get_path_of_temp_url(audio_temp_url), audio_temp_url.rsplit('/', 1)[1])

            form_state = form.get('state', 'draft')

            if slide_file:
                slide_temp_url = upload(slide_file,
                                    UPLOAD_PATHS['sessions']['slides'].format(
                                        event_id=int(event_id), id=int(session.id)
                                    ))
            if video_file:
                video_temp_url = upload(
                    video_file,
                    UPLOAD_PATHS['sessions']['video'].format(
                        event_id=int(event_id), id=int(session.id)
                    ))
            if audio_file:
                audio_temp_url = upload(
                    audio_file,
                    UPLOAD_PATHS['sessions']['audio'].format(
                        event_id=int(event_id), id=int(session.id)
                    ))

            session.audio = audio_temp_url
            session.video = video_temp_url
            session.slides = slide_temp_url

            if form_state == 'pending' and session.state != 'pending' and \
                    session.state != 'accepted' and session.state != 'rejected' and session.state != 'confirmed':
                session.state = 'pending'
                trigger_new_session_notifications(session.id, event_id=event_id)

            session.title = form.get('title', '')
            session.subtitle = form.get('subtitle', '')
            session.long_abstract = form.get('long_abstract', '')
            session.short_abstract = form.get('short_abstract', '')
            session.level = form.get('level', '')
            session.track_id = form.get('track', None) if form.get('track', None) != "" else  None
            session.session_type_id = form.get('session_type', None) if form.get('session_type', None) != "" else None

            existing_speaker_ids = form.getlist("speakers[]")
            current_speaker_ids = []
            existing_speaker_ids_by_email = []
            sessions_modified.send(current_app._get_current_object(), event_id=session.event_id)
            save_to_db(session, 'Session Updated')

            if speaker:
                save_speaker(request, event_id=event_id, speaker=speaker)

            for existing_speaker in DataGetter.get_speaker_by_email(form.get("email")).all():
                existing_speaker_ids_by_email.append(str(existing_speaker.id))

            for current_speaker in session.speakers:
                current_speaker_ids.append(str(current_speaker.id))

            for current_speaker_id in current_speaker_ids:
                if current_speaker_id \
                     not in existing_speaker_ids and current_speaker_id not in existing_speaker_ids_by_email:
                    current_speaker = DataGetter.get_speaker(current_speaker_id)
                    session.speakers.remove(current_speaker)
                    db.session.commit()

            for existing_speaker_id in existing_speaker_ids:
                existing_speaker = DataGetter.get_speaker(existing_speaker_id)
                if existing_speaker not in session.speakers:
                    session.speakers.append(existing_speaker)
                    db.session.commit()

            record_activity('update_session', session=session, event_id=event_id)
            update_version(event_id, False, "sessions_ver")
def restore_session(session_id):
    session = DataGetter.get_session(session_id)
    session.deleted_at = None
    sessions_modified.send(current_app._get_current_object(), event_id=session.event_id)
    save_to_db(session, "Session restored from Trash")
    update_version(session.event_id, False, 'sessions_ver')
Exemple #12
0
    def edit_session(request, session, speaker=None):
        with db.session.no_autoflush:
            form = request.form
            event_id = session.event_id

            slide_temp_url = form.get('slides_url')
            video_temp_url = form.get('video_url')
            audio_temp_url = form.get('audio_url')

            slide_file = ''
            video_file = ''
            audio_file = ''

            if slide_temp_url and slide_temp_url != session.slides and not is_external_file(
                    slide_temp_url):
                slide_file = UploadedFile(get_path_of_temp_url(slide_temp_url),
                                          slide_temp_url.rsplit('/', 1)[1])

            if video_temp_url and video_temp_url != session.video and not is_external_file(
                    video_temp_url):
                video_file = UploadedFile(get_path_of_temp_url(video_temp_url),
                                          video_temp_url.rsplit('/', 1)[1])

            if audio_temp_url and audio_temp_url != session.audio and not is_external_file(
                    audio_temp_url):
                audio_file = UploadedFile(get_path_of_temp_url(audio_temp_url),
                                          audio_temp_url.rsplit('/', 1)[1])

            form_state = form.get('state', 'draft')

            if slide_file:
                slide_temp_url = upload(
                    slide_file, UPLOAD_PATHS['sessions']['slides'].format(
                        event_id=int(event_id), id=int(session.id)))
            if video_file:
                video_temp_url = upload(
                    video_file, UPLOAD_PATHS['sessions']['video'].format(
                        event_id=int(event_id), id=int(session.id)))
            if audio_file:
                audio_temp_url = upload(
                    audio_file, UPLOAD_PATHS['sessions']['audio'].format(
                        event_id=int(event_id), id=int(session.id)))

            session.audio = audio_temp_url
            session.video = video_temp_url
            session.slides = slide_temp_url

            if form_state == 'pending' and session.state != 'pending' and \
                    session.state != 'accepted' and session.state != 'rejected' and session.state != 'confirmed':
                session.state = 'pending'
                trigger_new_session_notifications(session.id,
                                                  event_id=event_id)

            session.title = form.get('title', '')
            session.subtitle = form.get('subtitle', '')
            session.long_abstract = form.get('long_abstract', '')
            session.short_abstract = form.get('short_abstract', '')
            session.level = form.get('level', '')
            session.track_id = form.get(
                'track', None) if form.get('track', None) != "" else None
            session.session_type_id = form.get(
                'session_type',
                None) if form.get('session_type', None) != "" else None

            existing_speaker_ids = form.getlist("speakers[]")
            current_speaker_ids = []
            existing_speaker_ids_by_email = []
            sessions_modified.send(current_app._get_current_object(),
                                   event_id=session.event_id)
            save_to_db(session, 'Session Updated')

            if speaker:
                save_speaker(request, event_id=event_id, speaker=speaker)

            for existing_speaker in DataGetter.get_speaker_by_email(
                    form.get("email")).all():
                existing_speaker_ids_by_email.append(str(existing_speaker.id))

            for current_speaker in session.speakers:
                current_speaker_ids.append(str(current_speaker.id))

            for current_speaker_id in current_speaker_ids:
                if current_speaker_id \
                     not in existing_speaker_ids and current_speaker_id not in existing_speaker_ids_by_email:
                    current_speaker = DataGetter.get_speaker(
                        current_speaker_id)
                    session.speakers.remove(current_speaker)
                    db.session.commit()

            for existing_speaker_id in existing_speaker_ids:
                existing_speaker = DataGetter.get_speaker(existing_speaker_id)
                if existing_speaker not in session.speakers:
                    session.speakers.append(existing_speaker)
                    db.session.commit()

            record_activity('update_session',
                            session=session,
                            event_id=event_id)
            update_version(event_id, False, "sessions_ver")