odex25_standard/odex25_base/tour_genius/views/progress_views.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>