OK. In trunk and let's see if anything breaks.

On Sunday, 28 October 2012 04:15:28 UTC-5, Joe Barnhart wrote:
>
> Hi Massimo --
>
> The change I made is in the first message of this thread.  I just changed 
> one line in the definition of "formatter" in the class Field.
>
> -- Joe B.
>
> P.S. I need to start using the tools to generate diffs for proper patches.
>
> On Saturday, October 27, 2012 10:08:31 PM UTC-7, Massimo Di Pierro wrote:
>>
>> There are two issues here. One is that validators were originally 
>> intended for form input and form input never submit None. They submit '' or 
>> missing value but never None. I agree with you that you may want to call 
>> validators and pass a None. In that case there is no need to ignore it. One 
>> problem remains, will this break backward compatibility. Perhaps no. Not 
>> sure.
>>
>> Can you show your modifications to dal.py?
>>
>> On Saturday, 27 October 2012 17:48:54 UTC-5, Joe Barnhart wrote:
>>>
>>> But Massimo -- why do an early exit from "Field.formatter" if the value 
>>> is None?  Why not give the formatter object a chance to format None 
>>> values?  I just don't understand this decision.  It is expedient for a 
>>> small number of programs where the user doesn't want to format None, but at 
>>> the expense of preventing anyone from ever formatting None.
>>>
>>> Your fix only papers over the problem by storing "NT" in the table 
>>> instead of None.  What if I want to show it as "N/T" later, or "no time"?  
>>> I have to do a bulk change on the database just to accomplish a formatting 
>>> task.  There could be many reasons for wanting to format None into some 
>>> other value -- all ignored because you chose to do an early exit in the 
>>> formatter routine instead of passing the real value along.  
>>>
>>> It is also not explained anywhere in the documentation that None will 
>>> never be passed into the formatter, so it can't be a 
>>> backwards-compatibility issue.
>>>
>>> -- Joe B.
>>>
>>> P.S.  I'm perfectly happy to modify my version of dal.py forever, but 
>>> I'm really interested in your reasoning for the early exit on None and if 
>>> this pattern is carried out in other parts of web2py.
>>>
>>> On Saturday, October 27, 2012 12:44:21 PM UTC-7, Massimo Di Pierro wrote:
>>>>
>>>> You can do
>>>>
>>>> db.table.filter_in = lambda value: 'NT' is value is None else value
>>>>
>>>>
>>>> On Saturday, 27 October 2012 02:54:53 UTC-5, Joe Barnhart wrote:
>>>>>
>>>>> But Paolo -- you forgot the third option...  
>>>>>
>>>>> FIX the problem in dal.py so that Validator classes work properly.  It 
>>>>> has no deleterious effects on other validators (at least so far in my 
>>>>> testing) and it permits validators to format None values.
>>>>>
>>>>> -- Joe B.
>>>>>
>>>>>
>>>>>>>>>>>

-- 



Reply via email to