Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion spp_graduation/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
"name": "OpenSPP Graduation Management",
"summary": "Manage graduation and exit from time-bound social protection programs",
"version": "19.0.2.0.0",
"version": "19.0.2.0.1",
"category": "OpenSPP",
"author": "OpenSPP.org",
"website": "https://github.com/OpenSPP/OpenSPP2",
Expand All @@ -23,6 +23,7 @@
"security/ir.model.access.csv",
"views/graduation_pathway_views.xml",
"views/graduation_assessment_views.xml",
"views/graduation_criteria_views.xml",
"views/graduation_menus.xml",
"data/graduation_data.xml",
],
Expand Down
4 changes: 4 additions & 0 deletions spp_graduation/readme/HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
### 19.0.2.0.1

- 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.

### 19.0.2.0.0

- Initial migration to OpenSPP2
125 changes: 125 additions & 0 deletions spp_graduation/views/graduation_criteria_views.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- Graduation Criteria Search View -->
<record id="view_graduation_criteria_search" model="ir.ui.view">
<field name="name">spp.graduation.criteria.search</field>
<field name="model">spp.graduation.criteria</field>
<field name="arch" type="xml">
<search string="Graduation Criteria">
<field name="name" />
<field name="code" />
<field name="pathway_id" />
<separator />
<filter
string="Required"
name="required"
domain="[('is_required', '=', True)]"
/>
<filter
string="Optional"
name="optional"
domain="[('is_required', '=', False)]"
/>
<separator />
<filter
string="Archived"
name="archived"
domain="[('active', '=', False)]"
/>
<group>
<filter
string="Pathway"
name="group_by_pathway"
context="{'group_by': 'pathway_id'}"
/>
<filter
string="Assessment Method"
name="group_by_method"
context="{'group_by': 'assessment_method'}"
/>
</group>
</search>
</field>
</record>

<!-- Graduation Criteria List View -->
<record id="view_graduation_criteria_tree" model="ir.ui.view">
<field name="name">spp.graduation.criteria.list</field>
<field name="model">spp.graduation.criteria</field>
<field name="arch" type="xml">
<list string="Graduation Criteria">
<field name="sequence" widget="handle" />
<field name="name" />
<field name="code" optional="show" />
<field name="pathway_id" />
<field name="assessment_method" />
<field name="weight" />
<field name="is_required" />
<field name="description" optional="hide" />
<field name="active" widget="boolean_toggle" />
</list>
</field>
</record>

<!-- Graduation Criteria Form View -->
<record id="view_graduation_criteria_form" model="ir.ui.view">
<field name="name">spp.graduation.criteria.form</field>
<field name="model">spp.graduation.criteria</field>
<field name="arch" type="xml">
<form string="Graduation Criterion">
<sheet>
<widget
name="web_ribbon"
title="Archived"
bg_color="text-bg-danger"
invisible="active"
/>
<div class="oe_title">
<h1>
<field name="name" placeholder="Criterion name..." />
</h1>
</div>
<group col="2">
<group name="main_info">
<field name="code" />
<field name="pathway_id" options="{'no_create': True}" />
<field name="sequence" />
<field name="active" invisible="1" />
</group>
<group name="scoring">
<field name="assessment_method" />
<field name="weight" />
<field name="is_required" widget="boolean_toggle" />
</group>
</group>
<group name="description_section" string="Description" col="2">
<field
name="description"
nolabel="1"
colspan="2"
placeholder="Describe the criterion and how it is assessed..."
/>
</group>
</sheet>
</form>
</field>
</record>

<!-- Graduation Criteria Action -->
<record id="action_graduation_criteria" model="ir.actions.act_window">
<field name="name">Graduation Criteria</field>
<field name="res_model">spp.graduation.criteria</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="view_graduation_criteria_search" />
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new Graduation Criterion
</p>
<p>
Define weighted criteria within a pathway, each with its own
assessment method (self-report, verification, computed, or
field observation) and a flag for whether it is required.
</p>
</field>
</record>
</odoo>
10 changes: 10 additions & 0 deletions spp_graduation/views/graduation_menus.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,16 @@
sequence="20"
/>

<!-- Graduation Criteria — direct child of root, visible to user role+ -->
<menuitem
id="menu_graduation_criteria"
name="Graduation Criteria"
parent="menu_graduation_root"
action="action_graduation_criteria"
sequence="20"
groups="group_spp_graduation_user"
/>

<!-- Configuration Menu -->
<menuitem
id="menu_graduation_configuration"
Expand Down
Loading