def trigger_after_purchase_notifications(buyer_email, event_id, event, invoice_id, order_url, resend=False): if not event and not event_id: raise Exception('event or event_id is required') if not event: event = DataGetter.get_event(event_id) admin_msg_setting = DataGetter.get_message_setting_by_action(TICKET_PURCHASED) organizers = DataGetter.get_user_event_roles_by_role_name(event.id, 'organizer') for organizer in organizers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id(organizer.user.id, event_id) if not admin_msg_setting or \ (email_notification_setting and email_notification_setting.after_ticket_purchase == 1 and admin_msg_setting.user_control_status == 1) or admin_msg_setting.user_control_status == 0: send_email_for_after_purchase_organizers(organizer.user.email, buyer_email, invoice_id, order_url, event.name, event.organizer_name) if resend: send_notif_for_resend(organizer.user, invoice_id, order_url, event.name, buyer_email) else: send_notif_for_after_purchase_organizer(organizer.user, invoice_id, order_url, event.name, buyer_email) coorganizers = DataGetter.get_user_event_roles_by_role_name(event.id, 'coorganizer') for coorganizer in coorganizers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id(coorganizer.user.id, event_id) if not admin_msg_setting or \ (email_notification_setting and email_notification_setting.after_ticket_purchase == 1 and admin_msg_setting.user_control_status == 1) or admin_msg_setting.user_control_status == 0: send_email_for_after_purchase_organizers(coorganizer.user.email, buyer_email, invoice_id, order_url, event.name, event.organizer_name) if resend: send_notif_for_resend(coorganizer.user, invoice_id, order_url, event.name, buyer_email) else: send_notif_for_after_purchase_organizer(coorganizer.user, invoice_id, order_url, event.name, buyer_email)
def toggle_email_notification_settings(user_id, value): """ Settings will be toggled to database with proper User id """ events = DataGetter.get_all_events() user = DataGetter.get_user(user_id) notification_ids = [] for event in events: if user.is_speaker_at_event(event.id) or user.is_organizer(event.id): email_notification = DataGetter.get_email_notification_settings_by_event_id(user_id, event.id) if email_notification: email_notification.next_event = value email_notification.new_paper = value email_notification.session_schedule = value email_notification.session_accept_reject = value email_notification.after_ticket_purchase = value save_to_db(email_notification, "EmailSettings Toggled") notification_ids.append(email_notification.id) else: new_email_notification_setting = EmailNotification(next_event=value, new_paper=value, session_schedule=value, session_accept_reject=value, after_ticket_purchase=value, user_id=user_id, event_id=event.id) save_to_db(new_email_notification_setting, "EmailSetting Toggled") notification_ids.append(new_email_notification_setting.id) return notification_ids
def trigger_session_state_change_notifications(session, event_id, state=None, message=None, subject=None): if not state: state = session.state link = url_for('event_sessions.session_display_view', event_id=event_id, session_id=session.id, _external=True) admin_msg_setting = DataGetter.get_message_setting_by_action( SESSION_ACCEPT_REJECT) for speaker in session.speakers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id( speaker.user_id, event_id) if not admin_msg_setting or \ (email_notification_setting and email_notification_setting.session_accept_reject == 1 and admin_msg_setting.user_control_status == 1) or admin_msg_setting.user_control_status == 0: if speaker.email: send_session_accept_reject(speaker.email, session.title, state, link, subject=subject, message=message) # Send notification if speaker.user: send_notif_session_accept_reject(speaker.user, session.title, state, link) session.state_email_sent = True from app.helpers.data import save_to_db save_to_db(session)
def toggle_email_notification_settings(user_id, value): """ Settings will be toggled to database with proper User id """ events = DataGetter.get_all_events() user = DataGetter.get_user(user_id) notification_ids = [] for event in events: if user.is_speaker_at_event(event.id) or user.is_organizer(event.id): email_notification = DataGetter.get_email_notification_settings_by_event_id(user_id, event.id) if email_notification: email_notification.next_event = value email_notification.new_paper = value email_notification.session_schedule = value email_notification.session_accept_reject = value email_notification.after_ticket_purchase = value save_to_db(email_notification, "EmailSettings Toggled") notification_ids.append(email_notification.id) else: new_email_notification_setting = EmailNotification(next_event=value, new_paper=value, session_schedule=value, session_accept_reject=value, after_ticket_purchase=value, user_id=user_id, event_id=event.id) save_to_db(new_email_notification_setting, "EmailSetting Toggled") notification_ids.append(new_email_notification_setting.id) return notification_ids
def trigger_new_session_notifications(session_id, event_id=None, event=None): if not event and not event_id: raise Exception('event or event_id is required') if not event: event = DataGetter.get_event(event_id) link = url_for('event_sessions.session_display_view', event_id=event.id, session_id=session_id, _external=True) admin_msg_setting = DataGetter.get_message_setting_by_action(NEW_SESSION) organizers = DataGetter.get_user_event_roles_by_role_name( event.id, 'organizer') for organizer in organizers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id( organizer.user.id, event_id) if not admin_msg_setting or \ (email_notification_setting and email_notification_setting.new_paper == 1 and admin_msg_setting.user_control_status == 1) or \ admin_msg_setting.user_control_status == 0: send_new_session_organizer(organizer.user.email, event.name, link) # Send notification print " notif Sending" send_notif_new_session_organizer(organizer.user, event.name, link)
def trigger_session_schedule_change_notifications(session, event_id): link = url_for('event_sessions.session_display_view', event_id=event_id, session_id=session.id, _external=True) for speaker in session.speakers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id(speaker.user_id, event_id) if email_notification_setting and email_notification_setting.session_schedule == 1: send_schedule_change(speaker.email, session.title, link) # Send notification send_notif_session_schedule(speaker.user, session.title, link)
def trigger_session_state_change_notifications(session, event_id, state=None): if not state: state = session.state link = url_for('event_sessions.session_display_view', event_id=event_id, session_id=session.id, _external=True) for speaker in session.speakers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id(speaker.user_id, event_id) if email_notification_setting and email_notification_setting.session_accept_reject == 1: send_session_accept_reject(speaker.email, session.title, state, link) # Send notification send_notif_session_accept_reject(speaker.user, session.title, state, link)
def trigger_session_schedule_change_notifications(session, event_id): link = url_for('event_sessions.session_display_view', event_id=event_id, session_id=session.id, _external=True) admin_msg_setting = DataGetter.get_message_setting_by_action(SESSION_SCHEDULE) for speaker in session.speakers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id(speaker.user_id, event_id) if not admin_msg_setting or \ (email_notification_setting and email_notification_setting.session_schedule == 1 and admin_msg_setting.user_control_status == 1) or \ admin_msg_setting.user_control_status == 0: send_schedule_change(speaker.email, session.title, link) # Send notification send_notif_session_schedule(speaker.user, session.title, link)
def trigger_session_schedule_change_notifications(session, event_id): link = url_for('event_sessions.session_display_view', event_id=event_id, session_id=session.id, _external=True) admin_msg_setting = DataGetter.get_message_setting_by_action(SESSION_SCHEDULE) for speaker in session.speakers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id(speaker.user_id, event_id) if not admin_msg_setting or \ (email_notification_setting and email_notification_setting.session_schedule == 1 and admin_msg_setting.user_control_status == 1) or \ admin_msg_setting.user_control_status == 0: send_schedule_change(speaker.email, session.title, link) # Send notification send_notif_session_schedule(speaker.user, session.title, link)
def trigger_session_state_change_notifications(session, event_id, state=None): if not state: state = session.state link = url_for('event_sessions.session_display_view', event_id=event_id, session_id=session.id, _external=True) admin_msg_setting = DataGetter.get_message_setting_by_action(SESSION_ACCEPT_REJECT) for speaker in session.speakers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id(speaker.user_id, event_id) if not admin_msg_setting or \ (email_notification_setting and email_notification_setting.session_accept_reject == 1 and admin_msg_setting.user_control_status == 1) or \ admin_msg_setting.user_control_status == 0: send_session_accept_reject(speaker.email, session.title, state, link) # Send notification send_notif_session_accept_reject(speaker.user, session.title, state, link)
def trigger_new_session_notifications(session_id, event_id=None, event=None): if not event and not event_id: raise Exception('event or event_id is required') if not event: event = DataGetter.get_event(event_id) link = url_for('event_sessions.session_display_view', event_id=event.id, session_id=session_id, _external=True) organizers = DataGetter.get_user_event_roles_by_role_name(event_id, 'organizer') for organizer in organizers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id(organizer.user.id, event_id) if email_notification_setting and email_notification_setting.new_paper == 1: send_new_session_organizer(organizer.user.email, event.name, link) # Send notification send_notif_new_session_organizer(organizer.user, event.name, link)
def trigger_new_session_notifications(session_id, event_id=None, event=None): if not event and not event_id: raise Exception('event or event_id is required') if not event: event = DataGetter.get_event(event_id) link = url_for('event_sessions.session_display_view', event_id=event.id, session_id=session_id, _external=True) admin_msg_setting = DataGetter.get_message_setting_by_action(NEW_SESSION) organizers = DataGetter.get_user_event_roles_by_role_name(event.id, 'organizer') for organizer in organizers: email_notification_setting = DataGetter.get_email_notification_settings_by_event_id(organizer.user.id, event.id) if not admin_msg_setting or \ (email_notification_setting and email_notification_setting.new_paper == 1 and admin_msg_setting.user_control_status == 1) or admin_msg_setting.user_control_status == 0: send_new_session_organizer(organizer.user.email, event.name, link) # Send notification send_notif_new_session_organizer(organizer.user, event.name, link)