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)」许可协议进行许可。

posted @   上官飞鸿  阅读(656)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示