254 lines
14 KiB
XML
254 lines
14 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<!-- LMS Categories -->
|
|
<record id="module_category_education_lms" model="ir.module.category">
|
|
<field name="name">Education LMS</field>
|
|
<field name="description">Helps you manage LMS courses and content.</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
|
|
<!-- Student Group -->
|
|
<record id="group_education_lms_student" model="res.groups">
|
|
<field name="name">LMS Student</field>
|
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
|
</record>
|
|
|
|
<!-- Faculty Group -->
|
|
<record id="group_education_lms_faculty" model="res.groups">
|
|
<field name="name">LMS Faculty</field>
|
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
|
</record>
|
|
|
|
<!-- Administrator Group -->
|
|
<record id="group_education_lms_admin" model="res.groups">
|
|
<field name="name">LMS Administrator</field>
|
|
<field name="implied_ids" eval="[(4, ref('group_education_lms_faculty'))]"/>
|
|
</record>
|
|
|
|
<data>
|
|
<!-- Faculty Record Rules: Strict Ownership -->
|
|
<record id="rule_lms_course_faculty" model="ir.rule">
|
|
<field name="name">Faculty Own Courses</field>
|
|
<field name="model_id" ref="model_education_lms_course"/>
|
|
<field name="domain_force">[('faculty_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_faculty'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
|
|
<record id="rule_lms_section_faculty" model="ir.rule">
|
|
<field name="name">Faculty Own Sections</field>
|
|
<field name="model_id" ref="model_education_lms_section"/>
|
|
<field name="domain_force">[('course_id.faculty_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_faculty'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
|
|
<record id="rule_lms_lesson_faculty" model="ir.rule">
|
|
<field name="name">Faculty Own Lessons</field>
|
|
<field name="model_id" ref="model_education_lms_lesson"/>
|
|
<field name="domain_force">[('course_id.faculty_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_faculty'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
|
|
<record id="rule_lms_material_faculty" model="ir.rule">
|
|
<field name="name">Faculty Own Materials</field>
|
|
<field name="model_id" ref="model_education_lms_material"/>
|
|
<field name="domain_force">[('lesson_id.course_id.faculty_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_faculty'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
|
|
<!-- Admin Record Rules: Global Access -->
|
|
<record id="rule_lms_course_admin" model="ir.rule">
|
|
<field name="name">Admin All Courses</field>
|
|
<field name="model_id" ref="model_education_lms_course"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_admin'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
<record id="rule_lms_section_admin" model="ir.rule">
|
|
<field name="name">Admin All Sections</field>
|
|
<field name="model_id" ref="model_education_lms_section"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_admin'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
<record id="rule_lms_lesson_admin" model="ir.rule">
|
|
<field name="name">Admin All Lessons</field>
|
|
<field name="model_id" ref="model_education_lms_lesson"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_admin'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
<record id="rule_lms_material_admin" model="ir.rule">
|
|
<field name="name">Admin All Materials</field>
|
|
<field name="model_id" ref="model_education_lms_material"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_admin'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
|
|
<!-- Student Record Rules: Restrict Backend -->
|
|
<record id="rule_lms_course_student" model="ir.rule">
|
|
<field name="name">Student Course Access</field>
|
|
<field name="model_id" ref="model_education_lms_course"/>
|
|
<field name="domain_force">[
|
|
('state', 'in', ['published', 'closed']),
|
|
('program_id', 'in', user.student_ids.program_id.ids),
|
|
('academic_year_id', 'in', user.student_ids.academic_year_id.ids),
|
|
'|', ('term_id', '=', False), ('term_id', 'in', user.student_ids.academic_term_id.ids),
|
|
'|', ('batch_id', '=', False), ('batch_id', 'in', user.student_ids.batch_id.ids),
|
|
]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_student'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="False"/>
|
|
<field name="perm_create" eval="False"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
</record>
|
|
<record id="rule_lms_section_student" model="ir.rule">
|
|
<field name="name">Student Section Access</field>
|
|
<field name="model_id" ref="model_education_lms_section"/>
|
|
<field name="domain_force">[
|
|
('course_id.state', 'in', ['published', 'closed']),
|
|
('course_id.program_id', 'in', user.student_ids.program_id.ids),
|
|
('course_id.academic_year_id', 'in', user.student_ids.academic_year_id.ids),
|
|
'|', ('course_id.term_id', '=', False), ('course_id.term_id', 'in', user.student_ids.academic_term_id.ids),
|
|
'|', ('course_id.batch_id', '=', False), ('course_id.batch_id', 'in', user.student_ids.batch_id.ids),
|
|
]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_student'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="False"/>
|
|
<field name="perm_create" eval="False"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
</record>
|
|
<record id="rule_lms_lesson_student" model="ir.rule">
|
|
<field name="name">Student Lesson Access</field>
|
|
<field name="model_id" ref="model_education_lms_lesson"/>
|
|
<field name="domain_force">[
|
|
('course_id.state', 'in', ['published', 'closed']),
|
|
('course_id.program_id', 'in', user.student_ids.program_id.ids),
|
|
('course_id.academic_year_id', 'in', user.student_ids.academic_year_id.ids),
|
|
'|', ('course_id.term_id', '=', False), ('course_id.term_id', 'in', user.student_ids.academic_term_id.ids),
|
|
'|', ('course_id.batch_id', '=', False), ('course_id.batch_id', 'in', user.student_ids.batch_id.ids),
|
|
]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_student'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="False"/>
|
|
<field name="perm_create" eval="False"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
</record>
|
|
<record id="rule_lms_material_student" model="ir.rule">
|
|
<field name="name">Student Material Access</field>
|
|
<field name="model_id" ref="model_education_lms_material"/>
|
|
<field name="domain_force">[
|
|
('lesson_id.course_id.state', 'in', ['published', 'closed']),
|
|
('lesson_id.course_id.program_id', 'in', user.student_ids.program_id.ids),
|
|
('lesson_id.course_id.academic_year_id', 'in', user.student_ids.academic_year_id.ids),
|
|
'|', ('lesson_id.course_id.term_id', '=', False), ('lesson_id.course_id.term_id', 'in', user.student_ids.academic_term_id.ids),
|
|
'|', ('lesson_id.course_id.batch_id', '=', False), ('lesson_id.course_id.batch_id', 'in', user.student_ids.batch_id.ids),
|
|
]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_student'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="False"/>
|
|
<field name="perm_create" eval="False"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
</record>
|
|
|
|
<!-- Assignment Rules -->
|
|
<record id="rule_lms_assignment_faculty" model="ir.rule">
|
|
<field name="name">Faculty Own Assignments</field>
|
|
<field name="model_id" ref="model_education_lms_assignment"/>
|
|
<field name="domain_force">[('course_id.faculty_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_faculty'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
<record id="rule_lms_assignment_admin" model="ir.rule">
|
|
<field name="name">Admin All Assignments</field>
|
|
<field name="model_id" ref="model_education_lms_assignment"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_admin'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
<record id="rule_lms_assignment_student" model="ir.rule">
|
|
<field name="name">Student Assignment Access</field>
|
|
<field name="model_id" ref="model_education_lms_assignment"/>
|
|
<field name="domain_force">[
|
|
('state', 'in', ['published', 'closed']),
|
|
('course_id.state', 'in', ['published', 'closed']),
|
|
('course_id.program_id', 'in', user.student_ids.program_id.ids),
|
|
('course_id.academic_year_id', 'in', user.student_ids.academic_year_id.ids),
|
|
'|', ('course_id.term_id', '=', False), ('course_id.term_id', 'in', user.student_ids.academic_term_id.ids),
|
|
'|', ('course_id.batch_id', '=', False), ('course_id.batch_id', 'in', user.student_ids.batch_id.ids),
|
|
]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_student'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="False"/>
|
|
<field name="perm_create" eval="False"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
</record>
|
|
|
|
<!-- Submission Rules -->
|
|
<record id="rule_lms_submission_faculty" model="ir.rule">
|
|
<field name="name">Faculty Own Submissions</field>
|
|
<field name="model_id" ref="model_education_lms_submission"/>
|
|
<field name="domain_force">[('assignment_id.course_id.faculty_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_faculty'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
<record id="rule_lms_submission_admin" model="ir.rule">
|
|
<field name="name">Admin All Submissions</field>
|
|
<field name="model_id" ref="model_education_lms_submission"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_admin'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
</record>
|
|
<record id="rule_lms_submission_student" model="ir.rule">
|
|
<field name="name">Student Submission Sandbox</field>
|
|
<field name="model_id" ref="model_education_lms_submission"/>
|
|
<field name="domain_force">[('student_id.portal_user_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_education_lms_student'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
</record>
|
|
</data>
|
|
</odoo>
|