On Monday 05 March 2007 14:40, Rick wrote: > First off, thanks for the insights into the design philosophy of TG > widgets. OK, let me see if I can recap what you are saying. The > current implementation of _is_option_selected assumes that the "value" > in the options list [(value,desc,options)] is a Python value, but the > current implementation of the select field templates do not correctly > render that value into the template using the decorator's from_python > method, making it difficult to impossible to pass complex Python > values in the options list.
Yes, that sounds correct to me. > In that case, let me suggest that the SelectionField.update_params() > method be updated to actually use the validator's from_python method > to render the values into the template. I have included below a > version of the method which does just that. Unfortunately, this alone > does not fix the problem. Now, when update_params calls > is_option_selected, it is comparing two Python values (one from the > list, one from the value passed into the form). So in this case, it > seems that is_option_selected should skip the conversion step, since > it is comparing two Python values. > > I have included monkey-patched versions of these two methods that seem > to give the desired behavior (passing Python values in the options > parameter, correctly rendering python values to the form using > from_python, and correctly determining which one is selected when > displaying/rendering the template). I've also included a fixed > version of my test controller method that works with these patches > fine. Do you see any problem with applying patches (real ones, > obviously, not these monkey-patches) to turbogears/widgets/forms.py? It does sound reasonable, yet I'm pretty sure it will break existing code. Which would disqualify it for anything but a new release, one or even a few versions from now. I suggest you try and get one of the core developers to comment on this - either explicitly, or via submitting a bug. Diez --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears" 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?hl=en -~----------~----~----~----~------~----~------~--~---

