[Python 3] Tạo và quản lý Menu trên Odoo


Để tạo và quản lý Menu trên Odoo chúng ta có 2 cách là tạo từ giao diện quản trị của Odoo hoặc implement trong source code của 1 Odoo Module. Trong bài viết này, vinasupport sẽ hướng dẫn bằng cả 2 cách trên.

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

Ở mục 1 chúng ta làm quen với cách tạo và quản lý Menu trên giao diện Odoo, bây giời vinasupport sẽ hướng dẫn các bạn thêm Menu bằng code trong 1 Odoo Module.

Như ở bài trước, chúng ta đã tạo 1 module có tên là My_Contacts kế thừa từ module có sẵn của Odoo là Contacts. Bây giờ chúng ta sẽ thêm 1 menu trên giao diện của Odoo và hiển thị danh sách 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:

Nguồn: vinasupport.com

 

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web