[Zope3-Users] z3c.form, style-attribute of TextWidget,
	TextAreaWidget
    Andreas Reuleaux 
    reuleaux at web.de
       
    Thu Aug 30 08:50:16 EDT 2007
    
    
  
Given a simple interface IPerson with some TextLine (Text) fields
  class IPerson(Interface):
      """a person"""
      nachname = TextLine(
	  title=u"Nachname",
	  ...
	  )
      vorname = TextLine(
	  title=u"Vorname",
	  ...
	  )
      anrede = TextLine(
	  title=u"Anrede",
	  ...
	  )
      sonst = Text(
	  title=u'Sonstiges',
	  ...
	  )
I should be able to give the widgets some custom appearance by
not only appending to their klass-Attribute (w.addClass()) but also
by setting their style-Attribute (w.style) like this
  class PersonEditForm(subform.EditSubForm):
      fields=field.Fields(IPerson)
      prefix='person.edit'
      def updateWidgets(self):
	  super(PersonEditForm, self).updateWidgets()
	  sty={'anrede': u'width: 55px;',
	       'vorname': u'width: 105px;',
	       'nachname': u'width: 105px;',
	      }
	  for k in sty.keys():
	      w=self.widgets.get(k)
	      w.style=sty[k]
	      w.addClass("in")
The widgets do have a style-Attribute after all and this used
to work in formlib. - However this has no effect when rendering:
   <input type="text" id="person-edit-widgets-nachname"
	  name="person.edit.widgets.nachname"
	  class="textWidget textline-field in" 
          value="..."/>
   ...
There is just no style attribute. - I would expect something like:
  <input type="text" id="person-edit-widgets-nachname"
       name="person.edit.widgets.nachname"
       class="textWidget textline-field in"
       style="width: 105px;" value="..." />
Having a look at text_input.pt in my z3c.form egg shows why: style is
just ignored there. If I add the style attribute there, everything
works fine:
reuleaux at softland(~/z3eggs/z3c.form-1.6.0-py2.4.egg/z3c/form/browser)$ diff -u text_input.pt.ORIG text_input.pt
--- text_input.pt.ORIG  2007-08-30 01:05:52.000000000 +0200
+++ text_input.pt       2007-08-30 13:59:30.000000000 +0200
@@ -26,4 +26,5 @@
                        accesskey view/accesskey;
                        onselect view/onselect;
                        size view/size;
-                       maxlength view/maxlength" />
+                       maxlength view/maxlength;
+                       style view/style" />
reuleaux at softland(~/z3eggs/z3c.form-1.6.0-py2.4.egg/z3c/form/browser)$
Is there any particular reason why this style attribute was left out or is this just a bug?
- The same for textarea_input.pt
-Andreas
    
    
More information about the Zope3-users
mailing list