Browse Source

[FIX] b_shift,b_emc,macavrac_base: is_worker computed field

pull/157/head
Vincent Van Rossem 4 years ago
parent
commit
8c4e8089d7
  1. 3
      beesdoo_easy_my_coop/__manifest__.py
  2. 18
      beesdoo_easy_my_coop/models/res_partner.py
  3. 8
      beesdoo_easy_my_coop/tests/test_res_partner.py
  4. 16
      beesdoo_easy_my_coop/views/res_partner.xml
  5. 7
      beesdoo_shift/models/res_partner.py
  6. 3
      beesdoo_shift/views/cooperative_status.xml
  7. 8
      macavrac_base/models/res_partner.py

3
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',

18
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",

8
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)

16
beesdoo_easy_my_coop/views/res_partner.xml

@ -0,0 +1,16 @@
<odoo>
<record model="ir.ui.view" id="super_coop_partner_inherited_view_form">
<field name="name">Partner Super Coop</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="beesdoo_shift.super_coop_partner_inherited_view_form"/>
<field name="priority">50</field>
<field name="arch" type="xml">
<field name="worker_store" position="attributes">
<attribute name="invisible">1</attribute>
</field>
<field name="is_worker" position="attributes">
<attribute name="invisible">0</attribute>
</field>
</field>
</record>
</odoo>

7
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):
"""

3
beesdoo_shift/views/cooperative_status.xml

@ -37,7 +37,8 @@
</header>
</xpath>
<xpath expr="//field[@name='type']" position="before">
<field name="is_worker"/>
<field name="worker_store"/>
<field name="is_worker" invisible="1"/>
<field name="can_shop"/>
</xpath>
<xpath expr="//notebook" position="inside">

8
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')]
Loading…
Cancel
Save