Just a note, I will be offline until tomorrow, if you agree on the solution I proposed (make it a list like template_vars) and someone wants to implement it (yes, I'm talking with you Alberto, the template_vars author :P) it's fine with me.
Ciao Michele Michele Cella wrote: > Hi guys, > > The last (small) polish I think we need to flash out for the widget API > is related to the use of the widgets attribute in CompoundWidgets. > > Background: actually every children widget of a CompoundWidget should > be kept inside self.widgets that's a dictionary, this let's us prepare > some methods to generate a Schema and retrieve css and javascript > programmatically. > > The problem: some times ago Alberto added the ability to use a widget > Form in the following way: > > MyForm(Form): > fields = [list of predefined fields] > > that's a good and probably expected use by even other people since you > pass fields using the fields parameter, what looks strange is that in > __init__ we then copy (a reference in reality) those fields inside our > self.widgets in this way: > > self.widgets = fields or self.fields or [] > > this seems a bit strange to me, the right way of doing this thing > should be: > > MyForm(Form): > widgets["fields"] = [list of predefined fields] > > but this is a bit more difficult to explain and not coherent with the > fields parameter you can pass at init. > > So here is my proposal, make widgets a list like template_vars for a > form this will mean something like this: > > widgets = ["fields", "submit"] > fields = [] > submit = SubmitButton() > > def __init__(self, fields, submit, ...): > if fields: > self.fields = fields > if submit: > self.submit = submit > > we could even make that automated (like template_vars) but only for > init so that we are sure everyone is doing the right thing, not sure > about this last point tough. > > this looks pretty nice, well behaving and probably more explicit (to > external observer we are declaring where our widgets are), the only > modification we need is for schema generation and retrieve_css, > retrieve_javascript that should iterate over self.widgets to collect > the place to look at. > > Opinions? this will require a small fix for other CompoundWidget user > by the way. > Kevin, what do you think? > > Personally I think this is really the last eventual polish needed. > > Ciao > Michele --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears Trunk" 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/turbogears-trunk -~----------~----~----~----~------~----~------~--~---
