Skip to Content
Menu
This question has been flagged
2 Replies
14521 Rodiniai

Hi,

I'm trying to add a decoration to a badge in widget in a list view.
I have it working on a default view using this:

field name="status" widget="badge" decoration-success= "status == 'Done'"

But when I'm trying to use in on another view using xpath, I'm not able to get it right. I think that should be something like this:

    xpath expr="//field[@name='status']" position="attributes"
        attribute name="widget">badge attribute
        attribute name="decoration-success"> [['status','=','Done']] attribute
    xpath

Any suggestions?
Thanks

Portretas
Atmesti
Autorius

I had to remove the symbols < > / because it was modifing the description. Sorry for that

Autorius

Status is a ManytoOne field. It works with a selection field, but it doesnt with a ManytoOne field. I tried some alternatives like:
status.name == 'Done'
status.id == 13

But i get an error with any of these

Best Answer

Hi, 
I would recommand that you create a related and stored field: 

status_name = field.Char(related='status.name', store=True, copy=False)

and then in your xml you put this:

widget="badge" decoration-success = " status_name == ' Done' "

Hope this helps.
Upvote if it does.

Portretas
Atmesti
Autorius

Hi Ibrahim,

Thanks for the answer. I was aware of using a char field to hold the value, but I was trying to figure out if there was any option to use the information from the Many2One field to use on the Badge Attribute. I dont know if it is even possible.

Autorius

Hi Ibrahim,

I couldnt find any better alternative. Im going to close it and use your answer. I was trying to avoid creating more fields.
Thanks

Best Answer

Your XPath override should look like this

<xpath expr="//field[@name='status']" position="attributes">
​<attribute name="widget">badge</attribute>
 <attribute name="decoration-success">status == 'Done'</attribute>
<xpath>
Portretas
Atmesti
Related Posts Replies Rodiniai Veikla
2
rugp. 20
3365
0
vas. 16
5627
0
spal. 21
3954
1
bal. 16
4405
1
rugp. 25
482