iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
Odoo

Odoo 16 OCA 模組介紹 - web系列 第 2

【Day 2】Odoo OCA 模組 - web :web_action_conditionable

  • 分享至 

  • xImage
  •  

🍄本日魔法

 web_action_conditionable

   適用版本:16.0、15.0、14.0、13.0
 https://ithelp.ithome.com.tw/upload/images/20230914/20161873lCWwHsmYXp.png

🍄模組功能

安裝後可以在任何模組的 tree view 使用。
依據特定條件,來控制 tree view 中的資料能否被建立或是刪除。
Odoo 預設的語法:

<tree delete="false" create="false">

安裝模組後的語法:

<tree delete="state=='draft'" create="state!='sent'">

🍄使用情境

Odoo 系統中有許多 tree view 是被寫在 form view 下的狀況,例如採購詢價單的畫面↓
https://ithelp.ithome.com.tw/upload/images/20230915/20161873bIWYqY5Ffw.jpg
原生系統架構在詢價單、採購訂單狀態都是可以新增或刪除產品明細,
若公司有內控內稽管理需求,想讓使用者僅能在詢價單狀態新增或刪除產品明細,就很適合安裝此模組。
模組安裝後,要記得詠唱,魔法才會順利執行。
我們進入「編輯視圖:Form」(Edit View: Form),找到 tree view 區塊,依據條件貼上咒語:

<tree delete="state=='draft'" create="state=='draft'" >

https://ithelp.ithome.com.tw/upload/images/20230915/20161873tXc4cdmiWa.jpg
重新整理系統頁面後,可以發現在採購訂單狀態的新增和移除按鈕已經不見了。是不是很讚呢?
https://ithelp.ithome.com.tw/upload/images/20230915/20161873KXVSGScNyI.jpg
不過這只是其中一種用法,歡迎大家探索應用後,在留言區跟我們分享別的用法唷~~

🍄心得感想

這個模組的功能非常實用,因為 Odoo 系統有時無法做到如此細緻的條件行為限制,大多時候系統會透過訪問權限(ir.model.access)或記錄規則(ir.rule)來限制使用者的行動,這樣的限制方式,就像是無差別範圍技,雖然效果顯著但有時候礙於環境,用起來綁手綁腳投鼠忌器。
web_action_conditionable 的輔助下,我們能針對更細節的部分進行條件限制,更符合使用者需求。
這就好像庫拉皮卡的束縛中指鍊只能對幻影旅團成員使用一樣,充滿條件限制同時又很強大呢(╯✧∇✧)╯


p.s.本文直接在「編輯視圖:Form」新增語法是偷懶做法,如果不想要新增的功能因為模組更新而被覆蓋,記得要透過繼承視圖的方式更新語法喔。


上一篇
【Day 1】第一天我存在Odoo世界裡
下一篇
【Day 3】Odoo OCA 模組 - web :web_advanced_search
系列文
Odoo 16 OCA 模組介紹 - web30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
大河
iT邦新手 3 級 ‧ 2023-09-16 01:13:41

讚耶,web_oca 很多模組真的沒有碰過
這個模組蠻實用的
曾經有被團隊的開發者問過能不能在 create, delete 放條件
但當時我還是菜鳥,不知道怎麼改
不知道 oca 有沒有擴充 RelaxNG (.rng) 的模組
期待接下來的介紹

PS: 我的偷懶方式是在有這樣寫的客製模組加依賴 XD

我要留言

立即登入留言