This question has been flagged
8 Replies
3123 Views

I created an automated action as such:

Name: Prevent duplicate vendor based on name

Model: Contact 
Trigger: On Creation & Update
Trigger Fields: Before Update

Domain: Match all records

Apply on: Match all records

Action To Do: Execute Python Code

Code:

exists = env['res.partner'].search([('name','=',record.name),('id','!=',record.id)])

if exists:

  raise UserError('Vendor "' + record.name + '" is already in Odoo!')



When I try to create a new PO as an admin, it works. However, when I try this as a user (user permission on purchase module), it provides me with the following error:

Access Error:
You are not allowed to access 'Automated Action' (base.automation) records. This operation is allowed for the following groups: - Administration/Settings Contact your administrator to request access if necessary.

What can I do? I need the automated action and also I need my regular user to be able to create a PO.

Thanks.
Avatar
Discard

Which version of Odoo?

Author

@Chris, v14

OK, it's a bug in Odoo 14 - I added an answer.

Best Answer

Hello Tushar
You can use python constrains to not allow anyone to create duplicate vendor
You can use following code to add constrains in res.partner object.

@api.constrains('name')
    def check_name(self):
        partners_name = self.search([]).mapped("name")
        check_name = list(filter(lambda all_partner:all_partner.lower() == self.name.lower(),partners_name))
        if len(check_name) > 1:
            raise UserError("You Can not create vendor with same name")

Avatar
Discard
Author

Husain, thanks you. I still wonder if there is a way to do it without changing or extending the source code.

Hello Tushar

If you don't wants to change your existing code then follow below steps.

Go to setting ---> Groups --> purchase/ user groups and give access rights to user for automates action.

Go to access right tab and add new access right for purchase user group select model automated action and given read,write,update and delete permission.

Then user will not get error while creating PO

Thanks

Author

Hi Husain, thank you very much, this worked!

Best Answer

Seems that this is a bug in Odoo 14 and there's a fix.  



Avatar
Discard