create module student management

This commit is contained in:
XuanHuyen
2025-03-09 22:54:18 +07:00
parent 1f8cbe04a4
commit c0a658abb4
12 changed files with 248 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import controllers
from . import models
+38
View File
@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
{
'name': "Student Management",
'summary': "Short (1 phrase/line) summary of the module's purpose",
'description': """
Long description of module's purpose
""",
'author': "My Company",
'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': 'Management',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base'],
# always loaded
'data': [
'security/ir.model.access.csv',
'views/student_student_views.xml',
'views/student_course_views.xml',
'views/student_menus.xml',
],
# only loaded in demonstration mode
'demo': [
'demo/demo.xml',
],
'installable': True,
'application': True,
'auto_install': False,
}
@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import controllers
@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# from odoo import http
# class StudentManagement(http.Controller):
# @http.route('/student_management/student_management', auth='public')
# def index(self, **kw):
# return "Hello, world"
# @http.route('/student_management/student_management/objects', auth='public')
# def list(self, **kw):
# return http.request.render('student_management.listing', {
# 'root': '/student_management/student_management',
# 'objects': http.request.env['student_management.student_management'].search([]),
# })
# @http.route('/student_management/student_management/objects/<model("student_management.student_management"):obj>', auth='public')
# def object(self, obj, **kw):
# return http.request.render('student_management.object', {
# 'object': obj
# })
+30
View File
@@ -0,0 +1,30 @@
<odoo>
<data>
<!--
<record id="object0" model="student_management.student_management">
<field name="name">Object 0</field>
<field name="value">0</field>
</record>
<record id="object1" model="student_management.student_management">
<field name="name">Object 1</field>
<field name="value">10</field>
</record>
<record id="object2" model="student_management.student_management">
<field name="name">Object 2</field>
<field name="value">20</field>
</record>
<record id="object3" model="student_management.student_management">
<field name="name">Object 3</field>
<field name="value">30</field>
</record>
<record id="object4" model="student_management.student_management">
<field name="name">Object 4</field>
<field name="value">40</field>
</record>
-->
</data>
</odoo>
+4
View File
@@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import student_student
from . import student_course
@@ -0,0 +1,10 @@
from odoo import fields, models
class StudentCourse(models.Model):
_name = 'student.course'
_description = 'Student Course'
name = fields.Char(string='Môn học', required=True)
code = fields.Char(string='Mã môn học', required=True, unique=True)
credit = fields.Integer(string='Số tín chỉ')
student_ids = fields.Many2many('student.student', string='Học sinh')
@@ -0,0 +1,16 @@
from odoo import fields, models
class StudentStudent(models.Model):
_name = 'student.student'
_description = 'Student Management'
name = fields.Char(string='Tên học sinh', required=True)
student_id = fields.Char(string='Mã học sinh', unique=True)
birth_date = fields.Date(string='Ngày sinh')
gender = fields.Selection([
('male', 'Nam giới'),
('female', 'Nữ giới')
])
email = fields.Char(string='Email', required=True, unique=True)
phone = fields.Char(string='Số điện thoại')
course_ids = fields.Many2many('student.course', string='Môn học')
@@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_student_student,student_student,model_student_student,base.group_user,1,1,1,1
access_student_course,student_course,model_student_course,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_student_student student_student model_student_student base.group_user 1 1 1 1
3 access_student_course student_course model_student_course base.group_user 1 1 1 1
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_student_course_list" model="ir.ui.view">
<field name="name">student.course.view.tree</field>
<field name="model">student.course</field>
<field name="arch" type="xml">
<list string="Danh sách môn học">
<field name="name" />
<field name="code" />
<field name="credit" />
<field name="student_ids" />
</list>
</field>
</record>
<record id="view_student_course_form" model="ir.ui.view">
<field name="name">student.course.view.form</field>
<field name="model">student.course</field>
<field name="arch" type="xml">
<form string="Form môn học">
<sheet>
<group>
<group>
<field name="name" />
<field name="code" />
</group>
<group>
<field name="credit" />
</group>
<notebook>
<page name="" string="Học sinh">
<field name="student_ids" />
</page>
</notebook>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_student_course" model="ir.actions.act_window">
<field name="name">Môn học</field>
<field name="res_model">student.course</field>
<field name="view_mode">list,form</field>
</record>
</odoo>
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<menuitem
id="menu_student"
name="Học sinh"
sequence="10" />
<menuitem
id="menu_student_student"
name="Học sinh"
action="action_student_student"
parent="menu_student"
sequence="10" />
<menuitem
id="menu_student_course"
name="Môn học"
action="action_student_course"
parent="menu_student"
sequence="10" />
</odoo>
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_student_student_tree" model="ir.ui.view">
<field name="name">student.student.list</field>
<field name="model">student.student</field>
<field name="arch" type="xml">
<list string="Danh sách học sinh">
<field name="name" />
<field name="student_id" />
<field name="birth_date" />
<field name="gender" />
<field name="email" />
<field name="phone" />
</list>
</field>
</record>
<record id="view_student_student_form" model="ir.ui.view">
<field name="name">student.student.form</field>
<field name="model">student.student</field>
<field name="arch" type="xml">
<form string="Form học sinh">
<sheet>
<group>
<group>
<field name="name" />
<field name="student_id" />
<field name="email" />
<field name="phone" />
</group>
<group>
<field name="birth_date" />
<field name="gender" widget="radio" />
<field name="course_ids" widget="many2many_tags" />
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_student_student" model="ir.actions.act_window">
<field name="name">Học sinh</field>
<field name="res_model">student.student</field>
<field name="view_mode">list,form</field>
</record>
</odoo>