mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 13:32:01 +02:00
58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
# Copyright 2019 Creu Blanca
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class MaintenanceTeam(models.Model):
|
|
|
|
_inherit = "maintenance.team"
|
|
|
|
code_prefix = fields.Char(
|
|
string="Prefix for Team Reference",
|
|
help="Prefix used to generate the internal reference for re "
|
|
"created with this category. If blank the "
|
|
"default sequence will be used.",
|
|
)
|
|
sequence_id = fields.Many2one(
|
|
comodel_name="ir.sequence",
|
|
string="Team Sequence",
|
|
copy=False,
|
|
readonly=True,
|
|
)
|
|
|
|
@api.model
|
|
def _prepare_ir_sequence(self, prefix):
|
|
"""Prepare the vals for creating the sequence
|
|
:param prefix: a string with the prefix of the sequence.
|
|
:return: a dict with the values.
|
|
"""
|
|
vals = {
|
|
"name": "Maintenance Request " + prefix,
|
|
"code": "maintenance.request - " + prefix,
|
|
"padding": 5,
|
|
"prefix": prefix,
|
|
"company_id": False,
|
|
}
|
|
return vals
|
|
|
|
def write(self, vals):
|
|
prefix = vals.get("code_prefix")
|
|
if prefix:
|
|
for rec in self:
|
|
if rec.sequence_id:
|
|
rec.sudo().sequence_id.prefix = prefix
|
|
else:
|
|
seq_vals = self._prepare_ir_sequence(prefix)
|
|
rec.sequence_id = self.env["ir.sequence"].create(seq_vals)
|
|
return super().write(vals)
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
for vals in vals_list:
|
|
prefix = vals.get("code_prefix")
|
|
if prefix:
|
|
seq_vals = self._prepare_ir_sequence(prefix)
|
|
sequence = self.env["ir.sequence"].create(seq_vals)
|
|
vals["sequence_id"] = sequence.id
|
|
return super().create(vals_list)
|