47 lines
1.3 KiB
Python
47 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 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
|