def display_event_cfs(identifier, via_hash=False): 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() 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() accepted_sessions_count = get_count(DataGetter.get_sessions(event.id)) return render_template('gentelella/guest/event/cfs.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)
def display_event_cfs(identifier, via_hash=False): event = get_published_event_or_abort(identifier) placeholder_images = DataGetter.get_event_default_images() if login.current_user.is_authenticated: email = login.current_user.email user_speaker = DataGetter.get_speaker_by_email(email) existing_sessions = [] for speaker in user_speaker: current_session = [] for session in speaker.sessions: if session.event_id == event.id and not session.in_trash: if session.title: current_session.append(session) if current_session: existing_sessions.append(current_session) 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)) if not login.current_user.is_authenticated: return render_template('gentelella/guest/event/cfs.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) else: return render_template('gentelella/guest/event/cfs.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, existing_sessions=existing_sessions)
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 display_event_detail_home(identifier): 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') call_for_speakers = DataGetter.get_call_for_papers(event.id).first() accepted_sessions = DataGetter.get_sessions(event.id).all() if event.copyright: licence_details = DataGetter.get_licence_details(event.copyright.licence) else: licence_details = None speakers = [] for session in accepted_sessions: for speaker in session.speakers: if speaker not in speakers: speakers.append(speaker) '''Timezone aware current datetime object according to event timezone''' timenow_event_tz = datetime.now(pytz.timezone(event.timezone if (event.timezone and event.timezone != '') else 'UTC')) module = DataGetter.get_module() tickets = DataGetter.get_sales_open_tickets(event.id, True) '''Sponsor Levels''' sponsors = {-1: []} for sponsor in event.sponsor: if not sponsor.level: sponsors[-1].append(sponsor) elif int(sponsor.level) in sponsors.keys(): sponsors[int(sponsor.level)].append(sponsor) else: sponsors[int(sponsor.level)] = [sponsor] fees = DataGetter.get_fee_settings_by_currency(event.payment_currency) code = request.args.get("code") return render_template('gentelella/guest/event/details.html', event=event, sponsors=sponsors, placeholder_images=placeholder_images, custom_placeholder=custom_placeholder, accepted_sessions=accepted_sessions, accepted_sessions_count=len(accepted_sessions), call_for_speakers=call_for_speakers, licence_details=licence_details, speakers=speakers, module=module, timenow_event_tz=timenow_event_tz, current_timezone=get_current_timezone(), tickets=tickets if tickets else [], fees=fees, code=code)
def edit_view(event_id, step=''): event = DataGetter.get_event(event_id) custom_forms = DataGetter.get_custom_form_elements(event_id) speaker_form = json.loads(custom_forms.speaker_form) session_form = json.loads(custom_forms.session_form) call_for_speakers = DataGetter.get_call_for_papers(event_id).first() preselect = [] required = [] for session_field in session_form: if session_form[session_field]['include'] == 1: preselect.append(session_field) if session_form[session_field]['require'] == 1: required.append(session_field) for speaker_field in speaker_form: if speaker_form[speaker_field]['include'] == 1: preselect.append(speaker_field) if speaker_form[speaker_field]['require'] == 1: required.append(speaker_field) hash = get_random_hash() if CallForPaper.query.filter_by(hash=hash).all(): hash = get_random_hash() current_timezone = get_current_timezone() seed = { 'event': get_event_json(event), 'sponsors': get_sponsors_json(event_id), 'microlocations': get_microlocations_json(event_id), 'sessionTypes': get_session_types_json(event_id), 'tracks': get_tracks_json(event_id), 'callForSpeakers': call_for_speakers.serialize if call_for_speakers else None } return render_template('gentelella/users/events/wizard/wizard.html', event=event, step=step, seed=json.dumps(seed), required=required, preselect=preselect, current_date=datetime.datetime.now(), event_types=DataGetter.get_event_types(), event_licences=DataGetter.get_event_licences(), event_topics=DataGetter.get_event_topics(), event_sub_topics=DataGetter.get_event_subtopics(), timezones=DataGetter.get_all_timezones(), call_for_speakers=call_for_speakers, cfs_hash=hash, current_timezone=current_timezone, payment_countries=DataGetter.get_payment_countries(), payment_currencies=DataGetter.get_payment_currencies(), included_settings=get_module_settings(), session_types=get_session_types_json(event_id), microlocations=get_microlocations_json(event_id))
def save_call_for_speakers(data, event_id): call_for_papers = DataGetter.get_call_for_papers(event_id).first() if not call_for_papers: call_for_papers = CallForPaper(event_id=event_id) call_for_papers.announcement = data['announcement'] call_for_papers.timezone = data['timezone'] call_for_papers.privacy = data['privacy'] call_for_papers.hash = data['hash'] call_for_papers.start_date = get_event_time_field_format(data, 'start') call_for_papers.end_date = get_event_time_field_format(data, 'end') save_to_db(call_for_papers)
def create_event_copy(event_id): old_event = DataGetter.get_event(event_id) event = clone_row(old_event) event.name = "Copy of " + event.name event.identifier = get_new_event_identifier() event.state = "Draft" save_to_db(event) role = Role.query.filter_by(name=ORGANIZER).first() uer = UsersEventsRoles(login.current_user, event, role) if save_to_db(uer, "Event saved"): new_email_notification_setting = EmailNotification(next_event=1, new_paper=1, session_schedule=1, session_accept_reject=1, after_ticket_purchase=1, user_id=login.current_user.id, event_id=event.id) save_to_db(new_email_notification_setting, "EmailSetting Saved") sponsors_old = DataGetter.get_sponsors(event_id).all() tracks_old = DataGetter.get_tracks(event_id).all() microlocations_old = DataGetter.get_microlocations(event_id).all() call_for_paper_old = DataGetter.get_call_for_papers(event_id).first() social_links = DataGetter.get_social_links_by_event_id(event_id).all() custom_forms = DataGetter.get_custom_form_elements(event_id) for social_link in social_links: clone_row(social_link, event.id) for sponsor in sponsors_old: clone_row(sponsor, event.id) for track in tracks_old: clone_row(track, event.id) for microlocation in microlocations_old: clone_row(microlocation, event.id) if call_for_paper_old: clone_row(call_for_paper_old, event.id) if custom_forms: clone_row(custom_forms, event.id) return event
def display_event_coc(identifier): 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') call_for_speakers = DataGetter.get_call_for_papers(event.id).first() if not (event.code_of_conduct and event.code_of_conduct != '' and event.code_of_conduct != ' '): abort(404) accepted_sessions_count = get_count(DataGetter.get_sessions(event.id)) return render_template('gentelella/guest/event/code_of_conduct.html', event=event, placeholder_images=placeholder_images, accepted_sessions_count=accepted_sessions_count, custom_placeholder=custom_placeholder, call_for_speakers=call_for_speakers)
def display_event_sessions(identifier): 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() accepted_session_count = get_count(DataGetter.get_sessions(event.id)) tracks = DataGetter.get_tracks(event.id) return render_template('gentelella/guest/event/sessions.html', event=event, placeholder_images=placeholder_images, tracks=tracks, accepted_sessions_count=accepted_session_count, call_for_speakers=call_for_speakers, custom_placeholder=custom_placeholder)
def display_event_detail_home(identifier): 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') call_for_speakers = DataGetter.get_call_for_papers(event.id).first() accepted_sessions = DataGetter.get_sessions(event.id).all() if event.copyright: licence_details = DataGetter.get_licence_details(event.copyright.licence) else: licence_details = None speakers = [] for session in accepted_sessions: for speaker in session.speakers: if speaker not in speakers: speakers.append(speaker) '''Timezone aware current datetime object according to event timezone''' timenow_event_tz = datetime.now(pytz.timezone(event.timezone)) module = DataGetter.get_module() tickets = DataGetter.get_sales_open_tickets(event.id, True) return render_template('gentelella/guest/event/details.html', event=event, placeholder_images=placeholder_images, custom_placeholder=custom_placeholder, accepted_sessions=accepted_sessions, accepted_sessions_count=len(accepted_sessions), call_for_speakers=call_for_speakers, licence_details=licence_details, speakers=speakers, module=module, timenow_event_tz=timenow_event_tz, current_timezone=get_current_timezone(), tickets=tickets if tickets else [])
def details_view(event_id): event = DataGetter.get_event(event_id) checklist = {"": ""} if fields_not_empty(event, ['name', 'start_time', 'end_time', 'location_name', 'organizer_name', 'organizer_description']): checklist["1"] = 'success' elif fields_not_empty(event, ['name', 'start_time', 'end_time']): checklist["1"] = 'missing_some' else: checklist["1"] = 'missing_main' call_for_speakers = DataGetter.get_call_for_papers(event_id).first() if call_for_speakers: if fields_not_empty(call_for_speakers, ['announcement', 'start_date', 'end_date']): checklist["4"] = "success" elif fields_not_empty(call_for_speakers, ['start_date', 'end_date']): checklist["4"] = "missing_some" else: checklist["4"] = 'missing_main' else: checklist["4"] = "optional" sponsors = DataGetter.get_sponsors(event_id).all() if not sponsors: checklist["2"] = 'optional' else: for sponsor in sponsors: if fields_not_empty(sponsor, ['name', 'description', 'url', 'level', 'logo']): checklist["2"] = 'success' break else: checklist["2"] = 'missing_some' if event.has_session_speakers: session_types = DataGetter.get_session_types_by_event_id(event_id) tracks = DataGetter.get_tracks(event_id) microlocations = DataGetter.get_microlocations(event_id) if not session_types and not tracks and not microlocations: checklist["3"] = 'optional' elif not session_types or not tracks or not microlocations: checklist["3"] = 'missing_main' else: for session_type in session_types: if fields_not_empty(session_type, ['name', 'length']): checklist["3"] = 'success' break else: checklist["3"] = 'missing_some' for microlocation in microlocations: if fields_not_empty(microlocation, ['name']): checklist["3"] = 'success' break else: checklist["3"] = 'missing_some' for tracks in tracks: if fields_not_empty(tracks, ['name', 'color']): checklist["3"] = 'success' break else: checklist["3"] = 'missing_some' checklist["5"] = 'success' else: checklist["3"] = 'optional' checklist["4"] = 'optional' checklist["5"] = 'optional' if not current_user.can_publish_event() and not AuthManager.is_verified_user(): flash(Markup('To make your event live, please verify your email by ' 'clicking on the confirmation link that has been emailed to you.<br>' 'Did not get the email? Please <a href="/resend_email/" class="alert-link"> click here to ' 'resend the confirmation.</a>')) sessions = {'pending': get_count(DataGetter.get_sessions_by_state_and_event_id('pending', event_id)), 'accepted': get_count(DataGetter.get_sessions_by_state_and_event_id('accepted', event_id)), 'rejected': get_count(DataGetter.get_sessions_by_state_and_event_id('rejected', event_id)), 'draft': get_count(DataGetter.get_sessions_by_state_and_event_id('draft', event_id))} return render_template('gentelella/users/events/details/details.html', event=event, checklist=checklist, sessions=sessions, settings=get_settings())
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() accepted_sessions_count = get_count(DataGetter.get_sessions(event.id)) return render_template('gentelella/guest/event/cfs_new.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_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 display_event_cfs(identifier, via_hash=False): event = get_published_event_or_abort(identifier) placeholder_images = DataGetter.get_event_default_images() if login.current_user.is_authenticated: email = login.current_user.email user_speaker = DataGetter.get_speaker_by_email(email) 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)) if not login.current_user.is_authenticated: return render_template('gentelella/guest/event/cfs.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) else: return render_template('gentelella/guest/event/cfs.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, user_speaker=user_speaker)
def display_event_detail_home(identifier): 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') call_for_speakers = DataGetter.get_call_for_papers(event.id).first() accepted_sessions = DataGetter.get_sessions(event.id).all() if event.copyright: licence_details = DataGetter.get_licence_details( event.copyright.licence) else: licence_details = None speakers = [] for session in accepted_sessions: for speaker in session.speakers: if speaker not in speakers: speakers.append(speaker) '''Timezone aware current datetime object according to event timezone''' timenow_event_tz = datetime.now( pytz.timezone(event.timezone if ( event.timezone and event.timezone != '') else 'UTC')) module = DataGetter.get_module() tickets = DataGetter.get_sales_open_tickets( event.id, event.timezone if (event.timezone and event.timezone != '') else 'UTC') sorted_tickets = sorted(tickets, key=lambda x: x['ticket'].position) '''Sponsor Levels''' sponsors = {-1: []} for sponsor in event.sponsor: if not sponsor.level: sponsors[-1].append(sponsor) elif int(sponsor.level) in sponsors.keys(): sponsors[int(sponsor.level)].append(sponsor) else: sponsors[int(sponsor.level)] = [sponsor] fees = DataGetter.get_fee_settings_by_currency(event.payment_currency) code = request.args.get("code") return render_template('gentelella/guest/event/details.html', event=event, sponsors=sponsors, placeholder_images=placeholder_images, custom_placeholder=custom_placeholder, accepted_sessions=accepted_sessions, accepted_sessions_count=len(accepted_sessions), call_for_speakers=call_for_speakers, licence_details=licence_details, speakers=speakers, module=module, timenow_event_tz=timenow_event_tz, current_timezone=get_current_timezone(), tickets=sorted_tickets if sorted_tickets else [], fees=fees, code=code)
def details_view(event_id): event = DataGetter.get_event(event_id) checklist = {"": ""} if fields_not_empty(event, [ 'name', 'start_time', 'end_time', 'location_name', 'organizer_name', 'organizer_description' ]): checklist["1"] = 'success' elif fields_not_empty(event, ['name', 'start_time', 'end_time']): checklist["1"] = 'missing_some' else: checklist["1"] = 'missing_main' call_for_speakers = DataGetter.get_call_for_papers(event_id).first() if call_for_speakers: if fields_not_empty(call_for_speakers, ['announcement', 'start_date', 'end_date']): checklist["4"] = "success" elif fields_not_empty(call_for_speakers, ['start_date', 'end_date']): checklist["4"] = "missing_some" else: checklist["4"] = 'missing_main' else: checklist["4"] = "optional" sponsors = DataGetter.get_sponsors(event_id).all() if not sponsors: checklist["2"] = 'optional' else: for sponsor in sponsors: if fields_not_empty( sponsor, ['name', 'description', 'url', 'level', 'logo']): checklist["2"] = 'success' break else: checklist["2"] = 'missing_some' if event.has_session_speakers: session_types = DataGetter.get_session_types_by_event_id(event_id) tracks = DataGetter.get_tracks(event_id) microlocations = DataGetter.get_microlocations(event_id) if not session_types and not tracks and not microlocations: checklist["3"] = 'optional' elif not session_types or not tracks or not microlocations: checklist["3"] = 'missing_main' else: for session_type in session_types: if fields_not_empty(session_type, ['name', 'length']): checklist["3"] = 'success' break else: checklist["3"] = 'missing_some' for microlocation in microlocations: if fields_not_empty(microlocation, ['name']): checklist["3"] = 'success' break else: checklist["3"] = 'missing_some' for tracks in tracks: if fields_not_empty(tracks, ['name', 'color']): checklist["3"] = 'success' break else: checklist["3"] = 'missing_some' checklist["5"] = 'success' else: checklist["3"] = 'optional' checklist["4"] = 'optional' checklist["5"] = 'optional' if not current_user.can_publish_event( ) and not AuthManager.is_verified_user(): flash( Markup( 'To make your event live, please verify your email by ' 'clicking on the confirmation link that has been emailed to you.<br>' 'Did not get the email? Please <a href="/resend_email/" class="alert-link"> click here to ' 'resend the confirmation.</a>')) sessions = { 'pending': get_count( DataGetter.get_sessions_by_state_and_event_id('pending', event_id)), 'accepted': get_count( DataGetter.get_sessions_by_state_and_event_id( 'accepted', event_id)), 'rejected': get_count( DataGetter.get_sessions_by_state_and_event_id( 'rejected', event_id)), 'draft': get_count( DataGetter.get_sessions_by_state_and_event_id('draft', event_id)) } return render_template('gentelella/admin/event/details/details.html', event=event, checklist=checklist, sessions=sessions, settings=get_settings())