@@ -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
|
||||
|
||||
Reference in New Issue
Block a user