def __call__(self, field, request): __traceback_info__ = ( '{0}, processing:\n' '- field "{1}"\n' '- widget: {2}\n' '- params: {3}\n'.format( self.__class__.__name__, field.__name__, repr(self.widget_factory), self.params ) ) if isinstance(self.widget_factory, six.string_types): __traceback_info__ += '- resolving dotted name\n' self.widget_factory = resolveDottedName(self.widget_factory) if self.widget_factory is None: # use default widget factory for this field type __traceback_info__ += '- using default widget factory\n' widget = getMultiAdapter((field, request), IFieldWidget) elif IWidget.implementedBy(self.widget_factory): __traceback_info__ += '- calling factory, then wrapping with ' \ 'FieldWidget\n' widget = FieldWidget(field, self.widget_factory(request)) elif IFieldWidget.implementedBy(self.widget_factory): __traceback_info__ += '- calling factory\n' widget = self.widget_factory(field, request) for k, v in self.params.items(): setattr(widget, k, v) return widget
def __init__(self, widget_factory=None, **params): if widget_factory is not None: if not IFieldWidget.implementedBy(widget_factory) \ and not IWidget.implementedBy(widget_factory) \ and not isinstance(widget_factory, six.string_types): raise TypeError('widget_factory must be an IFieldWidget ' 'or an IWidget') self.widget_factory = widget_factory self.params = params
def __init__(self, widget_factory=None, **params): if widget_factory is not None: if not IFieldWidget.implementedBy(widget_factory) \ and not IWidget.implementedBy(widget_factory) \ and not isinstance(widget_factory, basestring): raise TypeError('widget_factory must be an IFieldWidget ' 'or an IWidget') self.widget_factory = widget_factory self.params = params
def __call__(self, field, request): if isinstance(self.widget_factory, basestring): self.widget_factory = resolveDottedName(self.widget_factory) if self.widget_factory is None: # use default widget factory for this field type widget = getMultiAdapter((field, request), IFieldWidget) elif IWidget.implementedBy(self.widget_factory): widget = FieldWidget(field, self.widget_factory(request)) elif IFieldWidget.implementedBy(self.widget_factory): widget = self.widget_factory(field, request) for k, v in self.params.items(): setattr(widget, k, v) return widget
def __call__(self, field, request): if isinstance(self.widget_factory, basestring): self.widget_factory = resolveDottedName(self.widget_factory) if self.widget_factory is None: # use default widget factory for this field type widget = getMultiAdapter((field, request), IFieldWidget) elif IWidget.implementedBy(self.widget_factory): widget = FieldWidget(field, self.widget_factory(request)) elif IFieldWidget.implementedBy(self.widget_factory): widget = self.widget_factory(field, request) for k, v in self.params.items(): setattr(widget, k, v) return widget
def factory(self, field_name=None, widget_class=None, **kw): widgets = {} if field_name is None: # Usage 3 for field_name, widget in kw.items(): if not isinstance(widget, basestring): widget = "%s.%s" % (widget.__module__, widget.__name__) widgets[field_name] = widget else: if widget_class is not None \ and not IFieldWidget.implementedBy(widget_class) \ and not IWidget.implementedBy(widget_class): raise TypeError('widget_class must implement IWidget or IFieldWidget') widgets[field_name] = ParameterizedWidget(widget_class, **kw) return widgets
def factory(self, field_name=None, widget_class=None, **kw): widgets = {} if field_name is None: # Usage 3 for field_name, widget in kw.items(): if not isinstance(widget, basestring): widget = "%s.%s" % (widget.__module__, widget.__name__) widgets[field_name] = widget else: if widget_class is not None \ and not IFieldWidget.implementedBy(widget_class) \ and not IWidget.implementedBy(widget_class): raise TypeError( 'widget_class must implement IWidget or IFieldWidget') widgets[field_name] = ParameterizedWidget(widget_class, **kw) return widgets
def __call__(self, field, request): __traceback_info__ = ('{0}, processing:\n' '- field "{1}"\n' '- widget: {2}\n' '- params: {3}\n'.format( self.__class__.__name__, field.__name__, repr(self.widget_factory), self.params)) if isinstance(self.widget_factory, six.string_types): __traceback_info__ += '- resolving dotted name\n' self.widget_factory = resolveDottedName(self.widget_factory) if self.widget_factory is None: # use default widget factory for this field type __traceback_info__ += '- using default widget factory\n' widget = getMultiAdapter((field, request), IFieldWidget) elif IWidget.implementedBy(self.widget_factory): __traceback_info__ += '- calling factory, then wrapping with ' \ 'FieldWidget\n' widget = FieldWidget(field, self.widget_factory(request)) elif IFieldWidget.implementedBy(self.widget_factory): __traceback_info__ += '- calling factory\n' widget = self.widget_factory(field, request) for k, v in self.params.items(): setattr(widget, k, v) return widget