一、views.xml文件
1、導航欄設計
<!-- Top menu item 第一級-->
<menuitem name="班級管理" id="menu_root"/>
<!-- menu categories第二級 -->
<menuitem name="學生管理" id="menu_1" parent="menu_root"/>
<menuitem name="課程管理" id="menu_2" parent="menu_root"/>
<menuitem name="班級活動" id="menu_3" parent="menu_root"/>
<menuitem name="班級論壇" id="menu_4" parent="menu_root"/>
<!-- actions 第三級-->
<menuitem name="學生信息" id="menu_1_list" parent="menu_1"
action="action_student_info_list"/>
<menuitem name="學生幹部" id="menu_1_list2" parent="menu_1"
action="action_student_info_list"/>
<menuitem name="大一學年" id="menu_2_list1" parent="menu_2"
action="action_student_info_list"/>
<menuitem name="大二學年" id="menu_2_list2" parent="menu_2"
action="action_student_info_list"/>
<menuitem name="班級聚餐" id="menu_3_list1" parent="menu_3"
action="action_student_info_list"/>
<menuitem name="班級出遊" id="menu_3_list2" parent="menu_3"
action="action_student_info_list"/>
<menuitem name="學院運會" id="menu_3_list3" parent="menu_3"
action="action_student_info_list"/>
<menuitem name="正式通知" id="menu_4_list1" parent="menu_4"
action="action_student_info_list"/>
<menuitem name="大軍水羣" id="menu_4_list2" parent="menu_4"
action="action_student_info_list"/>
效果圖:
2、視圖動作
<!-- 視圖動作,顯示右側視圖 -->
<record model="ir.actions.act_window" id="action_student_info_list">
<field name="name">學生信息列表</field>
<field name="res_model">classmanager.student</field> 對應數據表classmanager.student
<field name="view_mode">tree,form</field>
</record>
<record model="ir.actions.act_window" id="action_student_leader_list">
<field name="name">學生幹部列表</field>
<field name="res_model">classmanager.studentleader</field>
<field name="view_mode">tree,form</field>
</record>
<record model="ir.actions.act_window" id="action_course_info_list">
<field name="name">課程列表</field>
<field name="res_model">classmanager.course</field>
<field name="view_mode">tree,form</field>
</record>
3、tree視圖
<!-- tree視圖explicit list view definition -->
<!--學生信息-->
<record model="ir.ui.view" id="student_list">
<field name="name">學生信息列表</field>
<field name="model">classmanager.student</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="value"/>
<field name="value2"/>
<field name="description"/>
</tree>
</field>
</record>
<!--學生幹部-->
<record model="ir.ui.view" id="student_leader_list">
<field name="name">學生幹部列表</field>
<field name="model">classmanager.studentleader</field>
<field name="arch" type="xml">
<tree>
<field name="stuname"/>
<field name="position"/>
<field name="time"/>
<field name="starttime"/>
<field name="aboutjob"/>
</tree>
</field>
</record>
<!--課程管理-->
<record model="ir.ui.view" id="course_manager">
<field name="name">課程管理</field>
<field name="model">classmanager.course</field>
<field name="arch" type="xml">
<tree>
<field name="cname"/>
<field name="teacher"/>
<field name="term"/>
<field name="classtime"/>
<field name="aboutcourse"/>
</tree>
</field>
</record>
4、form視圖
<!-- form視圖 -->
<!--添加學生-->
<record id="view_form_add_student" model="ir.ui.view">
<field name="name">添加學生</field>
<field name="model">classmanager.student</field>
<field name="arch" type="xml">
<form>
<sheet>
<group name="group_top" string="填寫學生信息">
<field name="name"/>
<field name="value"/>
<field name="value2"/>
<field name="description"/>
</group>
</sheet>
</form>
</field>
</record>
<!--添加學生幹部-->
<record id="view_form_add_student_leader" model="ir.ui.view">
<field name="name">添加學生幹部</field>
<field name="model">classmanager.studentleader</field>
<field name="arch" type="xml">
<form>
<sheet>
<group name="group_top" string="填寫學生幹部信息">
<field name="stuname"/>
<field name="position"/>
<field name="time"/>
<field name="starttime"/>
<field name="aboutjob"/>
</group>
</sheet>
</form>
</field>
</record>
<!--添加課程-->
<record id="view_form_add_course" model="ir.ui.view">
<field name="name">添加課程</field>
<field name="model">classmanager.course</field>
<field name="arch" type="xml">
<form>
<sheet>
<group name="group_top" string="填寫課程信息">
<field name="cname"/>
<field name="teacher"/>
<field name="term"/>
<field name="classtime"/>
<field name="aboutcourse"/>
</group>
</sheet>
</form>
</field>
</record>
二、models.py
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class Student(models.Model):
_name = 'classmanager.student'
name = fields.Char(string="姓名")
value = fields.Integer(string="年齡")
# value2 = fields.Float(compute="_value_pc", store=True)
value2 = fields.Date(string="出生日期")
description = fields.Text(string="自我介紹")
# @api.depends('value')
# def _value_pc(self):
# self.value2 = float(self.value) / 100
class Leader(models.Model):
_name = 'classmanager.studentleader'
stuname = fields.Char(string="姓名")
position = fields.Char(string="擔任職位")
time = fields.Integer(string="任期")
# value2 = fields.Float(compute="_value_pc", store=True)
starttime = fields.Date(string="上任時間")
aboutjob = fields.Text(string="工作簡述")
class course(models.Model):
_name = 'classmanager.course'
cname = fields.Char(string="課程名")
teacher = fields.Char(string="任課教師")
term = fields.Integer(string="持續時間(學期)")
# value2 = fields.Float(compute="_value_pc", store=True)
classtime = fields.Date(string="每週上課時間")
aboutcourse = fields.Text(string="課程簡述")
三、效果圖
注意:
1、開發過程中,如果item沒有action屬性,則這個item也不會出現在界面上,item的id不能重複,否則後面的item會覆蓋前面的item。
2、卸載應用過程中不能忽然中斷,否則容易發生某模塊已經刪除,另一依賴這個模塊的模塊無法加載,導致odoo無法啓動
3、修改模塊的數據表名,必須重新啓動odoo
4、xml中的manager.student等是對應模型的_name