About the class style, you should specify it:

>>> from py4web.utils.form import Form
>>> from pydal import Field

DEFAULT STYLE

>>> f = Form([Field('a','text'), Field('b','string')])
>>> print(f.xml())
<form method="POST" action="/" enctype="multipart/form-data"><div 
class=""><label for="none_a" class="">A</label><div class=""><textarea 
id="none_a" name="a" class=""></textarea></div><p class=""></p></div><div 
class=""><label for="none_b" class="">B</label><div class=""><input 
type="text" id="none_b" name="b" class=""/></div><p class=""></p></div><div 
class=""><div class=""><input type="submit" 
value="Submit"/></div></div><input type="hidden" name="_formkey" 
value="none"/></form>

BULMA STYLE

>>> from py4web.utils.form import FormStyleBulma
>>> f = Form([Field('a','text'), Field('b','string')], 
formstyle=FormStyleBulma)
>>> print(f.xml())
<form method="POST" action="/" enctype="multipart/form-data"><div 
class="field"><label for="none_a" class="label">A</label><div 
class="control"><textarea id="none_a" name="a" 
class="textarea"></textarea></div><p class="help"></p></div><div 
class="field"><label for="none_b" class="label">B</label><div 
class="control"><input type="text" id="none_b" name="b" 
class="input"/></div><p class="help"></p></div><div class="field"><div 
class="control"><input type="submit" value="Submit" 
class="button"/></div></div><input type="hidden" name="_formkey" 
value="none"/></form>

On Monday, 30 December 2019 19:30:29 UTC+1, JSalvat wrote:
>
> Some testing done, I don't know the side efects, but with this changes to  
> py4web/utils/*form.py*  things work munch better (as per 
> date/time/password widgets):
>
> ....
>         elif field.type == "text":
>             *# *control = TEXTAREA(value or "", _id=input_id, _name=
> field.name)    <--- MODIFIED
>             control = TEXTAREA(value or "", _id=input_id, _name=field.name
> , _class="textarea")
> ....
> ....
>         else:
>             # field_type = "password" if field.type == "password" else 
> "text"    <--- MODIFIED
>             field_type = "text" if (field.type == "string" or field.type 
> == "") else field.type
>             control = INPUT(
>                 _type=field_type,
>                 _id=input_id,
>                 _name=field.name,
>                 _value=value,
>                 # _class=field_class,    <--- MODIFIED
>                 _class="input",
>             )
>         
>         # key = control.name.rstrip("/")    <--- BLOCK 4 LINES UNUSED
>         # if key == "input":
>         #     key += "[type=%s]" % (control["_type"] or "text")
>         # control["_class"] = classes.get(key, "")
>
>
> Also, in Grid *create*: Boolean widget does not show selected state.
>         in Grid *modify*: If a field is modified and click on "Close" 
> instead of "Save", changes are saved !
>
> I'm using this table on Form / Grid tests:
>
> db.define_table(
>     'sam_table',
>     Field('samString', type='string', length=10,  unique=True, required=
> True,
>           requires = [IS_LENGTH(10, 4), IS_SLUG(maxlen=10,
>           check=True, error_message='Only alphanumeric characters and 
> non-repeated dashes.')],
>           comment='Unique identifier.'),
>     Field('samText', type='text', comment='Enter a description text.'),
>     Field('samBool', type='boolean', default=False, comment='Are you 
> interested in py4web ?'),
>     Field('samDate', type='date', required=True,
>           requires = [IS_NOT_EMPTY(), IS_DATE()],
>           comment='Enter a valid sample date.'),
>     Field('samTime', type='time',
>           requires = IS_TIME(), comment='Enter a valid sample time.'),
>     Field('samInteger', type='integer', default=0,
>           requires = IS_INT_IN_RANGE(0, 9999, error_message='Must be 
> integer between 0 and 9999.'),
>           comment='Enter a valid sample integer.'),
>     Field('samDecimal', type='decimal(4,2)', default=0.0,
>           requires = IS_DECIMAL_IN_RANGE(0, 35.0, dot=','),
>           comment='Enter a sample decimal between 0 and 35.'),
>     )
>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/4aac031d-f368-4e64-bbb7-76fd8c70c7b0%40googlegroups.com.

Reply via email to