118 lines
5.7 KiB
XML
118 lines
5.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<!-- ============================================================ -->
|
|
<!-- Progress Views (Admin View for Tracking Completions) -->
|
|
<!-- ============================================================ -->
|
|
|
|
<!-- Progress Tree View -->
|
|
<record id="view_genius_progress_tree" model="ir.ui.view">
|
|
<field name="name">genius.progress.tree</field>
|
|
<field name="model">genius.progress</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="User Progress" decoration-success="state in ('done', 'verified')" decoration-warning="state=='skipped'" decoration-info="state=='in_progress'">
|
|
<field name="user_id"/>
|
|
<field name="topic_id"/>
|
|
<field name="plan_id" optional="hide"/>
|
|
<field name="state"/>
|
|
<field name="date_started"/>
|
|
<field name="date_completed"/>
|
|
<field name="duration_display" string="Duration"/>
|
|
<field name="completion_count" optional="show"/>
|
|
<field name="quiz_score" optional="show"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Progress Form View -->
|
|
<record id="view_genius_progress_form" model="ir.ui.view">
|
|
<field name="name">genius.progress.form</field>
|
|
<field name="model">genius.progress</field>
|
|
<field name="arch" type="xml">
|
|
<form string="User Progress">
|
|
<header>
|
|
<button name="action_verify" type="object" string="Verify Completion"
|
|
class="btn-primary" states="done"
|
|
groups="tour_genius.group_genius_admin"/>
|
|
<button name="action_reset" type="object" string="Reset Progress"
|
|
class="btn-secondary"
|
|
groups="tour_genius.group_genius_admin"/>
|
|
<field name="state" widget="statusbar" statusbar_visible="pending,in_progress,skipped,done,verified"/>
|
|
</header>
|
|
<sheet>
|
|
<group>
|
|
<group string="User Information">
|
|
<field name="user_id"/>
|
|
<field name="topic_id"/>
|
|
<field name="plan_id"/>
|
|
</group>
|
|
<group string="Progress Details">
|
|
<field name="date_started"/>
|
|
<field name="date_completed"/>
|
|
<field name="date_skipped" attrs="{'invisible': [('date_skipped', '=', False)]}"/>
|
|
<field name="date_verified"/>
|
|
<field name="duration_display"/>
|
|
<field name="completion_count"/>
|
|
<field name="time_spent_seconds" groups="base.group_no_one"/>
|
|
</group>
|
|
</group>
|
|
<group string="Quiz Results" attrs="{'invisible': [('quiz_score', '=', 0)]}">
|
|
<field name="quiz_score"/>
|
|
<field name="quiz_attempt_id"/>
|
|
</group>
|
|
<group string="Trainer Notes">
|
|
<field name="notes" placeholder="Add notes about this user's progress..."/>
|
|
</group>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Progress Search View -->
|
|
<record id="view_genius_progress_search" model="ir.ui.view">
|
|
<field name="name">genius.progress.search</field>
|
|
<field name="model">genius.progress</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search Progress">
|
|
<field name="user_id"/>
|
|
<field name="topic_id"/>
|
|
<field name="plan_id"/>
|
|
<filter name="completed" string="Completed" domain="[('state', '=', 'done')]"/>
|
|
<filter name="skipped" string="Skipped" domain="[('state', '=', 'skipped')]"/>
|
|
<filter name="in_progress" string="In Progress" domain="[('state', '=', 'in_progress')]"/>
|
|
<filter name="verified" string="Certified" domain="[('state', '=', 'verified')]"/>
|
|
<separator/>
|
|
<group expand="0" string="Group By">
|
|
<filter string="User" name="group_by_user" context="{'group_by': 'user_id'}"/>
|
|
<filter string="Tour" name="group_by_tour" context="{'group_by': 'topic_id'}"/>
|
|
<filter string="Status" name="group_by_state" context="{'group_by': 'state'}"/>
|
|
<filter string="Completion Date" name="group_by_completed" context="{'group_by': 'date_completed:month'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Progress Action -->
|
|
<record id="action_genius_progress" model="ir.actions.act_window">
|
|
<field name="name">User Progress</field>
|
|
<field name="res_model">genius.progress</field>
|
|
<field name="view_mode">tree,form</field>
|
|
<field name="search_view_id" ref="view_genius_progress_search"/>
|
|
<field name="context">{'search_default_completed': 0}</field>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face">
|
|
No progress records yet
|
|
</p>
|
|
<p>Progress is recorded automatically when users complete tours.</p>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Menu Item for Progress (Admin only) -->
|
|
<menuitem id="menu_training_progress"
|
|
name="User Progress"
|
|
parent="menu_training"
|
|
action="action_genius_progress"
|
|
sequence="50"
|
|
groups="tour_genius.group_genius_admin"/>
|
|
|
|
</odoo>
|