Example #1
0
 def _process(self):
     form = SessionForm(obj=self.session, event=self.event)
     if form.validate_on_submit():
         with track_location_changes():
             update_session(self.session, form.data)
         return jsonify_data(html=_render_session_list(self.event))
     return jsonify_form(form)
Example #2
0
 def _process(self):
     form = SessionProtectionForm(obj=FormDefaults(**self._get_defaults()), session=self.session,
                                  prefix='session-protection-')
     if form.validate_on_submit():
         update_permissions(self.session, form)
         update_session(self.session, {'protection_mode': form.protection_mode.data})
         return jsonify_data(flash=False, html=_render_session_list(self.event))
     return jsonify_template('events/management/protection_dialog.html', form=form)
Example #3
0
 def _process(self):
     form = SessionProtectionForm(obj=FormDefaults(**self._get_defaults()), session=self.session,
                                  prefix='session-protection-')
     if form.validate_on_submit():
         update_permissions(self.session, form)
         update_session(self.session, {'protection_mode': form.protection_mode.data})
         return jsonify_data(flash=False, html=_render_session_list(self.event))
     return jsonify_template('events/management/protection_dialog.html', form=form)
Example #4
0
 def _process(self):
     form = SessionProtectionForm(obj=FormDefaults(**self._get_defaults()), session=self.session,
                                  prefix='session-protection-')
     if form.validate_on_submit():
         update_session(self.session, {'protection_mode': form.protection_mode.data})
         if self.session.is_protected:
             update_object_principals(self.session, form.acl.data, read_access=True)
         update_object_principals(self.session, form.managers.data, full_access=True)
         update_object_principals(self.session, form.coordinators.data, role='coordinate')
         return jsonify_data(flash=False, html=_render_session_list(self.event))
     return jsonify_form(form)
Example #5
0
 def _process(self):
     form = SessionProtectionForm(obj=FormDefaults(**self._get_defaults()), session=self.session,
                                  prefix='session-protection-')
     if form.validate_on_submit():
         update_session(self.session, {'protection_mode': form.protection_mode.data})
         if self.session.is_protected:
             update_object_principals(self.session, form.acl.data, read_access=True)
         update_object_principals(self.session, form.managers.data, full_access=True)
         update_object_principals(self.session, form.coordinators.data, permission='coordinate')
         return jsonify_data(flash=False, html=_render_session_list(self.event))
     return jsonify_form(form)
Example #6
0
 def _process(self):
     form = MeetingSessionBlockForm(obj=FormDefaults(**self._get_form_defaults()), event=self.event,
                                    session_block=self.session_block)
     if form.validate_on_submit():
         session_data = {k[8:]: v for k, v in form.data.iteritems() if k in form.session_fields}
         block_data = {k[6:]: v for k, v in form.data.iteritems() if k in form.block_fields}
         update_session(self.session, session_data)
         update_session_block(self.session_block, block_data)
         return jsonify_data(flash=False)
     self.commit = False
     return jsonify_template('events/forms/session_block_form.html', form=form, block=self.session_block)
Example #7
0
 def _process(self):
     form = MeetingSessionBlockForm(obj=FormDefaults(**self._get_form_defaults()), event=self.event,
                                    session_block=self.session_block)
     if form.validate_on_submit():
         session_data = {k[8:]: v for k, v in form.data.iteritems() if k in form.session_fields}
         block_data = {k[6:]: v for k, v in form.data.iteritems() if k in form.block_fields}
         update_session(self.session, session_data)
         update_session_block(self.session_block, block_data)
         return jsonify_data(flash=False)
     self.commit = False
     return jsonify_template('events/forms/session_block_form.html', form=form, block=self.session_block)
Example #8
0
 def _process_PATCH(self):
     data = request.json
     updates = {}
     if set(data.viewkeys()) > {'colors'}:
         raise BadRequest
     if 'colors' in data:
         colors = ColorTuple(**data['colors'])
         if colors not in get_colors():
             raise BadRequest
         updates['colors'] = colors
     update_session(self.session, updates)
     return jsonify()
Example #9
0
 def _process(self):
     form = None
     parent_session_block = self.entry.parent.object if self.entry.parent else None
     if self.entry.contribution:
         contrib = self.entry.contribution
         tt_entry_dt = self.entry.start_dt.astimezone(self.event_new.tzinfo)
         form = ContributionEntryForm(obj=FormDefaults(contrib, time=tt_entry_dt.time()),
                                      event=self.event_new, contrib=contrib, to_schedule=False,
                                      day=tt_entry_dt.date(), session_block=parent_session_block)
         if form.validate_on_submit():
             with track_time_changes(auto_extend=True, user=session.user) as changes:
                 with flash_if_unregistered(self.event_new, lambda: contrib.person_links):
                     update_contribution(contrib, *get_field_values(form.data))
             notifications = get_time_changes_notifications(changes, tzinfo=self.event_new.tzinfo, entry=self.entry)
             return jsonify_data(update=serialize_entry_update(self.entry, session_=self.session),
                                 notifications=notifications)
         elif not form.is_submitted():
             handle_legacy_description(form.description, contrib)
         return jsonify_template('events/contributions/forms/contribution.html', form=form,
                                 fields=form._display_fields)
     elif self.entry.break_:
         break_ = self.entry.break_
         tt_entry_dt = self.entry.start_dt.astimezone(self.event_new.tzinfo)
         form = BreakEntryForm(obj=FormDefaults(break_, time=tt_entry_dt.time()), event=self.event_new,
                               day=tt_entry_dt.date(), session_block=parent_session_block)
         if form.validate_on_submit():
             with track_time_changes(auto_extend=True, user=session.user) as changes:
                 update_break_entry(break_, form.data)
             notifications = get_time_changes_notifications(changes, tzinfo=self.event_new.tzinfo, entry=self.entry)
             return jsonify_data(update=serialize_entry_update(self.entry, session_=self.session),
                                 notifications=notifications, flash=False)
     elif self.entry.session_block:
         if self.edit_session:
             session_ = self.entry.session_block.session
             form = SessionForm(obj=FormDefaults(session_), event=self.event_new)
             if form.validate_on_submit():
                 update_session(session_, form.data)
                 return jsonify_data(update=serialize_entry_update(self.entry, session_=self.session), flash=False)
         else:
             block = self.entry.session_block
             tt_entry_dt = self.entry.start_dt.astimezone(self.event_new.tzinfo)
             form = SessionBlockEntryForm(obj=FormDefaults(block, time=tt_entry_dt.time()),
                                          event=self.event_new, session_block=block, to_schedule=False,
                                          day=tt_entry_dt.date())
             if form.validate_on_submit():
                 with track_time_changes(auto_extend=True, user=session.user) as changes:
                     update_session_block(block, form.data)
                 notifications = get_time_changes_notifications(changes, tzinfo=self.event_new.tzinfo,
                                                                entry=self.entry)
                 return jsonify_data(update=serialize_entry_update(self.entry, session_=self.session),
                                     notifications=notifications, flash=False)
     self.commit = False
     return jsonify_form(form, fields=getattr(form, '_display_fields', None))
Example #10
0
 def _process_PATCH(self):
     data = request.json
     updates = {}
     if set(data.viewkeys()) > {'colors'}:
         raise BadRequest
     if 'colors' in data:
         colors = ColorTuple(**data['colors'])
         if colors not in get_colors():
             raise BadRequest
         updates['colors'] = colors
     update_session(self.session, updates)
     return jsonify()
Example #11
0
 def _process(self):
     form = None
     parent_session_block = self.entry.parent.object if self.entry.parent else None
     if self.entry.contribution:
         contrib = self.entry.contribution
         tt_entry_dt = self.entry.start_dt.astimezone(self.event.tzinfo)
         form = ContributionEntryForm(obj=FormDefaults(contrib, time=tt_entry_dt.time()),
                                      event=self.event, contrib=contrib, to_schedule=False,
                                      day=tt_entry_dt.date(), session_block=parent_session_block)
         if form.validate_on_submit():
             with track_time_changes(auto_extend=True, user=session.user) as changes:
                 with flash_if_unregistered(self.event, lambda: contrib.person_links):
                     update_contribution(contrib, *get_field_values(form.data))
             notifications = get_time_changes_notifications(changes, tzinfo=self.event.tzinfo, entry=self.entry)
             return jsonify_data(update=serialize_entry_update(self.entry, session_=self.session),
                                 notifications=notifications)
         elif not form.is_submitted():
             handle_legacy_description(form.description, contrib)
         return jsonify_template('events/contributions/forms/contribution.html', form=form,
                                 fields=form._display_fields)
     elif self.entry.break_:
         break_ = self.entry.break_
         tt_entry_dt = self.entry.start_dt.astimezone(self.event.tzinfo)
         form = BreakEntryForm(obj=FormDefaults(break_, time=tt_entry_dt.time()), event=self.event,
                               day=tt_entry_dt.date(), session_block=parent_session_block)
         if form.validate_on_submit():
             with track_time_changes(auto_extend=True, user=session.user) as changes:
                 update_break_entry(break_, form.data)
             notifications = get_time_changes_notifications(changes, tzinfo=self.event.tzinfo, entry=self.entry)
             return jsonify_data(update=serialize_entry_update(self.entry, session_=self.session),
                                 notifications=notifications, flash=False)
     elif self.entry.session_block:
         if self.edit_session:
             session_ = self.entry.session_block.session
             form = SessionForm(obj=FormDefaults(session_), event=self.event)
             if form.validate_on_submit():
                 update_session(session_, form.data)
                 return jsonify_data(update=serialize_entry_update(self.entry, session_=self.session), flash=False)
         else:
             block = self.entry.session_block
             tt_entry_dt = self.entry.start_dt.astimezone(self.event.tzinfo)
             form = SessionBlockEntryForm(obj=FormDefaults(block, time=tt_entry_dt.time()),
                                          event=self.event, session_block=block, to_schedule=False,
                                          day=tt_entry_dt.date())
             if form.validate_on_submit():
                 with track_time_changes(auto_extend=True, user=session.user) as changes:
                     update_session_block(block, form.data)
                 notifications = get_time_changes_notifications(changes, tzinfo=self.event.tzinfo,
                                                                entry=self.entry)
                 return jsonify_data(update=serialize_entry_update(self.entry, session_=self.session),
                                     notifications=notifications, flash=False)
     self.commit = False
     return jsonify_form(form, fields=getattr(form, '_display_fields', None))
Example #12
0
 def _process_PATCH(self):
     data = request.json
     updates = {}
     if data.viewkeys() > {"colors"}:
         raise BadRequest
     if "colors" in data:
         colors = ColorTuple(**data["colors"])
         if colors not in get_colors():
             raise BadRequest
         updates["colors"] = colors
     update_session(self.session, updates)
     return jsonify()
Example #13
0
 def _process_PATCH(self):
     data = request.json
     updates = {}
     if set(data) - {'colors', 'type_id'}:
         raise BadRequest
     if 'colors' in data:
         colors = ColorTuple(**data['colors'])
         if colors not in get_colors():
             raise BadRequest
         updates['colors'] = colors
     if 'type_id' in data:
         updates.update(self._get_session_type_updates(data['type_id']))
     update_session(self.session, updates)
     return jsonify()
Example #14
0
 def _process_PATCH(self):
     data = request.json
     updates = {}
     if set(data) - {'colors', 'type_id'}:
         raise BadRequest
     if 'colors' in data:
         colors = ColorTuple(**data['colors'])
         if colors not in get_colors():
             raise BadRequest
         updates['colors'] = colors
     if 'type_id' in data:
         updates.update(self._get_session_type_updates(data['type_id']))
     update_session(self.session, updates)
     return jsonify()
Example #15
0
 def _process(self):
     form = None
     parent_session_block = self.entry.parent.object if self.entry.parent else None
     if self.entry.contribution:
         contrib = self.entry.contribution
         tt_entry_dt = self.entry.start_dt.astimezone(self.event_new.tzinfo)
         form = ContributionEntryForm(obj=FormDefaults(
             contrib, time=tt_entry_dt.time()),
                                      event=self.event_new,
                                      contrib=contrib,
                                      to_schedule=False,
                                      day=tt_entry_dt.date(),
                                      session_block=parent_session_block)
         if form.validate_on_submit():
             with track_time_changes(auto_extend=True,
                                     user=session.user) as changes:
                 update_contribution(contrib, *_get_field_values(form.data))
             notifications = get_time_changes_notifications(
                 changes, tzinfo=self.event_new.tzinfo, entry=self.entry)
             return jsonify_data(
                 entries=[serialize_entry_update(contrib.timetable_entry)],
                 notifications=notifications,
                 flash=False)
         return jsonify_template(
             'events/contributions/forms/contribution.html',
             form=form,
             fields=form._display_fields)
     elif self.entry.break_:
         break_ = self.entry.break_
         tt_entry_dt = self.entry.start_dt.astimezone(self.event_new.tzinfo)
         form = BreakEntryForm(obj=FormDefaults(break_,
                                                time=tt_entry_dt.time()),
                               event=self.event_new,
                               day=tt_entry_dt.date(),
                               session_block=parent_session_block)
         if form.validate_on_submit():
             with track_time_changes(auto_extend=True,
                                     user=session.user) as changes:
                 update_break_entry(break_, form.data)
             notifications = get_time_changes_notifications(
                 changes, tzinfo=self.event_new.tzinfo, entry=self.entry)
             return jsonify_data(
                 entries=[serialize_entry_update(break_.timetable_entry)],
                 notifications=notifications,
                 flash=False)
     elif self.entry.session_block:
         if self.edit_session:
             session_ = self.entry.session_block.session
             form = SessionForm(obj=FormDefaults(session_),
                                event=self.event_new)
             if form.validate_on_submit():
                 update_session(session_, form.data)
                 return jsonify_data(entries=[
                     serialize_entry_update(x.timetable_entry)
                     for x in session_.blocks
                 ],
                                     flash=False)
         else:
             block = self.entry.session_block
             tt_entry_dt = self.entry.start_dt.astimezone(
                 self.event_new.tzinfo)
             form = SessionBlockEntryForm(obj=FormDefaults(
                 block, time=tt_entry_dt.time()),
                                          event=self.event_new,
                                          session_block=block,
                                          to_schedule=False,
                                          day=tt_entry_dt.date())
             if form.validate_on_submit():
                 with track_time_changes(auto_extend=True,
                                         user=session.user) as changes:
                     update_session_block(block, form.data)
                 notifications = get_time_changes_notifications(
                     changes,
                     tzinfo=self.event_new.tzinfo,
                     entry=self.entry)
                 return jsonify_data(entries=[
                     serialize_entry_update(block.timetable_entry)
                 ],
                                     notifications=notifications,
                                     flash=False)
     self.commit = False
     return jsonify_form(form,
                         fields=getattr(form, '_display_fields', None))
Example #16
0
 def _process(self):
     form = SessionForm(obj=self.session, event=self.event_new)
     if form.validate_on_submit():
         update_session(self.session, form.data)
         return jsonify_data(html=_render_session_list(self.event_new))
     return jsonify_form(form)
Example #17
0
 def _process(self):
     form = SessionForm(obj=self.session, event=self.event)
     if form.validate_on_submit():
         update_session(self.session, form.data)
         return jsonify_data(html=_render_session_list(self.event))
     return jsonify_form(form)