Odoo看板视图

概念

看板视图是看板的可视化:它将记录显示为“卡片”,介于列表视图和不可编辑的表单视图之间。
记录可以按列分组,用于工作流可视化或操作(例如任务或工作进度管理),也可以不分组(仅用于可视化记录)。

属性

看板视图的根元素是<kanban>,它可以使用以下属性

  • default_group_by
    如果没有通过操作或当前搜索指定分组,看板视图是否应该分组。应该是未指定分组时要分组的字段名称
  • default_order
    如果用户尚未对记录进行排序,则使用卡片排序顺序(通过列表视图)
  • class
    将超文本标记语言类添加到看板视图的根超文本标记语言元素
  • examples
    如果在看板示例注册表中设置为键,则列设置示例将在分组看板视图中可用。这是如何定义这些设置的示例
  • group_create
    “添加新列”栏是否可见。默认值:真。
  • group_delete
    是否可以通过上下文菜单删除组。默认值:真。
  • group_edit
    是否可以通过上下文菜单编辑组。默认值:真。
  • archivable
    如果在模型上定义了活动字段,是否可以归档/恢复属于列的记录。默认值:真
  • quick_create
    是否可以在不切换到表单视图的情况下创建记录。默认情况下,当看板视图按many2one、选择、字符或布尔字段分组时,启用quick_create,如果不启用,则禁用
  • quick_create_view
    表单视图引用,指定用于记录快速创建的视图
  • records_draggable
    看板分组时是否可以拖动记录。默认值:真。
    设置为true以始终启用它,设置为false以始终禁用它
子元素
  • field
    声明要在看板逻辑中使用的字段。如果该字段只是显示在看板视图中,则不需要预先声明。
    可能的属性是:
    • name(必填)
      要获取的字段的名称

    • allow_group_range_value(可选)
      日期或日期时间字段是否允许从组范围(由组的第一个和最后一个日期组成)计算的值。当看板视图按该字段分组时,启用“快速创建”和“拖放”功能。默认值:假。

  • progressbar
    声明一个进度栏元素以放在看板列的顶部。
    可能的属性是:
    • field(必填)
      字段的名称,该字段的值用于对进度栏中列的记录进行分组

    • color(必填)
      JSON将上述字段值映射到“危险”、“警告”、“成功”或“静音”颜色

    • sum_field(可选)
      列的记录值将被求和并显示在进度栏旁边的字段的名称(如果省略,则显示记录总数)

  • templates
    定义QWeb模板模板列表。为了清晰起见,卡片定义可以拆分为多个模板,但看板视图必须至少定义一个根模板看板框,每个记录将呈现一次
    • widget
      当前的KanbanRecord(),可用于获取一些元信息。这些方法也可以直接在模板上下文中使用,不需要通过小部件访问
    • record
      具有所有请求字段作为其属性的对象。每个字段有两个属性value和raw_value,前者根据当前用户参数格式化,后者是read()中的直接值(根据用户语言环境格式化的日期和日期时间字段除外)
    • context
      当前上下文,来自操作,以及在嵌入到表单视图中的看板视图的情况下的one2许多或many2许多字段
    • user_context
    • read_only_mode
    • selection_mode
      当看板视图在移动环境中打开时,从m2o/m2m字段中选择记录。
案例
  • 新建model
class comics(models.Model):
    _name = 'test_demo.comics'
    _description = 'comics'

    name = fields.Char(string='动漫标题')
    total = fields.Integer(string='总集数')
    score = fields.Float(string='评分')
    release_date = fields.Date(string='上映时间', default=fields.Date.today())
    current = fields.Integer(string='当前剧集')
    cover_image = fields.Binary(string='封面图片', attachment=True)
  • 给model授予权限
access_test_demo_comics,test_demo.comics,model_test_demo_comics,base.group_user,1,1,1,1
  • 创建菜单
<menuitem name="test_demo" id="test_demo.menu_root"/>
<menuitem id="menu_comics_view" name="comics" action="act_comics_view"  parent="test_demo.menu_root"/>
  • 创建视图
<record id="act_comics_view" model="ir.actions.act_window">
    <field name="name">comics</field>
    <field name="res_model">test_demo.comics</field>
    <field name="view_mode">tree,kanban,form</field>
</record>
<record model="ir.ui.view" id="view_comics_comics_form">
    <field name="name">comics.form</field>
    <field name="model">test_demo.comics</field>
    <field name="arch" type="xml">
        <form>
            <sheet>
                <group>
                    <field name="name"/>
                    <field name="cover_image" widget="image"/>
                    <field name="score"/>
                </group>
                <group>
                    <field name="current"/>
                    <field name="total"/>
                    <field name="release_date"/>
                </group>
            </sheet>
        </form>
    </field>
</record>
<record model="ir.ui.view" id="view_comics_comics_search">
    <field name="name">comics.search</field>
    <field name="model">test_demo.comics</field>
    <field name="arch" type="xml">
        <search>
            <field name="name"/>
        </search>
    </field>
</record>
<record model="ir.ui.view" id="view_comics_comics_kanban">
    <field name="name">comics.kanban</field>
    <field name="model">test_demo.comics</field>
    <field name="arch" type="xml">
        <kanban>
            <field name="id"/>
            <field name="name"/>
            <field name="release_date"/>
            <field name="current"/>
            <field name="total"/>
            <templates>
                <t t-name="kanban-box">
                    <div class="oe_kanban_card" style="height: 150px; width: 300px;">
                        <div class="o_kanban_image" style="width:60%;height:100%;">
                            <img alt="comics" style="width:100%;height:100%;"
                                 t-att-src="kanban_image('test_demo.comics', 'cover_image', record.id.raw_value)"/>
                        </div>
                        <div class="oe_kanban_content">
                            <div class="o_kanban_record_title">
                                <field name="name" class="o_text_overflow"/>
                            </div>
                            <div class="o_kanban_record_bottom">
                                <span class="oe_kanban_bottom_right">
                                    <field name="release_date"/>
                                </span>
                            </div>
                            <div class="o_kanban_record_bottom" style="height: 40px"> </div>
                            <div class="o_kanban_record_bottom">
                                <span class="oe_kanban_bottom_right">
                                    当前更新到<field name="current"/>集
                                </span>
                            </div>
                            <div class="o_kanban_record_bottom">
                                <span class="oe_kanban_bottom_right">
                                    总共<field name="total"/>集
                                </span>
                            </div>
                        </div>
                    </div>
                </t>

            </templates>
        </kanban>
    </field>
</record>
  • 最后注册
 'security/ir.model.access.csv',
 'views/comics.xml',

以上案例来自于: 神州数码云基地

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值