Community: Framework mailing list archives

Re: How to create a calculated field from another field in another class.

- 03/25/2015 05:58:22
Dear  Reyes Cofino,

       I didn't understood what you mean. but one thing i understood from your question is you have to get last contract of an employee.
for that you can use self.contracts[-1]. because in new api odoo self.contracts is a list of record.
so you will get last contract date_start using  self.contracts[-1].date_start


On Tue, Mar 24, 2015 at 9:58 PM, Reyes Cofino <> wrote:

Hello everyone,

I need help.

I have two classes: "employees" and "contracts" that are related. There is an One2Many relation between "employee" and "contracts", so that one employee may have n contracts.

To create the “employees” module / class, I inherited from hr.employee and to create “contracts” I inherited from hr.contract.

Please, I need somebody explain me with an example under the new style of API v8 (took a few months learning and prefer to use from the start the new style of API v8) how to create a calculated date field in "employees" got the another value date field in "contracts". The date must take the date_start field in the last contract (remember that for every employee there n contracts).

I works perfectly the calculated field when the date grabs a date field in the same class (see example), but not how to do it when you take it from another class in another module and must also select an agreement among all to take the date.

Here I leave the example I've ever had and if I work:

# - * - Coding: utf-8 - * -

OpenERP from import fields, models, api

Employees class (models.Model):

    _inherit = 'hr.employee'

    date_last = fields.Date (compute = '_ calculate_birthday')

    @ Api.depends ('birthday')

    def _calculate_birthday (self):

        for record in self:

            record.date_last = record.birthday

Thank you all.


Post to:

Thanks and Regards

Niyas Pavil