ODOOV11-如何使用CSS类设置看板样式,并将字段值作为类名的一部分

ODOOV11-如何使用CSS类设置看板样式,并将字段值作为类名的一部分,css,odoo,kanban,Css,Odoo,Kanban,网上有一些相关的问题,但我还没有找到有效的答案,所以我来了 我有一个自定义模块,可向crm.lead添加一个字段: xx_ue_brand_id = fields.Many2one('xx.ue.brand', string='Brand') 相关模型只包含一个名称和活动标志。 我已经在crm相关视图中使用了它,所以用户可以将潜在客户链接到特定品牌 使用品牌价值,我想在看板项目上设置颜色。 由于每个品牌都有其特定的颜色,我不希望看板项目使用标准的Odoo颜色,这可以由颜色选择器设置,并

网上有一些相关的问题,但我还没有找到有效的答案,所以我来了

我有一个自定义模块,可向crm.lead添加一个字段:

    xx_ue_brand_id = fields.Many2one('xx.ue.brand', string='Brand')
相关模型只包含一个名称和活动标志。 我已经在crm相关视图中使用了它,所以用户可以将潜在客户链接到特定品牌

使用品牌价值,我想在看板项目上设置颜色。 由于每个品牌都有其特定的颜色,我不希望看板项目使用标准的Odoo颜色,这可以由颜色选择器设置,并添加一个类似“oe_看板_颜色_5”的类

我在正确加载的较少文件中定义了自己的css类。每个品牌都有一个类别,否决看板上设置的边框颜色。 我在类定义中包含了品牌名称,因此很清楚该样式用于哪个品牌。 像这样:

    .crm_kanban_brand_*brandname-x* { &:after {background-color:#2E3092!important;} }
当我通过Chrome的开发者工具将这个类添加到看板项目中时,边框设置为正确的颜色

但是。。。(最后是我的问题)

我无法通过xpath表达式动态设置类,我的最佳猜测如下

    <xpath expr="//div[hasclass('o_dropdown_kanban')]/parent::div" position="attributes">
        <attribute name="t-att-class">'crm_kanban_brand_%s' % record.xx_ue_brand_id.name</attribute>
    </xpath>

“crm\u看板\u品牌%s”%record.xx\u ue\u brand\u id.name
注意,当我在不使用变量的情况下添加类定义时,整个过程正如预期的那样工作,将相同的类添加到所有看板项目中

    <xpath expr="//div[hasclass('o_dropdown_kanban')]/parent::div" position="attributes">
        <attribute name="class">crm_kanban_brand_*brandname-x*</attribute>
    </xpath>

客户关系管理看板品牌品牌品牌名称-x*

对于如何将字段值用作类名的一部分的任何帮助,我都将不胜感激。

多亏了CZoellner的建议,我最终将此作为一个有效的解决方案

    <xpath expr="//div[hasclass('o_dropdown_kanban')]/parent::div" position="attributes">
        <attribute name="t-attf-class" separator=" " add="crm_kanban_brand_#{record.xx_ue_brand_id.value}"/>
    </xpath>
将呈现为:

    <li class="row even">1</li>
    <li class="row odd">2</li>
    <li class="row even">3</li>
  • 1
  • 2
  • 3

  • 您是否尝试过使用
    t-attf-class
    ?类似于
    crm\u kanban\u brand\uu{{record.xx\u ue\u brand\u id.name}
    的东西可能会起作用。谢谢!你的评论为我指明了正确的方向。
        <li class="row even">1</li>
        <li class="row odd">2</li>
        <li class="row even">3</li>