mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
[IMP] quality_control_stock_oca: sudo the process of creating the test and calculated fields, so no permissions have to be assigned to the sotck user
This commit is contained in:
@@ -13,7 +13,6 @@
|
|||||||
"website": "https://github.com/OCA/manufacture",
|
"website": "https://github.com/OCA/manufacture",
|
||||||
"depends": ["quality_control_oca", "stock"],
|
"depends": ["quality_control_oca", "stock"],
|
||||||
"data": [
|
"data": [
|
||||||
"security/ir.model.access.csv",
|
|
||||||
"views/qc_inspection_view.xml",
|
"views/qc_inspection_view.xml",
|
||||||
"views/stock_picking_view.xml",
|
"views/stock_picking_view.xml",
|
||||||
"views/stock_production_lot_view.xml",
|
"views/stock_production_lot_view.xml",
|
||||||
|
|||||||
@@ -33,12 +33,16 @@ class StockPicking(models.Model):
|
|||||||
|
|
||||||
@api.depends("qc_inspections_ids", "qc_inspections_ids.state")
|
@api.depends("qc_inspections_ids", "qc_inspections_ids.state")
|
||||||
def _compute_count_inspections(self):
|
def _compute_count_inspections(self):
|
||||||
data = self.env["qc.inspection"].read_group(
|
data = (
|
||||||
|
self.env["qc.inspection"]
|
||||||
|
.sudo()
|
||||||
|
.read_group(
|
||||||
[("id", "in", self.mapped("qc_inspections_ids").ids)],
|
[("id", "in", self.mapped("qc_inspections_ids").ids)],
|
||||||
["picking_id", "state"],
|
["picking_id", "state"],
|
||||||
["picking_id", "state"],
|
["picking_id", "state"],
|
||||||
lazy=False,
|
lazy=False,
|
||||||
)
|
)
|
||||||
|
)
|
||||||
picking_data = {}
|
picking_data = {}
|
||||||
for d in data:
|
for d in data:
|
||||||
picking_data.setdefault(d["picking_id"][0], {}).setdefault(d["state"], 0)
|
picking_data.setdefault(d["picking_id"][0], {}).setdefault(d["state"], 0)
|
||||||
@@ -54,9 +58,11 @@ class StockPicking(models.Model):
|
|||||||
|
|
||||||
def _action_done(self):
|
def _action_done(self):
|
||||||
res = super()._action_done()
|
res = super()._action_done()
|
||||||
inspection_model = self.env["qc.inspection"]
|
inspection_model = self.env["qc.inspection"].sudo()
|
||||||
qc_trigger = self.env["qc.trigger"].search(
|
qc_trigger = (
|
||||||
[("picking_type_id", "=", self.picking_type_id.id)]
|
self.env["qc.trigger"]
|
||||||
|
.sudo()
|
||||||
|
.search([("picking_type_id", "=", self.picking_type_id.id)])
|
||||||
)
|
)
|
||||||
for operation in self.move_lines:
|
for operation in self.move_lines:
|
||||||
trigger_lines = set()
|
trigger_lines = set()
|
||||||
@@ -67,8 +73,10 @@ class StockPicking(models.Model):
|
|||||||
]:
|
]:
|
||||||
partner = self.partner_id if qc_trigger.partner_selectable else False
|
partner = self.partner_id if qc_trigger.partner_selectable else False
|
||||||
trigger_lines = trigger_lines.union(
|
trigger_lines = trigger_lines.union(
|
||||||
self.env[model].get_trigger_line_for_product(
|
self.env[model]
|
||||||
qc_trigger, operation.product_id, partner=partner
|
.sudo()
|
||||||
|
.get_trigger_line_for_product(
|
||||||
|
qc_trigger, operation.product_id.sudo(), partner=partner
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
for trigger_line in _filter_trigger_lines(trigger_lines):
|
for trigger_line in _filter_trigger_lines(trigger_lines):
|
||||||
|
|||||||
@@ -30,12 +30,16 @@ class StockProductionLot(models.Model):
|
|||||||
|
|
||||||
@api.depends("qc_inspections_ids", "qc_inspections_ids.state")
|
@api.depends("qc_inspections_ids", "qc_inspections_ids.state")
|
||||||
def _compute_count_inspections(self):
|
def _compute_count_inspections(self):
|
||||||
data = self.env["qc.inspection"].read_group(
|
data = (
|
||||||
|
self.env["qc.inspection"]
|
||||||
|
.sudo()
|
||||||
|
.read_group(
|
||||||
[("id", "in", self.mapped("qc_inspections_ids").ids)],
|
[("id", "in", self.mapped("qc_inspections_ids").ids)],
|
||||||
["lot_id", "state"],
|
["lot_id", "state"],
|
||||||
["lot_id", "state"],
|
["lot_id", "state"],
|
||||||
lazy=False,
|
lazy=False,
|
||||||
)
|
)
|
||||||
|
)
|
||||||
lot_data = {}
|
lot_data = {}
|
||||||
for d in data:
|
for d in data:
|
||||||
lot_data.setdefault(d["lot_id"][0], {}).setdefault(d["state"], 0)
|
lot_data.setdefault(d["lot_id"][0], {}).setdefault(d["state"], 0)
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
|
||||||
access_stock_user_qc_inspection,qc_inspection stock_user,quality_control_oca.model_qc_inspection,stock.group_stock_user,1,1,1,0
|
|
||||||
access_stock_user_qc_inspection_line,qc_inspection_line stock_user,quality_control_oca.model_qc_inspection_line,stock.group_stock_user,1,1,1,0
|
|
||||||
access_stock_user_qc_test,qc_test stock_user,quality_control_oca.model_qc_test,stock.group_stock_user,1,0,0,0
|
|
||||||
access_stock_user_qc_test_question,qc_test_question stock_user,quality_control_oca.model_qc_test_question,stock.group_stock_user,1,0,0,0
|
|
||||||
access_stock_user_qc_test_question_value,qc_test_question_value stock_user,quality_control_oca.model_qc_test_question_value,stock.group_stock_user,1,0,0,0
|
|
||||||
access_stock_user_qc_trigger,qc_trigger stock user,quality_control_oca.model_qc_trigger,stock.group_stock_user,1,0,0,0
|
|
||||||
access_stock_user_qc_trigger_product_category_line,qc_trigger_product_category_line stock_user,quality_control_oca.model_qc_trigger_product_category_line,stock.group_stock_user,1,0,0,0
|
|
||||||
|
Reference in New Issue
Block a user