mirror of
https://github.com/OCA/rma.git
synced 2025-02-16 17:11:47 +02:00
[FIX] rma: portal views access errors
- Portal mail thread needs token config. - Unpublished products will raise AccessError on RMAs portal views for portal users due to record rules. - Ensure active_id when getting actions in rma, since we could come from a context that pollutes the expected active rma id.
This commit is contained in:
@@ -599,7 +599,10 @@ class Rma(models.Model):
|
||||
"""Invoked when 'Replace' button in rma form view is clicked."""
|
||||
self.ensure_one()
|
||||
self._ensure_can_be_replaced()
|
||||
action = self.env.ref("rma.rma_delivery_wizard_action").read()[0]
|
||||
# Force active_id to avoid issues when coming from smart buttons
|
||||
# in other models
|
||||
action = self.env.ref("rma.rma_delivery_wizard_action").with_context(
|
||||
active_id=self.id).read()[0]
|
||||
action['name'] = 'Replace product(s)'
|
||||
action['context'] = dict(self.env.context)
|
||||
action['context'].update(
|
||||
@@ -615,7 +618,10 @@ class Rma(models.Model):
|
||||
"""
|
||||
self.ensure_one()
|
||||
self._ensure_can_be_returned()
|
||||
action = self.env.ref("rma.rma_delivery_wizard_action").read()[0]
|
||||
# Force active_id to avoid issues when coming from smart buttons
|
||||
# in other models
|
||||
action = self.env.ref("rma.rma_delivery_wizard_action").with_context(
|
||||
active_id=self.id).read()[0]
|
||||
action['context'] = dict(self.env.context)
|
||||
action['context'].update(
|
||||
active_id=self.id,
|
||||
@@ -628,9 +634,12 @@ class Rma(models.Model):
|
||||
"""Invoked when 'Split' button in rma form view is clicked."""
|
||||
self.ensure_one()
|
||||
self._ensure_can_be_split()
|
||||
action = self.env.ref("rma.rma_split_wizard_action").read()[0]
|
||||
# Force active_id to avoid issues when coming from smart buttons
|
||||
# in other models
|
||||
action = self.env.ref("rma.rma_split_wizard_action").with_context(
|
||||
active_id=self.id).read()[0]
|
||||
action['context'] = dict(self.env.context)
|
||||
action['context'].update(active_ids=self.ids)
|
||||
action['context'].update(active_id=self.id, active_ids=self.ids)
|
||||
return action
|
||||
|
||||
def action_cancel(self):
|
||||
@@ -663,7 +672,10 @@ class Rma(models.Model):
|
||||
def action_view_receipt(self):
|
||||
"""Invoked when 'Receipt' smart button in rma form view is clicked."""
|
||||
self.ensure_one()
|
||||
action = self.env.ref('stock.action_picking_tree_all').read()[0]
|
||||
# Force active_id to avoid issues when coming from smart buttons
|
||||
# in other models
|
||||
action = self.env.ref('stock.action_picking_tree_all').with_context(
|
||||
active_id=self.id).read()[0]
|
||||
action.update(
|
||||
res_id=self.reception_move_id.picking_id.id,
|
||||
view_mode="form",
|
||||
@@ -687,7 +699,8 @@ class Rma(models.Model):
|
||||
|
||||
def action_view_delivery(self):
|
||||
"""Invoked when 'Delivery' smart button in rma form view is clicked."""
|
||||
action = self.env.ref('stock.action_picking_tree_all').read()[0]
|
||||
action = self.env.ref('stock.action_picking_tree_all').with_context(
|
||||
active_id=self.id).read()[0]
|
||||
picking = self.delivery_move_ids.mapped('picking_id')
|
||||
if len(picking) > 1:
|
||||
action['domain'] = [('id', 'in', picking.ids)]
|
||||
|
||||
Reference in New Issue
Block a user