diff --git a/beesdoo_easy_my_coop/__manifest__.py b/beesdoo_easy_my_coop/__manifest__.py index c3e3ad4..949c8a1 100644 --- a/beesdoo_easy_my_coop/__manifest__.py +++ b/beesdoo_easy_my_coop/__manifest__.py @@ -26,7 +26,8 @@ 'views/res_company.xml', 'views/subscription_request.xml', 'views/subscription_templates.xml', - 'views/product.xml' + 'views/product.xml', + 'views/res_partner.xml' ], 'demo': [ 'demo/product_share.xml', diff --git a/beesdoo_easy_my_coop/models/res_partner.py b/beesdoo_easy_my_coop/models/res_partner.py index de69114..4644e3a 100644 --- a/beesdoo_easy_my_coop/models/res_partner.py +++ b/beesdoo_easy_my_coop/models/res_partner.py @@ -12,12 +12,6 @@ class Partner(models.Model): string="Confirmed presence to info session", default=False, ) - is_worker = fields.Boolean( - compute="_is_worker", - search="_search_worker", - readonly=True, - related="" - ) def _cooperator_share_type(self): """ @@ -33,12 +27,9 @@ class Partner(models.Model): return share_type @api.depends( - 'share_ids', - 'share_ids.share_product_id', - 'share_ids.share_product_id.default_code', - 'share_ids.share_number', + "cooperator_type" ) - def _is_worker(self): + def _compute_is_worker(self): """ Return True if the partner can participate tho the shift system. This is defined on the share type. @@ -47,13 +38,8 @@ 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)] @api.depends( "cooperative_status_ids", diff --git a/beesdoo_easy_my_coop/tests/test_res_partner.py b/beesdoo_easy_my_coop/tests/test_res_partner.py index 742c487..a4603fd 100644 --- a/beesdoo_easy_my_coop/tests/test_res_partner.py +++ b/beesdoo_easy_my_coop/tests/test_res_partner.py @@ -143,7 +143,7 @@ class TestResPartner(TransactionCase): "beesdoo_base.res_partner_cooperator_1_demo" ) # Run computed field - coop1._is_worker() + coop1._compute_is_worker() self.assertEqual(coop1.is_worker, True) def test_is_worker_share_b(self): @@ -154,7 +154,7 @@ class TestResPartner(TransactionCase): "beesdoo_base.res_partner_cooperator_2_demo" ) # Run computed field - coop2._is_worker() + coop2._compute_is_worker() self.assertEqual(coop2.is_worker, False) def test_search_worker(self): @@ -169,8 +169,8 @@ class TestResPartner(TransactionCase): "beesdoo_base.res_partner_cooperator_2_demo" ) # Run computed field - coop1._is_worker() - coop2._is_worker() + coop1._compute_is_worker() + coop2._compute_is_worker() workers = self.env["res.partner"].search([("is_worker", "=", True)]) self.assertIn(coop1, workers) self.assertNotIn(coop2, workers) diff --git a/beesdoo_easy_my_coop/views/res_partner.xml b/beesdoo_easy_my_coop/views/res_partner.xml new file mode 100644 index 0000000..a8ccbd7 --- /dev/null +++ b/beesdoo_easy_my_coop/views/res_partner.xml @@ -0,0 +1,16 @@ + + + Partner Super Coop + res.partner + + 50 + + + 1 + + + 0 + + + + diff --git a/beesdoo_shift/models/res_partner.py b/beesdoo_shift/models/res_partner.py index 7cefcbe..cdee22a 100644 --- a/beesdoo_shift/models/res_partner.py +++ b/beesdoo_shift/models/res_partner.py @@ -13,7 +13,7 @@ class ResPartner(models.Model): _inherit = 'res.partner' worker_store = fields.Boolean(default=False) - is_worker = fields.Boolean(related="worker_store", string="Worker", readonly=False) + is_worker = fields.Boolean(string="Worker", compute="_compute_is_worker", store=True) can_shop = fields.Boolean(string="Is worker allowed to shop?", compute="_compute_can_shop", store=True) cooperative_status_ids = fields.One2many('cooperative.status', 'cooperator_id', readonly=True) super = fields.Boolean(related='cooperative_status_ids.super', string="Super Cooperative", readonly=True, store=True) @@ -25,6 +25,11 @@ class ResPartner(models.Model): extension_start_time = fields.Date(related='cooperative_status_ids.extension_start_time', string="Extension Start Day", readonly=True, store=True) subscribed_shift_ids = fields.Many2many('beesdoo.shift.template') + @api.depends("worker_store") + def _compute_is_worker(self): + for rec in self: + rec.is_worker = rec.worker_store + @api.depends("cooperative_status_ids") def _compute_can_shop(self): """ diff --git a/beesdoo_shift/views/cooperative_status.xml b/beesdoo_shift/views/cooperative_status.xml index aea4327..5bc97cc 100644 --- a/beesdoo_shift/views/cooperative_status.xml +++ b/beesdoo_shift/views/cooperative_status.xml @@ -37,7 +37,8 @@ - + + diff --git a/macavrac_base/models/res_partner.py b/macavrac_base/models/res_partner.py index 0c5e4e2..9e5dd42 100644 --- a/macavrac_base/models/res_partner.py +++ b/macavrac_base/models/res_partner.py @@ -28,7 +28,7 @@ class Partner(models.Model): comment_request = fields.Char(string="Commentaire") email_sent = fields.Boolean(string="Email envoyé") - is_worker = fields.Boolean(compute="_compute_is_worker", search="_search_is_worker", string="is Worker", readonly=True, related="") + is_worker = fields.Boolean(compute="_compute_is_worker", string="is Worker", readonly=True, store=True) @api.depends('share_qty') @@ -41,9 +41,3 @@ class Partner(models.Model): def _compute_is_worker(self): for rec in self: rec.is_worker = rec.cooperator_type == 'share_b' - - def _search_is_worker(self, operator, value): - if (operator == '=' and value) or (operator == '!=' and not value): - return [('cooperator_type', '=', 'share_b')] - else: - return [('cooperator_type', '!=', 'share_b')]