odoo 19 converted
This commit is contained in:
parent
d8f43af3b0
commit
2794ebcb22
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
'name': 'Education Attendance',
|
'name': 'Education Attendance',
|
||||||
'version': '17.0.1.0.0',
|
'version': '19.0.1.0.0',
|
||||||
'category': 'Education',
|
'category': 'Education',
|
||||||
'summary': 'Manage Daily and Period-wise Student Attendance',
|
'summary': 'Manage Daily and Period-wise Student Attendance',
|
||||||
'description': """
|
'description': """
|
||||||
|
|||||||
BIN
addons/education_attendance/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
addons/education_attendance/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -9,14 +9,12 @@
|
|||||||
<!-- Groups -->
|
<!-- Groups -->
|
||||||
<record id="group_attendance_user" model="res.groups">
|
<record id="group_attendance_user" model="res.groups">
|
||||||
<field name="name">Attendance User</field>
|
<field name="name">Attendance User</field>
|
||||||
<field name="category_id" ref="module_category_education_attendance"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
||||||
<field name="comment">Allows marking attendance lines and tracking their sessions.</field>
|
<field name="comment">Allows marking attendance lines and tracking their sessions.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="group_attendance_manager" model="res.groups">
|
<record id="group_attendance_manager" model="res.groups">
|
||||||
<field name="name">Attendance Manager</field>
|
<field name="name">Attendance Manager</field>
|
||||||
<field name="category_id" ref="module_category_education_attendance"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('group_attendance_user'))]"/>
|
<field name="implied_ids" eval="[(4, ref('group_attendance_user'))]"/>
|
||||||
<field name="comment">Full managerial oversight, configuration, and reports.</field>
|
<field name="comment">Full managerial oversight, configuration, and reports.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<field name="name">education.attendance.session.tree</field>
|
<field name="name">education.attendance.session.tree</field>
|
||||||
<field name="model">education.attendance.session</field>
|
<field name="model">education.attendance.session</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Attendance Sessions">
|
<list string="Attendance Sessions">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="campus_id"/>
|
<field name="campus_id"/>
|
||||||
<field name="program_id"/>
|
<field name="program_id"/>
|
||||||
@ -13,7 +13,7 @@
|
|||||||
<field name="period"/>
|
<field name="period"/>
|
||||||
<field name="faculty_id"/>
|
<field name="faculty_id"/>
|
||||||
<field name="state" widget="badge" decoration-info="state == 'draft'" decoration-warning="state == 'open'" decoration-success="state == 'completed'" decoration-danger="state == 'cancelled'"/>
|
<field name="state" widget="badge" decoration-info="state == 'draft'" decoration-warning="state == 'open'" decoration-success="state == 'completed'" decoration-danger="state == 'cancelled'"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -132,13 +132,13 @@
|
|||||||
<notebook>
|
<notebook>
|
||||||
<page string="Students List" name="students_list" invisible="state == 'draft'">
|
<page string="Students List" name="students_list" invisible="state == 'draft'">
|
||||||
<field name="line_ids" readonly="state != 'open'">
|
<field name="line_ids" readonly="state != 'open'">
|
||||||
<tree editable="bottom" create="false" delete="false">
|
<list editable="bottom" create="false" delete="false">
|
||||||
<field name="student_id" readonly="1"/>
|
<field name="student_id" readonly="1"/>
|
||||||
<field name="status" widget="radio" options="{'horizontal': true}"/>
|
<field name="status" widget="radio" options="{'horizontal': true}"/>
|
||||||
<field name="remarks"/>
|
<field name="remarks"/>
|
||||||
<field name="time_in"/>
|
<field name="time_in"/>
|
||||||
<field name="time_out"/>
|
<field name="time_out"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
@ -167,7 +167,7 @@
|
|||||||
<filter string="Open (Active)" name="open" domain="[('state', '=', 'open')]"/>
|
<filter string="Open (Active)" name="open" domain="[('state', '=', 'open')]"/>
|
||||||
<filter string="Completed" name="completed" domain="[('state', '=', 'completed')]"/>
|
<filter string="Completed" name="completed" domain="[('state', '=', 'completed')]"/>
|
||||||
<filter string="Cancelled" name="cancelled" domain="[('state', '=', 'cancelled')]"/>
|
<filter string="Cancelled" name="cancelled" domain="[('state', '=', 'cancelled')]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Campus" name="group_campus" context="{'group_by': 'campus_id'}"/>
|
<filter string="Campus" name="group_campus" context="{'group_by': 'campus_id'}"/>
|
||||||
<filter string="Department" name="group_dept" context="{'group_by': 'department_id'}"/>
|
<filter string="Department" name="group_dept" context="{'group_by': 'department_id'}"/>
|
||||||
<filter string="Program" name="group_program" context="{'group_by': 'program_id'}"/>
|
<filter string="Program" name="group_program" context="{'group_by': 'program_id'}"/>
|
||||||
@ -182,7 +182,7 @@
|
|||||||
<record id="action_education_attendance_session" model="ir.actions.act_window">
|
<record id="action_education_attendance_session" model="ir.actions.act_window">
|
||||||
<field name="name">Attendance Sessions</field>
|
<field name="name">Attendance Sessions</field>
|
||||||
<field name="res_model">education.attendance.session</field>
|
<field name="res_model">education.attendance.session</field>
|
||||||
<field name="view_mode">tree,kanban,form,calendar,pivot,graph</field>
|
<field name="view_mode">list,kanban,form,calendar,pivot,graph</field>
|
||||||
<field name="search_view_id" ref="view_education_attendance_session_search"/>
|
<field name="search_view_id" ref="view_education_attendance_session_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,14 +4,14 @@
|
|||||||
<field name="name">education.attendance.tree</field>
|
<field name="name">education.attendance.tree</field>
|
||||||
<field name="model">education.attendance</field>
|
<field name="model">education.attendance</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Attendance History" create="false" edit="false" delete="false">
|
<list string="Attendance History" create="false" edit="false" delete="false">
|
||||||
<field name="date"/>
|
<field name="date"/>
|
||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="session_id"/>
|
<field name="session_id"/>
|
||||||
<field name="status" widget="badge" decoration-success="status == 'present' or status == 'on_duty'" decoration-danger="status == 'absent'" decoration-warning="status == 'late'" decoration-info="status == 'medical_leave'"/>
|
<field name="status" widget="badge" decoration-success="status == 'present' or status == 'on_duty'" decoration-danger="status == 'absent'" decoration-warning="status == 'late'" decoration-info="status == 'medical_leave'"/>
|
||||||
<field name="faculty_id"/>
|
<field name="faculty_id"/>
|
||||||
<field name="remarks"/>
|
<field name="remarks"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -62,7 +62,7 @@
|
|||||||
<filter string="Late" name="late" domain="[('status', '=', 'late')]"/>
|
<filter string="Late" name="late" domain="[('status', '=', 'late')]"/>
|
||||||
<filter string="Medical Leave" name="medical_leave" domain="[('status', '=', 'medical_leave')]"/>
|
<filter string="Medical Leave" name="medical_leave" domain="[('status', '=', 'medical_leave')]"/>
|
||||||
<filter string="On Duty" name="on_duty" domain="[('status', '=', 'on_duty')]"/>
|
<filter string="On Duty" name="on_duty" domain="[('status', '=', 'on_duty')]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
||||||
<filter string="Status" name="group_status" context="{'group_by': 'status'}"/>
|
<filter string="Status" name="group_status" context="{'group_by': 'status'}"/>
|
||||||
<filter string="Date" name="group_date" context="{'group_by': 'date'}"/>
|
<filter string="Date" name="group_date" context="{'group_by': 'date'}"/>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<record id="action_education_attendance_history" model="ir.actions.act_window">
|
<record id="action_education_attendance_history" model="ir.actions.act_window">
|
||||||
<field name="name">Attendance History</field>
|
<field name="name">Attendance History</field>
|
||||||
<field name="res_model">education.attendance</field>
|
<field name="res_model">education.attendance</field>
|
||||||
<field name="view_mode">tree,calendar,pivot,graph</field>
|
<field name="view_mode">list,calendar,pivot,graph</field>
|
||||||
<field name="search_view_id" ref="view_education_attendance_search"/>
|
<field name="search_view_id" ref="view_education_attendance_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<!-- Replace placeholder Attendance button with dynamic record action -->
|
<!-- Replace placeholder Attendance button with dynamic record action -->
|
||||||
<xpath expr="//button[@icon='fa-calendar-check-o']" position="replace">
|
<xpath expr="//button[@icon='fa-calendar-check-o']" position="replace">
|
||||||
<button class="oe_stat_button" icon="fa-calendar-check-o" type="action" name="%(action_education_attendance_history)d" context="{'search_default_student_id': active_id}">
|
<button class="oe_stat_button" icon="fa-calendar-check-o" type="action" name="%(action_education_attendance_history)d" context="{'search_default_student_id': id}">
|
||||||
<div class="o_stat_info">
|
<div class="o_stat_info">
|
||||||
<span class="o_stat_value">
|
<span class="o_stat_value">
|
||||||
<field name="attendance_pct" widget="float" precision="1"/>%
|
<field name="attendance_pct" widget="float" precision="1"/>%
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
'name': 'Education Base',
|
'name': 'Education Base',
|
||||||
'version': '17.0.1.0.0',
|
'version': '19.0.1.0.0',
|
||||||
'summary': 'Core foundation for education management',
|
'summary': 'Core foundation for education management',
|
||||||
'description': '''
|
'description': '''
|
||||||
Education Base module provides the foundational master data, academic configuration,
|
Education Base module provides the foundational master data, academic configuration,
|
||||||
|
|||||||
BIN
addons/education_base/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
addons/education_base/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
addons/education_base/models/__pycache__/campus.cpython-312.pyc
Normal file
BIN
addons/education_base/models/__pycache__/campus.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
addons/education_base/models/__pycache__/program.cpython-312.pyc
Normal file
BIN
addons/education_base/models/__pycache__/program.cpython-312.pyc
Normal file
Binary file not shown.
@ -7,20 +7,17 @@
|
|||||||
|
|
||||||
<record id="group_education_base_user" model="res.groups">
|
<record id="group_education_base_user" model="res.groups">
|
||||||
<field name="name">Education Base User</field>
|
<field name="name">Education Base User</field>
|
||||||
<field name="category_id" ref="module_category_education_base"/>
|
|
||||||
<field name="comment">Basic access to education master data.</field>
|
<field name="comment">Basic access to education master data.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="group_education_base_manager" model="res.groups">
|
<record id="group_education_base_manager" model="res.groups">
|
||||||
<field name="name">Education Base Manager</field>
|
<field name="name">Education Base Manager</field>
|
||||||
<field name="category_id" ref="module_category_education_base"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('group_education_base_user'))]"/>
|
<field name="implied_ids" eval="[(4, ref('group_education_base_user'))]"/>
|
||||||
<field name="comment">Manage academic configuration and master setup.</field>
|
<field name="comment">Manage academic configuration and master setup.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="group_education_base_admin" model="res.groups">
|
<record id="group_education_base_admin" model="res.groups">
|
||||||
<field name="name">Education Base Admin</field>
|
<field name="name">Education Base Admin</field>
|
||||||
<field name="category_id" ref="module_category_education_base"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('group_education_base_manager'))]"/>
|
<field name="implied_ids" eval="[(4, ref('group_education_base_manager'))]"/>
|
||||||
<field name="comment">Full administrative access to base education configuration.</field>
|
<field name="comment">Full administrative access to base education configuration.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|||||||
@ -4,13 +4,13 @@
|
|||||||
<field name="name">education.academic.level.tree</field>
|
<field name="name">education.academic.level.tree</field>
|
||||||
<field name="model">education.academic.level</field>
|
<field name="model">education.academic.level</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Academic Levels">
|
<list string="Academic Levels">
|
||||||
<field name="sequence" widget="handle"/>
|
<field name="sequence" widget="handle"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="description"/>
|
<field name="description"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -45,7 +45,7 @@
|
|||||||
<search string="Academic Levels">
|
<search string="Academic Levels">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
||||||
</group>
|
</group>
|
||||||
</search>
|
</search>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
<record id="action_education_academic_level" model="ir.actions.act_window">
|
<record id="action_education_academic_level" model="ir.actions.act_window">
|
||||||
<field name="name">Academic Levels</field>
|
<field name="name">Academic Levels</field>
|
||||||
<field name="res_model">education.academic.level</field>
|
<field name="res_model">education.academic.level</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_academic_level_search"/>
|
<field name="search_view_id" ref="view_education_academic_level_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<field name="name">education.academic.term.tree</field>
|
<field name="name">education.academic.term.tree</field>
|
||||||
<field name="model">education.academic.term</field>
|
<field name="model">education.academic.term</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Academic Terms">
|
<list string="Academic Terms">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="academic_year_id"/>
|
<field name="academic_year_id"/>
|
||||||
@ -13,7 +13,7 @@
|
|||||||
<field name="end_date"/>
|
<field name="end_date"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -55,7 +55,7 @@
|
|||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="academic_year_id"/>
|
<field name="academic_year_id"/>
|
||||||
<filter string="Active" name="active" domain="[('state', '=', 'active')]"/>
|
<filter string="Active" name="active" domain="[('state', '=', 'active')]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Academic Year" name="academic_year" context="{'group_by': 'academic_year_id'}"/>
|
<filter string="Academic Year" name="academic_year" context="{'group_by': 'academic_year_id'}"/>
|
||||||
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
||||||
</group>
|
</group>
|
||||||
@ -66,7 +66,7 @@
|
|||||||
<record id="action_education_academic_term" model="ir.actions.act_window">
|
<record id="action_education_academic_term" model="ir.actions.act_window">
|
||||||
<field name="name">Academic Terms</field>
|
<field name="name">Academic Terms</field>
|
||||||
<field name="res_model">education.academic.term</field>
|
<field name="res_model">education.academic.term</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_academic_term_search"/>
|
<field name="search_view_id" ref="view_education_academic_term_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<field name="name">education.academic.year.tree</field>
|
<field name="name">education.academic.year.tree</field>
|
||||||
<field name="model">education.academic.year</field>
|
<field name="model">education.academic.year</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Academic Years">
|
<list string="Academic Years">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="start_date"/>
|
<field name="start_date"/>
|
||||||
@ -12,7 +12,7 @@
|
|||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
<field name="current_year"/>
|
<field name="current_year"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -42,15 +42,15 @@
|
|||||||
</group>
|
</group>
|
||||||
<notebook>
|
<notebook>
|
||||||
<page string="Terms">
|
<page string="Terms">
|
||||||
<field name="term_ids" context="{'default_academic_year_id': active_id}">
|
<field name="term_ids" context="{'default_academic_year_id': id}">
|
||||||
<tree>
|
<list>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="sequence"/>
|
<field name="sequence"/>
|
||||||
<field name="start_date"/>
|
<field name="start_date"/>
|
||||||
<field name="end_date"/>
|
<field name="end_date"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
@ -68,7 +68,7 @@
|
|||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<filter string="Current Year" name="current_year" domain="[('current_year', '=', True)]"/>
|
<filter string="Current Year" name="current_year" domain="[('current_year', '=', True)]"/>
|
||||||
<filter string="Active" name="active" domain="[('state', '=', 'active')]"/>
|
<filter string="Active" name="active" domain="[('state', '=', 'active')]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
||||||
<filter string="State" name="state" context="{'group_by': 'state'}"/>
|
<filter string="State" name="state" context="{'group_by': 'state'}"/>
|
||||||
</group>
|
</group>
|
||||||
@ -79,7 +79,7 @@
|
|||||||
<record id="action_education_academic_year" model="ir.actions.act_window">
|
<record id="action_education_academic_year" model="ir.actions.act_window">
|
||||||
<field name="name">Academic Years</field>
|
<field name="name">Academic Years</field>
|
||||||
<field name="res_model">education.academic.year</field>
|
<field name="res_model">education.academic.year</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_academic_year_search"/>
|
<field name="search_view_id" ref="view_education_academic_year_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,13 +4,13 @@
|
|||||||
<field name="name">education.campus.tree</field>
|
<field name="name">education.campus.tree</field>
|
||||||
<field name="model">education.campus</field>
|
<field name="model">education.campus</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Campuses">
|
<list string="Campuses">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="phone"/>
|
<field name="phone"/>
|
||||||
<field name="email"/>
|
<field name="email"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -36,11 +36,11 @@
|
|||||||
<notebook>
|
<notebook>
|
||||||
<page string="Departments">
|
<page string="Departments">
|
||||||
<field name="department_ids">
|
<field name="department_ids">
|
||||||
<tree>
|
<list>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="head_teacher_id"/>
|
<field name="head_teacher_id"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
@ -57,7 +57,7 @@
|
|||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<filter string="Archived" name="archived" domain="[('active', '=', False)]"/>
|
<filter string="Archived" name="archived" domain="[('active', '=', False)]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
||||||
</group>
|
</group>
|
||||||
</search>
|
</search>
|
||||||
@ -67,7 +67,7 @@
|
|||||||
<record id="action_education_campus" model="ir.actions.act_window">
|
<record id="action_education_campus" model="ir.actions.act_window">
|
||||||
<field name="name">Campuses</field>
|
<field name="name">Campuses</field>
|
||||||
<field name="res_model">education.campus</field>
|
<field name="res_model">education.campus</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_campus_search"/>
|
<field name="search_view_id" ref="view_education_campus_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,13 +4,13 @@
|
|||||||
<field name="name">education.department.tree</field>
|
<field name="name">education.department.tree</field>
|
||||||
<field name="model">education.department</field>
|
<field name="model">education.department</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Departments">
|
<list string="Departments">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="campus_id"/>
|
<field name="campus_id"/>
|
||||||
<field name="head_teacher_id"/>
|
<field name="head_teacher_id"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -34,11 +34,11 @@
|
|||||||
<notebook>
|
<notebook>
|
||||||
<page string="Programs">
|
<page string="Programs">
|
||||||
<field name="program_ids">
|
<field name="program_ids">
|
||||||
<tree>
|
<list>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="level_id"/>
|
<field name="level_id"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="campus_id"/>
|
<field name="campus_id"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Campus" name="campus" context="{'group_by': 'campus_id'}"/>
|
<filter string="Campus" name="campus" context="{'group_by': 'campus_id'}"/>
|
||||||
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
||||||
</group>
|
</group>
|
||||||
@ -66,7 +66,7 @@
|
|||||||
<record id="action_education_department" model="ir.actions.act_window">
|
<record id="action_education_department" model="ir.actions.act_window">
|
||||||
<field name="name">Departments</field>
|
<field name="name">Departments</field>
|
||||||
<field name="res_model">education.department</field>
|
<field name="res_model">education.department</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_department_search"/>
|
<field name="search_view_id" ref="view_education_department_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,13 +4,13 @@
|
|||||||
<field name="name">education.configuration.tree</field>
|
<field name="name">education.configuration.tree</field>
|
||||||
<field name="model">education.configuration</field>
|
<field name="model">education.configuration</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Education Configuration">
|
<list string="Education Configuration">
|
||||||
<field name="school_name"/>
|
<field name="school_name"/>
|
||||||
<field name="school_code"/>
|
<field name="school_code"/>
|
||||||
<field name="default_campus_id"/>
|
<field name="default_campus_id"/>
|
||||||
<field name="default_academic_year_id"/>
|
<field name="default_academic_year_id"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -54,7 +54,7 @@
|
|||||||
<search string="Education Configuration">
|
<search string="Education Configuration">
|
||||||
<field name="school_name"/>
|
<field name="school_name"/>
|
||||||
<field name="school_code"/>
|
<field name="school_code"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
||||||
</group>
|
</group>
|
||||||
</search>
|
</search>
|
||||||
@ -64,7 +64,7 @@
|
|||||||
<record id="action_education_configuration" model="ir.actions.act_window">
|
<record id="action_education_configuration" model="ir.actions.act_window">
|
||||||
<field name="name">Education Configuration</field>
|
<field name="name">Education Configuration</field>
|
||||||
<field name="res_model">education.configuration</field>
|
<field name="res_model">education.configuration</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_configuration_search"/>
|
<field name="search_view_id" ref="view_education_configuration_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<field name="name">education.program.tree</field>
|
<field name="name">education.program.tree</field>
|
||||||
<field name="model">education.program</field>
|
<field name="model">education.program</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Programs">
|
<list string="Programs">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="level_id"/>
|
<field name="level_id"/>
|
||||||
@ -12,7 +12,7 @@
|
|||||||
<field name="duration"/>
|
<field name="duration"/>
|
||||||
<field name="duration_unit"/>
|
<field name="duration_unit"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -52,7 +52,7 @@
|
|||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="department_id"/>
|
<field name="department_id"/>
|
||||||
<field name="level_id"/>
|
<field name="level_id"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Department" name="department" context="{'group_by': 'department_id'}"/>
|
<filter string="Department" name="department" context="{'group_by': 'department_id'}"/>
|
||||||
<filter string="Academic Level" name="level" context="{'group_by': 'level_id'}"/>
|
<filter string="Academic Level" name="level" context="{'group_by': 'level_id'}"/>
|
||||||
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
<filter string="Company" name="company" context="{'group_by': 'company_id'}"/>
|
||||||
@ -64,7 +64,7 @@
|
|||||||
<record id="action_education_program" model="ir.actions.act_window">
|
<record id="action_education_program" model="ir.actions.act_window">
|
||||||
<field name="name">Programs</field>
|
<field name="name">Programs</field>
|
||||||
<field name="res_model">education.program</field>
|
<field name="res_model">education.program</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_program_search"/>
|
<field name="search_view_id" ref="view_education_program_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
'name': 'Education Dashboard',
|
'name': 'Education Dashboard',
|
||||||
'version': '17.0.1.0.0',
|
'version': '19.0.1.0.0',
|
||||||
'category': 'Education',
|
'category': 'Education',
|
||||||
'summary': 'Interactive Management Dashboard for Education ERP',
|
'summary': 'Interactive Management Dashboard for Education ERP',
|
||||||
'description': """
|
'description': """
|
||||||
|
|||||||
BIN
addons/education_dashboard/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
addons/education_dashboard/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
'name': 'Education Examinations',
|
'name': 'Education Examinations',
|
||||||
'version': '1.0',
|
'version': '19.0.1.0.0',
|
||||||
'category': 'Education',
|
'category': 'Education',
|
||||||
'summary': 'Complete College Examination Module',
|
'summary': 'Complete College Examination Module',
|
||||||
'description': """
|
'description': """
|
||||||
|
|||||||
BIN
addons/education_exam/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
addons/education_exam/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -11,15 +11,12 @@
|
|||||||
<!-- Groups -->
|
<!-- Groups -->
|
||||||
<record id="group_education_exam_teacher" model="res.groups">
|
<record id="group_education_exam_teacher" model="res.groups">
|
||||||
<field name="name">Teacher / Faculty</field>
|
<field name="name">Teacher / Faculty</field>
|
||||||
<field name="category_id" ref="module_category_education_exam"/>
|
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="group_education_exam_administrator" model="res.groups">
|
<record id="group_education_exam_administrator" model="res.groups">
|
||||||
<field name="name">Administrator</field>
|
<field name="name">Administrator</field>
|
||||||
<field name="category_id" ref="module_category_education_exam"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('group_education_exam_teacher'))]"/>
|
<field name="implied_ids" eval="[(4, ref('group_education_exam_teacher'))]"/>
|
||||||
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
|
</record>
|
||||||
</record>
|
|
||||||
|
|
||||||
<!-- Record Rules -->
|
<!-- Record Rules -->
|
||||||
<!-- Teachers can see only exams and results where they are assigned (simplified for now, full read access to exams) -->
|
<!-- Teachers can see only exams and results where they are assigned (simplified for now, full read access to exams) -->
|
||||||
|
|||||||
@ -5,14 +5,14 @@
|
|||||||
<field name="name">education.exam.result.tree</field>
|
<field name="name">education.exam.result.tree</field>
|
||||||
<field name="model">education.exam.result</field>
|
<field name="model">education.exam.result</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree>
|
<list>
|
||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="exam_id"/>
|
<field name="exam_id"/>
|
||||||
<field name="percentage"/>
|
<field name="percentage"/>
|
||||||
<field name="grade_id"/>
|
<field name="grade_id"/>
|
||||||
<field name="result_status"/>
|
<field name="result_status"/>
|
||||||
<field name="published"/>
|
<field name="published"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -44,7 +44,7 @@
|
|||||||
<notebook>
|
<notebook>
|
||||||
<page string="Marks Entry">
|
<page string="Marks Entry">
|
||||||
<field name="line_ids" readonly="published">
|
<field name="line_ids" readonly="published">
|
||||||
<tree editable="bottom">
|
<list editable="bottom">
|
||||||
<field name="subject_id"/>
|
<field name="subject_id"/>
|
||||||
<field name="exam_type_id"/>
|
<field name="exam_type_id"/>
|
||||||
<field name="max_marks"/>
|
<field name="max_marks"/>
|
||||||
@ -54,7 +54,7 @@
|
|||||||
<field name="grade_id"/>
|
<field name="grade_id"/>
|
||||||
<field name="status"/>
|
<field name="status"/>
|
||||||
<field name="remarks"/>
|
<field name="remarks"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
@ -67,12 +67,12 @@
|
|||||||
<record id="action_education_marks_entry" model="ir.actions.act_window">
|
<record id="action_education_marks_entry" model="ir.actions.act_window">
|
||||||
<field name="name">Marks Entry</field>
|
<field name="name">Marks Entry</field>
|
||||||
<field name="res_model">education.exam.result</field>
|
<field name="res_model">education.exam.result</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="action_education_exam_result" model="ir.actions.act_window">
|
<record id="action_education_exam_result" model="ir.actions.act_window">
|
||||||
<field name="name">Results</field>
|
<field name="name">Results</field>
|
||||||
<field name="res_model">education.exam.result</field>
|
<field name="res_model">education.exam.result</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -5,11 +5,11 @@
|
|||||||
<field name="name">education.exam.type.tree</field>
|
<field name="name">education.exam.type.tree</field>
|
||||||
<field name="model">education.exam.type</field>
|
<field name="model">education.exam.type</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree>
|
<list>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="weightage"/>
|
<field name="weightage"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -34,7 +34,7 @@
|
|||||||
<record id="action_education_exam_type" model="ir.actions.act_window">
|
<record id="action_education_exam_type" model="ir.actions.act_window">
|
||||||
<field name="name">Exam Types</field>
|
<field name="name">Exam Types</field>
|
||||||
<field name="res_model">education.exam.type</field>
|
<field name="res_model">education.exam.type</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- Exam Views -->
|
<!-- Exam Views -->
|
||||||
@ -42,7 +42,7 @@
|
|||||||
<field name="name">education.exam.tree</field>
|
<field name="name">education.exam.tree</field>
|
||||||
<field name="model">education.exam</field>
|
<field name="model">education.exam</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree>
|
<list>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="exam_type_id"/>
|
<field name="exam_type_id"/>
|
||||||
<field name="program_id"/>
|
<field name="program_id"/>
|
||||||
@ -50,7 +50,7 @@
|
|||||||
<field name="start_date"/>
|
<field name="start_date"/>
|
||||||
<field name="end_date"/>
|
<field name="end_date"/>
|
||||||
<field name="state" widget="badge" decoration-info="state == 'scheduled'" decoration-warning="state == 'ongoing'" decoration-success="state == 'completed' or state == 'results_published'"/>
|
<field name="state" widget="badge" decoration-info="state == 'scheduled'" decoration-warning="state == 'ongoing'" decoration-success="state == 'completed' or state == 'results_published'"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -91,7 +91,7 @@
|
|||||||
<notebook>
|
<notebook>
|
||||||
<page string="Schedule" name="schedule">
|
<page string="Schedule" name="schedule">
|
||||||
<field name="line_ids">
|
<field name="line_ids">
|
||||||
<tree editable="bottom">
|
<list editable="bottom">
|
||||||
<field name="subject_id"/>
|
<field name="subject_id"/>
|
||||||
<field name="exam_date"/>
|
<field name="exam_date"/>
|
||||||
<field name="start_time" widget="float_time"/>
|
<field name="start_time" widget="float_time"/>
|
||||||
@ -101,19 +101,19 @@
|
|||||||
<field name="room"/>
|
<field name="room"/>
|
||||||
<field name="venue"/>
|
<field name="venue"/>
|
||||||
<field name="faculty_id"/>
|
<field name="faculty_id"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
<page string="Results" name="results">
|
<page string="Results" name="results">
|
||||||
<field name="result_ids" readonly="1">
|
<field name="result_ids" readonly="1">
|
||||||
<tree>
|
<list>
|
||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="total_obtained_marks"/>
|
<field name="total_obtained_marks"/>
|
||||||
<field name="percentage"/>
|
<field name="percentage"/>
|
||||||
<field name="grade_id"/>
|
<field name="grade_id"/>
|
||||||
<field name="result_status"/>
|
<field name="result_status"/>
|
||||||
<field name="published"/>
|
<field name="published"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
@ -125,6 +125,6 @@
|
|||||||
<record id="action_education_exam" model="ir.actions.act_window">
|
<record id="action_education_exam" model="ir.actions.act_window">
|
||||||
<field name="name">Exams</field>
|
<field name="name">Exams</field>
|
||||||
<field name="res_model">education.exam</field>
|
<field name="res_model">education.exam</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,11 +4,11 @@
|
|||||||
<field name="name">education.grading.system.tree</field>
|
<field name="name">education.grading.system.tree</field>
|
||||||
<field name="model">education.grading.system</field>
|
<field name="model">education.grading.system</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree>
|
<list>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="scale_type"/>
|
<field name="scale_type"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -31,7 +31,7 @@
|
|||||||
<notebook>
|
<notebook>
|
||||||
<page string="Grades">
|
<page string="Grades">
|
||||||
<field name="grade_ids">
|
<field name="grade_ids">
|
||||||
<tree editable="bottom" default_order="sequence">
|
<list editable="bottom" default_order="sequence">
|
||||||
<field name="sequence" widget="handle"/>
|
<field name="sequence" widget="handle"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
@ -39,7 +39,7 @@
|
|||||||
<field name="max_percentage"/>
|
<field name="max_percentage"/>
|
||||||
<field name="grade_point"/>
|
<field name="grade_point"/>
|
||||||
<field name="result_status"/>
|
<field name="result_status"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
@ -51,6 +51,6 @@
|
|||||||
<record id="action_education_grading_system" model="ir.actions.act_window">
|
<record id="action_education_grading_system" model="ir.actions.act_window">
|
||||||
<field name="name">Grading Systems</field>
|
<field name="name">Grading Systems</field>
|
||||||
<field name="res_model">education.grading.system</field>
|
<field name="res_model">education.grading.system</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,14 +4,14 @@
|
|||||||
<field name="name">education.subject.tree</field>
|
<field name="name">education.subject.tree</field>
|
||||||
<field name="model">education.subject</field>
|
<field name="model">education.subject</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree>
|
<list>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="program_id"/>
|
<field name="program_id"/>
|
||||||
<field name="term_id"/>
|
<field name="term_id"/>
|
||||||
<field name="subject_type"/>
|
<field name="subject_type"/>
|
||||||
<field name="credits"/>
|
<field name="credits"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -47,6 +47,6 @@
|
|||||||
<record id="action_education_subject" model="ir.actions.act_window">
|
<record id="action_education_subject" model="ir.actions.act_window">
|
||||||
<field name="name">Subjects</field>
|
<field name="name">Subjects</field>
|
||||||
<field name="res_model">education.subject</field>
|
<field name="res_model">education.subject</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
'name': 'Education Finance',
|
'name': 'Education Finance',
|
||||||
'version': '17.0.1.0.0',
|
'version': '19.0.1.0.0',
|
||||||
'summary': 'Student Finance Management System for education institutions',
|
'summary': 'Student Finance Management System for education institutions',
|
||||||
'description': '''
|
'description': '''
|
||||||
This module manages fee categories, fee types, fee structures, assignments,
|
This module manages fee categories, fee types, fee structures, assignments,
|
||||||
|
|||||||
BIN
addons/education_finance/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
addons/education_finance/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -9,28 +9,24 @@
|
|||||||
<!-- Groups -->
|
<!-- Groups -->
|
||||||
<record id="group_finance_executive" model="res.groups">
|
<record id="group_finance_executive" model="res.groups">
|
||||||
<field name="name">Finance Executive</field>
|
<field name="name">Finance Executive</field>
|
||||||
<field name="category_id" ref="module_category_education_finance"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
||||||
<field name="comment">Basic transactional actions: Record payments, view student ledgers.</field>
|
<field name="comment">Basic transactional actions: Record payments, view student ledgers.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="group_finance_manager" model="res.groups">
|
<record id="group_finance_manager" model="res.groups">
|
||||||
<field name="name">Finance Manager</field>
|
<field name="name">Finance Manager</field>
|
||||||
<field name="category_id" ref="module_category_education_finance"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('group_finance_executive'))]"/>
|
<field name="implied_ids" eval="[(4, ref('group_finance_executive'))]"/>
|
||||||
<field name="comment">Manage fee assignments, discounts, scholarships, and approve refunds.</field>
|
<field name="comment">Manage fee assignments, discounts, scholarships, and approve refunds.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="group_finance_admin" model="res.groups">
|
<record id="group_finance_admin" model="res.groups">
|
||||||
<field name="name">Finance Administrator</field>
|
<field name="name">Finance Administrator</field>
|
||||||
<field name="category_id" ref="module_category_education_finance"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('group_finance_manager'))]"/>
|
<field name="implied_ids" eval="[(4, ref('group_finance_manager'))]"/>
|
||||||
<field name="comment">Full settings control, configure fee types/structures, and delete transactions.</field>
|
<field name="comment">Full settings control, configure fee types/structures, and delete transactions.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="group_finance_student_readonly" model="res.groups">
|
<record id="group_finance_student_readonly" model="res.groups">
|
||||||
<field name="name">Student Readonly Finance</field>
|
<field name="name">Student Readonly Finance</field>
|
||||||
<field name="category_id" ref="module_category_education_finance"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
||||||
<field name="comment">Access control group allowing a student to view their own ledger lines.</field>
|
<field name="comment">Access control group allowing a student to view their own ledger lines.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<field name="name">education.fee.assignment.tree</field>
|
<field name="name">education.fee.assignment.tree</field>
|
||||||
<field name="model">education.fee.assignment</field>
|
<field name="model">education.fee.assignment</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Fee Assignments">
|
<list string="Fee Assignments">
|
||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="academic_year_id"/>
|
<field name="academic_year_id"/>
|
||||||
<field name="semester_id"/>
|
<field name="semester_id"/>
|
||||||
@ -12,7 +12,7 @@
|
|||||||
<field name="assignment_date"/>
|
<field name="assignment_date"/>
|
||||||
<field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state == 'confirmed'"/>
|
<field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state == 'confirmed'"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -53,7 +53,7 @@
|
|||||||
<field name="fee_structure_id"/>
|
<field name="fee_structure_id"/>
|
||||||
<filter string="Draft" name="draft" domain="[('state', '=', 'draft')]"/>
|
<filter string="Draft" name="draft" domain="[('state', '=', 'draft')]"/>
|
||||||
<filter string="Confirmed" name="confirmed" domain="[('state', '=', 'confirmed')]"/>
|
<filter string="Confirmed" name="confirmed" domain="[('state', '=', 'confirmed')]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
||||||
<filter string="Fee Structure" name="group_structure" context="{'group_by': 'fee_structure_id'}"/>
|
<filter string="Fee Structure" name="group_structure" context="{'group_by': 'fee_structure_id'}"/>
|
||||||
<filter string="Status" name="group_status" context="{'group_by': 'state'}"/>
|
<filter string="Status" name="group_status" context="{'group_by': 'state'}"/>
|
||||||
@ -65,7 +65,7 @@
|
|||||||
<record id="action_education_fee_assignment" model="ir.actions.act_window">
|
<record id="action_education_fee_assignment" model="ir.actions.act_window">
|
||||||
<field name="name">Fee Assignments</field>
|
<field name="name">Fee Assignments</field>
|
||||||
<field name="res_model">education.fee.assignment</field>
|
<field name="res_model">education.fee.assignment</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_fee_assignment_search"/>
|
<field name="search_view_id" ref="view_education_fee_assignment_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,12 +4,12 @@
|
|||||||
<field name="name">education.fee.category.tree</field>
|
<field name="name">education.fee.category.tree</field>
|
||||||
<field name="model">education.fee.category</field>
|
<field name="model">education.fee.category</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Fee Categories" editable="bottom">
|
<list string="Fee Categories" editable="bottom">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="description"/>
|
<field name="description"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -27,7 +27,7 @@
|
|||||||
<record id="action_education_fee_category" model="ir.actions.act_window">
|
<record id="action_education_fee_category" model="ir.actions.act_window">
|
||||||
<field name="name">Fee Categories</field>
|
<field name="name">Fee Categories</field>
|
||||||
<field name="res_model">education.fee.category</field>
|
<field name="res_model">education.fee.category</field>
|
||||||
<field name="view_mode">tree</field>
|
<field name="view_mode">list</field>
|
||||||
<field name="search_view_id" ref="view_education_fee_category_search"/>
|
<field name="search_view_id" ref="view_education_fee_category_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<field name="name">education.fee.structure.tree</field>
|
<field name="name">education.fee.structure.tree</field>
|
||||||
<field name="model">education.fee.structure</field>
|
<field name="model">education.fee.structure</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Fee Structures">
|
<list string="Fee Structures">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="academic_year_id"/>
|
<field name="academic_year_id"/>
|
||||||
<field name="level_id"/>
|
<field name="level_id"/>
|
||||||
@ -12,7 +12,7 @@
|
|||||||
<field name="department_id"/>
|
<field name="department_id"/>
|
||||||
<field name="semester_id"/>
|
<field name="semester_id"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -42,12 +42,12 @@
|
|||||||
<notebook>
|
<notebook>
|
||||||
<page string="Fee Lines" name="lines">
|
<page string="Fee Lines" name="lines">
|
||||||
<field name="line_ids">
|
<field name="line_ids">
|
||||||
<tree editable="bottom">
|
<list editable="bottom">
|
||||||
<field name="sequence" widget="handle"/>
|
<field name="sequence" widget="handle"/>
|
||||||
<field name="fee_type_id"/>
|
<field name="fee_type_id"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
<field name="mandatory"/>
|
<field name="mandatory"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
@ -65,7 +65,7 @@
|
|||||||
<field name="academic_year_id"/>
|
<field name="academic_year_id"/>
|
||||||
<field name="level_id"/>
|
<field name="level_id"/>
|
||||||
<field name="program_id"/>
|
<field name="program_id"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Academic Year" name="group_year" context="{'group_by': 'academic_year_id'}"/>
|
<filter string="Academic Year" name="group_year" context="{'group_by': 'academic_year_id'}"/>
|
||||||
<filter string="Level" name="group_level" context="{'group_by': 'level_id'}"/>
|
<filter string="Level" name="group_level" context="{'group_by': 'level_id'}"/>
|
||||||
<filter string="Program" name="group_program" context="{'group_by': 'program_id'}"/>
|
<filter string="Program" name="group_program" context="{'group_by': 'program_id'}"/>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<record id="action_education_fee_structure" model="ir.actions.act_window">
|
<record id="action_education_fee_structure" model="ir.actions.act_window">
|
||||||
<field name="name">Fee Structures</field>
|
<field name="name">Fee Structures</field>
|
||||||
<field name="res_model">education.fee.structure</field>
|
<field name="res_model">education.fee.structure</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_fee_structure_search"/>
|
<field name="search_view_id" ref="view_education_fee_structure_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<field name="name">education.fee.type.tree</field>
|
<field name="name">education.fee.type.tree</field>
|
||||||
<field name="model">education.fee.type</field>
|
<field name="model">education.fee.type</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Fee Types" editable="bottom">
|
<list string="Fee Types" editable="bottom">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="category_id"/>
|
<field name="category_id"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
@ -12,7 +12,7 @@
|
|||||||
<field name="mandatory"/>
|
<field name="mandatory"/>
|
||||||
<field name="tax_applicable"/>
|
<field name="tax_applicable"/>
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -25,7 +25,7 @@
|
|||||||
<field name="category_id"/>
|
<field name="category_id"/>
|
||||||
<filter string="Mandatory" name="mandatory" domain="[('mandatory', '=', True)]"/>
|
<filter string="Mandatory" name="mandatory" domain="[('mandatory', '=', True)]"/>
|
||||||
<filter string="Recurring" name="recurring" domain="[('recurring', '=', True)]"/>
|
<filter string="Recurring" name="recurring" domain="[('recurring', '=', True)]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Category" name="group_category" context="{'group_by': 'category_id'}"/>
|
<filter string="Category" name="group_category" context="{'group_by': 'category_id'}"/>
|
||||||
</group>
|
</group>
|
||||||
</search>
|
</search>
|
||||||
@ -35,7 +35,7 @@
|
|||||||
<record id="action_education_fee_type" model="ir.actions.act_window">
|
<record id="action_education_fee_type" model="ir.actions.act_window">
|
||||||
<field name="name">Fee Types</field>
|
<field name="name">Fee Types</field>
|
||||||
<field name="res_model">education.fee.type</field>
|
<field name="res_model">education.fee.type</field>
|
||||||
<field name="view_mode">tree</field>
|
<field name="view_mode">list</field>
|
||||||
<field name="search_view_id" ref="view_education_fee_type_search"/>
|
<field name="search_view_id" ref="view_education_fee_type_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,13 +4,13 @@
|
|||||||
<field name="name">education.student.discount.tree</field>
|
<field name="name">education.student.discount.tree</field>
|
||||||
<field name="model">education.student.discount</field>
|
<field name="model">education.student.discount</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Student Fee Discounts">
|
<list string="Student Fee Discounts">
|
||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="type"/>
|
<field name="type"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
<field name="approved_by"/>
|
<field name="approved_by"/>
|
||||||
<field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state == 'confirmed'" decoration-danger="state == 'cancelled'"/>
|
<field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state == 'confirmed'" decoration-danger="state == 'cancelled'"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -53,7 +53,7 @@
|
|||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="approved_by"/>
|
<field name="approved_by"/>
|
||||||
<filter string="Confirmed" name="confirmed" domain="[('state', '=', 'confirmed')]"/>
|
<filter string="Confirmed" name="confirmed" domain="[('state', '=', 'confirmed')]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
||||||
<filter string="Status" name="group_status" context="{'group_by': 'state'}"/>
|
<filter string="Status" name="group_status" context="{'group_by': 'state'}"/>
|
||||||
</group>
|
</group>
|
||||||
@ -64,7 +64,7 @@
|
|||||||
<record id="action_education_student_discount" model="ir.actions.act_window">
|
<record id="action_education_student_discount" model="ir.actions.act_window">
|
||||||
<field name="name">Discounts</field>
|
<field name="name">Discounts</field>
|
||||||
<field name="res_model">education.student.discount</field>
|
<field name="res_model">education.student.discount</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_student_discount_search"/>
|
<field name="search_view_id" ref="view_education_student_discount_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<field name="name">education.student.ledger.tree</field>
|
<field name="name">education.student.ledger.tree</field>
|
||||||
<field name="model">education.student.ledger</field>
|
<field name="model">education.student.ledger</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Student Ledger" create="false" edit="false" delete="false">
|
<list string="Student Ledger" create="false" edit="false" delete="false">
|
||||||
<field name="date"/>
|
<field name="date"/>
|
||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="ref"/>
|
<field name="ref"/>
|
||||||
@ -13,7 +13,7 @@
|
|||||||
<field name="credit" sum="Total Credit"/>
|
<field name="credit" sum="Total Credit"/>
|
||||||
<field name="balance" sum="Total Balance"/>
|
<field name="balance" sum="Total Balance"/>
|
||||||
<field name="status" widget="badge" decoration-success="status == 'posted'" decoration-danger="status == 'cancelled'"/>
|
<field name="status" widget="badge" decoration-success="status == 'posted'" decoration-danger="status == 'cancelled'"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -27,7 +27,7 @@
|
|||||||
<field name="date"/>
|
<field name="date"/>
|
||||||
<filter string="Posted" name="posted" domain="[('status', '=', 'posted')]"/>
|
<filter string="Posted" name="posted" domain="[('status', '=', 'posted')]"/>
|
||||||
<filter string="Cancelled" name="cancelled" domain="[('status', '=', 'cancelled')]"/>
|
<filter string="Cancelled" name="cancelled" domain="[('status', '=', 'cancelled')]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
||||||
<filter string="Date" name="group_date" context="{'group_by': 'date'}"/>
|
<filter string="Date" name="group_date" context="{'group_by': 'date'}"/>
|
||||||
</group>
|
</group>
|
||||||
@ -62,7 +62,7 @@
|
|||||||
<record id="action_education_student_ledger" model="ir.actions.act_window">
|
<record id="action_education_student_ledger" model="ir.actions.act_window">
|
||||||
<field name="name">Student Ledger</field>
|
<field name="name">Student Ledger</field>
|
||||||
<field name="res_model">education.student.ledger</field>
|
<field name="res_model">education.student.ledger</field>
|
||||||
<field name="view_mode">tree,pivot,graph</field>
|
<field name="view_mode">list,pivot,graph</field>
|
||||||
<field name="search_view_id" ref="view_education_student_ledger_search"/>
|
<field name="search_view_id" ref="view_education_student_ledger_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<field name="name">education.student.payment.tree</field>
|
<field name="name">education.student.payment.tree</field>
|
||||||
<field name="model">education.student.payment</field>
|
<field name="model">education.student.payment</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Student Payments">
|
<list string="Student Payments">
|
||||||
<field name="receipt_number"/>
|
<field name="receipt_number"/>
|
||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="payment_date"/>
|
<field name="payment_date"/>
|
||||||
@ -12,7 +12,7 @@
|
|||||||
<field name="amount" sum="Total Amount"/>
|
<field name="amount" sum="Total Amount"/>
|
||||||
<field name="reference_number"/>
|
<field name="reference_number"/>
|
||||||
<field name="status" widget="badge" decoration-info="status == 'draft'" decoration-success="status == 'confirmed'" decoration-danger="status == 'cancelled'"/>
|
<field name="status" widget="badge" decoration-info="status == 'draft'" decoration-success="status == 'confirmed'" decoration-danger="status == 'cancelled'"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -64,7 +64,7 @@
|
|||||||
<field name="reference_number"/>
|
<field name="reference_number"/>
|
||||||
<filter string="Confirmed" name="confirmed" domain="[('status', '=', 'confirmed')]"/>
|
<filter string="Confirmed" name="confirmed" domain="[('status', '=', 'confirmed')]"/>
|
||||||
<filter string="Draft" name="draft" domain="[('status', '=', 'draft')]"/>
|
<filter string="Draft" name="draft" domain="[('status', '=', 'draft')]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
||||||
<filter string="Payment Method" name="group_method" context="{'group_by': 'payment_method'}"/>
|
<filter string="Payment Method" name="group_method" context="{'group_by': 'payment_method'}"/>
|
||||||
<filter string="Status" name="group_status" context="{'group_by': 'status'}"/>
|
<filter string="Status" name="group_status" context="{'group_by': 'status'}"/>
|
||||||
@ -99,7 +99,7 @@
|
|||||||
<record id="action_education_student_payment" model="ir.actions.act_window">
|
<record id="action_education_student_payment" model="ir.actions.act_window">
|
||||||
<field name="name">Payments</field>
|
<field name="name">Payments</field>
|
||||||
<field name="res_model">education.student.payment</field>
|
<field name="res_model">education.student.payment</field>
|
||||||
<field name="view_mode">tree,form,pivot,graph</field>
|
<field name="view_mode">list,form,pivot,graph</field>
|
||||||
<field name="search_view_id" ref="view_education_student_payment_search"/>
|
<field name="search_view_id" ref="view_education_student_payment_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,13 +4,13 @@
|
|||||||
<field name="name">education.student.refund.tree</field>
|
<field name="name">education.student.refund.tree</field>
|
||||||
<field name="model">education.student.refund</field>
|
<field name="model">education.student.refund</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Student Refunds">
|
<list string="Student Refunds">
|
||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="payment_id"/>
|
<field name="payment_id"/>
|
||||||
<field name="amount" sum="Total Amount"/>
|
<field name="amount" sum="Total Amount"/>
|
||||||
<field name="reason"/>
|
<field name="reason"/>
|
||||||
<field name="status" widget="badge" decoration-info="status == 'draft'" decoration-success="status == 'approved'" decoration-danger="status == 'rejected'"/>
|
<field name="status" widget="badge" decoration-info="status == 'draft'" decoration-success="status == 'approved'" decoration-danger="status == 'rejected'"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -52,7 +52,7 @@
|
|||||||
<field name="payment_id"/>
|
<field name="payment_id"/>
|
||||||
<filter string="Approved" name="approved" domain="[('status', '=', 'approved')]"/>
|
<filter string="Approved" name="approved" domain="[('status', '=', 'approved')]"/>
|
||||||
<filter string="Draft" name="draft" domain="[('status', '=', 'draft')]"/>
|
<filter string="Draft" name="draft" domain="[('status', '=', 'draft')]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
||||||
<filter string="Status" name="group_status" context="{'group_by': 'status'}"/>
|
<filter string="Status" name="group_status" context="{'group_by': 'status'}"/>
|
||||||
</group>
|
</group>
|
||||||
@ -63,7 +63,7 @@
|
|||||||
<record id="action_education_student_refund" model="ir.actions.act_window">
|
<record id="action_education_student_refund" model="ir.actions.act_window">
|
||||||
<field name="name">Refunds</field>
|
<field name="name">Refunds</field>
|
||||||
<field name="res_model">education.student.refund</field>
|
<field name="res_model">education.student.refund</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_student_refund_search"/>
|
<field name="search_view_id" ref="view_education_student_refund_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -4,14 +4,14 @@
|
|||||||
<field name="name">education.student.scholarship.tree</field>
|
<field name="name">education.student.scholarship.tree</field>
|
||||||
<field name="model">education.student.scholarship</field>
|
<field name="model">education.student.scholarship</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Student Scholarships">
|
<list string="Student Scholarships">
|
||||||
<field name="scholarship_name"/>
|
<field name="scholarship_name"/>
|
||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="type"/>
|
<field name="type"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
<field name="sponsor"/>
|
<field name="sponsor"/>
|
||||||
<field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state == 'confirmed'" decoration-danger="state == 'cancelled'"/>
|
<field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state == 'confirmed'" decoration-danger="state == 'cancelled'"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -56,7 +56,7 @@
|
|||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="sponsor"/>
|
<field name="sponsor"/>
|
||||||
<filter string="Confirmed" name="confirmed" domain="[('state', '=', 'confirmed')]"/>
|
<filter string="Confirmed" name="confirmed" domain="[('state', '=', 'confirmed')]"/>
|
||||||
<group expand="1" string="Group By">
|
<group>
|
||||||
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
||||||
<filter string="Status" name="group_status" context="{'group_by': 'state'}"/>
|
<filter string="Status" name="group_status" context="{'group_by': 'state'}"/>
|
||||||
</group>
|
</group>
|
||||||
@ -67,7 +67,7 @@
|
|||||||
<record id="action_education_student_scholarship" model="ir.actions.act_window">
|
<record id="action_education_student_scholarship" model="ir.actions.act_window">
|
||||||
<field name="name">Scholarships</field>
|
<field name="name">Scholarships</field>
|
||||||
<field name="res_model">education.student.scholarship</field>
|
<field name="res_model">education.student.scholarship</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="search_view_id" ref="view_education_student_scholarship_search"/>
|
<field name="search_view_id" ref="view_education_student_scholarship_search"/>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@ -10,13 +10,13 @@
|
|||||||
<xpath expr="//div[@name='button_box']" position="replace">
|
<xpath expr="//div[@name='button_box']" position="replace">
|
||||||
<div class="oe_button_box" name="button_box">
|
<div class="oe_button_box" name="button_box">
|
||||||
<!-- 1. Fee Assignments Button -->
|
<!-- 1. Fee Assignments Button -->
|
||||||
<button class="oe_stat_button" icon="fa-tasks" type="action" name="%(action_education_fee_assignment)d" context="{'search_default_student_id': active_id}">
|
<button class="oe_stat_button" icon="fa-tasks" type="action" name="%(action_education_fee_assignment)d" context="{'search_default_student_id': id}">
|
||||||
<div class="o_stat_info">
|
<div class="o_stat_info">
|
||||||
<span class="o_stat_text">Assignments</span>
|
<span class="o_stat_text">Assignments</span>
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
<!-- 2. Payments Button -->
|
<!-- 2. Payments Button -->
|
||||||
<button class="oe_stat_button" icon="fa-credit-card" type="action" name="%(action_education_student_payment)d" context="{'search_default_student_id': active_id}">
|
<button class="oe_stat_button" icon="fa-credit-card" type="action" name="%(action_education_student_payment)d" context="{'search_default_student_id': id}">
|
||||||
<div class="o_stat_info">
|
<div class="o_stat_info">
|
||||||
<span class="o_stat_value">
|
<span class="o_stat_value">
|
||||||
<field name="total_paid" widget="monetary"/>
|
<field name="total_paid" widget="monetary"/>
|
||||||
@ -25,13 +25,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
<!-- 3. Ledger Button -->
|
<!-- 3. Ledger Button -->
|
||||||
<button class="oe_stat_button" icon="fa-list-alt" type="action" name="%(action_education_student_ledger)d" context="{'search_default_student_id': active_id}">
|
<button class="oe_stat_button" icon="fa-list-alt" type="action" name="%(action_education_student_ledger)d" context="{'search_default_student_id': id}">
|
||||||
<div class="o_stat_info">
|
<div class="o_stat_info">
|
||||||
<span class="o_stat_text">Ledger</span>
|
<span class="o_stat_text">Ledger</span>
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
<!-- 4. Receipts Button -->
|
<!-- 4. Receipts Button -->
|
||||||
<button class="oe_stat_button" icon="fa-file-text-o" type="action" name="%(action_education_student_payment)d" context="{'search_default_student_id': active_id, 'search_default_confirmed': 1}">
|
<button class="oe_stat_button" icon="fa-file-text-o" type="action" name="%(action_education_student_payment)d" context="{'search_default_student_id': id, 'search_default_confirmed': 1}">
|
||||||
<div class="o_stat_info">
|
<div class="o_stat_info">
|
||||||
<span class="o_stat_value">
|
<span class="o_stat_value">
|
||||||
<field name="total_fees" widget="monetary"/>
|
<field name="total_fees" widget="monetary"/>
|
||||||
@ -40,7 +40,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
<!-- 5. Outstanding Button -->
|
<!-- 5. Outstanding Button -->
|
||||||
<button class="oe_stat_button" icon="fa-money" type="action" name="%(action_education_student_ledger)d" context="{'search_default_student_id': active_id}">
|
<button class="oe_stat_button" icon="fa-money" type="action" name="%(action_education_student_ledger)d" context="{'search_default_student_id': id}">
|
||||||
<div class="o_stat_info">
|
<div class="o_stat_info">
|
||||||
<span class="o_stat_value">
|
<span class="o_stat_value">
|
||||||
<field name="outstanding_amount" widget="monetary"/>
|
<field name="outstanding_amount" widget="monetary"/>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
'name': 'Education LMS',
|
'name': 'Education LMS',
|
||||||
'version': '17.0.1.0.0',
|
'version': '19.0.1.0.0',
|
||||||
'category': 'Education',
|
'category': 'Education',
|
||||||
'summary': 'Learning Management System Foundation for Education',
|
'summary': 'Learning Management System Foundation for Education',
|
||||||
'description': """
|
'description': """
|
||||||
|
|||||||
BIN
addons/education_lms/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
addons/education_lms/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
addons/education_lms/models/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
addons/education_lms/models/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -10,24 +10,20 @@
|
|||||||
<!-- Student Group -->
|
<!-- Student Group -->
|
||||||
<record id="group_education_lms_student" model="res.groups">
|
<record id="group_education_lms_student" model="res.groups">
|
||||||
<field name="name">LMS Student</field>
|
<field name="name">LMS Student</field>
|
||||||
<field name="category_id" ref="module_category_education_lms"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- Faculty Group -->
|
<!-- Faculty Group -->
|
||||||
<record id="group_education_lms_faculty" model="res.groups">
|
<record id="group_education_lms_faculty" model="res.groups">
|
||||||
<field name="name">LMS Faculty</field>
|
<field name="name">LMS Faculty</field>
|
||||||
<field name="category_id" ref="module_category_education_lms"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- Administrator Group -->
|
<!-- Administrator Group -->
|
||||||
<record id="group_education_lms_admin" model="res.groups">
|
<record id="group_education_lms_admin" model="res.groups">
|
||||||
<field name="name">LMS Administrator</field>
|
<field name="name">LMS Administrator</field>
|
||||||
<field name="category_id" ref="module_category_education_lms"/>
|
|
||||||
<field name="implied_ids" eval="[(4, ref('group_education_lms_faculty'))]"/>
|
<field name="implied_ids" eval="[(4, ref('group_education_lms_faculty'))]"/>
|
||||||
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
|
</record>
|
||||||
</record>
|
|
||||||
|
|
||||||
<data>
|
<data>
|
||||||
<!-- Faculty Record Rules: Strict Ownership -->
|
<!-- Faculty Record Rules: Strict Ownership -->
|
||||||
|
|||||||
@ -51,13 +51,13 @@
|
|||||||
<field name="name">education.lms.assignment.tree</field>
|
<field name="name">education.lms.assignment.tree</field>
|
||||||
<field name="model">education.lms.assignment</field>
|
<field name="model">education.lms.assignment</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Assignments">
|
<list string="Assignments">
|
||||||
<field name="title"/>
|
<field name="title"/>
|
||||||
<field name="course_id"/>
|
<field name="course_id"/>
|
||||||
<field name="due_date"/>
|
<field name="due_date"/>
|
||||||
<field name="maximum_marks"/>
|
<field name="maximum_marks"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -72,7 +72,7 @@
|
|||||||
<field name="faculty_id"/>
|
<field name="faculty_id"/>
|
||||||
<filter string="Published" name="published" domain="[('state','=','published')]"/>
|
<filter string="Published" name="published" domain="[('state','=','published')]"/>
|
||||||
<filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
|
<filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
|
||||||
<group expand="0" string="Group By">
|
<group>
|
||||||
<filter string="Course" name="group_by_course" context="{'group_by':'course_id'}"/>
|
<filter string="Course" name="group_by_course" context="{'group_by':'course_id'}"/>
|
||||||
<filter string="State" name="group_by_state" context="{'group_by':'state'}"/>
|
<filter string="State" name="group_by_state" context="{'group_by':'state'}"/>
|
||||||
</group>
|
</group>
|
||||||
@ -84,7 +84,7 @@
|
|||||||
<record id="action_education_lms_assignment" model="ir.actions.act_window">
|
<record id="action_education_lms_assignment" model="ir.actions.act_window">
|
||||||
<field name="name">Assignments</field>
|
<field name="name">Assignments</field>
|
||||||
<field name="res_model">education.lms.assignment</field>
|
<field name="res_model">education.lms.assignment</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p class="o_view_nocontent_smiling_face">
|
<p class="o_view_nocontent_smiling_face">
|
||||||
Create the first Assignment!
|
Create the first Assignment!
|
||||||
|
|||||||
@ -22,11 +22,11 @@
|
|||||||
<notebook>
|
<notebook>
|
||||||
<page string="Lessons" name="lessons">
|
<page string="Lessons" name="lessons">
|
||||||
<field name="lesson_ids">
|
<field name="lesson_ids">
|
||||||
<tree string="Lessons">
|
<list string="Lessons">
|
||||||
<field name="sequence" widget="handle"/>
|
<field name="sequence" widget="handle"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="published"/>
|
<field name="published"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
<page string="Description" name="description">
|
<page string="Description" name="description">
|
||||||
@ -60,12 +60,12 @@
|
|||||||
<notebook>
|
<notebook>
|
||||||
<page string="Materials" name="materials">
|
<page string="Materials" name="materials">
|
||||||
<field name="material_ids">
|
<field name="material_ids">
|
||||||
<tree string="Materials">
|
<list string="Materials">
|
||||||
<field name="sequence" widget="handle"/>
|
<field name="sequence" widget="handle"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="material_type"/>
|
<field name="material_type"/>
|
||||||
<field name="published"/>
|
<field name="published"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
<page string="Content" name="content">
|
<page string="Content" name="content">
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
<div class="oe_button_box" name="button_box">
|
<div class="oe_button_box" name="button_box">
|
||||||
<button class="oe_stat_button" type="action" name="%(action_education_lms_assignment)d"
|
<button class="oe_stat_button" type="action" name="%(action_education_lms_assignment)d"
|
||||||
icon="fa-tasks"
|
icon="fa-tasks"
|
||||||
context="{'search_default_course_id': active_id, 'default_course_id': active_id}">
|
context="{'search_default_course_id': id, 'default_course_id': id}">
|
||||||
<div class="o_stat_info">
|
<div class="o_stat_info">
|
||||||
<field name="assignment_count" class="o_stat_value"/>
|
<field name="assignment_count" class="o_stat_value"/>
|
||||||
<span class="o_stat_text">Assignments</span>
|
<span class="o_stat_text">Assignments</span>
|
||||||
@ -24,7 +24,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<button class="oe_stat_button" type="action" name="%(action_education_lms_submission)d"
|
<button class="oe_stat_button" type="action" name="%(action_education_lms_submission)d"
|
||||||
icon="fa-file-text-o"
|
icon="fa-file-text-o"
|
||||||
context="{'search_default_course_id': active_id, 'default_course_id': active_id}">
|
context="{'search_default_course_id': id, 'default_course_id': id}">
|
||||||
<div class="o_stat_info">
|
<div class="o_stat_info">
|
||||||
<field name="submission_count" class="o_stat_value"/>
|
<field name="submission_count" class="o_stat_value"/>
|
||||||
<span class="o_stat_text">Submissions</span>
|
<span class="o_stat_text">Submissions</span>
|
||||||
@ -53,11 +53,11 @@
|
|||||||
<notebook>
|
<notebook>
|
||||||
<page string="Content" name="content">
|
<page string="Content" name="content">
|
||||||
<field name="section_ids">
|
<field name="section_ids">
|
||||||
<tree string="Sections">
|
<list string="Sections">
|
||||||
<field name="sequence" widget="handle"/>
|
<field name="sequence" widget="handle"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="published"/>
|
<field name="published"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
<page string="Description" name="description">
|
<page string="Description" name="description">
|
||||||
@ -74,13 +74,13 @@
|
|||||||
<field name="name">education.lms.course.tree</field>
|
<field name="name">education.lms.course.tree</field>
|
||||||
<field name="model">education.lms.course</field>
|
<field name="model">education.lms.course</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Courses">
|
<list string="Courses">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="subject_id"/>
|
<field name="subject_id"/>
|
||||||
<field name="program_id"/>
|
<field name="program_id"/>
|
||||||
<field name="faculty_id"/>
|
<field name="faculty_id"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -96,7 +96,7 @@
|
|||||||
<field name="program_id"/>
|
<field name="program_id"/>
|
||||||
<filter string="Published" name="published" domain="[('state','=','published')]"/>
|
<filter string="Published" name="published" domain="[('state','=','published')]"/>
|
||||||
<filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
|
<filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
|
||||||
<group expand="0" string="Group By">
|
<group>
|
||||||
<filter string="Program" name="group_by_program" context="{'group_by':'program_id'}"/>
|
<filter string="Program" name="group_by_program" context="{'group_by':'program_id'}"/>
|
||||||
<filter string="Faculty" name="group_by_faculty" context="{'group_by':'faculty_id'}"/>
|
<filter string="Faculty" name="group_by_faculty" context="{'group_by':'faculty_id'}"/>
|
||||||
<filter string="State" name="group_by_state" context="{'group_by':'state'}"/>
|
<filter string="State" name="group_by_state" context="{'group_by':'state'}"/>
|
||||||
@ -109,7 +109,7 @@
|
|||||||
<record id="action_education_lms_course" model="ir.actions.act_window">
|
<record id="action_education_lms_course" model="ir.actions.act_window">
|
||||||
<field name="name">Courses</field>
|
<field name="name">Courses</field>
|
||||||
<field name="res_model">education.lms.course</field>
|
<field name="res_model">education.lms.course</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p class="o_view_nocontent_smiling_face">
|
<p class="o_view_nocontent_smiling_face">
|
||||||
Create your first LMS Course!
|
Create your first LMS Course!
|
||||||
|
|||||||
@ -47,13 +47,13 @@
|
|||||||
<field name="name">education.lms.submission.tree</field>
|
<field name="name">education.lms.submission.tree</field>
|
||||||
<field name="model">education.lms.submission</field>
|
<field name="model">education.lms.submission</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Submissions" decoration-danger="status=='late'" decoration-success="status=='evaluated'">
|
<list string="Submissions" decoration-danger="status=='late'" decoration-success="status=='evaluated'">
|
||||||
<field name="assignment_id"/>
|
<field name="assignment_id"/>
|
||||||
<field name="student_id"/>
|
<field name="student_id"/>
|
||||||
<field name="submission_date"/>
|
<field name="submission_date"/>
|
||||||
<field name="status"/>
|
<field name="status"/>
|
||||||
<field name="marks"/>
|
<field name="marks"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -68,7 +68,7 @@
|
|||||||
<filter string="Submitted" name="submitted" domain="[('status','=','submitted')]"/>
|
<filter string="Submitted" name="submitted" domain="[('status','=','submitted')]"/>
|
||||||
<filter string="Evaluated" name="evaluated" domain="[('status','=','evaluated')]"/>
|
<filter string="Evaluated" name="evaluated" domain="[('status','=','evaluated')]"/>
|
||||||
<filter string="Late" name="late" domain="[('status','=','late')]"/>
|
<filter string="Late" name="late" domain="[('status','=','late')]"/>
|
||||||
<group expand="0" string="Group By">
|
<group>
|
||||||
<filter string="Assignment" name="group_by_assignment" context="{'group_by':'assignment_id'}"/>
|
<filter string="Assignment" name="group_by_assignment" context="{'group_by':'assignment_id'}"/>
|
||||||
<filter string="Student" name="group_by_student" context="{'group_by':'student_id'}"/>
|
<filter string="Student" name="group_by_student" context="{'group_by':'student_id'}"/>
|
||||||
<filter string="Status" name="group_by_status" context="{'group_by':'status'}"/>
|
<filter string="Status" name="group_by_status" context="{'group_by':'status'}"/>
|
||||||
@ -81,7 +81,7 @@
|
|||||||
<record id="action_education_lms_submission" model="ir.actions.act_window">
|
<record id="action_education_lms_submission" model="ir.actions.act_window">
|
||||||
<field name="name">Submissions</field>
|
<field name="name">Submissions</field>
|
||||||
<field name="res_model">education.lms.submission</field>
|
<field name="res_model">education.lms.submission</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p class="o_view_nocontent_smiling_face">
|
<p class="o_view_nocontent_smiling_face">
|
||||||
Manage Student Submissions!
|
Manage Student Submissions!
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
'name': 'Education Portal',
|
'name': 'Education Portal',
|
||||||
'version': '17.0.1.0.0',
|
'version': '19.0.1.0.0',
|
||||||
'category': 'Education',
|
'category': 'Education',
|
||||||
'summary': 'Student Self-Service Portal for Education ERP',
|
'summary': 'Student Self-Service Portal for Education ERP',
|
||||||
'description': """
|
'description': """
|
||||||
|
|||||||
BIN
addons/education_portal/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
addons/education_portal/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user