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,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_encoach_ai_job_list" model="ir.ui.view">
<field name="name">encoach.ai.job.list</field>
<field name="model">encoach.ai.job</field>
<field name="arch" type="xml">
<list string="AI Jobs">
<field name="job_type"/>
<field name="status"/>
<field name="user_id"/>
<field name="retry_count"/>
<field name="created_at"/>
<field name="completed_at"/>
<field name="error_message"/>
</list>
</field>
</record>
<record id="view_encoach_ai_job_form" model="ir.ui.view">
<field name="name">encoach.ai.job.form</field>
<field name="model">encoach.ai.job</field>
<field name="arch" type="xml">
<form string="AI Job">
<sheet>
<group>
<field name="job_type"/>
<field name="status"/>
<field name="user_id"/>
<field name="evaluation_id"/>
<field name="retry_count"/>
<field name="created_at"/>
<field name="completed_at"/>
<field name="error_message"/>
</group>
<group string="Data">
<field name="input_data" widget="json"/>
<field name="result_data" widget="json"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_encoach_ai_job" model="ir.actions.act_window">
<field name="name">AI Jobs</field>
<field name="res_model">encoach.ai.job</field>
<field name="view_mode">list,form</field>
</record>
<menuitem id="menu_encoach_ai_job"
name="AI Jobs"
parent="encoach_core.menu_encoach_ai"
action="action_encoach_ai_job"
sequence="20"/>
</odoo>

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_encoach_evaluation_list" model="ir.ui.view">
<field name="name">encoach.evaluation.list</field>
<field name="model">encoach.evaluation</field>
<field name="arch" type="xml">
<list string="Evaluations">
<field name="user_id"/>
<field name="exercise_type"/>
<field name="exercise_id"/>
<field name="status"/>
<field name="created_at"/>
<field name="completed_at"/>
</list>
</field>
</record>
<record id="view_encoach_evaluation_form" model="ir.ui.view">
<field name="name">encoach.evaluation.form</field>
<field name="model">encoach.evaluation</field>
<field name="arch" type="xml">
<form string="Evaluation">
<sheet>
<field name="status" widget="statusbar" statusbar_visible="pending,in_progress,completed,error"/>
<group>
<field name="user_id"/>
<field name="exercise_type"/>
<field name="exercise_id"/>
<field name="session_id"/>
<field name="created_at"/>
<field name="completed_at"/>
<field name="result" widget="json"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_encoach_evaluation" model="ir.actions.act_window">
<field name="name">Evaluations</field>
<field name="res_model">encoach.evaluation</field>
<field name="view_mode">list,form</field>
</record>
<menuitem id="menu_encoach_evaluation"
name="Evaluations"
parent="encoach_core.menu_encoach_ai"
action="action_encoach_evaluation"
sequence="10"/>
</odoo>