def update(self, event_id, service_id, data):
        data = self.validate(data, event_id, check_required=False)
        data_copy = data.copy()
        data_copy = self.fix_payload_post(event_id, data_copy)
        data = self._delete_fields(data)
        session = DataGetter.get_session(
            service_id)  # session before any updates are made
        obj = ServiceDAO.update(self,
                                event_id,
                                service_id,
                                data,
                                validate=False)  # session after update

        if 'state' in data:
            if data['state'] == 'pending' and session.state == 'draft':
                trigger_new_session_notifications(session.id,
                                                  event_id=event_id)

            if (data['state'] == 'accepted' and session.state != 'accepted') \
                or (data['state'] == 'rejected' and session.state != 'rejected') \
                or (data['state'] == 'confirmed' and session.state != 'confirmed'):
                trigger_session_state_change_notifications(obj,
                                                           event_id=event_id,
                                                           state=data['state'])

        if session.start_time != obj.start_time or session.end_time != obj.end_time:
            trigger_session_schedule_change_notifications(obj, event_id)

        for f in ['track', 'microlocation', 'speakers', 'session_type']:
            if f in data_copy:
                setattr(obj, f, data_copy[f])
        obj = save_db_model(obj, SessionModel.__name__, event_id)
        return obj
    def update(self, event_id, service_id, data):
        data = self.validate(data, event_id, check_required=False)
        data_copy = data.copy()
        data_copy = self.fix_payload_post(event_id, data_copy)
        data = self._delete_fields(data)
        session = DataGetter.get_session(service_id)  # session before any updates are made
        obj = ServiceDAO.update(self, event_id, service_id, data, validate=False)  # session after update

        if 'state' in data:
            if data['state'] == 'pending' and session.state == 'draft':
                trigger_new_session_notifications(session.id, event_id=event_id)

            if (data['state'] == 'accepted' and session.state != 'accepted') \
                or (data['state'] == 'rejected' and session.state != 'rejected') \
                or (data['state'] == 'confirmed' and session.state != 'confirmed'):
                trigger_session_state_change_notifications(obj, event_id=event_id, state=data['state'])

        if session.start_time != obj.start_time or session.end_time != obj.end_time:
            trigger_session_schedule_change_notifications(obj, event_id)

        for f in ['track', 'microlocation', 'speakers', 'session_type']:
            if f in data_copy:
                setattr(obj, f, data_copy[f])
        obj = save_db_model(obj, SessionModel.__name__, event_id)
        return obj
Пример #3
0
 def session_accept_reject(session, event_id, state, send_email=True, message=None, subject=None):
     session.state = state
     session.submission_date = datetime.now()
     session.submission_modifier = login.current_user.email
     session.state_email_sent = False
     save_to_db(session, 'Session State Updated')
     if send_email:
         trigger_session_state_change_notifications(session, event_id, message=message, subject=subject)
     flash("The session has been %s" % state)
def send_emails_session(event_id, session_id):
    session = get_session_or_throw(session_id)
    message = request.form.get('message', None) if request.form else None
    subject = request.form.get('subject', None) if request.form else None
    trigger_session_state_change_notifications(session,
                                               event_id,
                                               message=message,
                                               subject=subject)
    return redirect(url_for('.index_view', event_id=event_id))
Пример #5
0
 def session_accept_reject(session, event_id, state, send_email=True, message=None, subject=None):
     session.state = state
     session.submission_date = datetime.now()
     session.submission_modifier = login.current_user.email
     session.state_email_sent = False
     save_to_db(session, 'Session State Updated')
     if send_email:
         trigger_session_state_change_notifications(session, event_id, message=message, subject=subject)
     flash("The session has been %s" % state)
def send_emails_session(event_id, session_id):
    session = get_session_or_throw(session_id)
    trigger_session_state_change_notifications(session, event_id)
    return redirect(url_for('.index_view', event_id=event_id))
Пример #7
0
def send_emails_session(event_id, session_id):
    session = get_session_or_throw(session_id)
    trigger_session_state_change_notifications(session, event_id)
    return redirect(url_for('.index_view', event_id=event_id))
Пример #8
0
def send_emails_session(event_id, session_id):
    session = get_session_or_throw(session_id)
    message = request.form.get('message', None) if request.form else None
    subject = request.form.get('subject', None) if request.form else None
    trigger_session_state_change_notifications(session, event_id, message=message, subject=subject)
    return redirect(url_for('.index_view', event_id=event_id))