This is correct it is required to refresh a widget is the form
contains errors.

I am not ignoring the rest of thread, just swamped... will be
back. ;-)

Massimo

On May 19, 10:26 pm, Alexey Nezhdanov <[email protected]> wrote:
> Massimo, can you please comment on the points that I mentioned. I'm still
> interested in that solution and using out-of-trunc code is not very
> convenient if upgrading.
> There were 2 main points:
>
> 1) Is there recommended approach for _reusing_widgets_ generated by SQLFORM?
> Current code contains only means to cache labels, input values and display
> values so one still have to construct <input/>s himself in the view. My
> approach allows one to just have {{=form.trows['fieldname']['widget']}}
> though I already see why this is wrong - to stay consistent with current code
> I had to use {{=form.custom.widgets.fieldname}}. But it would be easy to
> fix...
>
> 2) Is there a bug in current code, here:
>                 if hasattr(field, 'widget') and field.widget\
>                     and request_vars.has_key(fieldname):
>                     self.trows[fieldname][1][0].components = \
> ?
> Shouldn't it be just self.trows[fieldname][1]= and what is the purpose of this
> part?
>
> On Tuesday 19 May 2009 12:35:43 Alexey Nezhdanov wrote
>
>
>
> > Version 2 of the patch
> > I discovered that I messed up self.custom.dspval contents with previous
> > patch. And having both functions (do_custom & do_standard) is more
> > convenient - this way used can decide where he wants standard fields to go
> > -
> > before his ones of after them.
>
> > On Tue, May 19, 2009 at 11:44 AM, Alexey Nezhdanov <[email protected]>
> wrote:
> > > Here is it. Small, nice, tested and documented.
>
> > > One downside though. I tried hard but failed to understand the original
> > > self.trows purpose. While I preserved default functionality, I'm not
> > > sure if I missed something subtle.
>
> > > And, btw, use of trows seemed buggy for me.
> > > Here is my best guess:
> > > trows is intended to remove validation errors from widgets that were
> > > manually assigned to the database fields. If so - then it fails it's
> > > purpose because
> > > self.trows[fieldname][1][0].components
> > > addresses components of the <INPUT/> and not of <TD/>. To fix it you
> > > need to remove [0]:
> > > self.trows[fieldname][1].components
>
> > > On Tue, May 19, 2009 at 7:52 AM, Alexey Nezhdanov <[email protected]>
> wrote:
> > >> Hello.
>
> > >> Reading the SQLFORM sources doesn't give me any insight on
> > >> how to do custom form layout w/o modifying web2py source
> > >> AND writing extensive wrappers around it.
>
> > >> I found these pages while googling:
> > >>http://groups.google.com/group/web2py/browse_thread/thread/39c0bd5e01860
> > >>eb/fecc0f6edbb3885f?lnk=gst&q=custom+sqlform+layout#fecc0f6edbb3885f
> > >>http://www.wellbehavedsystems.co.uk/web2py/examples/custom_forms.html
>
> > >> As I can see - it was an unofficial solution, proposed about a
> > >> half-year ago. Is it a recommended approach atm? If not - is
> > >> there one? If yes - is it going to be included?
>
> > >> I am personally didn't like it too much - it's what I referred to
> > >> as 'extensive wrapper'.
>
> > >> If there is no support in current SQLFORM yet I'll probably end
> > >> up writing something myself, hopefully something simpler.
>
> > >> Currently I think of something like this (in SQLFORM.__init__):
> > >> 1) iterate over fields, generate widgets (it does that already),
> > >> 2) put generated widgets into a Storage(input_name:input_widget)
> > >> 3)
> > >> self.components=[]
> > >> self.do_custom_layout() # by default does nothing, can be redefined in
> > >> derived clases self.do_standard_layout() # populates table with fields
> > >> remaining in the Storage fields
>
> > >> do_custom_layout (when redefined) will pop widgets out of
> > >> said Storage and put them into some HTML, adding it to self.components
>
> > >> --
> > >> Sincerely yours
> > >> Alexey Nezhdanov
>
> --
> Sincerely yours
> Alexey Nezhdanov
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to