diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 6eb96f26f..974f11e94 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -5,6 +5,7 @@ from email.policy import default from odoo import fields, models, api from odoo.exceptions import UserError, ValidationError from datetime import datetime, date, time, timedelta +from lxml import etree import logging _logger = logging.getLogger(__name__) @@ -48,9 +49,17 @@ class SoongWorkflowCommentWizard(models.TransientModel): if not self.is_avoid: self.avoid_issue_ids = [(5, 0, 0)] self.avoid_comment = False - else: - domain = [('id', 'in', self.allowed_issue_ids.ids)] if self.allowed_issue_ids else [('id', '=', False)] - return {'domain': {'avoid_issue_ids': domain}} + + @api.model + def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False): + res = super(SoongWorkflowCommentWizard, self).fields_view_get( + view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu) + if view_type == 'form': + doc = etree.fromstring(res['arch']) + for node in doc.xpath("//field[@name='avoid_issue_ids']"): + node.set('domain', "[('id', 'in', allowed_issue_ids)]") + res['arch'] = etree.tostring(doc, encoding='unicode') + return res def _handle_avoidance(self): """回避处理:勾选回避且选了议题时,在对应议题中记录回避"""