diff --git a/agreement/models/agreement.py b/agreement/models/agreement.py index 6df4e1588..0eae3eece 100644 --- a/agreement/models/agreement.py +++ b/agreement/models/agreement.py @@ -10,11 +10,11 @@ class Agreement(models.Model): _description = 'Agreement' _inherit = ["mail.thread", "mail.activity.mixin"] - code = fields.Char(required=True) - name = fields.Char(required=True) + code = fields.Char(required=True, track_visibility='onchange') + name = fields.Char(required=True, track_visibility='onchange') partner_id = fields.Many2one( 'res.partner', string='Partner', ondelete='restrict', - domain=[('parent_id', '=', False)]) + domain=[('parent_id', '=', False)], track_visibility='onchange') company_id = fields.Many2one( 'res.company', string='Company', default=lambda self: self.env['res.company']._company_default_get()) @@ -30,10 +30,25 @@ class Agreement(models.Model): string="Agreement Type", help="Select the type of agreement", ) + domain = fields.Selection( + '_domain_selection', string='Domain', default='sale', + track_visibility='onchange') active = fields.Boolean(default=True) - signature_date = fields.Date() - start_date = fields.Date() - end_date = fields.Date() + signature_date = fields.Date(track_visibility='onchange') + start_date = fields.Date(track_visibility='onchange') + end_date = fields.Date(track_visibility='onchange') + + @api.model + def _domain_selection(self): + return [ + ('sale', _('Sale')), + ('purchase', _('Purchase')), + ] + + @api.onchange('agreement_type_id') + def agreement_type_change(self): + if self.agreement_type_id and self.agreement_type_id.domain: + self.domain = self.agreement_type_id.domain def name_get(self): res = [] diff --git a/agreement/models/agreement_type.py b/agreement/models/agreement_type.py index a35a64826..8074b5262 100644 --- a/agreement/models/agreement_type.py +++ b/agreement/models/agreement_type.py @@ -1,7 +1,7 @@ # Copyright (C) 2018 - TODAY, Pavlov Media # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import fields, models +from odoo import api, fields, models class AgreementType(models.Model): @@ -10,3 +10,9 @@ class AgreementType(models.Model): name = fields.Char(string="Name", required=True) active = fields.Boolean(default=True) + domain = fields.Selection( + '_domain_selection', string='Domain', default='sale') + + @api.model + def _domain_selection(self): + return self.env['agreement']._domain_selection() diff --git a/agreement/views/agreement.xml b/agreement/views/agreement.xml index 1c110ee5a..bb6b8925b 100644 --- a/agreement/views/agreement.xml +++ b/agreement/views/agreement.xml @@ -20,20 +20,26 @@ options='{"terminology": "archive"}'/> +