diff --git a/__manifest__.py b/__manifest__.py index 34b8f00..2c5f802 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -16,7 +16,7 @@ """, 'category': 'Extra Tools', 'author': 'Suherdy Yacob', - 'depends': ['base', 'stock', 'mrp', 'approvals', 'stock_account'], + 'depends': ['base', 'stock', 'mrp', 'approvals', 'stock_account', 'sale'], 'data': [ 'security/ir.model.access.csv', 'security/ir_rule.xml', diff --git a/models/__init__.py b/models/__init__.py index c118021..d5fe265 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -1,2 +1,4 @@ from . import res_users from . import restricted_models +from . import sale_order + diff --git a/models/__pycache__/__init__.cpython-312.pyc b/models/__pycache__/__init__.cpython-312.pyc index 634e7a8..2b838bc 100644 Binary files a/models/__pycache__/__init__.cpython-312.pyc and b/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/models/__pycache__/restricted_models.cpython-312.pyc b/models/__pycache__/restricted_models.cpython-312.pyc index ffa2433..ef071ed 100644 Binary files a/models/__pycache__/restricted_models.cpython-312.pyc and b/models/__pycache__/restricted_models.cpython-312.pyc differ diff --git a/models/__pycache__/sale_order.cpython-312.pyc b/models/__pycache__/sale_order.cpython-312.pyc new file mode 100644 index 0000000..4517426 Binary files /dev/null and b/models/__pycache__/sale_order.cpython-312.pyc differ diff --git a/models/restricted_models.py b/models/restricted_models.py index c16d2db..295656c 100644 --- a/models/restricted_models.py +++ b/models/restricted_models.py @@ -15,6 +15,8 @@ class StockWarehouse(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): + if self.env.context.get('bypass_user_restriction'): + return super()._search(domain, offset=offset, limit=limit, order=order) if not self.env.su and not self.env.user.has_group('base.group_system'): allowed_ids = get_allowed_ids(self.env, 'res_users_stock_warehouse_rel', 'warehouse_id', self.env.user.id) if allowed_ids: @@ -26,6 +28,8 @@ class StockPickingType(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): + if self.env.context.get('bypass_user_restriction'): + return super()._search(domain, offset=offset, limit=limit, order=order) if not self.env.su and not self.env.user.has_group('base.group_system'): allowed_ids = get_allowed_ids(self.env, 'res_users_stock_picking_type_rel', 'picking_type_id', self.env.user.id) if allowed_ids: @@ -37,6 +41,8 @@ class StockLocation(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): + if self.env.context.get('bypass_user_restriction'): + return super()._search(domain, offset=offset, limit=limit, order=order) if not self.env.su and not self.env.user.has_group('base.group_system'): allowed_ids = get_allowed_ids(self.env, 'res_users_stock_location_rel', 'location_id', self.env.user.id) if allowed_ids: @@ -54,6 +60,8 @@ class MrpWorkcenter(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): + if self.env.context.get('bypass_user_restriction'): + return super()._search(domain, offset=offset, limit=limit, order=order) if not self.env.su and not self.env.user.has_group('base.group_system'): allowed_ids = get_allowed_ids(self.env, 'res_users_mrp_workcenter_rel', 'workcenter_id', self.env.user.id) if allowed_ids: @@ -65,6 +73,8 @@ class ApprovalCategory(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): + if self.env.context.get('bypass_user_restriction'): + return super()._search(domain, offset=offset, limit=limit, order=order) if not self.env.su and not self.env.user.has_group('base.group_system'): allowed_ids = get_allowed_ids(self.env, 'res_users_approval_category_rel', 'category_id', self.env.user.id) if allowed_ids: @@ -76,6 +86,8 @@ class ApprovalRequest(models.Model): @api.model def _search(self, domain, offset=0, limit=None, order=None): + if self.env.context.get('bypass_user_restriction'): + return super()._search(domain, offset=offset, limit=limit, order=order) if not self.env.su and not self.env.user.has_group('base.group_system'): allowed_category_ids = get_allowed_ids(self.env, 'res_users_approval_category_rel', 'category_id', self.env.user.id) if allowed_category_ids: diff --git a/models/sale_order.py b/models/sale_order.py new file mode 100644 index 0000000..21448b6 --- /dev/null +++ b/models/sale_order.py @@ -0,0 +1,7 @@ +from odoo import models + +class SaleOrder(models.Model): + _inherit = 'sale.order' + + def action_confirm(self): + return super(SaleOrder, self.with_context(bypass_user_restriction=True)).action_confirm()