init academy module
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
@@ -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',
|
||||
],
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
@@ -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>
|
||||
Reference in New Issue
Block a user