Overslaan naar inhoud
Menu
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Deze vraag is gerapporteerd
1 Beantwoorden
2279 Weergaven

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
Annuleer
Beste antwoord

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
Annuleer
Auteur

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

Gerelateerde posts Antwoorden Weergaven Activiteit
1
jun. 25
1547
3
jul. 25
3216
1
mei 25
1368
1
mei 25
1617
4
mei 25
2770