Skip to Content
Menu
This question has been flagged
3 Replies
8035 Views

Please help on this issue, thanks in advance!

A) What I am looking for:

1) in Odoo 13

2) set statusbar unclickable for a Sale Order to be created(without a valid id) while clickable when the order has been created(with a valid id)


B) What I did (reproducing steps):
1) in the form view (unable to show <>, use # instead):
#field name="stage_id" widget="statusbar" attrs="{'clickable': [('id', '!=', False)], 'invisible': [('active', '=', False)]}"/#
2) take 'id' of the order as the conditional parameter:

- it will be False when the Order to be created
- it will be assigned by odoo with an int number when the Order is created


C) What I saw:

1)When I set "'clickable': [('id', '!=', False)]", it does not work because the status bar is always unclickable, even when id = 15 (I'm sure of it);

2)When I set "'clickable':False" or "'clickable':True", it works well;


3) I tried the solution "readonly " mentioned on https://stackoverflow.com/questions/45160916/odoo-v10-how-to-make-statusbar-clickable-on-condition, but it still does not work.


Avatar
Discard
Best Answer

add a "copycat" field for the non clickable version to the model, i.e.

stage_id2=fields.Selection(related='stage_id')

Avatar
Discard
Best Answer

Did you find a solution to this??

Avatar
Discard
Best Answer

What if you add two status bars:
one clickable and visible when id != False
the other not clickable and visible when id == False

MMS

Avatar
Discard
Author

Thanks for your comment! unfortunately, it does not work.

WHAT I DID:

#xpath expr="//field[@name='stage_id']" position="replace"#

#field name="stage_id" widget="statusbar" options="{'clickable': '1'}" attrs="{'invisible': ['|', ('active', '=', False), ('id', '=', False)]}"/#

#field name="stage_id" widget="statusbar" options="{'clickable': False}" attrs="{'invisible': ['|', ('active', '=', False), ('id', '!=', False)]}"/#

#/xpath#

RESULT:

1) the statusbar is always unclickable for both states(with and without id) that I am testing with'

2) when I debug and hover on the statusbar, it shows "{'invisible': ['|', ('active', '=', False), ('id', '!=', False)]}" for the both states.

I guess the second "stage_id" overwrites the first one, instead of taking effect at the same time.

Ideas?