def has_order_tickets(self): """Returns True if ticket has already placed orders. Else False. """ from app.helpers.helpers import get_count count = get_count(OrderTicket.query.filter_by(ticket_id=self.id)) return bool(count > 0)
def display_event_schedule(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) tracks = DataGetter.get_tracks(event.id) accepted_sessions_count = get_count(DataGetter.get_sessions(event.id)) call_for_speakers = DataGetter.get_call_for_papers(event.id).first() if accepted_sessions_count == 0 or not event.schedule_published_on: abort(404) return render_template('gentelella/guest/event/schedule.html', event=event, placeholder_images=placeholder_images, accepted_sessions_count=accepted_sessions_count, call_for_speakers=call_for_speakers, tracks=tracks, custom_placeholder=custom_placeholder)
def get_new_identifier(): identifier = str(uuid.uuid4()) count = get_count(EventInvoice.query.filter_by(identifier=identifier)) if count == 0: return identifier else: return get_new_identifier()
def get_new_order_identifier(): identifier = str(uuid.uuid4()) count = get_count(Order.query.filter_by(identifier=identifier)) if count == 0: return identifier else: return TicketingManager.get_new_order_identifier()
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_tickets(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 event.copyright: licence_details = DataGetter.get_licence_details(event.copyright.licence) else: licence_details = None module = DataGetter.get_module() tickets = DataGetter.get_sales_open_tickets(event.id, True) accepted_sessions_count = get_count(DataGetter.get_sessions(event.id)) timenow_event_tz = datetime.now(pytz.timezone(event.timezone)) fees = DataGetter.get_fee_settings_by_currency(event.payment_currency) return render_template('gentelella/guest/event/details.html', event=event, placeholder_images=placeholder_images, custom_placeholder=custom_placeholder, accepted_sessions_count=accepted_sessions_count, licence_details=licence_details, module=module, timenow_event_tz=timenow_event_tz, current_timezone=get_current_timezone(), tickets=tickets if tickets else [], fees=fees)
def get_new_event_identifier(length=8): identifier = binascii.b2a_hex(os.urandom(length / 2)) count = get_count(Event.query.filter_by(identifier=identifier)) if count == 0: return identifier else: return get_new_event_identifier()
def has_order_tickets(self): """Returns True if ticket has already placed orders. Else False. """ from app.helpers.helpers import get_count count = get_count(OrderTicket.query.filter_by(ticket_id=self.id)) return bool(count > 0)
def get_new_event_identifier(length=8): identifier = binascii.b2a_hex(os.urandom(length / 2)) count = get_count(Event.query.filter_by(identifier=identifier)) if count == 0: return identifier else: return get_new_event_identifier()
def get_new_identifier(): identifier = str(uuid.uuid4()) count = get_count(EventInvoice.query.filter_by(identifier=identifier)) if count == 0: return identifier else: return get_new_identifier()
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 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 get_new_order_identifier(): identifier = str(uuid.uuid4()) count = get_count(Order.query.filter_by(identifier=identifier)) if count == 0: return identifier else: return TicketingManager.get_new_order_identifier()
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 index_view(self): events = DataGetter.get_all_events()[:5] number_live_events = get_count(DataGetter.get_all_live_events()) number_draft_events = get_count(DataGetter.get_all_draft_events()) number_past_events = get_count(DataGetter.get_all_past_events()) super_admins = DataGetter.get_all_super_admins() admins = DataGetter.get_all_admins() registered_users = DataGetter.get_all_registered_users() # TODO Fix function and correct this organizers = get_count(DataGetter.get_all_user_roles(ORGANIZER)) co_organizers = get_count(DataGetter.get_all_user_roles(COORGANIZER)) track_organizers = get_count( DataGetter.get_all_user_roles(TRACK_ORGANIZER)) attendees = get_count(DataGetter.get_all_user_roles(ATTENDEE)) accepted_sessions = DataGetter.get_all_accepted_sessions() rejected_sessions = DataGetter.get_all_rejected_sessions() draft_sessions = DataGetter.get_all_draft_sessions() email_times = DataGetter.get_email_by_times() commit_info = None version = None on_kubernetes = False pods_info = None if KubernetesApi.is_on_kubernetes(): on_kubernetes = True kubernetes_api = KubernetesApi() pods_info = kubernetes_api.get_pods()['items'] version = os.getenv( 'REPOSITORY', 'https://github.com/fossasia/open-event-orga-server.git') commit_info = os.getenv('BRANCH', 'development') else: version = get_latest_heroku_release() commit_info = None commit_number = None if version: commit_number = version['description'].split(' ')[1] commit_info = get_commit_info(commit_number) return self.render('/gentelella/admin/super_admin/widgets/index.html', events=events, version=version, commit_info=commit_info, on_kubernetes=on_kubernetes, pods_info=pods_info, number_live_events=number_live_events, number_draft_events=number_draft_events, number_past_events=number_past_events, super_admins=super_admins, admins=admins, registered_users=registered_users, organizers=organizers, co_organizers=co_organizers, track_organizers=track_organizers, attendees=attendees, accepted_sessions=accepted_sessions, rejected_sessions=rejected_sessions, draft_sessions=draft_sessions, email_times=email_times)
def has_order_tickets(self): """Returns True if ticket has already placed orders. Else False. """ from app.helpers.helpers import get_count orders = Order.id.in_( OrderTicket.query.with_entities(OrderTicket.order_id).filter_by(ticket_id=self.id).all() ) count = get_count( Order.query.filter(orders).filter(Order.status != 'deleted') ) # Count is zero if no completed orders are present return bool( count > 0)
def display_event_schedule_xcal(identifier): event = get_published_event_or_abort(identifier) if not event.has_session_speakers: abort(404) accepted_sessions_count = get_count(DataGetter.get_sessions(event.id)) if accepted_sessions_count == 0 or not event.schedule_published_on: abort(404) response = make_response(XCalExporter.export(event.id)) response.headers["Content-Type"] = "application/xml" return response
def display_event_schedule_xcal(identifier): event = get_published_event_or_abort(identifier) if not event.has_session_speakers: abort(404) accepted_sessions_count = get_count(DataGetter.get_sessions(event.id)) if accepted_sessions_count == 0 or not event.schedule_published_on: abort(404) response = make_response(XCalExporter.export(event.id)) response.headers["Content-Type"] = "application/xml" return response
def get_email_by_times(): email_times = [] email_in_last_24 = get_count( Mail.query.filter(datetime.datetime.now() - Mail.time <= datetime.timedelta(hours=24))) email_in_last_3_days = get_count( Mail.query.filter(datetime.datetime.now() - Mail.time <= datetime.timedelta(days=3))) email_in_last_7_days = get_count( Mail.query.filter(datetime.datetime.now() - Mail.time <= datetime.timedelta(days=7))) email_in_last_30_days = get_count( Mail.query.filter(datetime.datetime.now() - Mail.time <= datetime.timedelta(days=30))) total_emails = get_count(Mail.query) email_times.append(email_in_last_24) email_times.append(email_in_last_3_days) email_times.append(email_in_last_7_days) email_times.append(email_in_last_30_days) email_times.append(total_emails) return email_times
def get_email_by_times(): email_times = [] email_in_last_24 = get_count( Mail.query.filter(datetime.datetime.now() - Mail.time <= datetime.timedelta(hours=24))) email_in_last_3_days = get_count( Mail.query.filter(datetime.datetime.now() - Mail.time <= datetime.timedelta(days=3))) email_in_last_7_days = get_count( Mail.query.filter(datetime.datetime.now() - Mail.time <= datetime.timedelta(days=7))) email_in_last_30_days = get_count( Mail.query.filter(datetime.datetime.now() - Mail.time <= datetime.timedelta(days=30))) total_emails = get_count(Mail.query) email_times.append(email_in_last_24) email_times.append(email_in_last_3_days) email_times.append(email_in_last_7_days) email_times.append(email_in_last_30_days) email_times.append(total_emails) return email_times
def has_order_tickets(self): """Returns True if ticket has already placed orders. Else False. """ from app.helpers.helpers import get_count orders = Order.id.in_( OrderTicket.query.with_entities( OrderTicket.order_id).filter_by(ticket_id=self.id).all()) count = get_count( Order.query.filter(orders).filter(Order.status != 'deleted')) # Count is zero if no completed orders are present return bool(count > 0)
def display_event_cfs_via_hash(hash): call_for_speakers = CallForPaper.query.filter_by(hash=hash).first() if not call_for_speakers: abort(404) event = DataGetter.get_event(call_for_speakers.event_id) 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) if not call_for_speakers: abort(404) if request.method == 'POST': return process_event_cfs(event.identifier) 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.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=True, custom_placeholder=custom_placeholder)
def display_event_schedule_xcal(identifier): event = get_published_event_or_abort(identifier) file_url = event.xcal_url if not event.has_session_speakers: abort(404) accepted_sessions_count = get_count(DataGetter.get_sessions(event.id)) if accepted_sessions_count == 0 or not event.schedule_published_on: abort(404) if get_settings()['storage_place'] != "s3" and get_settings()['storage_place'] != 'gs': file_url = "file://" + app.config['BASE_DIR'] + file_url.replace("/serve_", "/") response = make_response(urlopen(file_url).read()) response.headers["Content-Type"] = "application/xml" return response
def display_event_coc(identifier): event = get_published_event_or_abort(identifier) placeholder_images = DataGetter.get_event_default_images() custom_placeholder = DataGetter.get_custom_placeholders() 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() 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_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_schedule(identifier): 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) tracks = DataGetter.get_tracks(event.id) accepted_sessions_count = get_count(DataGetter.get_sessions(event.id)) if accepted_sessions_count == 0 or not event.schedule_published_on: abort(404) return render_template('gentelella/guest/event/schedule.html', event=event, placeholder_images=placeholder_images, accepted_sessions_count=accepted_sessions_count, tracks=tracks, custom_placeholder=custom_placeholder)
def display_event_cfs_via_hash(hash): call_for_speakers = CallForPaper.query.filter_by(hash=hash).first() if not call_for_speakers: abort(404) event = DataGetter.get_event(call_for_speakers.event_id) 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) if not call_for_speakers: abort(404) if request.method == 'POST': return process_event_cfs(event.identifier) 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.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=True, custom_placeholder=custom_placeholder)
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_tickets(identifier): event = get_published_event_or_abort(identifier) placeholder_images = DataGetter.get_event_default_images() custom_placeholder = DataGetter.get_custom_placeholders() if event.copyright: licence_details = DataGetter.get_licence_details( event.copyright.licence) else: licence_details = None module = DataGetter.get_module() tickets = DataGetter.get_sales_open_tickets(event.id, True) accepted_sessions_count = get_count(DataGetter.get_sessions(event.id)) return render_template('gentelella/guest/event/details.html', event=event, placeholder_images=placeholder_images, custom_placeholder=custom_placeholder, accepted_sessions_count=accepted_sessions_count, licence_details=licence_details, module=module, tickets=tickets if tickets else [])
def index_view(self): events = DataGetter.get_all_events()[:5] number_live_events = get_count(DataGetter.get_all_live_events()) number_draft_events = get_count(DataGetter.get_all_draft_events()) number_past_events = get_count(DataGetter.get_all_past_events()) super_admins = DataGetter.get_all_super_admins() admins = DataGetter.get_all_admins() registered_users = DataGetter.get_all_registered_users() # TODO Fix function and correct this organizers = get_count(DataGetter.get_all_user_roles(ORGANIZER)) co_organizers = get_count(DataGetter.get_all_user_roles(COORGANIZER)) track_organizers = get_count( DataGetter.get_all_user_roles(TRACK_ORGANIZER)) attendees = get_count(DataGetter.get_all_user_roles(ATTENDEE)) accepted_sessions = DataGetter.get_all_accepted_sessions() rejected_sessions = DataGetter.get_all_rejected_sessions() draft_sessions = DataGetter.get_all_draft_sessions() email_times = DataGetter.get_email_by_times() version = get_latest_heroku_release() commit_number = None commit_info = None if version: commit_number = version['description'].split(' ')[1] commit_info = get_commit_info(commit_number) return self.render('/gentelella/admin/super_admin/widgets/index.html', events=events, version=version, commit_info=commit_info, number_live_events=number_live_events, number_draft_events=number_draft_events, number_past_events=number_past_events, super_admins=super_admins, admins=admins, registered_users=registered_users, organizers=organizers, co_organizers=co_organizers, track_organizers=track_organizers, attendees=attendees, accepted_sessions=accepted_sessions, rejected_sessions=rejected_sessions, draft_sessions=draft_sessions, email_times=email_times)
def index_view(self): events = DataGetter.get_all_events()[:5] number_live_events = get_count(DataGetter.get_all_live_events()) number_draft_events = get_count(DataGetter.get_all_draft_events()) number_past_events = get_count(DataGetter.get_all_past_events()) super_admins = DataGetter.get_all_super_admins() admins = DataGetter.get_all_admins() registered_users = DataGetter.get_all_registered_users() # TODO Fix function and correct this organizers = get_count(DataGetter.get_all_user_roles(ORGANIZER)) co_organizers = get_count(DataGetter.get_all_user_roles(COORGANIZER)) track_organizers = get_count(DataGetter.get_all_user_roles(TRACK_ORGANIZER)) attendees = get_count(DataGetter.get_all_user_roles(ATTENDEE)) accepted_sessions = DataGetter.get_all_accepted_sessions() rejected_sessions = DataGetter.get_all_rejected_sessions() draft_sessions = DataGetter.get_all_draft_sessions() email_times = DataGetter.get_email_by_times() version = get_latest_heroku_release() commit_number = None commit_info = None if version: commit_number = version['description'].split(' ')[1] commit_info = get_commit_info(commit_number) return self.render('/gentelella/admin/super_admin/widgets/index.html', events=events, version=version, commit_info=commit_info, number_live_events=number_live_events, number_draft_events=number_draft_events, number_past_events=number_past_events, super_admins=super_admins, admins=admins, registered_users=registered_users, organizers=organizers, co_organizers=co_organizers, track_organizers=track_organizers, attendees=attendees, accepted_sessions=accepted_sessions, rejected_sessions=rejected_sessions, draft_sessions=draft_sessions, email_times=email_times)
def get_orders_count_by_type(event_id, type='free'): return get_count(Order.query.filter_by(event_id=event_id).filter_by(status='completed') .filter(Ticket.type == type))
def get_orders_count(event_id, status='completed'): return get_count(Order.query.filter_by(event_id=event_id).filter(Order.user_id.isnot(None)) .filter_by(status=status))
def get_invoices_count(event_id, status='completed'): return get_count(EventInvoice.query.filter_by(event_id=event_id).filter_by(status=status))
def get_all_draft_sessions(): return get_count(Session.query.filter_by(state='pending'))
def get_orders_count(event_id, status='completed'): return get_count(Order.query.filter_by(event_id=event_id).filter(Order.user_id.isnot(None)) .filter_by(status=status))
def get_all_admins(): return get_count(User.query.filter_by(is_admin=True))
def get_invoices_count(event_id, status='completed'): return get_count( EventInvoice.query.filter_by(event_id=event_id).filter_by( status=status))
def get_all_unverified_users(): return get_count(User.query.filter_by(is_verified=False))
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 index_view(): events = DataGetter.get_all_events()[:5] number_live_events = get_count(DataGetter.get_all_live_events()) number_draft_events = get_count(DataGetter.get_all_draft_events()) number_past_events = get_count(DataGetter.get_all_past_events()) super_admins = DataGetter.get_all_super_admins() admins = DataGetter.get_all_admins() registered_users = DataGetter.get_all_registered_users() unverified_users = DataGetter.get_all_unverified_users() organizers = get_count(DataGetter.get_all_user_roles(ORGANIZER)) co_organizers = get_count(DataGetter.get_all_user_roles(COORGANIZER)) track_organizers = get_count(DataGetter.get_all_user_roles(TRACK_ORGANIZER)) attendees = get_count(DataGetter.get_all_user_roles(ATTENDEE)) accepted_sessions = get_count(DataGetter.get_all_accepted_sessions()) rejected_sessions = get_count(DataGetter.get_all_rejected_sessions()) draft_sessions = get_count(DataGetter.get_all_draft_sessions()) email_times = DataGetter.get_email_by_times() commit_info = None heroku_release = None on_kubernetes = False pods_info = None repository = None commit_number = None branch = None on_heroku = False if KubernetesApi.is_on_kubernetes(): on_kubernetes = True kubernetes_api = KubernetesApi() pods_info = kubernetes_api.get_pods()['items'] repository = os.getenv('REPOSITORY', 'https://github.com/fossasia/open-event-orga-server.git') branch = os.getenv('BRANCH', 'development') commit_number = os.getenv('COMMIT_HASH', 'null') if commit_number != 'null': commit_info = get_commit_info(commit_number) else: commit_number = None elif HerokuApi.is_on_heroku(): commit_info = None on_heroku = True heroku_api = HerokuApi() heroku_release = heroku_api.get_latest_release() if heroku_release: commit_number = heroku_release['description'].split(' ')[1] commit_info = get_commit_info(commit_number) return render_template('gentelella/super_admin/widgets/index.html', events=events, heroku_release=heroku_release, commit_info=commit_info, commit_number=commit_number, on_heroku=on_heroku, on_kubernetes=on_kubernetes, version=app.config['VERSION'], pods_info=pods_info, number_live_events=number_live_events, number_draft_events=number_draft_events, number_past_events=number_past_events, super_admins=super_admins, admins=admins, registered_users=registered_users, unverified_users=unverified_users, repository=repository, branch=branch, organizers=organizers, co_organizers=co_organizers, track_organizers=track_organizers, attendees=attendees, accepted_sessions=accepted_sessions, rejected_sessions=rejected_sessions, draft_sessions=draft_sessions, email_times=email_times, navigation_bar=list_navbar())
def get_all_accepted_sessions(): return get_count(Session.query.filter_by(state='accepted'))
def get_all_rejected_sessions(): return get_count(Session.query.filter_by(state='rejected'))
def get_discount_code_used_count(discount_code_id): return get_count(Event.query.filter_by(discount_code_id=discount_code_id))
def get_all_registered_users(): return get_count(User.query.filter_by(is_verified=True))
def get_all_unverified_users(): return get_count(User.query.filter_by(is_verified=False))
def does_not_exist(model, id, event_id): return get_count(model.query.filter_by(id=id, event_id=event_id)) == 0
def get_unread_notif_count(self): return get_count(Notification.query.filter_by(user=self, has_read=False))
def get_all_orders_count_by_type(type='free'): return get_count(Order.query.filter_by(status='completed').filter(Ticket.type == type))
def get_unread_notif_count(self): return get_count( Notification.query.filter_by(user=self, has_read=False))
def get_all_admins(): return get_count(User.query.filter_by(is_admin=True))
def get_all_registered_users(): return get_count(User.query.filter_by(is_verified=True))
def does_not_exist(model, id, event_id): return get_count(model.query.filter_by(id=id, event_id=event_id)) == 0
def index_view(): events = DataGetter.get_all_events()[:5] number_live_events = get_count(DataGetter.get_all_live_events()) number_draft_events = get_count(DataGetter.get_all_draft_events()) number_past_events = get_count(DataGetter.get_all_past_events()) super_admins = DataGetter.get_all_super_admins() admins = DataGetter.get_all_admins() registered_users = DataGetter.get_all_registered_users() organizers = get_count(DataGetter.get_all_user_roles(ORGANIZER)) co_organizers = get_count(DataGetter.get_all_user_roles(COORGANIZER)) track_organizers = get_count(DataGetter.get_all_user_roles(TRACK_ORGANIZER)) attendees = get_count(DataGetter.get_all_user_roles(ATTENDEE)) accepted_sessions = get_count(DataGetter.get_all_accepted_sessions()) rejected_sessions = get_count(DataGetter.get_all_rejected_sessions()) draft_sessions = get_count(DataGetter.get_all_draft_sessions()) email_times = DataGetter.get_email_by_times() commit_info = None heroku_release = None on_kubernetes = False pods_info = None repository = None commit_number = None branch = None on_heroku = False if KubernetesApi.is_on_kubernetes(): on_kubernetes = True kubernetes_api = KubernetesApi() pods_info = kubernetes_api.get_pods()['items'] repository = os.getenv('REPOSITORY', 'https://github.com/fossasia/open-event-orga-server.git') branch = os.getenv('BRANCH', 'development') commit_number = os.getenv('COMMIT_HASH', 'null') if commit_number != 'null': commit_info = get_commit_info(commit_number) else: commit_number = None elif HerokuApi.is_on_heroku(): commit_info = None on_heroku = True heroku_api = HerokuApi() heroku_release = heroku_api.get_latest_release() if heroku_release: commit_number = heroku_release['description'].split(' ')[1] commit_info = get_commit_info(commit_number) return render_template('gentelella/admin/super_admin/widgets/index.html', events=events, heroku_release=heroku_release, commit_info=commit_info, commit_number=commit_number, on_heroku=on_heroku, on_kubernetes=on_kubernetes, version=app.config['VERSION'], pods_info=pods_info, number_live_events=number_live_events, number_draft_events=number_draft_events, number_past_events=number_past_events, super_admins=super_admins, admins=admins, registered_users=registered_users, repository=repository, branch=branch, organizers=organizers, co_organizers=co_organizers, track_organizers=track_organizers, attendees=attendees, accepted_sessions=accepted_sessions, rejected_sessions=rejected_sessions, draft_sessions=draft_sessions, email_times=email_times, navigation_bar=list_navbar())