コンテンツへスキップ
メニュー
この質問にフラグが付けられました
1 返信
2287 ビュー

I want to use fields_view_get() method to make invisible the edit button for a specific user for a specific condition. 

But I couldn't get the model data in in this method.

suppose I'm using this method in " hr.applicant " model. And this model has a field stage_id .  When is method is executing I want the values of stage_id. I'm using odoo 15 

 

アバター
破棄
最善の回答

Hi,

You cannot get the model data or record data inside the fields_view_,get or get_view method.

If you check the execution of the function,  it execute only when the view is loaded initially and won't get executed on switching between records. 


if you can tell us, the condition that you are trying to add, lets see if we can do with any approach. 

Thanks 

アバター
破棄
著作者

I want this condition. I added the full code. Please check

@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):

result = super(Applicant, self).fields_view_get(view_id=view_id, view_type=view_type,
toolbar=toolbar,
submenu=submenu)

# Disabling the edit button for vendor user not in "New" stage
if view_type == 'form':
doc = etree.XML(result['arch'])
user = self.env.user

if self.stage_id.name != 'New' and user.partner_id.is_vendor and user.has_group('recruitment_extension.group_hr_recruitment_vendor'):
# When the user is 'Vendor' and the stage is not 'New' then the edit button will be invisible
for node in doc.xpath("//form"):
# Set the edit to false
node.set('edit', "false")
result['arch'] = etree.tostring(doc)
return result

関連投稿 返信 ビュー 活動
1
6月 25
1556
3
7月 25
3225
1
5月 25
1375
1
5月 25
1625
4
5月 25
2773