diff --git a/addons/cetmix_tower_yaml/models/cx_tower_file.py b/addons/cetmix_tower_yaml/models/cx_tower_file.py new file mode 100644 index 0000000..983fa40 --- /dev/null +++ b/addons/cetmix_tower_yaml/models/cx_tower_file.py @@ -0,0 +1,46 @@ +# Copyright (C) 2024 Cetmix OÜ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import models + + +class CxTowerFile(models.Model): + _name = "cx.tower.file" + _inherit = ["cx.tower.file", "cx.tower.yaml.mixin"] + + def _get_fields_for_yaml(self): + res = super()._get_fields_for_yaml() + res += [ + "name", + "source", + "file_type", + "server_dir", + "code", + "file", + "variable_ids", + "secret_ids", + "template_id", + "keep_when_deleted", + "auto_sync", + "auto_sync_interval", + "sync_date_next", + "sync_date_last", + "server_response", + ] + return res + + def _post_create_write(self, op_type="write"): + # Do not pull/push files if they are being created from YAML + if self.env.context.get("from_yaml"): + return + super()._post_create_write(op_type) + + def _prepare_record_for_yaml(self): + """ + Override to drop file `code` when the source is 'server'. + """ + record_dict = super()._prepare_record_for_yaml() + + if record_dict.get("source") == "server": + record_dict["code"] = False + + return record_dict