46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1 (Odoo Proprietary License v1.0)
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class FpMaintenanceNode(models.Model):
|
|
"""Maintenance checklist item.
|
|
|
|
Individual task or check within a maintenance plan.
|
|
Auto-numbered on creation.
|
|
"""
|
|
_name = 'fp.maintenance.node'
|
|
_description = 'Fusion Plating — Maintenance Node'
|
|
_order = 'number desc'
|
|
|
|
name = fields.Char(
|
|
string='Name',
|
|
required=True,
|
|
)
|
|
number = fields.Integer(
|
|
string='Number',
|
|
readonly=True,
|
|
copy=False,
|
|
)
|
|
plan_id = fields.Many2one(
|
|
'fp.maintenance.plan',
|
|
string='Plan',
|
|
ondelete='set null',
|
|
)
|
|
active = fields.Boolean(default=True)
|
|
company_id = fields.Many2one(
|
|
'res.company',
|
|
string='Company',
|
|
default=lambda self: self.env.company,
|
|
)
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
for vals in vals_list:
|
|
if not vals.get('number'):
|
|
last = self.sudo().search([], order='number desc', limit=1)
|
|
vals['number'] = (last.number if last else 0) + 1
|
|
return super().create(vals_list)
|