init academy module

This commit is contained in:
XuanHuyen
2025-04-02 00:37:36 +07:00
parent 3506be1651
commit 3d85101903
13 changed files with 322 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import models
+33
View File
@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
{
'name': "Academy Management",
'summary': "Academy Management",
'description': """
Academy Management
""",
'author': "NXHuyen",
'website': "https://www.yourcompany.com",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/ir_module_category_data.xml
# for the full list
'category': 'Uncategorized',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base'],
# always loaded
'data': [
'security/ir.model.access.csv',
'views/academy_course_views.xml',
'views/academy_schedule_views.xml',
'views/academy_student_views.xml',
'views/academy_teacher_views.xml',
'views/academy_menus.xml',
],
}
+6
View File
@@ -0,0 +1,6 @@
# -*- coding: utf-8 -*-
from . import academy_course
from . import academy_schedule
from . import academy_student
from . import academy_teacher
@@ -0,0 +1,10 @@
from odoo import api, fields, models, _
class AcademyCourse(models.Model):
_name = 'academy.course'
_description = 'Academy Course'
name = fields.Char(string='Tên khóa học', required=True)
code = fields.Char(string='Mã khóa học', required=True)
description = fields.Text(string='Mô tả khóa học')
student_ids = fields.Many2many('academy.student', string='Học viên đăng ký khóa học')
@@ -0,0 +1,18 @@
from odoo import api, fields, models, _
class AcademySchedule(models.Model):
_name = 'academy.schedule'
_description = 'Academy Schedule'
name = fields.Char(string='Tên lịch học', required=True)
course_id = fields.Many2one('academy.course', string='Khóa học', required=True)
teacher_id = fields.Many2one('academy.teacher', string='Giáo viên', required=True)
student_ids = fields.Many2many('academy.student', string='Học viên tham gia')
date = fields.Datetime(string='Ngày và giờ diễn ra buổi học', required=True)
duration = fields.Float(string='Thời lượng buổi học (tính theo giờ)', required=True)
state = fields.Selection([
('draft', 'Draft'),
('confirmed', 'Confirmed'),
('done', 'Done')
], string='Trạng thái', default='draft', required=True)
@@ -0,0 +1,12 @@
from odoo import api, fields, models, _
class AcademyStudent(models.Model):
_name = 'academy.student'
_description = 'Academy Student'
name = fields.Char(string='Tên học sinh', required=True)
code = fields.Char(string='Mã học sinh', required=True)
birth_date = fields.Date(string='Ngày sinh')
email = fields.Char(string='Email')
phone = fields.Char(string='Số điện thoại')
course_ids = fields.Many2many('academy.course', string='Các khóa học học sinh đăng ký')
@@ -0,0 +1,11 @@
from odoo import api, fields, models, _
class AcademyTeacher(models.Model):
_name = 'academy.teacher'
_description = 'Academy Teacher'
name = fields.Char(string='Tên giáo viên', required=True)
code = fields.Char(string='Mã giáo viên', required=True)
email = fields.Char(string='Email')
phone = fields.Char(string='Số điện thoại')
course_ids = fields.Many2many('academy.course', string='Các khóa học giảng dạy')
@@ -0,0 +1,5 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_academy_teacher,academy.teacher,model_academy_teacher,base.group_user,1,1,1,1
access_academy_course,academy.course,model_academy_course,base.group_user,1,1,1,1
access_academy_student,academy.student,model_academy_student,base.group_user,1,1,1,1
access_academy_schedule,academy.schedule,model_academy_schedule,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_academy_teacher academy.teacher model_academy_teacher base.group_user 1 1 1 1
3 access_academy_course academy.course model_academy_course base.group_user 1 1 1 1
4 access_academy_student academy.student model_academy_student base.group_user 1 1 1 1
5 access_academy_schedule academy.schedule model_academy_schedule base.group_user 1 1 1 1
@@ -0,0 +1,45 @@
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<record id="academy_course_view_form" model="ir.ui.view">
<field name="name">academy.course.view.form</field>
<field name="model">academy.course</field>
<field name="arch" type="xml">
<form string="">
<sheet>
<group>
<field name="name" />
<field name="teacher_id" />
<field name="student_ids" widget="many2many_tags" />
<field name="description" />
</group>
</sheet>
</form>
</field>
</record>
<record id="academy_course_view_tree" model="ir.ui.view">
<field name="name">academy.course.view.tree</field>
<field name="model">academy.course</field>
<field name="arch" type="xml">
<list string="">
<field name="name" />
<field name="code" />
<field name="teacher_id" />
<field name="student_ids" widget="many2many_tags" />
</list>
</field>
</record>
<record id="academy_course_action" model="ir.actions.act_window">
<field name="name">Khóa học</field>
<field name="res_model">academy.course</field>
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Thêm một khóa học mới
</p>
</field>
</record>
</odoo>
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<menuitem
id="academy_management_menu_root"
name="Quản lý học viện"
sequence="10" />
<menuitem
id="academy_course_menu"
name="Khóa học"
action="academy_course_action"
parent="academy_management_menu_root"
sequence="10" />
<menuitem
id="academy_schedule_menu"
name="Lịch học"
action="academy_schedule_action"
parent="academy_management_menu_root"
sequence="10" />
<menuitem
id="academy_student_menu"
name="Học sinh"
action="academy_student_action"
parent="academy_management_menu_root"
sequence="10" />
<menuitem
id="academy_teacher_menu"
name="Giảng viên"
action="academy_teacher_action"
parent="academy_management_menu_root"
sequence="10" />
</odoo>
@@ -0,0 +1,52 @@
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<record id="academy_schedule_view_form" model="ir.ui.view">
<field name="name">academy.schedule.view.form</field>
<field name="model">academy.schedule</field>
<field name="arch" type="xml">
<form string="">
<header>
<field name="state" widget="statusbar" />
</header>
<sheet>
<group>
<field name="name" />
<field name="course_id" />
<field name="teacher_id" />
<field name="date" />
<field name="duration" />
<field name="student_ids" widget="many2many_tags" />
</group>
</sheet>
</form>
</field>
</record>
<record id="academy_schedule_view_tree" model="ir.ui.view">
<field name="name">academy.schedule.view.tree</field>
<field name="model">academy.schedule</field>
<field name="arch" type="xml">
<list string="">
<field name="name" optional="show" />
<field name="course_id" optional="show" />
<field name="teacher_id" optional="show" />
<field name="date" optional="show" />
<field name="duration" optional="show" />
<field name="student_ids" widget="many2many_tags" optional="show" />
</list>
</field>
</record>
<record id="academy_schedule_action" model="ir.actions.act_window">
<field name="name">Lịch học</field>
<field name="res_model">academy.schedule</field>
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Thêm một lịch học mới
</p>
</field>
</record>
</odoo>
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="academy_student_view_form" model="ir.ui.view">
<field name="name">academy.student.view.form</field>
<field name="model">academy.student</field>
<field name="arch" type="xml">
<form string="">
<sheet>
<group>
<field name="name" />
<field name="code" />
<field name="birth_date" />
<field name="email" />
<field name="phone" />
<field name="course_ids" />
</group>
</sheet>
</form>
</field>
</record>
<record id="academy_student_view_tree" model="ir.ui.view">
<field name="name">academy.student.view.tree</field>
<field name="model">academy.student</field>
<field name="arch" type="xml">
<list string="">
<field name="name" />
<field name="birth_date" />
<field name="email" />
<field name="phone" />
<field name="course_ids" widget="many2many_tags" />
</list>
</field>
</record>
<record id="academy_student_action" model="ir.actions.act_window">
<field name="name">Học sinh</field>
<field name="res_model">academy.student</field>
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Thêm học sinh mới
</p>
</field>
</record>
</odoo>
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="academy_teacher_view_form" model="ir.ui.view">
<field name="name">academy.teacher.view.form</field>
<field name="model">academy.teacher</field>
<field name="arch" type="xml">
<form string="">
<sheet>
<group>
<field name="name" />
<field name="code" />
<field name="email" />
<field name="phone" />
<field name="course_ids" />
</group>
</sheet>
</form>
</field>
</record>
<record id="academy_teacher_view_tree" model="ir.ui.view">
<field name="name">academy.teacher.view.tree</field>
<field name="model">academy.teacher</field>
<field name="arch" type="xml">
<list string="">
<field name="name" />
<field name="email" />
<field name="phone" />
<field name="course_ids" widget="many2many_tags" />
</list>
</field>
</record>
<record id="academy_teacher_action" model="ir.actions.act_window">
<field name="name">Giảng viên</field>
<field name="res_model">academy.teacher</field>
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Thêm giảng viên mới
</p>
</field>
</record>
</odoo>