From bbf860ae972bd10e8906796a7160baf307f506fe Mon Sep 17 00:00:00 2001 From: nie Date: Wed, 9 Dec 2020 11:56:28 +0000 Subject: [PATCH] [FIX] sale_coupon: allow salespeople to use coupons Steps: - Have a demo user with "User: Own Documents Only" rights on Sales. - Connect as admin - Go to Sales > Products > Coupon Program - Click one of the programs - Generate a Coupon - Reconnect as demo user - Create a Sales Order - Apply the generated coupon Bug: Access rights restriction on the coupon. Sorry, you are not allowed to modify documents of type 'Sales Coupon' (sale.coupon). This operation is allowed for the groups: - Sales/Administrator - (Operation: write, User: 6) Explanation: When applying a coupon to the sales order, it tries to update the coupon's state and link it to the order. This needs to update the coupon record. This commit also fixes confirming quotations and cancelling sales orders with coupons for salespeople. opw:2409858 closes odoo/odoo#63239 X-original-commit: 873340ca98b9732132e056c1ca79c614c6255c1c Signed-off-by: backspac Signed-off-by: Nicolas Martinelli (nim) --- addons/sale_coupon/models/sale_order.py | 2 +- addons/sale_coupon/security/ir.model.access.csv | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/sale_coupon/models/sale_order.py b/addons/sale_coupon/models/sale_order.py index 17dd4210b4a..8606cff345d 100644 --- a/addons/sale_coupon/models/sale_order.py +++ b/addons/sale_coupon/models/sale_order.py @@ -230,7 +230,7 @@ class SaleOrder(models.Model): if coupon: coupon.write({'state': 'reserved'}) else: - coupon = self.env['coupon.coupon'].create({ + coupon = self.env['coupon.coupon'].sudo().create({ 'program_id': program.id, 'state': 'reserved', 'partner_id': self.partner_id.id, diff --git a/addons/sale_coupon/security/ir.model.access.csv b/addons/sale_coupon/security/ir.model.access.csv index 6b9b91862e8..1ded0f23699 100644 --- a/addons/sale_coupon/security/ir.model.access.csv +++ b/addons/sale_coupon/security/ir.model.access.csv @@ -3,7 +3,7 @@ access_program_salesman,Coupon Program (Salesperson),coupon.model_coupon_program access_program_manager,Coupon Program (Manager),coupon.model_coupon_program,sales_team.group_sale_manager,1,1,1,1 access_applicability_salesman,Coupon Rule (Salesperson),coupon.model_coupon_rule,sales_team.group_sale_salesman,1,0,0,0 access_applicability_manager,Coupon Rule (Manager),coupon.model_coupon_rule,sales_team.group_sale_manager,1,1,1,0 -access_coupon_salesman,Coupon (Salesperson),coupon.model_coupon_coupon,sales_team.group_sale_salesman,1,0,0,0 +access_coupon_salesman,Coupon (Salesperson),coupon.model_coupon_coupon,sales_team.group_sale_salesman,1,1,0,0 access_coupon_manager,Coupon (Manager),coupon.model_coupon_coupon,sales_team.group_sale_manager,1,1,1,0 access_reward_salesman,Coupon Reward (Salesperson),coupon.model_coupon_reward,sales_team.group_sale_salesman,1,0,0,0 access_reward_manager,Coupon Reward (Manager),coupon.model_coupon_reward,sales_team.group_sale_manager,1,1,1,0