Hi guys, i need your help with the redefinition of following function fields. I don't really get behind the store parameter in the 'amount' field. Any help or hints appreciated.
def _amount(self, cr, uid, ids, field_name, arg, context=None):
for expense in self.browse(cr, uid, ids, context=context):
total = 0.0
for line in expense.line_ids:
total += line.unit_amount * line.unit_quantity
res[expense.id] = total
def _get_expense_from_line(self, cr, uid, ids, context=None):
return [line.expense_id.id for line in self.pool.get('hr.expense.line').browse(cr, uid, ids,
'amount': fields.function(_amount, string='Total Amount', digits_compute=dp.get_precision('Account'),
'hr.expense.line': (_get_expense_from_line, ['unit_amount','unit_quantity'], 10)
Peter, the declaration of computed fields in the new API is explained in the documentation.
Using the new syntax the old `store` dictionary becomes simply `store=True` with an appropriate `@api.depends` decorator on the function implementing the field. The dependencies declared in this manner act as recompute triggers.
Here is an example in the 9.0 source code.
Not sure that's the info you were looking for, though.
As long as I know you will not be able to translate that into the new api, the store value dict is not supported anymore in favor of the @api.depends and @api.onchange, but I couldn't find the flexibility of the store with a value dict with triggers. Maybe @fpodoo or @odony or someone that works for Odoo could bring some light to this
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
About This Community
|Asked: 2/12/16, 5:14 AM|
|Seen: 492 times|
|Last updated: 7/23/16, 3:42 AM|