[quality_control_stock][FIX] the stock user should be able to

create quality control inspection without necessarily being
quality control user. It is common that the person doing the
picking is not going to be the same as the one doing the inspection.

So when a stock user create the transfer, the system will create
the necessary qc inspections, regardless if the user has permissions
to process them.
This commit is contained in:
Jordi Ballester Alomar
2018-12-09 17:26:34 +01:00
parent cd4a02723d
commit 76cb1fbfd7
3 changed files with 32 additions and 1 deletions

View File

@@ -20,6 +20,7 @@
"stock",
],
"data": [
"security/ir.model.access.csv",
"data/quality_control_stock_data.xml",
"views/qc_inspection_view.xml",
"views/stock_picking_view.xml",

View File

@@ -0,0 +1,8 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_user_qc_inspection_stock_user,qc_inspection stock user,quality_control.model_qc_inspection,stock.group_stock_user,1,1,1,0
access_user_qc_inspection_line_stock_user,qc_inspection_line stock user,quality_control.model_qc_inspection_line,stock.group_stock_user,1,1,1,0
access_user_qc_test_stock_user,qc_test stock_user,quality_control.model_qc_test,stock.group_stock_user,1,0,0,0
access_user_qc_test_question_stock_user,qc_test_question stock user,quality_control.model_qc_test_question,stock.group_stock_user,1,0,0,0
access_user_qc_test_question_value_stock_user,qc_test_question_value_stock_user,quality_control.model_qc_test_question_value,stock.group_stock_user,1,0,0,0
access_manager_qc_trigger_stock_user,qc_trigger stock user,quality_control.model_qc_trigger,stock.group_stock_user,1,0,0,0
access_manager_qc_trigger_product_category_line_stock_user,qc_trigger product_category line stock user,quality_control.model_qc_trigger_product_category_line,stock.group_stock_user,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_user_qc_inspection_stock_user qc_inspection stock user quality_control.model_qc_inspection stock.group_stock_user 1 1 1 0
3 access_user_qc_inspection_line_stock_user qc_inspection_line stock user quality_control.model_qc_inspection_line stock.group_stock_user 1 1 1 0
4 access_user_qc_test_stock_user qc_test stock_user quality_control.model_qc_test stock.group_stock_user 1 0 0 0
5 access_user_qc_test_question_stock_user qc_test_question stock user quality_control.model_qc_test_question stock.group_stock_user 1 0 0 0
6 access_user_qc_test_question_value_stock_user qc_test_question_value_stock_user quality_control.model_qc_test_question_value stock.group_stock_user 1 0 0 0
7 access_manager_qc_trigger_stock_user qc_trigger stock user quality_control.model_qc_trigger stock.group_stock_user 1 0 0 0
8 access_manager_qc_trigger_product_category_line_stock_user qc_trigger product_category line stock user quality_control.model_qc_trigger_product_category_line stock.group_stock_user 1 0 0 0

View File

@@ -9,6 +9,8 @@ class TestQualityControl(TransactionCase):
def setUp(self):
super(TestQualityControl, self).setUp()
self.users_model = self.env['res.users']
self.picking_model = self.env['stock.picking']
self.inspection_model = self.env['qc.inspection']
self.qc_trigger_model = self.env['qc.trigger']
@@ -33,6 +35,11 @@ class TestQualityControl(TransactionCase):
'name': 'Lot for tests',
'product_id': self.product.id,
})
self.group_stock_user = self.env.ref('stock.group_stock_user')
self.company1 = self.env.ref('base.main_company')
self.user1_id = self._create_user(
'user_1', [self.group_stock_user], self.company1)
move_vals = {
'name': self.product.name,
'product_id': self.product.id,
@@ -42,7 +49,7 @@ class TestQualityControl(TransactionCase):
'location_dest_id': self.location_dest.id,
'quantity_done': 1.0
}
self.picking1 = self.picking_model \
self.picking1 = self.picking_model.sudo(self.user1_id) \
.with_context(default_picking_type_id=self.picking_type.id) \
.create({
'partner_id': self.partner1.id,
@@ -69,6 +76,21 @@ class TestQualityControl(TransactionCase):
})
sequence += 10
def _create_user(self, login, groups, company):
""" Create a user."""
group_ids = [group.id for group in groups]
user = self.users_model.with_context({'no_reset_password': True}).\
create({
'name': 'Sale User',
'login': login,
'password': 'test',
'email': 'test@yourcompany.com',
'company_id': company.id,
'company_ids': [(4, company.id)],
'groups_id': [(6, 0, group_ids)]
})
return user.id
def test_inspection_create_for_product(self):
self.product.qc_triggers = [(
0, 0, {