diff --git a/academy_management/__init__.py b/academy_management/__init__.py new file mode 100644 index 0000000..cde864b --- /dev/null +++ b/academy_management/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/academy_management/__manifest__.py b/academy_management/__manifest__.py new file mode 100644 index 0000000..f8090a4 --- /dev/null +++ b/academy_management/__manifest__.py @@ -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', + ], +} + diff --git a/academy_management/models/__init__.py b/academy_management/models/__init__.py new file mode 100644 index 0000000..13bf32d --- /dev/null +++ b/academy_management/models/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- + +from . import academy_course +from . import academy_schedule +from . import academy_student +from . import academy_teacher diff --git a/academy_management/models/academy_course.py b/academy_management/models/academy_course.py new file mode 100644 index 0000000..02982e9 --- /dev/null +++ b/academy_management/models/academy_course.py @@ -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') \ No newline at end of file diff --git a/academy_management/models/academy_schedule.py b/academy_management/models/academy_schedule.py new file mode 100644 index 0000000..6ad081c --- /dev/null +++ b/academy_management/models/academy_schedule.py @@ -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) + \ No newline at end of file diff --git a/academy_management/models/academy_student.py b/academy_management/models/academy_student.py new file mode 100644 index 0000000..8099d2b --- /dev/null +++ b/academy_management/models/academy_student.py @@ -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ý') \ No newline at end of file diff --git a/academy_management/models/academy_teacher.py b/academy_management/models/academy_teacher.py new file mode 100644 index 0000000..ccf1286 --- /dev/null +++ b/academy_management/models/academy_teacher.py @@ -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') \ No newline at end of file diff --git a/academy_management/security/ir.model.access.csv b/academy_management/security/ir.model.access.csv new file mode 100644 index 0000000..f77db5c --- /dev/null +++ b/academy_management/security/ir.model.access.csv @@ -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 diff --git a/academy_management/views/academy_course_views.xml b/academy_management/views/academy_course_views.xml new file mode 100644 index 0000000..29aaaf4 --- /dev/null +++ b/academy_management/views/academy_course_views.xml @@ -0,0 +1,45 @@ + + + + + academy.course.view.form + academy.course + +
+ + + + + + + + +
+
+
+ + + academy.course.view.tree + academy.course + + + + + + + + + + + + Khóa học + academy.course + list,form + +

+ Thêm một khóa học mới +

+
+
+ +
\ No newline at end of file diff --git a/academy_management/views/academy_menus.xml b/academy_management/views/academy_menus.xml new file mode 100644 index 0000000..453a2f0 --- /dev/null +++ b/academy_management/views/academy_menus.xml @@ -0,0 +1,33 @@ + + + + + + + + + + \ No newline at end of file diff --git a/academy_management/views/academy_schedule_views.xml b/academy_management/views/academy_schedule_views.xml new file mode 100644 index 0000000..bcea4b6 --- /dev/null +++ b/academy_management/views/academy_schedule_views.xml @@ -0,0 +1,52 @@ + + + + + academy.schedule.view.form + academy.schedule + +
+
+ +
+ + + + + + + + + + +
+
+
+ + + academy.schedule.view.tree + academy.schedule + + + + + + + + + + + + + + Lịch học + academy.schedule + list,form + +

+ Thêm một lịch học mới +

+
+
+ +
\ No newline at end of file diff --git a/academy_management/views/academy_student_views.xml b/academy_management/views/academy_student_views.xml new file mode 100644 index 0000000..dcfff9a --- /dev/null +++ b/academy_management/views/academy_student_views.xml @@ -0,0 +1,48 @@ + + + + + academy.student.view.form + academy.student + +
+ + + + + + + + + + +
+
+
+ + + academy.student.view.tree + academy.student + + + + + + + + + + + + + Học sinh + academy.student + list,form + +

+ Thêm học sinh mới +

+
+
+ +
\ No newline at end of file diff --git a/academy_management/views/academy_teacher_views.xml b/academy_management/views/academy_teacher_views.xml new file mode 100644 index 0000000..d2cc3a5 --- /dev/null +++ b/academy_management/views/academy_teacher_views.xml @@ -0,0 +1,46 @@ + + + + + academy.teacher.view.form + academy.teacher + +
+ + + + + + + + + +
+
+
+ + + academy.teacher.view.tree + academy.teacher + + + + + + + + + + + + Giảng viên + academy.teacher + list,form + +

+ Thêm giảng viên mới +

+
+
+ +
\ No newline at end of file