Files
odoo-addons/addons/cetmix_tower_yaml/models/cx_tower_plan.py

41 lines
1.3 KiB
Python

# Copyright (C) 2024 Cetmix OÜ
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models
class CxTowerPlan(models.Model):
_name = "cx.tower.plan"
_inherit = ["cx.tower.plan", "cx.tower.yaml.mixin"]
def _get_fields_for_yaml(self):
res = super()._get_fields_for_yaml()
res += [
"name",
"access_level",
"allow_parallel_run",
"color",
"tag_ids",
"note",
"on_error_action",
"custom_exit_code",
"line_ids",
]
return res
def _get_deferred_x2m_import_fields(self):
"""Defer plan lines whose command is not resolvable during nested import.
Deep YAML (e.g. a command's waypoint inlines a jet template whose plans
reference that same command) creates a forward reference: plan lines are
prepared before the command exists in the database. Queue those lines
and create them after the main import pass when ``command_id`` can be
resolved.
"""
return {
"line_ids": {
"child_model": "cx.tower.plan.line",
"deferred_field": "command_id",
"target_model": "cx.tower.command",
}
}