diff --git a/model_access_rights/__manifest__.py b/model_access_rights/__manifest__.py index 17ee658b7..8b4897001 100644 --- a/model_access_rights/__manifest__.py +++ b/model_access_rights/__manifest__.py @@ -21,7 +21,7 @@ ############################################################################## { 'name': 'Hide Create|Delete|Archive|Export Options - Model Wise', - 'version': '15.0.1.0.0', + 'version': '15.0.1.0.1', 'category': 'Extra Tools', 'summary': """Hide module features for user groups.""", 'description': """ diff --git a/model_access_rights/doc/RELEASE_NOTES.md b/model_access_rights/doc/RELEASE_NOTES.md index 964436c32..0d6ffc73e 100644 --- a/model_access_rights/doc/RELEASE_NOTES.md +++ b/model_access_rights/doc/RELEASE_NOTES.md @@ -4,3 +4,8 @@ #### Version 15.0.1.0.0 ##### ADD - Initial Commit for Hide Create|Delete|Archive|Export Options - Model Wise + +#### 12.05.2025 +#### Version 15.0.1.0.1 +#### BUG FIX +- Fixed issue of export action not appearing in res.groups list view after module installation diff --git a/model_access_rights/models/access_right.py b/model_access_rights/models/access_right.py index aff5ed0ff..19a960d42 100644 --- a/model_access_rights/models/access_right.py +++ b/model_access_rights/models/access_right.py @@ -47,24 +47,26 @@ class AccessRight(models.Model): @api.model def hide_buttons(self, args): - """This function contains a query that detects which all options want - to hide, in which model,and to which user groups""" - access_right_rec = self.sudo().search_read([], - ['model_id', 'is_delete', - 'is_export', - 'is_create_or_update', - 'is_archive', - 'groups_id']) - for rec in access_right_rec: - model_id = self.env['ir.model'].sudo(). \ - browse(rec['model_id'][0]).model - if str(model_id) == args[1]: - groups = self.env['res.users'].browse(args[0]).groups_id.ids - if rec['groups_id'][0] in groups: - data = { - 'is_delete': rec['is_delete'], - 'is_export': rec['is_export'], - 'is_create_or_update': rec['is_create_or_update'], - 'is_archive': rec['is_archive'] - } - return data + """Returns the visibility settings for buttons per model and group.""" + user = self.env['res.users'].browse(args[0]) + model_name = args[1] + access_right_rec = self.sudo().search_read([ + ('model_id.model', '=', model_name), + ('groups_id', 'in', user.groups_id.ids) + ], ['is_delete', 'is_export', 'is_create_or_update', 'is_archive']) + + if access_right_rec: + rec = access_right_rec[0] # If multiple, first match wins + return { + 'is_delete': rec['is_delete'], + 'is_export': rec['is_export'], + 'is_create_or_update': rec['is_create_or_update'], + 'is_archive': rec['is_archive'] + } + return { + 'is_delete': False, + 'is_export': False, + 'is_create_or_update': False, + 'is_archive': False + } + diff --git a/model_access_rights/static/src/js/list_controller.js b/model_access_rights/static/src/js/list_controller.js index 9576acb5d..993a04733 100644 --- a/model_access_rights/static/src/js/list_controller.js +++ b/model_access_rights/static/src/js/list_controller.js @@ -27,8 +27,10 @@ patch(ListController.prototype, 'model_access_rights/static/src/js/list_controll if(data['is_archive']){ self.archiveEnabled = false; } - if(data['is_export']){ + if (data['is_export']) { self.isExportEnable = false; + } else { + self.isExportEnable = true; } } });