# HG changeset patch # User sylvain.thenault@logilab.fr # Date 1241080691 -7200 # Node ID 0c6dbb774f549a1eff447a4e35bb802f5d2c2d28 # Parent d34589d35daa74cb5e1fd68485480c2c06a51f91 drop text field usage diff -r d34589d35daa -r 0c6dbb774f54 web/formfields.py --- a/web/formfields.py Thu Apr 30 10:34:15 2009 +0200 +++ b/web/formfields.py Thu Apr 30 10:38:11 2009 +0200 @@ -417,21 +417,6 @@ return value -def stringfield_from_constraints(constraints, card, **kwargs): - field = None - for cstr in constraints: - if isinstance(cstr, StaticVocabularyConstraint): - kwargs.setdefault('widget', Select()) - if card in '?1': - kwargs['widget'].attrs.setdefault('size', 1) - return StringField(choices=cstr.vocabulary, **kwargs) - if isinstance(cstr, SizeConstraint) and cstr.max is not None: - if cstr.max > 257: - kwargs.setdefault('widget', TextArea) - field = StringField(max_length=cstr.max, **kwargs) - return field or TextField(**kwargs) - - def guess_field(eschema, rschema, role='subject', skip_meta_attr=True, **kwargs): """return the most adapated widget to edit the relation 'subjschema rschema objschema' according to information found in the schema @@ -470,9 +455,18 @@ if isinstance(cstr, StaticVocabularyConstraint): raise Exception('rich text field with static vocabulary') return RichTextField(**kwargs) - # return StringField or TextField according to constraints constraints = rschema.rproperty(eschema, targetschema, 'constraints') - return stringfield_from_constraints(constraints, card, **kwargs) + # init StringField parameters according to constraints + for cstr in constraints: + if isinstance(cstr, StaticVocabularyConstraint): + kwargs.setdefault('widget', Select()) + if card in '?1': + kwargs['widget'].attrs.setdefault('size', 1) + if isinstance(cstr, SizeConstraint) and cstr.max is not None: + if cstr.max > 257: + kwargs.setdefault('widget', TextArea) + kwargs['max_length'] = cstr.max + return StringField(**kwargs) if fieldclass is FileField: for metadata in ('format', 'encoding'): metaschema = eschema.has_metadata(rschema, metadata)