web/formwidgets.py
changeset 7990 a673d1d9a738
parent 7879 9aae456abab5
child 8029 805d4e121b65
equal deleted inserted replaced
7989:db76e8aaec29 7990:a673d1d9a738
   282         return val
   282         return val
   283 
   283 
   284     # XXX deprecates
   284     # XXX deprecates
   285     def values_and_attributes(self, form, field):
   285     def values_and_attributes(self, form, field):
   286         return self.values(form, field), self.attributes(form, field)
   286         return self.values(form, field), self.attributes(form, field)
   287 
       
   288     @deprecated('[3.6] use values_and_attributes')
       
   289     def _render_attrs(self, form, field):
       
   290         """return html tag name, attributes and a list of values for the field
       
   291         """
       
   292         values, attrs = self.values_and_attributes(form, field)
       
   293         return field.input_name(form, self.suffix), values, attrs
       
   294 
   287 
   295 
   288 
   296 class Input(FieldWidget):
   289 class Input(FieldWidget):
   297     """abstract widget class for <input> tag based widgets"""
   290     """abstract widget class for <input> tag based widgets"""
   298     type = None
   291     type = None
   732     default_settings = {}
   725     default_settings = {}
   733 
   726 
   734     def __init__(self, *args, **kwargs):
   727     def __init__(self, *args, **kwargs):
   735         self.autocomplete_settings = kwargs.pop('autocomplete_settings',
   728         self.autocomplete_settings = kwargs.pop('autocomplete_settings',
   736                                                 self.default_settings)
   729                                                 self.default_settings)
   737         try:
   730         self.autocomplete_initfunc = kwargs.pop('autocomplete_initfunc')
   738             self.autocomplete_initfunc = kwargs.pop('autocomplete_initfunc')
       
   739         except KeyError:
       
   740             warn('[3.6] use autocomplete_initfunc argument of %s constructor '
       
   741                  'instead of relying on autocomplete_initfuncs dictionary on '
       
   742                  'the entity class' % self.__class__.__name__,
       
   743                  DeprecationWarning)
       
   744             self.autocomplete_initfunc = None
       
   745         super(AutoCompletionWidget, self).__init__(*args, **kwargs)
   731         super(AutoCompletionWidget, self).__init__(*args, **kwargs)
   746 
   732 
   747     def values(self, form, field):
   733     def values(self, form, field):
   748         values = super(AutoCompletionWidget, self).values(form, field)
   734         values = super(AutoCompletionWidget, self).values(form, field)
   749         if not values:
   735         if not values:
   761                             % (domid, json_dumps(data),
   747                             % (domid, json_dumps(data),
   762                                json_dumps(self.autocomplete_settings)))
   748                                json_dumps(self.autocomplete_settings)))
   763         return super(AutoCompletionWidget, self)._render(form, field, renderer)
   749         return super(AutoCompletionWidget, self)._render(form, field, renderer)
   764 
   750 
   765     def _get_url(self, entity, field):
   751     def _get_url(self, entity, field):
   766         if self.autocomplete_initfunc is None:
   752         fname = self.autocomplete_initfunc
   767             # XXX for bw compat
       
   768             fname = entity.autocomplete_initfuncs[field.name]
       
   769         else:
       
   770             fname = self.autocomplete_initfunc
       
   771         return entity._cw.build_url('json', fname=fname, mode='remote',
   753         return entity._cw.build_url('json', fname=fname, mode='remote',
   772                                     pageid=entity._cw.pageid)
   754                                     pageid=entity._cw.pageid)
   773 
   755 
   774 
   756 
   775 
   757 
   776 class StaticFileAutoCompletionWidget(AutoCompletionWidget):
   758 class StaticFileAutoCompletionWidget(AutoCompletionWidget):
   777     """XXX describe me"""
   759     """XXX describe me"""
   778     wdgtype = 'StaticFileSuggestField'
   760     wdgtype = 'StaticFileSuggestField'
   779 
   761 
   780     def _get_url(self, entity, field):
   762     def _get_url(self, entity, field):
   781         if self.autocomplete_initfunc is None:
   763         return entity._cw.data_url(self.autocomplete_initfunc)
   782             # XXX for bw compat
       
   783             fname = entity.autocomplete_initfuncs[field.name]
       
   784         else:
       
   785             fname = self.autocomplete_initfunc
       
   786         return entity._cw.data_url(fname)
       
   787 
   764 
   788 
   765 
   789 class RestrictedAutoCompletionWidget(AutoCompletionWidget):
   766 class RestrictedAutoCompletionWidget(AutoCompletionWidget):
   790     """XXX describe me"""
   767     """XXX describe me"""
   791     default_settings = {'mustMatch': True}
   768     default_settings = {'mustMatch': True}