Can you email me the code below? the indentation is messed up.

Massimo

On Dec 28, 9:53 am, rfx_labs <l...@reproflex.de> wrote:
> Some treads here disus the handling of custom forms.
>
> One hint was use SQLFORM in the controller and build anything else in
> the view.
>
> I don't like the idea to do things twice.
>
> Another hint was {{=form[0][1][1][0]}}.
> Not so handy and may break when fields are added to the table.
> So i wrapped this in an function. Now I have both quick SQLForms for
> development and all posiilites for make my one styled forms.
>
> In a Form I can now do:
> <ol>
>         {{=LI(form.elm("name"))}}
>         {{=LI(form.elm("match"))}}
> </ol>
> rendert as:
> <li><label for="name">Name: </label><input class="string" id="name"
> name="name" type="text" value="" /></li>
> <li><label for="match">Match: </label><select class="reference match"
> id="match" name="match"><option value="1">xyz</option></select></li>
>
> or:
> {{=form.elm("reference", _type="hidden")}}
> {{=form.elm("id")}}{{=form.hidden_fields()}}
> rendert as:
> <input class="reference reference" id="reference" name="reference"
> type="hidden" value="" />
> <input name="_formkey" type="hidden" value="be9653b2-73ab-459b-b63d-
> e3831198da3b" /><input name="_formname" type="hidden" value="color" />
>
> or:
> {{for elm in "cmyk":}}
>    {{=LI(form.elm(elm, SPAN(elm.capitalize()+": ",
> _id="color_"+elm) ) )}}
> {{pass}}
> rendered as:
> <li><label for="c"><span id="color_c">C: </span></label><input
> class="integer" id="c" name="c" type="text" value="0" /></li>
> <li><label for="m"><span id="color_m">M: </span></label><input
> class="integer" id="m" name="m" type="text" value="0" /></li>
> <li><label for="y"><span id="color_y">Y: </span></label><input
> class="integer" id="y" name="y" type="text" value="0" /></li>
> <li><label for="k"><span id="color_k">K: </span></label><input
> class="integer" id="k" name="k" type="text" value="0" /></li>
>
> Any suggestions are welcome.
>
> Martin
>
> Here's the code that I put in a model:
> #patch SQLFORM
> def __elm(self, elm, label=True, _id=True, **kargs):
>
>         if elm is "id":
>                 #why is id not in form.hidden_fields()?
>                 return self.components[1] if len(self.components) > 1 else ""
>         elif elm is "delete":
>                 fid = -2
>         else:
>                 fid = self.fields.index(elm)-1
>                 if fid < 0: raise SyntaxError, "Field not in Form!"
>
>         field = self.components[0][fid][1][0]
>
>         if elm is "delete" and field.attributes["_id"] is not
> "delete_record": return ""
>
>         if _id is True and "_name" in field.attributes:
>                 #name as id, this is maybe a little to specific for only me
>                 field.attributes["_id"] = field.attributes["_name"]
>         elif type(_id) is str:
>                 #custom id
>                 field.attributes["_id"] = _id
>
>         for key in kargs.keys():
>                 field.attributes[key] = kargs[key]
>
>         if "_type" in field.attributes.keys() \
>         and field.attributes["_type"] is "hidden":
>                 label=False
>
>         if label:
>                 lb = self.components[0][fid][0][0]
>
>                 if _id is True and "_id" in field.attributes:
>                         lb.attributes["_for"] = field.attributes["_id"]
>                 elif type(_id) is str:
>                         lb.attributes["_for"] = _id
>
>                 lb.attributes["_id"] = None
>
>                 if label is not True:
>                         lb.components[0] = XML(label)
>
>                 field = XML(lb.xml() + field.xml())
>
>         return field
>
> SQLFORM.elm = __elm
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to