From c0a25cf8def0c505f358d28aa0c22ad8bb76f7fa Mon Sep 17 00:00:00 2001 From: Thibault Francois Date: Sat, 13 Jun 2020 15:16:13 +0200 Subject: [PATCH] [FIX] beesdoo_easy_my_coop: define properly search is_worker Define properly the search function for is_worker Find the share line with a product allow working and then find all the partner link to those lines --- beesdoo_easy_my_coop/models/res_partner.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/beesdoo_easy_my_coop/models/res_partner.py b/beesdoo_easy_my_coop/models/res_partner.py index c6e72c0..0484836 100644 --- a/beesdoo_easy_my_coop/models/res_partner.py +++ b/beesdoo_easy_my_coop/models/res_partner.py @@ -36,6 +36,7 @@ class Partner(models.Model): "share_ids", "share_ids.share_product_id", "share_ids.share_product_id.default_code", + "share_ids.share_product_id.allow_working", "share_ids.share_number", ) def _compute_is_worker(self): @@ -47,13 +48,18 @@ class Partner(models.Model): share_type = rec._cooperator_share_type() if share_type: rec.is_worker = share_type.allow_working - rec.worker_store = share_type.allow_working else: rec.is_worker = False - rec.worker_store = False def _search_worker(self, operator, value): - return [("worker_store", operator, value)] + lines = self.env['share.line'].search( + [('share_product_id.allow_working', '=', 'True')] + ) + partner_ids = lines.mapped('partner_id').ids + if (operator, value) in [('=', True), ('!=', False)]: + return [('id', 'in', partner_ids)] + else: + return [('id', 'not in', partner_ids)] @api.depends( "cooperative_status_ids",