You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.6 KiB
51 lines
1.6 KiB
# Copyright 2019 Camptocamp SA
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
from odoo import api, fields, models
|
|
from ..tools import _default_sequence
|
|
|
|
|
|
class AgreementParameterValue(models.Model):
|
|
_name = 'agreement.parameter.value'
|
|
_description = 'Possible values for agreement m2o parameters'
|
|
_order = "parameter, sequence"
|
|
|
|
name = fields.Char(required=True, translate=True)
|
|
code = fields.Char(
|
|
required=True,
|
|
index=True,
|
|
help="code of the value, can be used to search for it "
|
|
"in a language neutral way",
|
|
)
|
|
sequence = fields.Integer(
|
|
required=True,
|
|
default=_default_sequence,
|
|
help="order the values for a given parameter",
|
|
)
|
|
parameter = fields.Char(
|
|
required=True,
|
|
help='set to the name of the agreement field which '
|
|
'can have this value (not strictly required but it helps)',
|
|
)
|
|
is_default = fields.Boolean(
|
|
string="Is the default value?",
|
|
help="Set this on 1 record for a given parameter to flag the value as "
|
|
"the default value. If a parameter has no default value, then its "
|
|
"default is False",
|
|
)
|
|
|
|
@api.model
|
|
def get(self, parameter, code):
|
|
res = self.search(
|
|
[('parameter', '=', parameter), ('code', '=', code)], limit=1
|
|
)
|
|
if res:
|
|
return res
|
|
else:
|
|
raise ValueError((parameter, code))
|
|
|
|
@api.model
|
|
def get_default(self, parameter):
|
|
res = self.search(
|
|
[('parameter', '=', parameter), ('is_default', '=', True)], limit=1
|
|
)
|
|
return res or False
|