From 53719aaba127ecb7dced518108a0e921a0682321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Taymans?= Date: Fri, 8 May 2020 16:18:02 +0200 Subject: [PATCH] [CHG] b_base: Remove cooperator_type info This new b_base module focus on adding member cards and eater functionality. Constrain about number of eater should be customise for each cooperative. And if the cooperative is using easy_my_coop module the maximum number of eater should be specified on the share product. Also cooperator_type has no meaning here. For cooperative that uses easy_my_coop, cooperator_type is a computed field based on the share that the cooperator owns. beesdoo_easy_my_coop and beesdoo_worker_status will be modified for taking this into account. --- beesdoo_base/__manifest__.py | 1 + beesdoo_base/demo/eaters.xml | 43 ++++++++++++++++++++++++++++++++++ beesdoo_base/models/partner.py | 35 ++++++--------------------- beesdoo_base/views/partner.xml | 20 ---------------- 4 files changed, 51 insertions(+), 48 deletions(-) create mode 100644 beesdoo_base/demo/eaters.xml diff --git a/beesdoo_base/__manifest__.py b/beesdoo_base/__manifest__.py index dd0c497..2ad0665 100644 --- a/beesdoo_base/__manifest__.py +++ b/beesdoo_base/__manifest__.py @@ -34,5 +34,6 @@ 'installable': True, 'demo': [ 'demo/cooperators.xml', + 'demo/eaters.xml', ] } diff --git a/beesdoo_base/demo/eaters.xml b/beesdoo_base/demo/eaters.xml new file mode 100644 index 0000000..13dc5f3 --- /dev/null +++ b/beesdoo_base/demo/eaters.xml @@ -0,0 +1,43 @@ + + + + + Gilles Eaterbeek + Gilles + Eaterbeek + eater + + + + + + Constant Eateration + Constant + Eateration + eater + + + + + + Alexander G. Eaterphone + Alexander G. + Eaterphone + eater + + + + + + Tim Eaternet + Tim + Eaternet + eater + + + + + diff --git a/beesdoo_base/models/partner.py b/beesdoo_base/models/partner.py index 9f0e35b..34a0e02 100644 --- a/beesdoo_base/models/partner.py +++ b/beesdoo_base/models/partner.py @@ -12,40 +12,19 @@ class Partner(models.Model): barcode = fields.Char(compute="_get_bar_code", string='Barcode', store=True) parent_barcode = fields.Char(compute="_get_bar_code", string='Parent Barcode', store=True) member_card_ids = fields.One2many('member.card', 'partner_id') - country_id = fields.Many2one(required=True) member_card_to_be_printed = fields.Boolean('Print BEES card?') last_printed = fields.Datetime('Last printed on') - cooperator_type = fields.Selection([('share_a', 'Share A'), ('share_b', 'Share B'), ('share_c', 'Share C')], store=True, compute=None) - @api.depends('parent_eater_id', 'parent_eater_id.barcode', 'eater', 'member_card_ids') def _get_bar_code(self): - self.ensure_one() - if self.eater == 'eater': - self.parent_barcode = self.parent_eater_id.barcode - elif self.member_card_ids: - for c in self.member_card_ids: - if c.valid: - self.barcode = c.barcode - - @api.constrains('child_eater_ids', 'parent_eater_id') - def _check_number_of_eaters(self): - """The owner of an A share can have a maximum of two eaters but - the owner of a B share can have a maximum of three eaters. - """ - self.ensure_one() - # Get the default_code of the share for the current eater and his parent - share_type_code = self.cooperator_type - parent_share_type_code = self.parent_eater_id.cooperator_type - # Raise exception - if share_type_code == 'share_b' or parent_share_type_code == 'share_b': - if len(self.child_eater_ids) > 3 or len(self.parent_eater_id.child_eater_ids) > 3: - raise ValidationError(_('You can only set three additional eaters per worker')) - else: - if len(self.child_eater_ids) > 2 or len(self.parent_eater_id.child_eater_ids) > 2: - raise ValidationError(_('You can only set two additional eaters per worker')) - + for rec in self: + if rec.eater == 'eater': + rec.parent_barcode = rec.parent_eater_id.barcode + elif rec.member_card_ids: + for c in rec.member_card_ids: + if c.valid: + rec.barcode = c.barcode @api.multi def write(self, values): diff --git a/beesdoo_base/views/partner.xml b/beesdoo_base/views/partner.xml index efa8d96..6a2c6a7 100644 --- a/beesdoo_base/views/partner.xml +++ b/beesdoo_base/views/partner.xml @@ -19,19 +19,12 @@ res.partner - - - - - {'invisible': - [('cooperator_type', '=', 'share_a')]} - @@ -87,19 +80,6 @@ - - beesdoo.partner.search.view - res.partner - - - - - - - - - -