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, from_path="cfs") 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_speaker_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')))
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, from_path="cfs") 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_speaker_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')))
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 get_published_event_or_abort(identifier): event = DataGetter.get_event_by_identifier(identifier=identifier) if not event or event.state != u'Published': user = login.current_user if not login.current_user.is_authenticated or (not user.is_organizer(event.id) and not user.is_coorganizer(event.id) and not user.is_track_organizer(event.id)): abort(404) if event.in_trash: abort(404) return event