Skip to content

Commit ea026de

Browse files
authored
Merge pull request #190 from OpenSPP/fix/990-graduation-criteria-menu
fix(spp_graduation): expose Graduation Criteria via menu + standalone views
2 parents e209326 + 8a28e4a commit ea026de

8 files changed

Lines changed: 175 additions & 5 deletions

File tree

spp_graduation/README.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,20 @@ Test 10: Edge Cases
632632
Changelog
633633
=========
634634

635+
19.0.2.0.1
636+
~~~~~~~~~~
637+
638+
- fix(views): add a "Graduation Criteria" menu item directly under the
639+
Graduation root, plus a list/form/search view and action for
640+
``spp.graduation.criteria``. The model and ACL were already shipped,
641+
but no UI surface existed — criteria could only be edited indirectly
642+
through the pathway form. Visible to ``group_spp_graduation_user`` and
643+
above.
644+
- fix(security): rename the module's ``res.groups`` and
645+
``res.groups.privilege`` records from generic "User" / "Manager" to
646+
"Graduation User" / "Graduation Manager" so they are unambiguous in
647+
the Settings → Users access-rights UI.
648+
635649
19.0.2.0.0
636650
~~~~~~~~~~
637651

spp_graduation/__manifest__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{
33
"name": "OpenSPP Graduation Management",
44
"summary": "Manage graduation and exit from time-bound social protection programs",
5-
"version": "19.0.2.0.0",
5+
"version": "19.0.2.0.1",
66
"category": "OpenSPP",
77
"author": "OpenSPP.org",
88
"website": "https://github.com/OpenSPP/OpenSPP2",
@@ -23,6 +23,7 @@
2323
"security/ir.model.access.csv",
2424
"views/graduation_pathway_views.xml",
2525
"views/graduation_assessment_views.xml",
26+
"views/graduation_criteria_views.xml",
2627
"views/graduation_menus.xml",
2728
"data/graduation_data.xml",
2829
],

spp_graduation/readme/HISTORY.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
### 19.0.2.0.1
2+
3+
- fix(views): add a "Graduation Criteria" menu item directly under the Graduation root, plus a list/form/search view and action for `spp.graduation.criteria`. The model and ACL were already shipped, but no UI surface existed — criteria could only be edited indirectly through the pathway form. Visible to `group_spp_graduation_user` and above.
4+
- fix(security): rename the module's `res.groups` and `res.groups.privilege` records from generic "User" / "Manager" to "Graduation User" / "Graduation Manager" so they are unambiguous in the Settings → Users access-rights UI.
5+
16
### 19.0.2.0.0
27

38
- Initial migration to OpenSPP2

spp_graduation/security/graduation_security.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<odoo>
33
<!-- User Group -->
44
<record id="group_spp_graduation_user" model="res.groups">
5-
<field name="name">User</field>
5+
<field name="name">Graduation User</field>
66
<field name="privilege_id" ref="privilege_graduation_user" />
77
<field
88
name="comment"
@@ -12,7 +12,7 @@
1212

1313
<!-- Manager Group -->
1414
<record id="group_spp_graduation_manager" model="res.groups">
15-
<field name="name">Manager</field>
15+
<field name="name">Graduation Manager</field>
1616
<field name="privilege_id" ref="privilege_graduation_manager" />
1717
<field
1818
name="comment"

spp_graduation/security/privileges.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55

66
<!-- User privilege -->
77
<record id="privilege_graduation_user" model="res.groups.privilege">
8-
<field name="name">User</field>
8+
<field name="name">Graduation User</field>
99
<field name="category_id" ref="spp_security.category_spp_graduation" />
1010
<field name="sequence">10</field>
1111
</record>
1212

1313
<!-- Manager privilege -->
1414
<record id="privilege_graduation_manager" model="res.groups.privilege">
15-
<field name="name">Manager</field>
15+
<field name="name">Graduation Manager</field>
1616
<field name="category_id" ref="spp_security.category_spp_graduation" />
1717
<field name="sequence">20</field>
1818
</record>

spp_graduation/static/description/index.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,6 +1005,21 @@ <h2>Changelog</h2>
10051005
</div>
10061006
</div>
10071007
<div class="section" id="section-1">
1008+
<h1>19.0.2.0.1</h1>
1009+
<ul class="simple">
1010+
<li>fix(views): add a “Graduation Criteria” menu item directly under the
1011+
Graduation root, plus a list/form/search view and action for
1012+
<tt class="docutils literal">spp.graduation.criteria</tt>. The model and ACL were already shipped,
1013+
but no UI surface existed — criteria could only be edited indirectly
1014+
through the pathway form. Visible to <tt class="docutils literal">group_spp_graduation_user</tt> and
1015+
above.</li>
1016+
<li>fix(security): rename the module’s <tt class="docutils literal">res.groups</tt> and
1017+
<tt class="docutils literal">res.groups.privilege</tt> records from generic “User” / “Manager” to
1018+
“Graduation User” / “Graduation Manager” so they are unambiguous in
1019+
the Settings → Users access-rights UI.</li>
1020+
</ul>
1021+
</div>
1022+
<div class="section" id="section-2">
10081023
<h1>19.0.2.0.0</h1>
10091024
<ul class="simple">
10101025
<li>Initial migration to OpenSPP2</li>
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<odoo>
3+
<!-- Graduation Criteria Search View -->
4+
<record id="view_graduation_criteria_search" model="ir.ui.view">
5+
<field name="name">spp.graduation.criteria.search</field>
6+
<field name="model">spp.graduation.criteria</field>
7+
<field name="arch" type="xml">
8+
<search string="Graduation Criteria">
9+
<field name="name" />
10+
<field name="code" />
11+
<field name="pathway_id" />
12+
<separator />
13+
<filter
14+
string="Required"
15+
name="required"
16+
domain="[('is_required', '=', True)]"
17+
/>
18+
<filter
19+
string="Optional"
20+
name="optional"
21+
domain="[('is_required', '=', False)]"
22+
/>
23+
<separator />
24+
<filter
25+
string="Archived"
26+
name="archived"
27+
domain="[('active', '=', False)]"
28+
/>
29+
<group>
30+
<filter
31+
string="Pathway"
32+
name="group_by_pathway"
33+
context="{'group_by': 'pathway_id'}"
34+
/>
35+
<filter
36+
string="Assessment Method"
37+
name="group_by_method"
38+
context="{'group_by': 'assessment_method'}"
39+
/>
40+
</group>
41+
</search>
42+
</field>
43+
</record>
44+
45+
<!-- Graduation Criteria List View -->
46+
<record id="view_graduation_criteria_tree" model="ir.ui.view">
47+
<field name="name">spp.graduation.criteria.list</field>
48+
<field name="model">spp.graduation.criteria</field>
49+
<field name="arch" type="xml">
50+
<list string="Graduation Criteria">
51+
<field name="sequence" widget="handle" />
52+
<field name="name" />
53+
<field name="code" optional="show" />
54+
<field name="pathway_id" />
55+
<field name="assessment_method" />
56+
<field name="weight" />
57+
<field name="is_required" />
58+
<field name="description" optional="hide" />
59+
<field name="active" widget="boolean_toggle" />
60+
</list>
61+
</field>
62+
</record>
63+
64+
<!-- Graduation Criteria Form View -->
65+
<record id="view_graduation_criteria_form" model="ir.ui.view">
66+
<field name="name">spp.graduation.criteria.form</field>
67+
<field name="model">spp.graduation.criteria</field>
68+
<field name="arch" type="xml">
69+
<form string="Graduation Criterion">
70+
<sheet>
71+
<widget
72+
name="web_ribbon"
73+
title="Archived"
74+
bg_color="text-bg-danger"
75+
invisible="active"
76+
/>
77+
<div class="oe_title">
78+
<h1>
79+
<field name="name" placeholder="Criterion name..." />
80+
</h1>
81+
</div>
82+
<group col="2">
83+
<group name="main_info">
84+
<field name="code" />
85+
<field name="pathway_id" options="{'no_create': True}" />
86+
<field name="sequence" />
87+
<field name="active" invisible="1" />
88+
</group>
89+
<group name="scoring">
90+
<field name="assessment_method" />
91+
<field name="weight" />
92+
<field name="is_required" widget="boolean_toggle" />
93+
</group>
94+
</group>
95+
<group name="description_section" string="Description" col="2">
96+
<field
97+
name="description"
98+
nolabel="1"
99+
colspan="2"
100+
placeholder="Describe the criterion and how it is assessed..."
101+
/>
102+
</group>
103+
</sheet>
104+
</form>
105+
</field>
106+
</record>
107+
108+
<!-- Graduation Criteria Action -->
109+
<record id="action_graduation_criteria" model="ir.actions.act_window">
110+
<field name="name">Graduation Criteria</field>
111+
<field name="res_model">spp.graduation.criteria</field>
112+
<field name="view_mode">list,form</field>
113+
<field name="search_view_id" ref="view_graduation_criteria_search" />
114+
<field name="help" type="html">
115+
<p class="o_view_nocontent_smiling_face">
116+
Create a new Graduation Criterion
117+
</p>
118+
<p>
119+
Define weighted criteria within a pathway, each with its own
120+
assessment method (self-report, verification, computed, or
121+
field observation) and a flag for whether it is required.
122+
</p>
123+
</field>
124+
</record>
125+
</odoo>

spp_graduation/views/graduation_menus.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@
3333
sequence="20"
3434
/>
3535

36+
<!-- Graduation Criteria — direct child of root, visible to user role+ -->
37+
<menuitem
38+
id="menu_graduation_criteria"
39+
name="Graduation Criteria"
40+
parent="menu_graduation_root"
41+
action="action_graduation_criteria"
42+
sequence="20"
43+
groups="group_spp_graduation_user"
44+
/>
45+
3646
<!-- Configuration Menu -->
3747
<menuitem
3848
id="menu_graduation_configuration"

0 commit comments

Comments
 (0)