[REF] stock: missing warehouse creation

We move the code from the 'post_init_hook' into a function tag, to be
consistent with the way we populate missing data when stock module is
installed.

TASK-ID: 1882269
This commit is contained in:
Pierre Masereel
2018-11-14 10:52:03 +00:00
committed by Simon Lejeune
parent 6b95bb6a61
commit 5df621f665
4 changed files with 19 additions and 20 deletions
-17
View File
@@ -17,20 +17,3 @@ def pre_init_hook(cr):
('model', 'like', '%stock%'),
('module', '=', 'stock')
]).unlink()
def _create_warehouse(cr, registry):
""" This hook is used to add a warehouse on existing companies
when module stock is installed.
"""
env = api.Environment(cr, SUPERUSER_ID, {})
company_ids = env['res.company'].search([])
company_with_warehouse = env['stock.warehouse'].search([]).mapped('company_id')
company_without_warehouse = company_ids - company_with_warehouse
for company in company_without_warehouse:
company.create_transit_location()
env['stock.warehouse'].create({
'name': company.name,
'code': company.name[:5],
'company_id': company.id,
'partner_id': company.partner_id.id
})
-1
View File
@@ -78,5 +78,4 @@
'application': True,
'auto_install': False,
'pre_init_hook': 'pre_init_hook',
'post_init_hook': '_create_warehouse',
}
+3
View File
@@ -169,6 +169,9 @@
<function model="res.company" name="create_transit_location">
<value model="res.company" eval="obj().search([('internal_transit_location_id', '=', False)]).ids"/>
</function>
<function model="res.company" name="create_missing_warehouse">
<value model="res.company" eval="obj()"/>
</function>
<function model="res.company" name="create_missing_inventory_loss_location">
<value model="res.company" eval="obj()"/>
</function>
+16 -2
View File
@@ -50,6 +50,22 @@ class Company(models.Model):
'value': 'stock.location,%d' % inventory_loss_location.id,
})
@api.model
def create_missing_warehouse(self):
""" This hook is used to add a warehouse on existing companies
when module stock is installed.
"""
company_ids = self.env['res.company'].search([])
company_with_warehouse = self.env['stock.warehouse'].search([]).mapped('company_id')
company_without_warehouse = company_ids - company_with_warehouse
for company in company_without_warehouse:
self.env['stock.warehouse'].create({
'name': company.name,
'code': company.name[:5],
'company_id': company.id,
'partner_id': company.partner_id.id,
})
@api.model
def create_missing_inventory_loss_location(self):
company_ids = self.env['res.company'].search([])
@@ -65,7 +81,5 @@ class Company(models.Model):
company.create_transit_location()
company.sudo()._create_inventory_loss_location()
# mutli-company rules prevents creating warehouse and sub-locations
self.env['stock.warehouse'].check_access_rights('create')
self.env['stock.warehouse'].sudo().create({'name': company.name, 'code': company.name[:5], 'company_id': company.id, 'partner_id': company.partner_id.id})
return company