为什么 api.depends 在非编辑模式下不能与 message_follower_ids 字段一起使用?如何解决?
Why does not api.depends work with the message_follower_ids field on non edit mode? How to fix it?
当我在文档中有关注者并且他们不是 Odoo 用户时,我想显示一条消息。所以我创建了两个计算字段,一个用于消息,另一个用于检查是否应显示消息。
class SaleOrder(models.Model):
_inherit = 'sale.order'
@api.multi
@api.depends('message_follower_ids')
def _compute_show_warning_msg(self):
partner_ids = self.env['res.users'].search([])\
.mapped('partner_id').mapped('id')
for record in self:
msg = _("""\nDocument contains no user followers.\n""")
for follower in record.message_follower_ids:
if follower.partner_id.id not in partner_ids:
record.show_warning_msg = True
record.warning_msg = msg
show_warning_msg = fields.Boolean(
compute='_compute_show_warning_msg',
string='Show warning message',
)
warning_msg = fields.Text(
compute='_compute_show_warning_msg',
string='Warning message',
)
但是当表单未处于编辑模式并且我添加或删除关注者时,不会触发计算方法。所以我必须按下 "Edit" 按钮和 "Save" 来触发方法。
我尝试在关注者的创建和取消链接方法上执行计算方法table,但表单视图没有刷新
有没有办法触发计算字段并刷新表单以显示消息?
任何解决方法或修复方法?
添加关注者的按钮如下所示:
<button aria-expanded="false" class="btn btn-sm btn-link dropdown-toggle" data-toggle="dropdown" title="Ningún seguidor">
<i class="fa fa-user"></i>
<span class="o_followers_count">0</span>
<span class="caret"></span>
</button>
所以我只是将 class oe_edit_only
添加到按钮并解决了问题。用户必须处于编辑模式才能看到按钮并添加或删除关注者:
<button aria-expanded="false" class="btn btn-sm btn-link dropdown-toggle oe_edit_only" data-toggle="dropdown" title="Ningún seguidor">
<i class="fa fa-user"></i>
<span class="o_followers_count">0</span>
<span class="caret"></span>
</button>
一个可能的解决方案,我将这段代码添加到表单视图中:
<field name="message_follower_ids" position="attributes">
<attribute name="class">oe_edit_only</attribute>
</field>
当我在文档中有关注者并且他们不是 Odoo 用户时,我想显示一条消息。所以我创建了两个计算字段,一个用于消息,另一个用于检查是否应显示消息。
class SaleOrder(models.Model):
_inherit = 'sale.order'
@api.multi
@api.depends('message_follower_ids')
def _compute_show_warning_msg(self):
partner_ids = self.env['res.users'].search([])\
.mapped('partner_id').mapped('id')
for record in self:
msg = _("""\nDocument contains no user followers.\n""")
for follower in record.message_follower_ids:
if follower.partner_id.id not in partner_ids:
record.show_warning_msg = True
record.warning_msg = msg
show_warning_msg = fields.Boolean(
compute='_compute_show_warning_msg',
string='Show warning message',
)
warning_msg = fields.Text(
compute='_compute_show_warning_msg',
string='Warning message',
)
但是当表单未处于编辑模式并且我添加或删除关注者时,不会触发计算方法。所以我必须按下 "Edit" 按钮和 "Save" 来触发方法。
我尝试在关注者的创建和取消链接方法上执行计算方法table,但表单视图没有刷新
有没有办法触发计算字段并刷新表单以显示消息?
任何解决方法或修复方法?
添加关注者的按钮如下所示:
<button aria-expanded="false" class="btn btn-sm btn-link dropdown-toggle" data-toggle="dropdown" title="Ningún seguidor">
<i class="fa fa-user"></i>
<span class="o_followers_count">0</span>
<span class="caret"></span>
</button>
所以我只是将 class oe_edit_only
添加到按钮并解决了问题。用户必须处于编辑模式才能看到按钮并添加或删除关注者:
<button aria-expanded="false" class="btn btn-sm btn-link dropdown-toggle oe_edit_only" data-toggle="dropdown" title="Ningún seguidor">
<i class="fa fa-user"></i>
<span class="o_followers_count">0</span>
<span class="caret"></span>
</button>
一个可能的解决方案,我将这段代码添加到表单视图中:
<field name="message_follower_ids" position="attributes">
<attribute name="class">oe_edit_only</attribute>
</field>