Skip to content

Commit 6c326f0

Browse files
committed
Merge branch '533-17.0.1.2.1' into openspp-17.0.1.2.1
2 parents 052b8db + 762d840 commit 6c326f0

File tree

8 files changed

+145
-0
lines changed

8 files changed

+145
-0
lines changed

spp_manual_eligibility/__manifest__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
],
1818
"data": [
1919
"views/program_view.xml",
20+
"views/program_membership_view.xml",
21+
"views/cycle_view.xml",
2022
"wizard/create_program_wizard.xml",
2123
],
2224
"assets": {},

spp_manual_eligibility/models/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@
22

33
from . import eligibility_manager
44
from . import program
5+
from . import program_membership
6+
from . import cycle
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.
2+
import logging
3+
4+
from odoo import fields, models
5+
6+
_logger = logging.getLogger(__name__)
7+
8+
9+
class G2PCycle(models.Model):
10+
_inherit = "g2p.cycle"
11+
12+
is_manual_eligibility = fields.Boolean(related="program_id.is_manual_eligibility")
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.
2+
import logging
3+
4+
from odoo import fields, models
5+
6+
_logger = logging.getLogger(__name__)
7+
8+
9+
class G2PProgramMembership(models.Model):
10+
_inherit = "g2p.program_membership"
11+
12+
is_manual_eligibility = fields.Boolean(compute="_compute_is_manual_eligibility")
13+
14+
def _compute_is_manual_eligibility(self):
15+
for rec in self:
16+
is_manual_eligibility = False
17+
curr_eligibility_manager = self.env["g2p.program_membership.manager.default"].search(
18+
[("program_id", "=", rec.program_id.id), ("is_manual_eligibility", "=", True)]
19+
)
20+
if curr_eligibility_manager:
21+
is_manual_eligibility = True
22+
23+
rec.is_manual_eligibility = is_manual_eligibility
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import test_manual_eligibility
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
from odoo import fields
2+
from odoo.tests import TransactionCase
3+
4+
5+
class TestManualEligibility(TransactionCase):
6+
@classmethod
7+
def setUpClass(cls):
8+
super().setUpClass()
9+
cls.registrant_1 = cls.env["res.partner"].create(
10+
{
11+
"name": "Registrant 1 [MANUAL ELIGIBILITY TEST]",
12+
"is_registrant": True,
13+
"is_group": True,
14+
}
15+
)
16+
cls.registrant_2 = cls.env["res.partner"].create(
17+
{
18+
"name": "Registrant 2 [MANUAL ELIGIBILITY TEST]",
19+
"is_registrant": True,
20+
"is_group": True,
21+
}
22+
)
23+
cls.program = cls.env["g2p.program"].create({"name": "Program 1 [MANUAL ELIGIBILITY TEST]"})
24+
cls.manual_eligibility_manager = cls.env["g2p.program_membership.manager.default"].create(
25+
{
26+
"name": "Entitlement Manager Cash 1 [MANUAL ELIGIBILITY TEST]",
27+
"is_manual_eligibility": True,
28+
"eligibility_domain": None,
29+
"program_id": cls.program.id,
30+
}
31+
)
32+
33+
def test_01_check_if_manual_eligibility(self):
34+
self.program._compute_is_manual_eligibility()
35+
self.assertEqual(self.program.is_manual_eligibility, True, "Correct value")
36+
self.assertEqual(len(self.program.program_membership_ids), 0, "Start without members")
37+
vals = [
38+
{
39+
"partner_id": self.registrant_1.id,
40+
"program_id": self.program.id,
41+
"state": "enrolled",
42+
"enrollment_date": fields.Datetime.now(),
43+
},
44+
{
45+
"partner_id": self.registrant_2.id,
46+
"program_id": self.program.id,
47+
"state": "enrolled",
48+
"enrollment_date": fields.Datetime.now(),
49+
},
50+
]
51+
self.env["g2p.program_membership"].create(vals)
52+
self.assertEqual(len(self.program.program_membership_ids), 2, "Finish with members")
53+
self.program.program_membership_ids[0]._compute_is_manual_eligibility()
54+
self.assertEqual(self.program.program_membership_ids[0].is_manual_eligibility, True, "Correct value")
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!--
3+
Part of OpenSPP. See LICENSE file for full copyright and licensing details.
4+
-->
5+
<odoo>
6+
<record id="view_cycle_manual_eligibility_form" model="ir.ui.view">
7+
<field name="name">view_cycle_manual_eligibility_form</field>
8+
<field name="model">g2p.cycle</field>
9+
<field name="priority">1010</field>
10+
<field name="inherit_id" ref="g2p_programs.view_cycle_form" />
11+
<field name="arch" type="xml">
12+
<xpath expr="//field[@name='locked']" position="before">
13+
<field name="is_manual_eligibility" invisible="1" />
14+
</xpath>
15+
<xpath expr="//button[@name='check_eligibility']" position="attributes">
16+
<attribute name="invisible">
17+
is_manual_eligibility or state not in ('draft','enrolled')
18+
</attribute>
19+
</xpath>
20+
</field>
21+
</record>
22+
23+
</odoo>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!--
3+
Part of OpenSPP. See LICENSE file for full copyright and licensing details.
4+
-->
5+
<odoo>
6+
<record id="view_program_membership_manual_eligibility_form" model="ir.ui.view">
7+
<field name="name">view_program_membership_manual_eligibility_form</field>
8+
<field name="model">g2p.program_membership</field>
9+
<field name="priority">1010</field>
10+
<field name="inherit_id" ref="g2p_programs.view_program_membership_form" />
11+
<field name="arch" type="xml">
12+
<xpath expr="//field[@name='is_group']" position="after">
13+
<field name="is_manual_eligibility" invisible="1" />
14+
</xpath>
15+
<xpath expr="//button[@name='verify_eligibility']" position="attributes">
16+
<attribute name="invisible">
17+
is_manual_eligibility or state not in ('draft','enrolled')
18+
</attribute>
19+
</xpath>
20+
<xpath expr="//button[@name='enroll_eligible_registrants']" position="attributes">
21+
<attribute name="invisible">
22+
is_manual_eligibility or state != 'draft'
23+
</attribute>
24+
</xpath>
25+
</field>
26+
</record>
27+
28+
</odoo>

0 commit comments

Comments
 (0)