一、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