diff --git a/academy_management/__manifest__.py b/academy_management/__manifest__.py
index f8090a4..d5bff96 100644
--- a/academy_management/__manifest__.py
+++ b/academy_management/__manifest__.py
@@ -23,6 +23,7 @@ Academy Management
# always loaded
'data': [
'security/ir.model.access.csv',
+ 'data/ir_sequence_data.xml',
'views/academy_course_views.xml',
'views/academy_schedule_views.xml',
'views/academy_student_views.xml',
diff --git a/academy_management/data/ir_sequence_data.xml b/academy_management/data/ir_sequence_data.xml
new file mode 100644
index 0000000..637adb8
--- /dev/null
+++ b/academy_management/data/ir_sequence_data.xml
@@ -0,0 +1,31 @@
+
+
+
+
+ Academy Course Code
+ academy.course
+ CNTT
+ 3
+ 1
+ 1
+
+
+
+ Academy Student Code
+ academy.student
+ SV
+ 3
+ 1
+ 1
+
+
+
+ Academy Teacher Code
+ academy.teacher
+ GV
+ 3
+ 1
+ 1
+
+
+
\ No newline at end of file
diff --git a/academy_management/models/academy_course.py b/academy_management/models/academy_course.py
index 02982e9..9107c30 100644
--- a/academy_management/models/academy_course.py
+++ b/academy_management/models/academy_course.py
@@ -5,6 +5,19 @@ class AcademyCourse(models.Model):
_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)
+ code = fields.Char(string='Mã khóa học', required=True, copy=False, readonly=True, default=lambda self: _(' '))
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
+ student_ids = fields.Many2many('academy.student', string='Học viên đăng ký khóa học')
+
+ _sql_constraints = [(
+ 'code_unique',
+ 'unique(code)',
+ 'Mã khóa học phải là duy nhất!'
+ )]
+
+ @api.model_create_multi
+ def create(self, vals_list):
+ for vals in vals_list:
+ if vals.get('code', _(' ')) == _(' '):
+ vals['code'] = self.env['ir.sequence'].next_by_code('academy.course') or 'CNTT001'
+ return super(AcademyCourse, self).create(vals_list)
\ No newline at end of file
diff --git a/academy_management/models/academy_student.py b/academy_management/models/academy_student.py
index 8099d2b..4dbc704 100644
--- a/academy_management/models/academy_student.py
+++ b/academy_management/models/academy_student.py
@@ -5,8 +5,21 @@ class AcademyStudent(models.Model):
_description = 'Academy Student'
name = fields.Char(string='Tên học sinh', required=True)
- code = fields.Char(string='Mã học sinh', required=True)
+ code = fields.Char(string='Mã học sinh', required=True, copy=False, readonly=True, default=lambda self: _(' '))
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
+ course_ids = fields.Many2many('academy.course', string='Các khóa học học sinh đăng ký')
+
+ _sql_constraints = [(
+ 'code_unique',
+ 'unique(code)',
+ 'Mã học sinh phải là duy nhất!'
+ )]
+
+ @api.model_create_multi
+ def create(self, vals_list):
+ for vals in vals_list:
+ if vals.get('code', _(' ')) == _(' '):
+ vals['code'] = self.env['ir.sequence'].next_by_code('academy.student') or 'HS001'
+ return super().create(vals_list)
\ No newline at end of file
diff --git a/academy_management/models/academy_teacher.py b/academy_management/models/academy_teacher.py
index ccf1286..25d6d1a 100644
--- a/academy_management/models/academy_teacher.py
+++ b/academy_management/models/academy_teacher.py
@@ -5,7 +5,20 @@ class AcademyTeacher(models.Model):
_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)
+ code = fields.Char(string='Mã giáo viên', required=True, copy=False, readonly=True, default=lambda self: _(' '))
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
+ course_ids = fields.Many2many('academy.course', string='Các khóa học giảng dạy')
+
+ _sql_constraints = [(
+ 'code_unique',
+ 'unique(code)',
+ 'Mã giáo viên phải là duy nhất!'
+ )]
+
+ @api.model_create_multi
+ def create(self, vals_list):
+ for vals in vals_list:
+ if vals.get('code', _(' ')) == _(' '):
+ vals['code'] = self.env['ir.sequence'].next_by_code('academy.teacher') or 'GV001'
+ return super().create(vals_list)
\ No newline at end of file
diff --git a/academy_management/security/academy_security.xml b/academy_management/security/academy_security.xml
new file mode 100644
index 0000000..79a45c5
--- /dev/null
+++ b/academy_management/security/academy_security.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ Academy Management
+
+
+
+ Academy Staff
+
+
+ this user can only see the list of students but not edited.
+
+
+
+ Academy Admin
+
+
+ this user have the right to manage students, lecturers, courses.
+
+
+
+
\ No newline at end of file
diff --git a/academy_management/views/academy_course_views.xml b/academy_management/views/academy_course_views.xml
index 29aaaf4..0be18cb 100644
--- a/academy_management/views/academy_course_views.xml
+++ b/academy_management/views/academy_course_views.xml
@@ -9,7 +9,7 @@
-
+
@@ -25,7 +25,6 @@
-