示例#1
0
 def _process_conference(self):
     form = ConferenceLayoutForm(obj=self._get_form_defaults(), event=self.event)
     css_form = CSSForm()
     logo_form = LogoForm()
     tt_theme_settings_form = _make_theme_settings_form(self.event, form.timetable_theme.data)
     tt_form_valid = tt_theme_settings_form.validate_on_submit() if tt_theme_settings_form else True
     if form.validate_on_submit() and tt_form_valid:
         if tt_theme_settings_form:
             layout_settings.set(self.event, 'timetable_theme_settings', tt_theme_settings_form.data)
         else:
             layout_settings.delete(self.event, 'timetable_theme_settings')
         data = {unicode(key): value for key, value in form.data.iteritems() if key in layout_settings.defaults}
         layout_settings.set_multi(self.event, data)
         if form.theme.data == '_custom':
             layout_settings.set(self.event, 'use_custom_css', True)
         flash(_('Settings saved'), 'success')
         return redirect(url_for('.index', self.event))
     else:
         if self.event.logo_metadata:
             logo_form.logo.data = self.event
         if self.event.has_stylesheet:
             css_form.css_file.data = self.event
     return WPLayoutEdit.render_template('layout_conference.html', self.event, form=form,
                                         logo_form=logo_form, css_form=css_form,
                                         timetable_theme_settings_form=tt_theme_settings_form)
示例#2
0
 def _process(self):
     self.event.stylesheet = None
     self.event.stylesheet_metadata = None
     layout_settings.set(self.event, 'use_custom_css', False)
     flash(_('CSS file deleted'), 'success')
     logger.info("CSS file for %s deleted by %s", self.event, session.user)
     return jsonify_data(content=None)
示例#3
0
def create_event(category, event_type, data, add_creator_as_manager=True, features=None):
    """Create a new event.

    :param category: The category in which to create the event
    :param event_type: An `EventType` value
    :param data: A dict containing data used to populate the event
    :param add_creator_as_manager: Whether the creator (current user)
                                   should be added as a manager
    :param features: A list of features that will be enabled for the
                     event. If set, only those features will be used
                     and the default feature set for the event type
                     will be ignored.
    """
    event = Event(category=category, type_=event_type)
    data.setdefault('creator', session.user)
    theme = data.pop('theme', None)
    person_link_data = data.pop('person_link_data', {})
    event.populate_from_dict(data)
    db.session.flush()
    event.person_link_data = person_link_data
    if theme is not None:
        layout_settings.set(event, 'timetable_theme', theme)
    if add_creator_as_manager:
        with event.logging_disabled:
            event.update_principal(event.creator, full_access=True)
    if features is not None:
        features_event_settings.set(event, 'enabled', features)
    db.session.flush()
    signals.event.created.send(event)
    logger.info('Event %r created in %r by %r ', event, category, session.user)
    event.log(EventLogRealm.event, EventLogKind.positive, 'Event', 'Event created', session.user)
    db.session.flush()
    return event
示例#4
0
 def _process(self):
     form = CSSSelectionForm(event=self.event)
     if form.validate_on_submit():
         layout_settings.set(self.event, 'use_custom_css', form.theme.data == '_custom')
         if form.theme.data != '_custom':
             layout_settings.set(self.event, 'theme', form.theme.data)
         flash(_('Settings saved'), 'success')
         return redirect(url_for('.index', self.event))
示例#5
0
 def _process(self):
     enabled = request.form['enabled'] == '1'
     if enabled:
         # nothing else to do here. menu items are added to the DB when retrieving the menu
         flash(_('Menu customization has been enabled.'), 'success')
     else:
         for entry in MenuEntry.query.with_parent(self.event):
             db.session.delete(entry)
         flash(_('Menu customization has been disabled.'), 'success')
     layout_settings.set(self.event, 'use_custom_menu', enabled)
     logger.info('Menu customization for %s %s by %s', self.event,
                 'enabled' if enabled else 'disabled', session.user)
     return jsonify(enabled=enabled)
示例#6
0
 def _process_lecture_meeting(self):
     form = LectureMeetingLayoutForm(obj=self._get_form_defaults(), event=self.event)
     tt_theme_settings_form = _make_theme_settings_form(self.event, form.timetable_theme.data)
     tt_form_valid = tt_theme_settings_form.validate_on_submit() if tt_theme_settings_form else True
     if form.validate_on_submit() and tt_form_valid:
         if tt_theme_settings_form:
             layout_settings.set(self.event, 'timetable_theme_settings', tt_theme_settings_form.data)
         else:
             layout_settings.delete(self.event, 'timetable_theme_settings')
         layout_settings.set_multi(self.event, form.data)
         flash(_('Settings saved'), 'success')
         return redirect(url_for('.index', self.event))
     return WPLayoutEdit.render_template('layout_meeting_lecture.html', self.event, form=form,
                                         timetable_theme_settings_form=tt_theme_settings_form)