Skip to content

Commit bc0a774

Browse files
committed
[MIG] maintenance_stock: Migration to 14.0
1 parent d9982de commit bc0a774

8 files changed

+65
-81
lines changed

maintenance_stock/__manifest__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"summary": "Links maintenance requests to stock",
66
"author": "Odoo Community Association (OCA), Solvos",
77
"license": "AGPL-3",
8-
"version": "13.0.1.0.0",
8+
"version": "14.0.1.0.0",
99
"category": "Warehouse",
1010
"website": "https://github.com/OCA/maintenance",
1111
"depends": ["base_maintenance", "stock"],

maintenance_stock/data/demo_maintenance_stock.xml

+37-20
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<odoo>
33
<data noupdate="1">
4+
<record id="location_inventory" model="stock.location">
5+
<field name="name">Inventory adjustment</field>
6+
<field name="usage">inventory</field>
47

8+
</record>
59
<record id="stock_warehouse_maintenance" model="stock.warehouse">
610
<field name="name">Maintenance Warehouse</field>
711
<field name="partner_id" ref="stock.res_partner_address_41" />
8-
<field name="company_id" ref="stock.res_company_1" />
12+
913
<field name="code">Main</field>
1014
</record>
1115

@@ -37,18 +41,22 @@
3741
<field name="standard_price">70.0</field>
3842
<field name="uom_id" ref="uom.product_uom_unit" />
3943
<field name="uom_po_id" ref="uom.product_uom_unit" />
40-
<field name="property_stock_inventory" ref="stock.location_inventory" />
44+
4145
<field
42-
name="image"
46+
name="image_1920"
4347
type="base64"
4448
file="maintenance_stock/static/img/toner.png"
4549
/>
50+
4651
</record>
4752

4853
<record id="stock_inventory_toner" model="stock.inventory">
4954
<field name="name">Inventory for Toner</field>
50-
<field name="filter">product</field>
51-
<field name="product_id" ref="maintenance_stock.product_toner" />
55+
<field
56+
name="product_ids"
57+
eval="[(6,0,[ref('maintenance_stock.product_toner'),])]"
58+
/>
59+
5260
</record>
5361

5462
<record id="stock_inventory_toner_line" model="stock.inventory.line">
@@ -58,7 +66,13 @@
5866
<field name="product_qty">50.0</field>
5967
<field name="location_id" ref="maintenance_stock.main_location_stock" />
6068
</record>
61-
69+
<function name="action_start" model="stock.inventory">
70+
<function
71+
eval="[[('id', '=', ref('maintenance_stock.stock_inventory_toner'))]]"
72+
model="stock.inventory"
73+
name="search"
74+
/>
75+
</function>
6276
<function model="stock.inventory" name="action_validate">
6377
<function
6478
eval="[[('state','=','draft'),('id', '=', ref('maintenance_stock.stock_inventory_toner'))]]"
@@ -73,6 +87,7 @@
7387
name="default_consumption_warehouse_id"
7488
ref="maintenance_stock.stock_warehouse_maintenance"
7589
/>
90+
7691
</record>
7792

7893
<record id="m_request_1" model="maintenance.request">
@@ -82,12 +97,13 @@
8297
<field name="equipment_id" ref="maintenance.equipment_printer1" />
8398
<field name="color">7</field>
8499
<field name="stage_id" ref="maintenance.stage_1" />
85-
<field
86-
name="maintenance_team_id"
87-
ref="maintenance.equipment_team_maintenance"
88-
/>
89-
</record>
90100

101+
</record>
102+
<record model="stock.quant" id="stock_quant_toner">
103+
<field name="product_id" ref="maintenance_stock.product_toner" />
104+
<field name="location_id" ref="maintenance_stock.main_location_stock" />
105+
<field name="quantity">1.0</field>
106+
</record>
91107
<record id="consuption_picking_m_request_1" model="stock.picking">
92108
<field
93109
name="picking_type_id"
@@ -97,6 +113,7 @@
97113
<field name="location_id" ref="maintenance_stock.main_location_stock" />
98114
<field name="location_dest_id" ref="maintenance_stock.main_location_cons" />
99115
<field name="maintenance_request_id" ref="maintenance_stock.m_request_1" />
116+
100117
<field
101118
name="move_lines"
102119
model="stock.move"
@@ -108,13 +125,7 @@
108125
'picking_type_id': ref('maintenance_stock.main_picking_type_cons'),
109126
'location_id': ref('maintenance_stock.main_location_stock'),
110127
'location_dest_id': ref('maintenance_stock.main_location_cons'),
111-
'move_line_ids': [(0, 0, {
112-
'product_id': ref('maintenance_stock.product_toner'),
113-
'qty_done': 1,
114-
'product_uom_id': ref('uom.product_uom_unit'),
115-
'location_id': ref('maintenance_stock.main_location_stock'),
116-
'location_dest_id': ref('maintenance_stock.main_location_cons'),
117-
})],
128+
118129
})]"
119130
/>
120131
</record>
@@ -126,8 +137,14 @@
126137
obj().env.ref('maintenance_stock.consuption_picking_m_request_1').id]"
127138
/>
128139
</function>
129-
130-
<function model="stock.picking" name="action_done">
140+
<function model="stock.picking" name="action_assign">
141+
<value
142+
model="stock.picking"
143+
eval="[
144+
obj().env.ref('maintenance_stock.consuption_picking_m_request_1').id]"
145+
/>
146+
</function>
147+
<function model="stock.picking" name="button_validate">
131148
<value
132149
model="stock.picking"
133150
eval="[

maintenance_stock/models/maintenance_equipment.py

-5
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,6 @@
66
class MaintenanceEquipment(models.Model):
77
_inherit = "maintenance.equipment"
88

9-
stock_picking_ids = fields.One2many(
10-
comodel_name="stock.picking",
11-
inverse_name="maintenance_equipment_id",
12-
groups="stock.group_stock_user",
13-
)
149
allow_consumptions = fields.Boolean(
1510
groups="stock.group_stock_user",
1611
)

maintenance_stock/tests/test_maintenance_stock.py

+24-50
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# © 2020 Solvos Consultoría Informática (<http://www.solvos.es>)
22
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
33
import odoo.tests.common as test_common
4+
from odoo.tests.common import Form
45

56

67
class TestMaintenanceStock(test_common.TransactionCase):
78
def setUp(self):
89
super().setUp()
9-
1010
self.maintenance_warehouse = self.env["stock.warehouse"].create(
1111
{
1212
"name": "Test warehouse",
@@ -28,6 +28,7 @@ def setUp(self):
2828
{
2929
"name": "Test equipment",
3030
"allow_consumptions": True,
31+
"equipment_assign_to": "employee",
3132
"default_consumption_warehouse_id": self.maintenance_warehouse.id,
3233
}
3334
)
@@ -107,54 +108,26 @@ def test_request(self):
107108

108109
def test_picking(self):
109110
self.assertEqual(len(self.request_1.stock_picking_ids), 0)
110-
self.assertEqual(len(self.equipment_1.stock_picking_ids), 0)
111-
112-
qty_done = 5.0
113-
location_id = self.maintenance_warehouse.lot_stock_id.id
114-
location_dest_id = self.maintenance_warehouse.wh_cons_loc_id.id
115-
picking_type_id = self.maintenance_warehouse.cons_type_id.id
116-
picking = self.env["stock.picking"].create(
111+
location_id = self.maintenance_warehouse.lot_stock_id
112+
location_dest_id = self.maintenance_warehouse.wh_cons_loc_id
113+
picking_type_id = self.maintenance_warehouse.cons_type_id
114+
self.env["stock.quant"].create(
117115
{
118-
"maintenance_request_id": self.request_1.id,
119-
"picking_type_id": picking_type_id,
120-
"location_id": location_id,
121-
"location_dest_id": location_dest_id,
122-
"move_lines": [
123-
(
124-
0,
125-
0,
126-
{
127-
"name": "Test move",
128-
"product_id": self.product1.id,
129-
"product_uom": self.env.ref("uom.product_uom_unit").id,
130-
"product_uom_qty": 5.0,
131-
"picking_type_id": picking_type_id,
132-
"location_id": location_id,
133-
"location_dest_id": location_dest_id,
134-
"move_line_ids": [
135-
(
136-
0,
137-
0,
138-
{
139-
"product_id": self.product1.id,
140-
"product_uom_id": self.env.ref(
141-
"uom.product_uom_unit"
142-
).id,
143-
"qty_done": qty_done,
144-
"location_id": location_id,
145-
"location_dest_id": location_dest_id,
146-
},
147-
)
148-
],
149-
},
150-
)
151-
],
116+
"product_id": self.product1.id,
117+
"location_id": location_id.id,
118+
"quantity": 5,
152119
}
153120
)
154-
121+
picking_form = Form(self.env["stock.picking"])
122+
picking_form.picking_type_id = picking_type_id
123+
picking_form.location_id = location_id
124+
picking_form.location_dest_id = location_dest_id
125+
with picking_form.move_ids_without_package.new() as move:
126+
move.product_id = self.product1
127+
move.product_uom_qty = 5.0
128+
picking = picking_form.save()
129+
picking.write({"maintenance_request_id": self.request_1.id})
155130
self.assertEqual(len(self.request_1.stock_picking_ids), 1)
156-
self.assertEqual(len(self.equipment_1.stock_picking_ids), 1)
157-
158131
stock_quant_obj = self.env["stock.quant"]
159132
domain_from = [
160133
("product_id", "=", self.product1.id),
@@ -164,11 +137,12 @@ def test_picking(self):
164137
("product_id", "=", self.product1.id),
165138
("location_id", "=", self.maintenance_warehouse.wh_cons_loc_id.id),
166139
]
167-
self.assertEqual(stock_quant_obj.search(domain_from).quantity, 0)
140+
self.assertEqual(stock_quant_obj.search(domain_from).quantity, 5)
168141
self.assertEqual(stock_quant_obj.search(domain_to).quantity, 0)
169142

170143
picking.action_confirm()
171-
picking.action_done()
172-
173-
self.assertEqual(stock_quant_obj.search(domain_from).quantity, -qty_done)
174-
self.assertEqual(stock_quant_obj.search(domain_to).quantity, qty_done)
144+
picking.action_assign()
145+
picking.move_line_ids.write({"qty_done": 5.0})
146+
picking.button_validate()
147+
self.assertEqual(stock_quant_obj.search(domain_from).quantity, 0)
148+
self.assertEqual(stock_quant_obj.search(domain_to).quantity, 5)

maintenance_stock/views/maintenance_request_views.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<field name="inherit_id" ref="maintenance.hr_equipment_request_view_search" />
77
<field name="groups_id" eval="[(4, ref('stock.group_stock_user'))]" />
88
<field name="arch" type="xml">
9-
<xpath expr="//filter[@name='top_priority']" position="after">
9+
<xpath expr="//filter[@name='high_priority']" position="after">
1010
<separator />
1111
<filter
1212
string="Allow Consumptions"

maintenance_stock/views/stock_move_line_views.xml

-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
<field name="name">Product Moves</field>
6363
<field name="res_model">stock.move.line</field>
6464
<field name="type">ir.actions.act_window</field>
65-
<field name="view_type">form</field>
6665
<field name="view_mode">tree,kanban,pivot,form</field>
6766
<field name="view_id" ref="stock.view_move_line_tree" />
6867
<field name="domain">[('maintenance_request_id', '!=', False)]</field>

maintenance_stock/views/stock_move_views.xml

+1-2
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,11 @@
4949
</xpath>
5050
</field>
5151
</record>
52-
5352
<record id="stock_move_action" model="ir.actions.act_window">
5453
<field name="name">Stock Moves</field>
5554
<field name="res_model">stock.move</field>
5655
<field name="type">ir.actions.act_window</field>
57-
<field name="view_type">form</field>
56+
<field name="view_mode">form</field>
5857
<field name="view_id" ref="stock.view_move_tree" />
5958
<field name="search_view_id" ref="stock.view_move_search" />
6059
<field name="domain">[('maintenance_request_id', '!=', False)]</field>

maintenance_stock/views/stock_picking_views.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<field name="model">stock.picking</field>
66
<field name="inherit_id" ref="stock.view_picking_internal_search" />
77
<field name="arch" type="xml">
8-
<xpath expr="//field[@name='group_id']" position="after">
8+
<xpath expr="//field[@name='picking_type_id']" position="after">
99
<field name="maintenance_equipment_id" />
1010
<field name="maintenance_request_id" />
1111
</xpath>

0 commit comments

Comments
 (0)