Esempio n. 1
0
    def _process(self):
        defaults = FormDefaults(get_default_values(MenuEntry))
        entry_type = request.args['type']

        if entry_type == MenuEntryType.separator.name:
            entry = MenuEntry(event=self.event, type=MenuEntryType.separator)
            db.session.add(entry)
            db.session.flush()
            return jsonify_data(flash=False, entry=_render_menu_entry(entry))

        elif entry_type == MenuEntryType.user_link.name:
            form_cls = MenuLinkForm
        elif entry_type == MenuEntryType.page.name:
            form_cls = MenuPageForm
        else:
            raise BadRequest

        form = form_cls(obj=defaults)
        if form.validate_on_submit():
            entry = MenuEntry(event=self.event, type=MenuEntryType[entry_type])
            form.populate_obj(entry, skip={'html'})

            if entry.is_page:
                page = EventPage(html=form.html.data)
                self.event.custom_pages.append(page)
                entry.page = page

            db.session.add(entry)
            db.session.flush()
            return jsonify_data(entry=_render_menu_entry(entry))
        return jsonify_form(form)
Esempio n. 2
0
 def _process(self):
     form = ReferenceTypeForm()
     if form.validate_on_submit():
         reference_type = create_reference_type(form.data)
         flash(_("External ID type '{}' created successfully").format(reference_type.name), 'success')
         return jsonify_data(html=_render_reference_type_list())
     return jsonify_form(form)
Esempio n. 3
0
    def _process(self):
        defaults = FormDefaults(
            content_review_questions=self.event.cfp.content_review_questions,
            layout_review_questions=self.event.cfp.layout_review_questions,
            **paper_reviewing_settings.get_all(self.event))
        form = PaperReviewingSettingsForm(event=self.event, obj=defaults)
        if form.validate_on_submit():
            data = form.data
            content_review_questions = data.pop('content_review_questions',
                                                None)
            layout_review_questions = data.pop('layout_review_questions', None)
            if content_review_questions is None:
                content_review_questions = self.event.cfp.content_review_questions
            if layout_review_questions is None:
                layout_review_questions = self.event.cfp.layout_review_questions
            self.event.paper_review_questions = content_review_questions + layout_review_questions

            email_settings = data.pop('email_settings')
            data.update(email_settings)

            paper_reviewing_settings.set_multi(self.event, data)
            flash(_("The reviewing settings were saved successfully"),
                  'success')
            logger.info("Paper reviewing settings of %r updated by %r",
                        self.event, session.user)
            return jsonify_data()
        self.commit = False
        return jsonify_form(form)
Esempio n. 4
0
 def _process(self):
     form = ReferenceTypeForm(obj=FormDefaults(self.reference_type), reference_type=self.reference_type)
     if form.validate_on_submit():
         update_reference_type(self.reference_type, form.data)
         flash(_("External ID type '{}' successfully updated").format(self.reference_type.name), 'success')
         return jsonify_data(html=_render_reference_type_list())
     return jsonify_form(form)
Esempio n. 5
0
 def _process(self):
     form = AdminUserSettingsForm(obj=FormDefaults(
         **user_management_settings.get_all()))
     if form.validate_on_submit():
         user_management_settings.set_multi(form.data)
         return jsonify_data(flash=False)
     return jsonify_form(form)
Esempio n. 6
0
 def _process(self):
     form = TrackForm(obj=self.track)
     if form.validate_on_submit():
         update_track(self.track, form.data)
         flash(_('Track "{}" has been modified.').format(self.track.title), 'success')
         return jsonify_data(html=_render_track_list(self.event))
     return jsonify_form(form)
 def _process(self):
     form = EventPersonForm(obj=FormDefaults(self.person, skip_attrs={'title'}, title=self.person._title))
     if form.validate_on_submit():
         update_person(self.person, form.data)
         person_data = self.get_persons()[self.person.email or self.person.id]
         tpl = get_template_module('events/persons/management/_person_list_row.html')
         return jsonify_data(html=tpl.render_person_row(person_data))
     return jsonify_form(form)
Esempio n. 8
0
 def _process(self):
     form = TrackForm()
     if form.validate_on_submit():
         track = create_track(self.event, form.data)
         flash(_('Track "{}" has been created.').format(track.title), 'success')
         return jsonify_data(html=_render_track_list(self.event), new_track_id=track.id,
                             tracks=[{'id': t.id, 'title': t.title} for t in self.event.tracks])
     return jsonify_form(form)
Esempio n. 9
0
 def _process(self):
     form = NewsSettingsForm(obj=FormDefaults(**news_settings.get_all()))
     if form.validate_on_submit():
         news_settings.set_multi(form.data)
         get_recent_news.clear_cached()
         flash(_('Settings have been saved'), 'success')
         return jsonify_data()
     return jsonify_form(form)
Esempio n. 10
0
 def _process(self):
     form = IPNetworkGroupForm(obj=self.network_group)
     if form.validate_on_submit():
         form.populate_obj(self.network_group)
         logger.info('Network group %s edited by %s', self.network_group,
                     session.user)
         return jsonify_data(flash=False)
     return jsonify_form(form)
Esempio n. 11
0
 def _process(self):
     form = BOASettingsForm(obj=FormDefaults(
         **boa_settings.get_all(self.event)))
     if form.validate_on_submit():
         boa_settings.set_multi(self.event, form.data)
         clear_boa_cache(self.event)
         flash(_('Book of Abstract settings have been saved'), 'success')
         return jsonify_data()
     return jsonify_form(form)
 def _process(self):
     current_event_settings = payment_event_settings.get_all(self.event)
     defaults = FormDefaults(current_event_settings,
                             **payment_settings.get_all())
     form = EventSettingsForm(prefix='payment-', obj=defaults)
     if form.validate_on_submit():
         payment_event_settings.set_multi(self.event, form.data)
         flash(_('Settings saved'), 'success')
         return jsonify_data()
     return jsonify_form(form)
 def _process(self):
     form = ReportErrorForm(
         email=(session.user.email if session.user else ''))
     if form.validate_on_submit():
         self._send_email(form.email.data, form.comment.data)
         if config.SENTRY_DSN and self.error_data[
                 'sentry_event_id'] is not None:
             self._send_sentry(form.email.data, form.comment.data)
         return jsonify_data(flash=False)
     return jsonify_form(form)
Esempio n. 14
0
 def _process(self):
     description_settings = abstracts_settings.get(self.event,
                                                   'description_settings')
     form = AbstractContentSettingsForm(
         obj=FormDefaults(description_settings))
     if form.validate_on_submit():
         abstracts_settings.set(self.event, 'description_settings',
                                form.data)
         return jsonify_data(flash=False)
     return jsonify_form(form)
Esempio n. 15
0
 def _process(self):
     form = PaperTemplateForm()
     if form.validate_on_submit():
         template = create_paper_template(self.event, form.data)
         flash(
             _('Paper template "{}" added.').format(template.name),
             'success')
         return _render_teplate_list(self.event)
     return jsonify_form(
         form, form_header_kwargs={'action': request.relative_url})
Esempio n. 16
0
 def _process(self):
     form = CreateCategoryForm()
     if form.validate_on_submit():
         new_category = create_category(self.category, form.data)
         flash(
             _('Category "{}" has been created.').format(
                 new_category.title), 'success')
         return jsonify_data(flash=False,
                             redirect=url_for('.manage_settings',
                                              new_category))
     return jsonify_form(form)
Esempio n. 17
0
 def _process(self):
     settings = track_settings.get_all(self.event)
     form = ProgramForm(obj=FormDefaults(**settings))
     if form.validate_on_submit():
         update_program(self.event, form.data)
         flash(_("The program has been updated."))
         return jsonify_data()
     elif not form.is_submitted():
         handle_legacy_description(form.program, settings, get_render_mode=itemgetter('program_render_mode'),
                                   get_value=itemgetter('program'))
     return jsonify_form(form)
Esempio n. 18
0
 def _process(self):
     form = ContributionTypeForm(event=self.event, obj=self.contrib_type)
     if form.validate_on_submit():
         old_name = self.contrib_type.name
         form.populate_obj(self.contrib_type)
         db.session.flush()
         self.event.log(EventLogRealm.management, EventLogKind.change,
                        'Contributions',
                        'Updated type: {}'.format(old_name), session.user)
         return contribution_type_row(self.contrib_type)
     return jsonify_form(form)
Esempio n. 19
0
 def _process(self):
     inherited_location = self.event.location_data
     inherited_location['inheriting'] = True
     form = SessionForm(obj=FormDefaults(colors=get_random_color(
         self.event),
                                         location_data=inherited_location),
                        event=self.event)
     if form.validate_on_submit():
         new_session = create_session(self.event, form.data)
         return self._get_response(new_session)
     return jsonify_form(form)
 def _process(self):
     form = AddTemplateForm()
     if self.always_clonable:
         del form.is_clonable
     if form.validate_on_submit():
         is_clonable = form.is_clonable.data if form.is_clonable else True
         new_template = DesignerTemplate(title=form.title.data, type=form.type.data, is_clonable=is_clonable,
                                         **self.target_dict)
         flash(_("Added new template '{}'").format(new_template.title), 'success')
         return jsonify_data(html=_render_template_list(self.target, event=self.event_or_none))
     return jsonify_form(form, disabled_until_change=False)
Esempio n. 21
0
 def _process(self):
     form = IPNetworkGroupForm()
     if form.validate_on_submit():
         network_group = IPNetworkGroup()
         form.populate_obj(network_group)
         db.session.add(network_group)
         db.session.flush()
         logger.info('Network group %s created by %s', network_group,
                     session.user)
         return jsonify_data(flash=False)
     return jsonify_form(form)
Esempio n. 22
0
 def _process(self):
     self.commit = False
     form = PosterPrintingForm(self.event, template=self.template_id)
     if form.validate_on_submit():
         data = dict(form.data)
         template_id = data.pop('template')
         key = unicode(uuid.uuid4())
         poster_cache.set(key, data, time=1800)
         download_url = url_for('.print_poster', self.event, template_id=template_id, uuid=key)
         return jsonify_data(flash=False, redirect=download_url, redirect_no_loading=True)
     return jsonify_form(form, disabled_until_change=False, back=_('Cancel'), submit=_('Download PDF'))
Esempio n. 23
0
 def _process(self):
     form = PaperTemplateForm(template=self.template,
                              obj=FormDefaults(self.template,
                                               template=self.template))
     if form.validate_on_submit():
         old_name = self.template.name
         update_paper_template(self.template, form.data)
         flash(
             _('Paper template "{}" updated.').format(old_name), 'success')
         return _render_teplate_list(self.event)
     return jsonify_form(
         form, form_header_kwargs={'action': request.relative_url})
Esempio n. 24
0
 def _process(self):
     form = ContributionDurationForm(obj=FormDefaults(self.contrib),
                                     contrib=self.contrib)
     if form.validate_on_submit():
         with track_time_changes():
             update_contribution(self.contrib,
                                 {'duration': form.duration.data})
         return jsonify_data(
             new_value=format_human_timedelta(self.contrib.duration))
     return jsonify_form(form,
                         back_button=False,
                         disabled_until_change=True)
Esempio n. 25
0
 def _process(self):
     form = AbstractsScheduleForm(obj=FormDefaults(**abstracts_settings.get_all(self.event)),
                                  event=self.event)
     if form.validate_on_submit():
         rescheduled = self.event.cfa.start_dt is not None
         schedule_cfa(self.event, **form.data)
         if rescheduled:
             flash(_("Call for abstracts has been rescheduled"), 'success')
         else:
             flash(_("Call for abstracts has been scheduled"), 'success')
         return jsonify_data(flash=False)
     return jsonify_form(form)
Esempio n. 26
0
 def _process(self):
     form = ContributionStartDateForm(
         obj=FormDefaults(start_dt=self.contrib.start_dt),
         contrib=self.contrib)
     if form.validate_on_submit():
         with track_time_changes():
             update_timetable_entry(self.contrib.timetable_entry,
                                    {'start_dt': form.start_dt.data})
         return jsonify_data(
             new_value=format_datetime(self.contrib.start_dt, 'short'))
     return jsonify_form(form,
                         back_button=False,
                         disabled_until_change=True)
Esempio n. 27
0
 def _process(self):
     form = ContributionTypeForm(event=self.event)
     if form.validate_on_submit():
         contrib_type = ContributionType()
         form.populate_obj(contrib_type)
         self.event.contribution_types.append(contrib_type)
         db.session.flush()
         self.event.log(EventLogRealm.management, EventLogKind.positive,
                        'Contributions',
                        'Added type: {}'.format(contrib_type.name),
                        session.user)
         return contribution_type_row(contrib_type)
     return jsonify_form(form)
Esempio n. 28
0
 def _process(self):
     form = NewsForm(obj=self.item)
     if form.validate_on_submit():
         old_title = self.item.title
         form.populate_obj(self.item)
         db.session.flush()
         get_recent_news.clear_cached()
         logger.info('News %r modified by %s', self.item, session.user)
         flash(
             _("News '{title}' has been updated").format(title=old_title),
             'success')
         return jsonify_data(flash=False)
     return jsonify_form(form)
Esempio n. 29
0
 def _process(self):
     form = PapersScheduleForm(
         obj=FormDefaults(**paper_reviewing_settings.get_all(self.event)),
         event=self.event)
     if form.validate_on_submit():
         rescheduled = self.event.cfp.start_dt is not None
         schedule_cfp(self.event, **form.data)
         if rescheduled:
             flash(_("Call for papers has been rescheduled"), 'success')
         else:
             flash(_("Call for papers has been scheduled"), 'success')
         return jsonify_data(html=_render_paper_dashboard(self.event))
     return jsonify_form(form)
Esempio n. 30
0
 def _process(self):
     settings = abstracts_settings.get_all(self.event)
     form = AbstractSubmissionSettingsForm(event=self.event,
                                           obj=FormDefaults(**settings))
     if form.validate_on_submit():
         abstracts_settings.set_multi(self.event, form.data)
         flash(_('Abstract submission settings have been saved'), 'success')
         return jsonify_data()
     elif not form.is_submitted():
         handle_legacy_description(form.announcement, settings,
                                   get_render_mode=itemgetter('announcement_render_mode'),
                                   get_value=itemgetter('announcement'))
     return jsonify_form(form)