if the user does not pass a value it will still not trigger a computation 
because "" is not None, I think.

On Tuesday, 11 September 2012 09:17:02 UTC-5, Anthony wrote:
>
> I haven't followed this closely, but instead of specifying a "compute" 
> attribute for the field, could you instead specify the "default" attribute 
> as a function? In that case, the field will appear on forms -- if the user 
> enters a value it will be used, and otherwise the default value will be 
> computed. Of course, the record is not passed to the default function, so 
> instead the default function would have to directly access request.vars to 
> get the values of the other fields if needed (so this works with form 
> inserts, but not other inserts).
>
> Anthony
>
> On Tuesday, September 11, 2012 8:17:28 AM UTC-4, Alan Etkin wrote:
>>
>> On Thursday, September 6, 2012 9:34:51 AM UTC-3, Massimo Di Pierro wrote:
>>>
>>> Please open a ticket and this will be easy to fix. 
>>>
>>>
>> Opened the ticket:
>>
>> http://code.google.com/p/web2py/issues/detail?id=980
>>
>> Now it was closed with status fixed, but:
>>
>> -AFAIK, fileld.writable still has no effect in computed fields. You 
>> cannot set a computed field as writable with crud so it shows the widget. 
>> You can with SQLFORM (by using the fields argument), however, entering 
>> blank inputs don't trigger the compute function server side.
>> -There's no modification of SQLFORM to process empty form fields as 
>> computable (in replacement of a previous or new record value)*
>> -SQLFORM doesn't set computed fields as empty on form creation (I think 
>> this should be the default behavior)*
>>
>> * Perhaps it would be necessary to add different checks by field type and 
>> a standard way of detecting a blank input in each case.
>>
>> Of course, it's possible to show a given widget and do further record 
>> processing in the controller without depending on the computed field 
>> facility, but with this changes, it would save that extra code and give a 
>> more clean and web2py like interface.
>>
>>

-- 



Reply via email to