@@ -825,6 +825,9 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
allowed_link_ids = [lid for lid in trans_link_ids if lid not in invalid_links.ids]
|
||||
default_trans_link_id = allowed_link_ids[0] if allowed_link_ids else trans_link_id
|
||||
|
||||
avoid_issue_ids = self._get_avoid_issue_ids()
|
||||
avoid_domain = repr([('id', 'in', avoid_issue_ids)]) if avoid_issue_ids else repr([('id', '=', False)])
|
||||
|
||||
return {
|
||||
"name": _("评论"),
|
||||
"type": "ir.actions.act_window",
|
||||
@@ -846,7 +849,8 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
"default_trans_link_id": default_trans_link_id,
|
||||
"all_workflow_links": allowed_link_ids,
|
||||
"default_invalid_link_ids": invalid_links.ids,
|
||||
"default_allowed_issue_ids": [(6, 0, self._get_avoid_issue_ids())],
|
||||
"default_allowed_issue_ids": [(6, 0, avoid_issue_ids)],
|
||||
"avoid_issue_domain": avoid_domain,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -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__)
|
||||
|
||||
@@ -40,8 +41,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
allowed_issue_ids = fields.Many2many('issue.library', 'soong_comment_wizard_allowed_issue_rel',
|
||||
'wizard_id', 'issue_id', string='可选议题')
|
||||
avoid_issue_ids = fields.Many2many('issue.library', 'soong_comment_wizard_avoid_issue_rel',
|
||||
'wizard_id', 'issue_id', string='回避议题',
|
||||
domain="[('id', 'in', allowed_issue_ids)]")
|
||||
'wizard_id', 'issue_id', string='回避议题')
|
||||
avoid_comment = fields.Char(string='回避意见')
|
||||
|
||||
@api.onchange('is_avoid')
|
||||
@@ -63,6 +63,19 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
for issue in self.avoid_issue_ids:
|
||||
issue.log_avoidance(self.env.user, self.avoid_comment or '')
|
||||
|
||||
@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
|
||||
|
||||
document_ids = fields.Many2many('ir.attachment', string="附件")
|
||||
return_link_id = fields.Many2one('trans.link', string='退回节点', ondelete='set null')
|
||||
invalid_link_ids = fields.Many2many(
|
||||
|
||||
Reference in New Issue
Block a user