def create_view(event_id):
    event = DataGetter.get_event(event_id)
    if not event.has_session_speakers:
        return render_template(
            'gentelella/admin/event/info/enable_module.html',
            active_page='sessions',
            title='Sessions',
            event=event)
    if request.method == 'POST':
        DataManager.add_session_to_event(request, event_id)
        flash("The session and speaker have been saved")
        get_from = request.args.get("from")
        if get_from and get_from == 'speaker':
            return redirect(
                url_for('event_speakers.index_view', event_id=event_id))
        return redirect(url_for('.index_view', event_id=event_id))

    form_elems = DataGetter.get_custom_form_elements(event_id)
    if not form_elems:
        flash(
            "Speaker and Session forms have been incorrectly configured for this event."
            " Session creation has been disabled", "danger")
        return redirect(url_for('.index_view', event_id=event_id))
    speaker_form = json.loads(form_elems.speaker_form)
    session_form = json.loads(form_elems.session_form)
    speakers = DataGetter.get_speakers(event_id).all()

    return render_template('gentelella/admin/event/sessions/new.html',
                           speaker_form=speaker_form,
                           session_form=session_form,
                           event=event,
                           speakers=speakers)
    def process_event_cfs(self, identifier, via_hash=False):
        if request.method == 'GET':
            event = get_published_event_or_abort(identifier)
            placeholder_images = DataGetter.get_event_default_images()
            custom_placeholder = DataGetter.get_custom_placeholders()
            if not event.has_session_speakers:
                abort(404)

            call_for_speakers = DataGetter.get_call_for_papers(
                event.id).first()
            accepted_sessions = DataGetter.get_sessions(event.id)

            if not call_for_speakers or (
                    not via_hash and call_for_speakers.privacy == 'private'):
                abort(404)

            form_elems = DataGetter.get_custom_form_elements(event.id)
            speaker_form = json.loads(form_elems.speaker_form)
            session_form = json.loads(form_elems.session_form)

            now = datetime.now()
            state = "now"
            if call_for_speakers.end_date < now:
                state = "past"
            elif call_for_speakers.start_date > now:
                state = "future"
            speakers = DataGetter.get_speakers(event.id).all()
            return self.render('/gentelella/guest/event/cfs_new.html',
                               event=event,
                               accepted_sessions=accepted_sessions,
                               speaker_form=speaker_form,
                               session_form=session_form,
                               call_for_speakers=call_for_speakers,
                               placeholder_images=placeholder_images,
                               state=state,
                               speakers=speakers,
                               via_hash=via_hash,
                               custom_placeholder=custom_placeholder)

        if request.method == 'POST':
            email = request.form['email']
            event = DataGetter.get_event_by_identifier(identifier)
            if not event.has_session_speakers:
                abort(404)
            DataManager.add_session_to_event(request, event.id)
            if login.current_user.is_authenticated:
                flash("Your session proposal has been submitted", "success")
                return redirect(
                    url_for('my_sessions.display_my_sessions_view',
                            event_id=event.id))
            else:
                flash(
                    Markup(
                        "Your session proposal has been submitted. Please login/register with <strong><u>"
                        + email + "</u></strong> to manage it."), "success")
                return redirect(
                    url_for(
                        'admin.login_view',
                        next=url_for('my_sessions.display_my_sessions_view')))
def process_event_cfs(identifier, via_hash=False):
    if request.method == 'GET':
        event = get_published_event_or_abort(identifier)
        placeholder_images = DataGetter.get_event_default_images()
        if event.sub_topic:
            custom_placeholder = DataGetter.get_custom_placeholder_by_name(event.sub_topic)
        elif event.topic:
            custom_placeholder = DataGetter.get_custom_placeholder_by_name(event.topic)
        else:
            custom_placeholder = DataGetter.get_custom_placeholder_by_name('Other')
        if not event.has_session_speakers:
            abort(404)

        call_for_speakers = DataGetter.get_call_for_papers(event.id).first()

        if not call_for_speakers or (not via_hash and call_for_speakers.privacy == 'private'):
            abort(404)

        form_elems = DataGetter.get_custom_form_elements(event.id)
        speaker_form = json.loads(form_elems.speaker_form)
        session_form = json.loads(form_elems.session_form)

        now = datetime.now(pytz.timezone(event.timezone
                                                  if (event.timezone and event.timezone != '') else 'UTC'))
        start_date = pytz.timezone(event.timezone).localize(call_for_speakers.start_date)
        end_date = pytz.timezone(event.timezone).localize(call_for_speakers.end_date)
        state = "now"
        if end_date < now:
            state = "past"
        elif start_date > now:
            state = "future"
        speakers = DataGetter.get_speakers(event.id).all()
        user_speaker = DataGetter.get_speaker_by_email_event(login.current_user.email, event.id)
        accepted_sessions_count = get_count(DataGetter.get_sessions(event.id))
        return render_template('gentelella/guest/event/cfs_new_session.html',
                               event=event,
                               speaker_form=speaker_form,
                               user_speaker=user_speaker,
                               accepted_sessions_count=accepted_sessions_count,
                               session_form=session_form,
                               call_for_speakers=call_for_speakers,
                               placeholder_images=placeholder_images,
                               state=state,
                               speakers=speakers,
                               via_hash=via_hash,
                               custom_placeholder=custom_placeholder,
                               from_path="cfs")

    if request.method == 'POST':
        event = DataGetter.get_event_by_identifier(identifier)
        if not event.has_session_speakers:
            abort(404)
        if login.current_user.is_authenticated:
            DataManager.add_session_to_event(request, event.id, no_name=True)
            flash("Your session proposal has been submitted", "success")
            return redirect(url_for('my_sessions.display_my_sessions_view', event_id=event.id))

        return redirect(url_for('admin.login_view', next=url_for('my_sessions.display_my_sessions_view')))
def process_event_cfs(identifier, via_hash=False):
    if request.method == 'GET':
        event = get_published_event_or_abort(identifier)
        placeholder_images = DataGetter.get_event_default_images()
        if event.sub_topic:
            custom_placeholder = DataGetter.get_custom_placeholder_by_name(event.sub_topic)
        elif event.topic:
            custom_placeholder = DataGetter.get_custom_placeholder_by_name(event.topic)
        else:
            custom_placeholder = DataGetter.get_custom_placeholder_by_name('Other')
        if not event.has_session_speakers:
            abort(404)

        call_for_speakers = DataGetter.get_call_for_papers(event.id).first()

        if not call_for_speakers or (not via_hash and call_for_speakers.privacy == 'private'):
            abort(404)

        form_elems = DataGetter.get_custom_form_elements(event.id)
        speaker_form = json.loads(form_elems.speaker_form)
        session_form = json.loads(form_elems.session_form)

        now = datetime.now(pytz.timezone(event.timezone
                                                  if (event.timezone and event.timezone != '') else 'UTC'))
        start_date = pytz.timezone(event.timezone).localize(call_for_speakers.start_date)
        end_date = pytz.timezone(event.timezone).localize(call_for_speakers.end_date)
        state = "now"
        if end_date < now:
            state = "past"
        elif start_date > now:
            state = "future"
        speakers = DataGetter.get_speakers(event.id).all()
        user_speaker = DataGetter.get_speaker_by_email_event(login.current_user.email, event.id)
        accepted_sessions_count = get_count(DataGetter.get_sessions(event.id))
        return render_template('gentelella/guest/event/cfs_new_session.html',
                               event=event,
                               speaker_form=speaker_form,
                               user_speaker=user_speaker,
                               accepted_sessions_count=accepted_sessions_count,
                               session_form=session_form,
                               call_for_speakers=call_for_speakers,
                               placeholder_images=placeholder_images,
                               state=state,
                               speakers=speakers,
                               via_hash=via_hash,
                               custom_placeholder=custom_placeholder,
                               from_path="cfs")

    if request.method == 'POST':
        event = DataGetter.get_event_by_identifier(identifier)
        if not event.has_session_speakers:
            abort(404)
        if login.current_user.is_authenticated:
            DataManager.add_session_to_event(request, event.id, no_name=True)
            flash("Your session proposal has been submitted", "success")
            return redirect(url_for('my_sessions.display_my_sessions_view', event_id=event.id))

        return redirect(url_for('admin.login_view', next=url_for('my_sessions.display_my_sessions_view')))
def new_view(event_id, user_id, hash):
    invite = DataGetter.get_invite_by_user_id(user_id)
    event = DataGetter.get_event(event_id)
    if invite and invite.hash == hash:
        if request.method == 'POST':
            DataManager.add_session_to_event(request, event_id)
            return redirect(url_for('.index_view', event_id=event_id))
        return render_template('gentelella/admin/sessions/new.html',
                               event=event)
def process_event_cfs_speaker(identifier, via_hash=False):
    if request.method == 'GET':
        event = get_published_event_or_abort(identifier)
        placeholder_images = DataGetter.get_event_default_images()
        if event.sub_topic:
            custom_placeholder = DataGetter.get_custom_placeholder_by_name(event.sub_topic)
        elif event.topic:
            custom_placeholder = DataGetter.get_custom_placeholder_by_name(event.topic)
        else:
            custom_placeholder = DataGetter.get_custom_placeholder_by_name('Other')
        if not event.has_session_speakers:
            abort(404)

        call_for_speakers = DataGetter.get_call_for_papers(event.id).first()

        if not call_for_speakers or (not via_hash and call_for_speakers.privacy == 'private'):
            abort(404)

        form_elems = DataGetter.get_custom_form_elements(event.id)
        speaker_form = json.loads(form_elems.speaker_form)
        session_form = json.loads(form_elems.session_form)

        now = datetime.now(pytz.timezone(event.timezone
                                                  if (event.timezone and event.timezone != '') else 'UTC'))
        start_date = pytz.timezone(event.timezone).localize(call_for_speakers.start_date)
        end_date = pytz.timezone(event.timezone).localize(call_for_speakers.end_date)
        state = "now"
        if end_date < now:
            state = "past"
        elif start_date > now:
            state = "future"
        speakers = DataGetter.get_speakers(event.id).all()
        accepted_sessions_count = get_count(DataGetter.get_sessions(event.id))
        return render_template('gentelella/guest/event/cfs_new_speaker.html', event=event,
                               speaker_form=speaker_form,
                               accepted_sessions_count=accepted_sessions_count,
                               session_form=session_form, call_for_speakers=call_for_speakers,
                               placeholder_images=placeholder_images, state=state, speakers=speakers,
                               via_hash=via_hash, custom_placeholder=custom_placeholder)

    if request.method == 'POST':
        email = request.form['email']
        event = DataGetter.get_event_by_identifier(identifier)
        if not event.has_session_speakers:
            abort(404)
        DataManager.add_session_to_event(request, event.id)
        if login.current_user.is_authenticated:
            flash("You have been registered as Speaker", "success")
            return redirect(url_for('event_detail.display_event_cfs', identifier=identifier))
        else:
            flash(Markup(
                "You have been registered as Speaker. Please login/register with <strong><u>" + email + "</u></strong> to manage it."),
                "success")
            return redirect(url_for('admin.login_view', next=url_for('my_sessions.display_my_sessions_view')))
示例#7
0
 def process_event_cfs(self, identifier):
     email = request.form['email']
     event = DataGetter.get_event_by_identifier(identifier)
     if not event.has_session_speakers:
         abort(404)
     DataManager.add_session_to_event(request, event.id)
     if login.current_user.is_authenticated:
         flash("Your session proposal has been submitted", "success")
         return redirect(url_for('my_sessions.display_my_sessions_view', event_id=event.id))
     else:
         flash(Markup("Your session proposal has been submitted. Please login/register with <strong><u>" + email + "</u></strong> to manage it."), "success")
         return redirect(url_for('admin.login_view', next=url_for('my_sessions.display_my_sessions_view')))
def create_view(event_id):
    event = DataGetter.get_event(event_id)
    if not event.has_session_speakers:
        return render_template('gentelella/users/events/info/enable_module.html', active_page='sessions',
                               title='Sessions', event=event)
    if request.method == 'POST':
        DataManager.add_session_to_event(request, event_id, use_current_user=False)
        flash("The session and speaker have been saved")
        get_from = request.args.get("from")
        if get_from and get_from == 'speaker':
            return redirect(url_for('event_speakers.index_view', event_id=event_id))
        return redirect(url_for('.index_view', event_id=event_id))

    form_elems = DataGetter.get_custom_form_elements(event_id)
    if not form_elems:
        flash("Speaker and Session forms have been incorrectly configured for this event."
              " Session creation has been disabled", "danger")
        return redirect(url_for('.index_view', event_id=event_id))
    speaker_form = json.loads(form_elems.speaker_form)
    session_form = json.loads(form_elems.session_form)
    speakers = DataGetter.get_speakers(event_id).all()

    return render_template('gentelella/users/events/sessions/new.html',
                           speaker_form=speaker_form, session_form=session_form, event=event, speakers=speakers)