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,9 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_encoach_session_student,encoach.session.student,model_encoach_session,encoach_core.group_encoach_student,1,1,1,0
access_encoach_session_teacher,encoach.session.teacher,model_encoach_session,encoach_core.group_encoach_teacher,1,1,1,0
access_encoach_session_admin,encoach.session.admin,model_encoach_session,encoach_core.group_encoach_admin,1,1,1,1
access_encoach_stat_student,encoach.stat.student,model_encoach_stat,encoach_core.group_encoach_student,1,1,1,0
access_encoach_stat_teacher,encoach.stat.teacher,model_encoach_stat,encoach_core.group_encoach_teacher,1,1,1,0
access_encoach_stat_admin,encoach.stat.admin,model_encoach_stat,encoach_core.group_encoach_admin,1,1,1,1
access_encoach_session_sysadmin,encoach.session.sysadmin,model_encoach_session,base.group_system,1,1,1,1
access_encoach_stat_sysadmin,encoach.stat.sysadmin,model_encoach_stat,base.group_system,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_encoach_session_student encoach.session.student model_encoach_session encoach_core.group_encoach_student 1 1 1 0
3 access_encoach_session_teacher encoach.session.teacher model_encoach_session encoach_core.group_encoach_teacher 1 1 1 0
4 access_encoach_session_admin encoach.session.admin model_encoach_session encoach_core.group_encoach_admin 1 1 1 1
5 access_encoach_stat_student encoach.stat.student model_encoach_stat encoach_core.group_encoach_student 1 1 1 0
6 access_encoach_stat_teacher encoach.stat.teacher model_encoach_stat encoach_core.group_encoach_teacher 1 1 1 0
7 access_encoach_stat_admin encoach.stat.admin model_encoach_stat encoach_core.group_encoach_admin 1 1 1 1
8 access_encoach_session_sysadmin encoach.session.sysadmin model_encoach_session base.group_system 1 1 1 1
9 access_encoach_stat_sysadmin encoach.stat.sysadmin model_encoach_stat base.group_system 1 1 1 1

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data noupdate="1">
<record id="rule_session_student_own" model="ir.rule">
<field name="name">Students see own sessions</field>
<field name="model_id" ref="model_encoach_session"/>
<field name="groups" eval="[(4, ref('encoach_core.group_encoach_student'))]"/>
<field name="domain_force">[('user_id', '=', user.id)]</field>
</record>
<record id="rule_session_teacher" model="ir.rule">
<field name="name">Teachers see all sessions</field>
<field name="model_id" ref="model_encoach_session"/>
<field name="groups" eval="[(4, ref('encoach_core.group_encoach_teacher'))]"/>
<field name="domain_force">[(1, '=', 1)]</field>
</record>
<record id="rule_stat_student_own" model="ir.rule">
<field name="name">Students see own stats</field>
<field name="model_id" ref="model_encoach_stat"/>
<field name="groups" eval="[(4, ref('encoach_core.group_encoach_student'))]"/>
<field name="domain_force">[('user_id', '=', user.id)]</field>
</record>
<record id="rule_stat_teacher" model="ir.rule">
<field name="name">Teachers see all stats</field>
<field name="model_id" ref="model_encoach_stat"/>
<field name="groups" eval="[(4, ref('encoach_core.group_encoach_teacher'))]"/>
<field name="domain_force">[(1, '=', 1)]</field>
</record>
</data>
</odoo>