Để tạo và quản lý Menu trên Odoo, chúng ta có hai phương pháp: sử dụng giao diện quản trị của Odoo hoặc thực hiện thông qua mã nguồn trong một Odoo Module. Trong bài viết này, bài viết sẽ hướng dẫn cả hai cách để bạn có sự linh hoạt trong việc tạo và quản lý các menu trên Odoo.
1. Tạo và quản lý Menu trên giao diện Odoo
1.1. Bật chế độ “Developer Mode“
Để quản lý Menu trên Odoo bạn cần bật chế độ “Developer Mode”
Vào [ Setting ] => Bấm vào “Activate the developer mode”
1.2. Xem danh sách menu của Odoo
Khi đã bật thành công “Developer Mode”, chúng ta truy cập tới trang quản lý Menu của Odoo như sau:
Vào [ Setting ] => [ Technical ] => [ Menu Items ]
Ở đây bạn có thể tạo Menu dễ dàng bằng việc bấm button [ Create ]
1.3. Tạo Menu trên giao diện Odoo
Sau khi bấm button [Create] trên trang quản lý Menu, một màn hình đăng ký Menu sẽ hiển thị ra. Ở đó bạn cần nhập các thông tin sau:
- Menu: Tên Menu (Sẽ được hiển thị)
- Parent Menu: Menu cha (Nếu không chọn thì nó sẽ hiển thị ở Top Menu bên trái của Odoo)
- Sequence: Vị trí của Menu
- Action: Khi bấm vào Menu sẽ gọi action này, để đi tới 1 trang đã được định nghĩa từ trước, như mình chọn là mở màn hình List của “Actions”
Bên dưới mục “Access Rights“, thêm quyền hạn để có thể truy cập tới Menu của bạn.
=> Bấm [ Save ] để tạo menu
Kết quả là menu đã được tạo thành công và hiển thị ở vị trí mong muốn:
2. Tạo và quản lý Menu trong Odoo Module
Trong phần đầu tiên, chúng ta đã tìm hiểu cách tạo và quản lý Menu trên giao diện của Odoo. Bây giờ, chúng ta sẽ tiến xa hơn bằng việc hướng dẫn cách thêm một Menu bằng code vào một Odoo Module.
Giống như chúng ta đã làm trong bài viết trước, chúng ta đã tạo một module với tên là My_Contacts, kế thừa từ module sẵn có của Odoo là Contacts. Bước tiếp theo của chúng ta là thêm một Menu vào giao diện của Odoo và hiển thị danh sách các contacts.
2.1. Thêm 1 Menu Items
Để thêm 1 menu item chúng ta thêm đoạn XML vào file view như sau:
Sửa file views/my_contacts_view.xml:
<menuitem name="My Contacts" id="my_contacts.menu_root" sequence="2" action="my_contacts_action_window" groups="base.group_user" />
Với:
- Name: Là tên của menu
- ID: ID định danh cho menu
- Sequece: Vị trí của Menu Item so với các Menu Item khác
- Action: Menu này sẽ được control tới action nào trong Odoo
- groups: Nhóm user có quyền truy cập tới menu này
- parent: Menu cha (Nếu bạn muốn nó là con của 1 Menu Item khác)
2.2. Thêm 1 Menu Action
Sau khi thêm 1 menu item, chúng ta cần control nó tới đâu đó. Ở đây mình tạo 1 action “My Contacts Window” để khi bấm vào menu “My Contacts” nó sẽ dẫn tới trang hiển thị danh sách Contacts.
<record model="ir.actions.act_window" id="my_contacts_action_window"> <field name="name">My Contacts Window</field> <field name="res_model">res.partner</field> <field name="type">ir.actions.act_window</field> <field name="view_type">form</field> <field name="view_mode">kanban,tree,form,activity</field> </record>
File views/my_contacts_view.xml sẽ có nội dung cuối cùng như sau:
<odoo> <data> <!-- explicit list view definition --> <record model="ir.ui.view" id="my_contacts.form_view"> <field name="name">my_contacts Form View</field> <field name="model">res.partner</field> <field name="inherit_id" ref="base.view_partner_form"></field> <field name="arch" type="xml"> <field name="category_id" position="after"> <field name="wage" placeholder="Wage"/> </field> </field> </record> <record model="ir.actions.act_window" id="my_contacts_action_window"> <field name="name">My Contacts Window</field> <field name="res_model">res.partner</field> <field name="type">ir.actions.act_window</field> <field name="view_type">form</field> <field name="view_mode">kanban,tree,form,activity</field> </record> <menuitem name="My Contacts" id="my_contacts.menu_root" sequence="2" action="my_contacts_action_window" groups="base.group_user" /> </data> </odoo>
2.3. Nâng cấp Module
Để odoo nhận Menu Item mới chúng ta cần nâng cấp Module My_Contacts
Từ Menu Top bên trái => [ Apps ] => [ My Contacts ] => bấm “Upgrade”
Sau đó refresh lại màn hình và kết quả chúng ta thu được: