diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 1d5d234cb..eb4781a70 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -849,7 +849,7 @@ class SoongWorkflowMixin(models.AbstractModel): "all_workflow_links": allowed_link_ids, "default_invalid_link_ids": invalid_links.ids, "default_allowed_issue_ids": [(6, 0, avoid_issue_ids)], - "avoid_issue_domain": repr([('id', 'in', avoid_issue_ids)]) if avoid_issue_ids else repr([('id', '=', False)]), + "avoid_issue_ids_list": avoid_issue_ids, }, } diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index d0d54bf05..e521f4321 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -5,7 +5,6 @@ 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__) @@ -49,19 +48,10 @@ class SoongWorkflowCommentWizard(models.TransientModel): if not self.is_avoid: self.avoid_issue_ids = [(5, 0, 0)] self.avoid_comment = False - - @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': - domain_str = self._context.get('avoid_issue_domain', '') - if domain_str: - doc = etree.fromstring(res['arch']) - for node in doc.xpath("//field[@name='avoid_issue_ids']"): - node.set('domain', domain_str) - res['arch'] = etree.tostring(doc, encoding='unicode') - return res + else: + ids = self._context.get('avoid_issue_ids_list', []) + if ids: + return {'domain': {'avoid_issue_ids': [('id', 'in', ids)]}} def _handle_avoidance(self): """回避处理:勾选回避且选了议题时,在对应议题中记录回避"""