From bf3a67196601dac316bacbd238325e18d08dfc55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Fri, 5 Jun 2026 15:06:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_ai_agent/models/ai_report_template.py | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/yuthon_ai_agent/models/ai_report_template.py b/yuthon_ai_agent/models/ai_report_template.py index 14fbe9ccb..2272fd5ba 100644 --- a/yuthon_ai_agent/models/ai_report_template.py +++ b/yuthon_ai_agent/models/ai_report_template.py @@ -225,6 +225,34 @@ class AiReportTemplate(models.Model): if self.model_id: self.model_name = self.model_id.model + @api.onchange('field_ids') + def _onchange_field_ids(self): + if self.field_ids: + self.field_list = json.dumps([f.name for f in self.field_ids], ensure_ascii=False) + self.field_labels = json.dumps( + {f.name: f.field_description for f in self.field_ids}, + ensure_ascii=False + ) + + # ===== create / write ===== + @api.model_create_multi + def create(self, vals_list): + for vals in vals_list: + if vals.get('model_id') and not vals.get('model_name'): + model = self.env['ir.model'].browse(vals['model_id']) + vals['model_name'] = model.model + if vals.get('field_ids'): + self._sync_field_list_from_ids(vals) + return super().create(vals_list) + + def write(self, vals): + if vals.get('model_id') and 'model_name' not in vals: + model = self.env['ir.model'].browse(vals['model_id']) + vals['model_name'] = model.model + if vals.get('field_ids'): + self._sync_field_list_from_ids(vals) + return super().write(vals) + @api.model def _sync_field_list_from_ids(self, vals): import json