Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
1 Balas
2306 Tampilan

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 

 

Avatar
Buang
Jawaban Terbai

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 

Avatar
Buang
Penulis

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

Post Terkait Replies Tampilan Aktivitas
1
Jun 25
1601
3
Jul 25
3247
1
Mei 25
1389
1
Mei 25
1639
4
Mei 25
2805