diff --git a/partner_age/models/partner.py b/partner_age/models/partner.py index 9a91a63..babe892 100644 --- a/partner_age/models/partner.py +++ b/partner_age/models/partner.py @@ -1,12 +1,20 @@ +# Copyright 2020 Coop IT Easy SCRL fs +# Robin Keunen +# Houssine Bakkali +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + from datetime import datetime -from openerp import api, fields, models -from openerp.tools import DEFAULT_SERVER_DATE_FORMAT as OE_DFORMAT +from odoo import api, fields, models class ResPartner(models.Model): _inherit = "res.partner" + age = fields.Integer( + string="Age", compute="_compute_age", search="_search_age" + ) + def _search_age(self, operator, value): if operator not in ("=", "!=", "<", "<=", ">", ">=", "in", "not in"): return [] @@ -27,18 +35,15 @@ class ResPartner(models.Model): @api.multi @api.depends("birthdate_date") def _compute_age(self): - self.ensure_one() - if self.birthdate_date: - dBday = datetime.strptime( - str(self.birthdate_date), OE_DFORMAT - ).date() - dToday = datetime.now().date() - self.age = ( - dToday.year - - dBday.year - - ((dToday.month, dToday.day) < (dBday.month, dBday.day)) - ) - - age = fields.Integer( - string="Age", compute="_compute_age", search="_search_age" - ) + for partner in self: + if partner.birthdate_date: + birthday = partner.birthdate_date + today = datetime.now().date() + partner.age = ( + today.year + - birthday.year + - ( + (today.month, today.day) + < (birthday.month, birthday.day) + ) + )