general code
This commit is contained in:
@@ -23,6 +23,7 @@ Academy Management
|
|||||||
# always loaded
|
# always loaded
|
||||||
'data': [
|
'data': [
|
||||||
'security/ir.model.access.csv',
|
'security/ir.model.access.csv',
|
||||||
|
'data/ir_sequence_data.xml',
|
||||||
'views/academy_course_views.xml',
|
'views/academy_course_views.xml',
|
||||||
'views/academy_schedule_views.xml',
|
'views/academy_schedule_views.xml',
|
||||||
'views/academy_student_views.xml',
|
'views/academy_student_views.xml',
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo noupdate="1">
|
||||||
|
|
||||||
|
<record id="sequence_course_code" model="ir.sequence">
|
||||||
|
<field name="name">Academy Course Code</field>
|
||||||
|
<field name="code">academy.course</field>
|
||||||
|
<field name="prefix">CNTT</field>
|
||||||
|
<field name="padding">3</field>
|
||||||
|
<field name="number_next">1</field>
|
||||||
|
<field name="number_increment">1</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="sequence_student_code" model="ir.sequence">
|
||||||
|
<field name="name">Academy Student Code</field>
|
||||||
|
<field name="code">academy.student</field>
|
||||||
|
<field name="prefix">SV</field>
|
||||||
|
<field name="padding">3</field>
|
||||||
|
<field name="number_next">1</field>
|
||||||
|
<field name="number_increment">1</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="sequence_teacher_code" model="ir.sequence">
|
||||||
|
<field name="name">Academy Teacher Code</field>
|
||||||
|
<field name="code">academy.teacher</field>
|
||||||
|
<field name="prefix">GV</field>
|
||||||
|
<field name="padding">3</field>
|
||||||
|
<field name="number_next">1</field>
|
||||||
|
<field name="number_increment">1</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
@@ -5,6 +5,19 @@ class AcademyCourse(models.Model):
|
|||||||
_description = 'Academy Course'
|
_description = 'Academy Course'
|
||||||
|
|
||||||
name = fields.Char(string='Tên khóa học', required=True)
|
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')
|
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')
|
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)
|
||||||
@@ -5,8 +5,21 @@ class AcademyStudent(models.Model):
|
|||||||
_description = 'Academy Student'
|
_description = 'Academy Student'
|
||||||
|
|
||||||
name = fields.Char(string='Tên học sinh', required=True)
|
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')
|
birth_date = fields.Date(string='Ngày sinh')
|
||||||
email = fields.Char(string='Email')
|
email = fields.Char(string='Email')
|
||||||
phone = fields.Char(string='Số điện thoại')
|
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ý')
|
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)
|
||||||
@@ -5,7 +5,20 @@ class AcademyTeacher(models.Model):
|
|||||||
_description = 'Academy Teacher'
|
_description = 'Academy Teacher'
|
||||||
|
|
||||||
name = fields.Char(string='Tên giáo viên', required=True)
|
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')
|
email = fields.Char(string='Email')
|
||||||
phone = fields.Char(string='Số điện thoại')
|
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')
|
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)
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
|
||||||
|
<data noupdate="0">
|
||||||
|
<record id="module_category_academy" model="ir.module.category">
|
||||||
|
<field name="name">Academy Management</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="group_academy_staff" model="res.groups">
|
||||||
|
<field name="name">Academy Staff</field>
|
||||||
|
<field name="category_id" ref="academy_management.module_category_academy"/>
|
||||||
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]" />
|
||||||
|
<field name="comment">this user can only see the list of students but not edited.</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="group_academy_admin" model="res.groups">
|
||||||
|
<field name="name">Academy Admin</field>
|
||||||
|
<field name="category_id" ref="academy_management.module_category_academy"/>
|
||||||
|
<field name="implied_ids" eval="[(4, ref('academy_management.group_academy_staff'))]" />
|
||||||
|
<field name="comment">this user have the right to manage students, lecturers, courses.</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
<sheet>
|
<sheet>
|
||||||
<group>
|
<group>
|
||||||
<field name="name" />
|
<field name="name" />
|
||||||
<field name="teacher_id" />
|
<field name="code" />
|
||||||
<field name="student_ids" widget="many2many_tags" />
|
<field name="student_ids" widget="many2many_tags" />
|
||||||
<field name="description" />
|
<field name="description" />
|
||||||
</group>
|
</group>
|
||||||
@@ -25,7 +25,6 @@
|
|||||||
<list string="">
|
<list string="">
|
||||||
<field name="name" />
|
<field name="name" />
|
||||||
<field name="code" />
|
<field name="code" />
|
||||||
<field name="teacher_id" />
|
|
||||||
<field name="student_ids" widget="many2many_tags" />
|
<field name="student_ids" widget="many2many_tags" />
|
||||||
</list>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
|
|||||||
Reference in New Issue
Block a user