EnCoach Odoo 19 custom modules

Full backend implementation with custom Odoo modules:
- encoach_api: Core API, user management, JWT auth
- encoach_exam: Exam generation (reading, writing, listening, speaking)
- encoach_evaluate: AI-powered evaluation (writing, speaking)
- encoach_training: Training tips and walkthrough
- encoach_storage: File storage management
- encoach_payment: Stripe, PayPal, Paymob integration
- encoach_mail: Email notifications

Made-with: Cursor
This commit is contained in:
Talal Sharabi
2026-03-14 16:46:46 +04:00
commit f5b627256f
168 changed files with 13428 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_encoach_ticket_tree" model="ir.ui.view">
<field name="name">encoach.ticket.tree</field>
<field name="model">encoach.ticket</field>
<field name="arch" type="xml">
<list string="Tickets"
decoration-danger="status == 'open'"
decoration-warning="status == 'in_progress'"
decoration-success="status == 'resolved'">
<field name="subject"/>
<field name="reporter_name"/>
<field name="reporter_email"/>
<field name="ticket_type"/>
<field name="status"/>
<field name="assigned_to_id"/>
<field name="created_at"/>
</list>
</field>
</record>
<record id="view_encoach_ticket_form" model="ir.ui.view">
<field name="name">encoach.ticket.form</field>
<field name="model">encoach.ticket</field>
<field name="arch" type="xml">
<form string="Ticket">
<header>
<field name="status" widget="statusbar" statusbar_visible="open,in_progress,resolved,closed" options="{'clickable': 1}"/>
</header>
<sheet>
<group>
<group>
<field name="subject"/>
<field name="reporter_name"/>
<field name="reporter_email"/>
</group>
<group>
<field name="ticket_type"/>
<field name="assigned_to_id"/>
</group>
</group>
<group>
<field name="description" widget="text"/>
</group>
<notebook>
<page string="Exam Information" name="exam_information">
<field name="exam_information" widget="json"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="action_encoach_ticket" model="ir.actions.act_window">
<field name="name">Tickets</field>
<field name="res_model">encoach.ticket</field>
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No support tickets yet.
</p>
<p>
Tickets handle feedback, bug reports, and help requests from users.
</p>
</field>
</record>
<menuitem id="menu_encoach_tickets"
name="Tickets"
parent="encoach_core.menu_encoach_support"
action="action_encoach_ticket"
sequence="10"/>
</odoo>