Odoo:search_count不显示存档记录

问题描述 投票:0回答:3

我有一个名为job_count的按钮,它将作业链接到设备。它仅显示作业的活动记录,但是,我想显示所有活动的计数以及与设备关联的作业的存档记录。请帮助。

  def _get_job_count(self):
      for record in self:
          j_count = self.env['job_module'].sudo().search_count([('equipment_id', 'in', self.ids)]])
          record.job_count= j_count

python odoo odoo-10 odoo-11 odoo-12
3个回答
2
投票

活动切换记录的全局可见性,如果将active设置为False,则该记录在大多数搜索和列表中都不可见。

您可以通过在搜索域中添加以下条件来手动告诉搜索方法来查找已归档的记录:

 '|', ('active','=',True),  ('active','=',False)

[示例

search_count([('equipment_id', 'in', self.ids), '|', ('active','=',True),  ('active','=',False)])

1
投票

您只需要添加上下文active_test = False

 def _get_job_count(self):
      for record in self:
          j_count = self.env['job_module'].sudo().with_context(active_test=False).search_count([('equipment_id', 'in', self.ids)]])
          record.job_count= j_count

0
投票

我通过分别获取活动记录和存档记录的数量,然后将它们加在一起来解决。

  def _get_job_count(self):
      for record in self:
          j_count1 = self.env['job_module'].sudo().search_count([('active','=',False), 
            ('equipment_id', 'in', self.ids)]])
          j_count2 = self.env['job_module'].sudo().search_count([('active','=',True), 
            ('equipment_id', 'in', self.ids)]])
          record.job_count= j_count1 + j_count2 
© www.soinside.com 2019 - 2024. All rights reserved.