Skip to Content
Menu
This question has been flagged
2 Replies
13114 Views

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

Avatar
Discard
Author

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

Author

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.

Avatar
Discard
Author

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.

Author

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>
Avatar
Discard
Related Posts Replies Views Activity
2
Aug 20
2900
0
Feb 16
5254
0
Oct 21
3616
1
Apr 16
3975
1
Jan 25
3258