68 lines
3.3 KiB
XML
68 lines
3.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<!-- Category -->
|
|
<record id="module_category_education_attendance" model="ir.module.category">
|
|
<field name="name">Education Attendance</field>
|
|
<field name="sequence">40</field>
|
|
</record>
|
|
|
|
<!-- Groups -->
|
|
<record id="group_attendance_user" model="res.groups">
|
|
<field name="name">Attendance User</field>
|
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
|
<field name="comment">Allows marking attendance lines and tracking their sessions.</field>
|
|
</record>
|
|
|
|
<record id="group_attendance_manager" model="res.groups">
|
|
<field name="name">Attendance Manager</field>
|
|
<field name="implied_ids" eval="[(4, ref('group_attendance_user'))]"/>
|
|
<field name="comment">Full managerial oversight, configuration, and reports.</field>
|
|
</record>
|
|
|
|
<!-- Multi-Company Isolation -->
|
|
<record id="rule_attendance_session_company" model="ir.rule">
|
|
<field name="name">Attendance Session Company Rule</field>
|
|
<field name="model_id" ref="model_education_attendance_session"/>
|
|
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
|
|
</record>
|
|
|
|
<record id="rule_attendance_line_company" model="ir.rule">
|
|
<field name="name">Attendance Line Company Rule</field>
|
|
<field name="model_id" ref="model_education_attendance_line"/>
|
|
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
|
|
</record>
|
|
|
|
<record id="rule_attendance_history_company" model="ir.rule">
|
|
<field name="name">Attendance History Company Rule</field>
|
|
<field name="model_id" ref="model_education_attendance"/>
|
|
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]</field>
|
|
</record>
|
|
|
|
<!-- Faculty Only Sessions Rule (Attendance Users see their own, Managers see all) -->
|
|
<record id="rule_attendance_session_faculty" model="ir.rule">
|
|
<field name="name">Faculty Sessions Only</field>
|
|
<field name="model_id" ref="model_education_attendance_session"/>
|
|
<field name="domain_force">[('faculty_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_attendance_user'))]"/>
|
|
</record>
|
|
|
|
<record id="rule_attendance_session_manager" model="ir.rule">
|
|
<field name="name">Manager All Sessions</field>
|
|
<field name="model_id" ref="model_education_attendance_session"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_attendance_manager'))]"/>
|
|
</record>
|
|
|
|
<!-- Portal Student Attendance Isolation -->
|
|
<record id="rule_attendance_history_portal" model="ir.rule">
|
|
<field name="name">Portal Student Attendance Isolation</field>
|
|
<field name="model_id" ref="model_education_attendance"/>
|
|
<field name="domain_force">[('student_id.portal_user_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
|
|
<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>
|
|
</odoo>
|