feat: Re-enable user restrictions for stock picking types and introduce purchase order bypass for confirmation and approval.
This commit is contained in:
parent
fa34513ecc
commit
f914c64c5f
@ -7,3 +7,4 @@ from . import approval_request
|
||||
from . import procurement_group
|
||||
from . import stock_move
|
||||
from . import report_stock_quantity
|
||||
from . import purchase_order
|
||||
|
||||
10
models/purchase_order.py
Normal file
10
models/purchase_order.py
Normal file
@ -0,0 +1,10 @@
|
||||
from odoo import models
|
||||
|
||||
class PurchaseOrder(models.Model):
|
||||
_inherit = 'purchase.order'
|
||||
|
||||
def button_confirm(self):
|
||||
return super(PurchaseOrder, self.with_context(bypass_user_restriction=True)).button_confirm()
|
||||
|
||||
def button_approve(self, force=False):
|
||||
return super(PurchaseOrder, self.with_context(bypass_user_restriction=True)).button_approve(force=force)
|
||||
@ -26,15 +26,15 @@ class StockWarehouse(models.Model):
|
||||
class StockPickingType(models.Model):
|
||||
_inherit = 'stock.picking.type'
|
||||
|
||||
# @api.model
|
||||
# def _search(self, domain, offset=0, limit=None, order=None, **kwargs):
|
||||
# if self.env.context.get('bypass_user_restriction'):
|
||||
# return super()._search(domain, offset=offset, limit=limit, order=order, **kwargs)
|
||||
# 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:
|
||||
# domain = Domain(domain or []) & Domain([('id', 'in', allowed_ids)])
|
||||
# return super()._search(domain, offset=offset, limit=limit, order=order, **kwargs)
|
||||
@api.model
|
||||
def _search(self, domain, offset=0, limit=None, order=None, **kwargs):
|
||||
if self.env.context.get('bypass_user_restriction'):
|
||||
return super()._search(domain, offset=offset, limit=limit, order=order, **kwargs)
|
||||
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:
|
||||
domain = Domain(domain or []) & Domain([('id', 'in', allowed_ids)])
|
||||
return super()._search(domain, offset=offset, limit=limit, order=order, **kwargs)
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user