From 9337edfce15ff005022759a4a24e5252bf2047f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Sat, 13 Dec 2025 14:58:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soong_workflow/models/soong_workflow_record.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index a1880a194..36b6d7c50 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -175,21 +175,15 @@ class SoongWorkflowRecord(models.Model): workflow.employee_ids = [(6, 0, [])] def execute_button_code(self, button_id, res_model, res_id): - - """ - 执行按钮code字段中的代码,动态解析并验证方法是否存在 - :param button_id: soong.workflow.node.button的记录ID - :param res_model: 模型名称 - """ button = self.env["soong.workflow.node.button"].browse(button_id) if not button or not button.code: return - workflow = button.node_id.workflow_id if button.node_id else None obj = self.env[res_model].browse(res_id) pattern = r'obj\.(\w+)\s*\(' - methods = re.findall(pattern, button.code, re.MULTILINE)[0] - if methods: - obj.__getattribute__(methods)() + if re.findall(pattern, button.code, re.MULTILINE): + methods = re.findall(pattern, button.code, re.MULTILINE)[0] + if methods: + obj.__getattribute__(methods)() def _log_debug(self, message): From 4f721609ea67820e2228b4452e98ad60a92d5b65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Sat, 13 Dec 2025 15:02:25 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_property/views/property_meter_archives_views.xml | 2 +- yuthon_property/views/property_meter_water_views.xml | 2 +- yuthon_trade/models/yuthon_trade_setting.py | 4 ++-- yuthon_trade/views/yuthon_trade_setting_views.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/yuthon_property/views/property_meter_archives_views.xml b/yuthon_property/views/property_meter_archives_views.xml index 8b1daf8f7..bc8d3b4ef 100644 --- a/yuthon_property/views/property_meter_archives_views.xml +++ b/yuthon_property/views/property_meter_archives_views.xml @@ -113,7 +113,7 @@ - + diff --git a/yuthon_property/views/property_meter_water_views.xml b/yuthon_property/views/property_meter_water_views.xml index 7afc79535..e39046a47 100644 --- a/yuthon_property/views/property_meter_water_views.xml +++ b/yuthon_property/views/property_meter_water_views.xml @@ -115,7 +115,7 @@ - + diff --git a/yuthon_trade/models/yuthon_trade_setting.py b/yuthon_trade/models/yuthon_trade_setting.py index 258abf923..fae5d5f3f 100644 --- a/yuthon_trade/models/yuthon_trade_setting.py +++ b/yuthon_trade/models/yuthon_trade_setting.py @@ -27,9 +27,9 @@ class SealsTypeSetting(models.Model): _description = '用章类型' name = fields.Char(string='名称') - scope_setting_ids = fields.Many2many('seals.scope.setting', string="用章范围") + scope_setting_id = fields.Many2one('seals.scope.setting', string="用章范围") department_id = fields.Many2one('hr.department', string="部门") - user_id = fields.Many2many('res.users', string="保管人") + user_id = fields.Many2one('res.users', string="保管人") start_date = fields.Date(string="生效日期", copy=False, default=fields.Date.today()) end_date = fields.Date(string="失效日期") is_effect = fields.Boolean(string="是否生效", compute="_compute_is_effect") diff --git a/yuthon_trade/views/yuthon_trade_setting_views.xml b/yuthon_trade/views/yuthon_trade_setting_views.xml index 587196d81..d64b68c88 100644 --- a/yuthon_trade/views/yuthon_trade_setting_views.xml +++ b/yuthon_trade/views/yuthon_trade_setting_views.xml @@ -34,7 +34,7 @@ - +