Beispiel #1
0
 def _make_form(self):
     form_class = type(b'FeaturesForm', (IndicoForm,), {})
     for name, feature in sorted(get_feature_definitions().iteritems(), key=lambda x: x[1].friendly_name):
         field = BooleanField(feature.friendly_name, widget=SwitchWidget(on_label=_('On'), off_label=_('Off')),
                              description=feature.description)
         setattr(form_class, name, field)
     defaults = {name: True for name in get_enabled_features(self.event)}
     return form_class(csrf_enabled=False, obj=FormDefaults(defaults))
Beispiel #2
0
    def required_by_deep(cls):
        """All feature names depending on this feature.

        This includes features which depend on a feature depending on
        this feature.
        """
        # This is not very efficient, but it runs exactly one on a not-very-large set
        return {feature.name for feature in get_feature_definitions().itervalues() if cls.name in feature.requires_deep}
Beispiel #3
0
 def _make_form(self):
     form_class = type('FeaturesForm', (IndicoForm,), {})
     disallowed = get_disallowed_features(self.event)
     for name, feature in sorted(get_feature_definitions().items(), key=lambda x: x[1].friendly_name):
         if name in disallowed:
             continue
         field = BooleanField(feature.friendly_name, widget=SwitchWidget(), description=feature.description)
         setattr(form_class, name, field)
     defaults = {name: True for name in get_enabled_features(self.event)}
     return form_class(csrf_enabled=False, obj=FormDefaults(defaults))
Beispiel #4
0
    def requires_deep(cls):
        """All feature names required by this feature.

        This includes features required by a requirement.
        """
        feature_definitions = get_feature_definitions()
        todo = set(cls.requires)
        features = set()
        while todo:
            feature = todo.pop()
            features.add(feature)
            todo |= feature_definitions[feature].requires
        return features
Beispiel #5
0
def _event_created(event, **kwargs):
    from indico.modules.events.features.util import get_feature_definitions, get_enabled_features
    feature_definitions = get_feature_definitions()
    for feature in get_enabled_features(event):
        feature_definitions[feature].enabled(event)
Beispiel #6
0
def _check_feature_definitions(app, **kwargs):
    # This will raise RuntimeError if the feature names are not unique
    from indico.modules.events.features.util import get_feature_definitions
    get_feature_definitions()
Beispiel #7
0
 def _format_feature_names(self, names):
     return ', '.join(sorted(unicode(f.friendly_name)
                             for f in get_feature_definitions().itervalues()
                             if f.name in names))
Beispiel #8
0
def _check_feature_definitions(app, **kwargs):
    # This will raise RuntimeError if the feature names are not unique
    from indico.modules.events.features.util import get_feature_definitions
    get_feature_definitions()
Beispiel #9
0
 def _format_feature_names(self, names):
     return ', '.join(
         sorted(
             unicode(f.friendly_name)
             for f in get_feature_definitions().itervalues()
             if f.name in names))
Beispiel #10
0
def _event_created(event, **kwargs):
    from indico.modules.events.features.util import get_feature_definitions, get_enabled_features

    feature_definitions = get_feature_definitions()
    for feature in get_enabled_features(event):
        feature_definitions[feature].enabled(event)