odoo status statusbar 状态栏
简介#
就是右上角的这个状态。
各种单据的循环,流程,都是基于状态的。
这东西怎么做呢?
一:模型定义#
state = fields.Selection([ ('draft', 'Quotation'), ('sent', 'Quotation Sent'), ('sale', 'Sales Order'), ('done', 'Locked'), ('cancel', 'Cancelled'), ], string='Status', readonly=True, copy=False, index=True, tracking=3, default='draft')
二:form视图定义#
注意定义在sheet上面,定义在header里面。
注意:下面的form,不可以再定义显示state了。否则会把横条变成下拉菜单。
即这个form视图,只能有一处state,定义在sheet上面,定义在header里面。
<header> <field name="state" widget="statusbar" statusbar_visible="draft,sent,sale"/> </header> <sheet>
statusbar_visible,是在这个视图显示几项,为了不同的人使用不同的流程,可以在这里控制一下。
就像这个销售模块,销售人员的视图,可以看到报价,报价已发送,销售订单三个状态
仓库可以看到销售订单
会计可以看到已交付
大概就是这样吧。
statusbar_colors='{"cancel":"red","done":"blue"}'
定义颜色
三:tree视图定义#
其实只定义widget="badge"就可以显示为胶囊模式了,但是是灰色的,再定义decoration,就是彩色的胶囊了。
四:form动作#
<field name="stage_id" widget="statusbar" clickable="True"/>
可以定义clickable="true",使得顶端状态行点击即变状态。
一般不这么定义。
五:通过按钮切换状态#
https://blog.csdn.net/ONLYSRY/article/details/123688862
<header> <button id="button_draft" name="action_draft" string="草稿" class="btn-primary" states="cancel" type="object"/> <button id="button_confirm" name="acton_confirm" string="确认" class="btn-primary" states="draft,cancel" type="object"/> <button id="button_done" name="action_done" string="完成" class="btn-primary" states="cancel,draft,confirm" type="object"/> <button id="button_cancel" name="action_cancel" string="取消" states="draft,done,confirm" type="object"/> <field name="state" widget="statusbar" options="{'clickable':'1'}" statusbar_visible="draft,confirm,done"/> </header>
def action_draft(self): self.state = 'draft' def acton_confirm(self): self.state = 'confirm' def action_done(self): self.state = 'done' def action_cancel(self): self.state = 'cancel'
class="btn-primary" 紫色高亮显示的一个样式
states="cancel" 这个草稿按钮将只在状态流程为【取消】时可见。
states="draft,cancel" 这个确认按钮将只在状态流程为【草稿】和【取消】时可见。
states="cancel,draft,confirm"这个完成按钮将只在状态流程为【取消】【草稿】【确认】时可见。
states="draft,done,confirm"这个取消按钮将只在状态流程为【草稿】【完成】【确认】时可见。
#
作者:上官飞鸿
出处:https://www.cnblogs.com/jackadam/p/16519727.html
版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!