odoo-addon-stock-barcodes 15.0.3.1.6__py3-none-any.whl → 16.0.1.0.0.18__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/stock_barcodes/README.rst +6 -6
- odoo/addons/stock_barcodes/__manifest__.py +8 -7
- odoo/addons/stock_barcodes/data/stock_barcodes_option.xml +1 -2
- odoo/addons/stock_barcodes/hooks.py +15 -13
- odoo/addons/stock_barcodes/i18n/es.po +2 -2
- odoo/addons/stock_barcodes/i18n/it.po +5 -5
- odoo/addons/stock_barcodes/i18n/stock_barcodes.pot +190 -160
- odoo/addons/stock_barcodes/models/__init__.py +1 -1
- odoo/addons/stock_barcodes/models/stock_barcodes_action.py +2 -1
- odoo/addons/stock_barcodes/models/stock_barcodes_option.py +2 -4
- odoo/addons/stock_barcodes/models/stock_move.py +37 -0
- odoo/addons/stock_barcodes/models/stock_move_line.py +8 -14
- odoo/addons/stock_barcodes/models/stock_picking.py +9 -36
- odoo/addons/stock_barcodes/models/stock_picking_type.py +5 -6
- odoo/addons/stock_barcodes/models/stock_quant.py +3 -4
- odoo/addons/stock_barcodes/security/ir.model.access.csv +0 -2
- odoo/addons/stock_barcodes/static/description/index.html +9 -11
- odoo/addons/stock_barcodes/static/src/css/stock.scss +41 -5
- odoo/addons/stock_barcodes/static/src/utils/barcode_handler_field.esm.js +36 -0
- odoo/addons/stock_barcodes/static/src/utils/barcodes_models_utils.esm.js +25 -0
- odoo/addons/stock_barcodes/static/src/views/form_view.esm.js +17 -0
- odoo/addons/stock_barcodes/static/src/views/kanban_renderer.esm.js +149 -0
- odoo/addons/stock_barcodes/static/src/views/view_compiler.esm.js +16 -0
- odoo/addons/stock_barcodes/static/src/views/views.esm.js +193 -0
- odoo/addons/stock_barcodes/static/src/widgets/boolean_toggle.esm.js +26 -0
- odoo/addons/stock_barcodes/static/src/widgets/numeric_step.esm.js +40 -0
- odoo/addons/stock_barcodes/static/src/widgets/numeric_step.xml +17 -0
- odoo/addons/stock_barcodes/static/src/widgets/view_button.esm.js +8 -0
- odoo/addons/stock_barcodes/static/src/widgets/view_button.xml +14 -0
- odoo/addons/stock_barcodes/tests/common.py +167 -0
- odoo/addons/stock_barcodes/tests/test_stock_barcodes.py +4 -172
- odoo/addons/stock_barcodes/tests/test_stock_barcodes_new_lot.py +2 -2
- odoo/addons/stock_barcodes/tests/test_stock_barcodes_picking.py +8 -8
- odoo/addons/stock_barcodes/views/stock_barcodes_option_view.xml +1 -1
- odoo/addons/stock_barcodes/views/stock_picking_views.xml +4 -3
- odoo/addons/stock_barcodes/wizard/stock_barcodes_read.py +45 -91
- odoo/addons/stock_barcodes/wizard/stock_barcodes_read_inventory.py +1 -4
- odoo/addons/stock_barcodes/wizard/stock_barcodes_read_inventory_views.xml +14 -15
- odoo/addons/stock_barcodes/wizard/stock_barcodes_read_picking.py +256 -92
- odoo/addons/stock_barcodes/wizard/stock_barcodes_read_picking_views.xml +59 -37
- odoo/addons/stock_barcodes/wizard/stock_barcodes_read_todo.py +33 -107
- odoo/addons/stock_barcodes/wizard/stock_barcodes_read_todo_view.xml +70 -28
- odoo/addons/stock_barcodes/wizard/stock_barcodes_read_views.xml +172 -189
- odoo/addons/stock_barcodes/wizard/stock_production_lot.py +2 -2
- odoo/addons/stock_barcodes/wizard/stock_production_lot_views.xml +6 -8
- {odoo_addon_stock_barcodes-15.0.3.1.6.dist-info → odoo_addon_stock_barcodes-16.0.1.0.0.18.dist-info}/METADATA +11 -11
- odoo_addon_stock_barcodes-16.0.1.0.0.18.dist-info/RECORD +66 -0
- {odoo_addon_stock_barcodes-15.0.3.1.6.dist-info → odoo_addon_stock_barcodes-16.0.1.0.0.18.dist-info}/WHEEL +1 -1
- odoo/addons/stock_barcodes/migrations/15.0.1.0.0/pre-migration.py +0 -14
- odoo/addons/stock_barcodes/models/stock_barcodes_read_log.py +0 -51
- odoo/addons/stock_barcodes/static/src/css/stock.css +0 -5
- odoo/addons/stock_barcodes/static/src/js/barcodes_models_mixin.js +0 -34
- odoo/addons/stock_barcodes/static/src/js/basic_controller.js +0 -412
- odoo/addons/stock_barcodes/static/src/js/basic_fields.js +0 -59
- odoo/addons/stock_barcodes/static/src/js/form_view.js +0 -24
- odoo/addons/stock_barcodes/static/src/js/kanban_renderer.js +0 -47
- odoo/addons/stock_barcodes/static/src/js/numeric_step.js +0 -43
- odoo_addon_stock_barcodes-15.0.3.1.6.dist-info/RECORD +0 -62
- {odoo_addon_stock_barcodes-15.0.3.1.6.dist-info → odoo_addon_stock_barcodes-16.0.1.0.0.18.dist-info}/top_level.txt +0 -0
@@ -19,7 +19,7 @@
|
|
19
19
|
<tree>
|
20
20
|
<field name="name" />
|
21
21
|
</tree>
|
22
|
-
<kanban class="o_kanban_mobile
|
22
|
+
<kanban class="o_kanban_mobile">
|
23
23
|
<field name="name" />
|
24
24
|
<field name="action_window_id" />
|
25
25
|
<field name="key_shortcut" />
|
@@ -28,20 +28,27 @@
|
|
28
28
|
<templates>
|
29
29
|
<t t-name="kanban-box">
|
30
30
|
<div
|
31
|
-
class="oe_kanban_details oe_kanban_card_full_width"
|
31
|
+
class="oe_kanban_details oe_kanban_card_full_width pt-4 pb-4"
|
32
32
|
>
|
33
|
+
<t
|
34
|
+
t-set="shortcut"
|
35
|
+
t-value="record.key_char_shortcut"
|
36
|
+
/>
|
37
|
+
<t
|
38
|
+
t-set="hotkey"
|
39
|
+
t-value="context.context_display_menu && record.key_char_shortcut.raw_value || ''"
|
40
|
+
/>
|
33
41
|
<button
|
34
42
|
name="open_action"
|
35
43
|
type="object"
|
36
|
-
class="
|
44
|
+
class="float-end btn-full-width btn"
|
37
45
|
style="width:100%"
|
38
|
-
|
39
|
-
t-att-data-hotkey="context.context_display_menu && record.key_char_shortcut.raw_value || ''"
|
46
|
+
data-hotkey="hotkey"
|
40
47
|
>
|
41
48
|
<div class="row">
|
42
49
|
<div class="col-1">
|
43
50
|
<i
|
44
|
-
t-attf-class="text-
|
51
|
+
t-attf-class="text-end #{record.icon_class.raw_value}"
|
45
52
|
/>
|
46
53
|
</div>
|
47
54
|
<div class="col">
|
@@ -63,30 +70,30 @@
|
|
63
70
|
attrs="{'invisible': [('display_menu', '=', True)]}"
|
64
71
|
class="flex-fill oe_stock_barcordes_content"
|
65
72
|
>
|
66
|
-
<div name="info" class="text-center h3">
|
73
|
+
<div name="info" class="text-center h3 mb-0">
|
67
74
|
<div
|
68
|
-
class="alert alert-success"
|
75
|
+
class="alert alert-success mb-0"
|
69
76
|
role="status"
|
70
77
|
attrs="{'invisible': [('message_type', '!=', 'success')]}"
|
71
78
|
>
|
72
|
-
<field name="message" />
|
79
|
+
<field name="message" class="mt-2" />
|
73
80
|
</div>
|
74
81
|
<div
|
75
|
-
class="alert alert-info"
|
82
|
+
class="alert alert-info mb-0"
|
76
83
|
role="status"
|
77
84
|
attrs="{'invisible': [('message_type', '!=', 'info')]}"
|
78
85
|
>
|
79
|
-
<field name="message" />
|
86
|
+
<field name="message" class="mt-2" />
|
80
87
|
</div>
|
81
88
|
<div
|
82
|
-
class="alert alert-danger"
|
89
|
+
class="alert alert-danger mb-0"
|
83
90
|
role="status"
|
84
91
|
attrs="{'invisible': [('message_type', '!=', 'more_match'), ('message_type', '!=', 'not_found')]}"
|
85
92
|
>
|
86
|
-
<field name="message" />
|
93
|
+
<field name="message" class="mt-2" />
|
87
94
|
<button
|
88
95
|
name="action_clean_message"
|
89
|
-
class="
|
96
|
+
class="float-end fa-window-close fa"
|
90
97
|
type="object"
|
91
98
|
title="Clean message"
|
92
99
|
/>
|
@@ -97,7 +104,6 @@
|
|
97
104
|
<field name="step" invisible="1" force_save="1" />
|
98
105
|
<field name="is_manual_qty" invisible="1" />
|
99
106
|
<field name="is_manual_confirm" invisible="1" />
|
100
|
-
<field name="show_scan_log" invisible="1" />
|
101
107
|
<field name="auto_lot" invisible="1" />
|
102
108
|
<field name="product_tracking" invisible="1" force_save="1" />
|
103
109
|
<field name="guided_product_id" invisible="1" force_save="1" />
|
@@ -113,7 +119,6 @@
|
|
113
119
|
<field name="res_id" invisible="1" />
|
114
120
|
<field name="option_group_id" invisible="1" force_save="1" />
|
115
121
|
<field name="confirmed_moves" invisible="1" force_save="1" />
|
116
|
-
<field name="qty_available" invisible="1" />
|
117
122
|
<field name="owner_id" invisible="1" force_save="1" />
|
118
123
|
<field name="keep_result_package" invisible="1" />
|
119
124
|
<field name="create_lot" invisible="1" />
|
@@ -123,9 +128,9 @@
|
|
123
128
|
widget="barcode_handler"
|
124
129
|
invisible="0"
|
125
130
|
/>
|
126
|
-
<group name="scan_fields" class="bg-light">
|
127
|
-
<group name="location">
|
128
|
-
<div class="
|
131
|
+
<group name="scan_fields" class="bg-light scan_fields">
|
132
|
+
<group name="location" col="1">
|
133
|
+
<div class="mt-1" colspan="2">
|
129
134
|
<strong
|
130
135
|
class=" d-none d-sm-block"
|
131
136
|
>Source Location</strong>
|
@@ -135,10 +140,11 @@
|
|
135
140
|
/>
|
136
141
|
<field
|
137
142
|
name="location_id"
|
138
|
-
options="{'no_create': True}"
|
143
|
+
options="{'no_create': True, 'no_open': True}"
|
139
144
|
attrs="{'readonly': [('manual_entry', '=', False)]}"
|
140
145
|
force_save="1"
|
141
|
-
|
146
|
+
nolabel="1"
|
147
|
+
style="width:90%"
|
142
148
|
class="h5"
|
143
149
|
/>
|
144
150
|
</div>
|
@@ -146,11 +152,12 @@
|
|
146
152
|
<group
|
147
153
|
name="quant_package"
|
148
154
|
groups="stock.group_tracking_lot"
|
155
|
+
col="2"
|
149
156
|
>
|
150
|
-
<div class="
|
157
|
+
<div class="m-0" colspan="2">
|
151
158
|
<strong
|
152
159
|
class="d-none d-sm-block"
|
153
|
-
>Source Package
|
160
|
+
>Source Package -> Result Package</strong>
|
154
161
|
<span
|
155
162
|
class="fa fa-cubes d-sm-none oe_span_small_icon"
|
156
163
|
title="Source Package to Result Package"
|
@@ -160,40 +167,24 @@
|
|
160
167
|
options="{'no_create': True}"
|
161
168
|
attrs="{'readonly': [('manual_entry', '=', False)]}"
|
162
169
|
force_save="1"
|
163
|
-
|
164
|
-
|
170
|
+
class="h5 oe_inline"
|
171
|
+
style="width: 35% !important"
|
165
172
|
/>
|
166
173
|
<span
|
167
174
|
attrs="{'invisible': [('result_package_id', '=', False)]}"
|
168
|
-
|
175
|
+
>-></span>
|
169
176
|
<field
|
170
177
|
name="result_package_id"
|
171
|
-
options="{'no_create': True}"
|
178
|
+
options="{'no_create': True, 'no_open': True}"
|
172
179
|
attrs="{'readonly': [('manual_entry', '=', False)]}"
|
173
180
|
force_save="1"
|
174
|
-
|
175
|
-
|
176
|
-
/>
|
177
|
-
<button
|
178
|
-
class="btn btn-warning btn-sm oe_kanban_action_button pull-right mr4"
|
179
|
-
name="action_clean_package"
|
180
|
-
type="object"
|
181
|
-
icon="fa-trash fa-1x"
|
182
|
-
attrs="{'invisible': [('package_id', '=', False), ('result_package_id', '=', False)]}"
|
183
|
-
title="Clean package info"
|
184
|
-
/>
|
185
|
-
<button
|
186
|
-
id="btn_create_package"
|
187
|
-
class="btn btn-secondary ml2 btn-sm oe_kanban_action_button pull-right mr4"
|
188
|
-
type="object"
|
189
|
-
name="action_create_package"
|
190
|
-
icon="fa-plus fa-1x"
|
191
|
-
title="Create new package"
|
181
|
+
class="h5 oe_inline ms-1"
|
182
|
+
style="width: 35% !important"
|
192
183
|
/>
|
193
184
|
<!-- Double button to display open or closed padlock -->
|
194
185
|
<button
|
195
186
|
id="btn_keep_result_package_lock"
|
196
|
-
class="btn btn-danger
|
187
|
+
class="btn-sm btn-danger oe_kanban_action_button btn boder ms-1"
|
197
188
|
type="object"
|
198
189
|
name="action_keep_result_package"
|
199
190
|
title="If locked keep result package"
|
@@ -202,7 +193,7 @@
|
|
202
193
|
/>
|
203
194
|
<button
|
204
195
|
id="btn_keep_result_package_unlock"
|
205
|
-
class="btn
|
196
|
+
class="btn-sm oe_kanban_action_button btn btn-secondary border ms-1"
|
206
197
|
type="object"
|
207
198
|
name="action_keep_result_package"
|
208
199
|
title="If locked keep result package"
|
@@ -210,10 +201,26 @@
|
|
210
201
|
attrs="{'invisible': [('keep_result_package', '=', True)]}"
|
211
202
|
/>
|
212
203
|
<!-- End padlock -->
|
204
|
+
<button
|
205
|
+
class="btn-sm btn-warning oe_kanban_action_button btn border ms-1"
|
206
|
+
name="action_clean_package"
|
207
|
+
type="object"
|
208
|
+
icon="fa-trash fa-1x"
|
209
|
+
attrs="{'invisible': [('package_id', '=', False), ('result_package_id', '=', False)]}"
|
210
|
+
title="Clean package info"
|
211
|
+
/>
|
212
|
+
<button
|
213
|
+
id="btn_create_package"
|
214
|
+
class="btn-sm oe_kanban_action_button btn btn-secondary border ms-1"
|
215
|
+
type="object"
|
216
|
+
name="action_create_package"
|
217
|
+
icon="fa-plus fa-1x"
|
218
|
+
title="Create new package"
|
219
|
+
/>
|
213
220
|
</div>
|
214
221
|
</group>
|
215
|
-
<group>
|
216
|
-
<div class="
|
222
|
+
<group col="2">
|
223
|
+
<div class="m-0" colspan="2">
|
217
224
|
<strong class="d-none d-sm-block">Product</strong>
|
218
225
|
<span
|
219
226
|
class="fa fa-th-list d-sm-none oe_span_small_icon"
|
@@ -221,26 +228,28 @@
|
|
221
228
|
/>
|
222
229
|
<field
|
223
230
|
name="product_id"
|
224
|
-
options="{'no_create': True}"
|
231
|
+
options="{'no_create': True, 'no_open': True}"
|
225
232
|
attrs="{'readonly': [('manual_entry', '=', False)]}"
|
226
233
|
force_save="1"
|
227
|
-
style="width:
|
234
|
+
style="width:80%"
|
228
235
|
class="h5"
|
229
236
|
/>
|
230
237
|
<button
|
231
|
-
class="btn btn-warning btn
|
238
|
+
class="btn-sm float-end btn-warning oe_kanban_action_button btn mr4"
|
232
239
|
name="action_clean_product"
|
233
240
|
type="object"
|
234
241
|
icon="fa-trash fa-1x"
|
242
|
+
title="Clean product"
|
235
243
|
attrs="{'invisible': [('product_id', '=', False)]}"
|
236
244
|
/>
|
237
245
|
</div>
|
238
246
|
</group>
|
239
247
|
<group
|
240
248
|
groups="stock.group_production_lot"
|
249
|
+
col="2"
|
241
250
|
attrs="{'invisible': [('product_tracking', 'in', [False, 'none'])]}"
|
242
251
|
>
|
243
|
-
<div>
|
252
|
+
<div class="m-0" colspan="2">
|
244
253
|
<strong class="d-none d-sm-block">Lot S/N</strong>
|
245
254
|
<span
|
246
255
|
class="fa fa-tags d-sm-none oe_span_small_icon"
|
@@ -254,7 +263,7 @@
|
|
254
263
|
/>
|
255
264
|
<field
|
256
265
|
name="lot_id"
|
257
|
-
options="{'no_create': True}"
|
266
|
+
options="{'no_create': True, 'no_open': True}"
|
258
267
|
domain="[('product_id', '=', product_id)]"
|
259
268
|
context="{'default_product_id': product_id}"
|
260
269
|
attrs="{'readonly': [('manual_entry', '=', False)], 'invisible': [('create_lot', '!=', False)]}"
|
@@ -263,18 +272,21 @@
|
|
263
272
|
class="h5"
|
264
273
|
/>
|
265
274
|
<button
|
266
|
-
class="btn btn-warning btn
|
275
|
+
class="btn-sm float-end btn-warning oe_kanban_action_button btn mr4"
|
267
276
|
name="action_clean_lot"
|
268
277
|
type="object"
|
269
278
|
icon="fa-trash fa-1x"
|
270
279
|
attrs="{'invisible': [('lot_id', '=', False), ('lot_name', '=', False)]}"
|
280
|
+
title="Clean lot"
|
281
|
+
data-hotkey="G"
|
271
282
|
/>
|
272
283
|
<button
|
273
284
|
id="btn_create_lot"
|
274
|
-
class="btn
|
285
|
+
class="btn-sm float-end oe_kanban_action_button btn btn-secondary border"
|
275
286
|
type="action"
|
276
287
|
name="%(action_stock_barcodes_new_lot)d"
|
277
288
|
icon="fa-plus fa-1x"
|
289
|
+
title="Create lot"
|
278
290
|
context="{'default_product_id': product_id}"
|
279
291
|
attrs="{'invisible': [('create_lot', '=', False)]}"
|
280
292
|
help="Create new lot"
|
@@ -284,9 +296,9 @@
|
|
284
296
|
<group
|
285
297
|
name="option_qty_info"
|
286
298
|
attrs="{'invisible': ['|', ('product_id', '=', False),'|', ('is_manual_qty', '=', True), ('manual_entry', '=', True)]}"
|
287
|
-
col="
|
299
|
+
col="2"
|
288
300
|
>
|
289
|
-
<div class="
|
301
|
+
<div class="m-0" colspan="2">
|
290
302
|
<strong class="d-none d-sm-block">Total Qty</strong>
|
291
303
|
<span
|
292
304
|
class="fa fa-hashtag d-sm-none oe_span_small_icon"
|
@@ -301,15 +313,18 @@
|
|
301
313
|
/>
|
302
314
|
</div>
|
303
315
|
</group>
|
304
|
-
|
305
316
|
<group
|
306
317
|
name="option_qty"
|
307
318
|
attrs="{'invisible': ['|', ('product_id', '=', False),'&', ('is_manual_qty', '=', False), ('manual_entry', '=', False)]}"
|
308
|
-
col="
|
319
|
+
col="2"
|
309
320
|
>
|
310
|
-
<div
|
321
|
+
<div
|
322
|
+
class="row mt8"
|
323
|
+
name="option_qty_header"
|
324
|
+
colspan="2"
|
325
|
+
>
|
311
326
|
<div
|
312
|
-
class="
|
327
|
+
class="text-center col"
|
313
328
|
name="total_qty_header"
|
314
329
|
>
|
315
330
|
<div
|
@@ -317,103 +332,37 @@
|
|
317
332
|
>
|
318
333
|
<span>(<field
|
319
334
|
name="total_product_qty_done"
|
335
|
+
class="oe_inline"
|
320
336
|
readonly="1"
|
321
337
|
/> / <field
|
322
338
|
name="total_product_uom_qty"
|
339
|
+
class="oe_inline"
|
323
340
|
readonly="1"
|
324
341
|
/>) <field
|
325
342
|
name="product_uom_id"
|
343
|
+
class="oe_inline"
|
326
344
|
options="{'no_open': True}"
|
327
345
|
readonly="1"
|
346
|
+
widget="selection"
|
328
347
|
/></span>
|
329
348
|
</div>
|
330
349
|
</div>
|
331
350
|
</div>
|
332
|
-
<div
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
351
|
+
<div
|
352
|
+
class="col text-center"
|
353
|
+
name="total_qty_field"
|
354
|
+
colspan="2"
|
355
|
+
>
|
356
|
+
<field
|
357
|
+
name="product_qty"
|
358
|
+
force_save="1"
|
359
|
+
nolabel="1"
|
360
|
+
widget="numeric_step"
|
361
|
+
options="{'auto_select': True}"
|
362
|
+
/>
|
341
363
|
</div>
|
342
364
|
</group>
|
343
365
|
</group>
|
344
|
-
<group
|
345
|
-
name="scan_log"
|
346
|
-
string="Current product scanning log"
|
347
|
-
attrs="{'invisible': [('show_scan_log', '=', False)]}"
|
348
|
-
>
|
349
|
-
<group>
|
350
|
-
<button
|
351
|
-
name="action_undo_last_scan"
|
352
|
-
type="object"
|
353
|
-
string="Remove last yours"
|
354
|
-
icon="fa-trash"
|
355
|
-
/>
|
356
|
-
</group>
|
357
|
-
<field
|
358
|
-
name="scan_log_ids"
|
359
|
-
options="{'no_open': True}"
|
360
|
-
nolabel="1"
|
361
|
-
mode="tree,kanban"
|
362
|
-
>
|
363
|
-
<tree>
|
364
|
-
<field name="create_date" />
|
365
|
-
<field name="create_uid" />
|
366
|
-
<field name="name" />
|
367
|
-
<field name="location_id" />
|
368
|
-
<field name="product_id" />
|
369
|
-
<field name="product_qty" />
|
370
|
-
<field name="lot_id" />
|
371
|
-
</tree>
|
372
|
-
<kanban class="o_kanban_mobile">
|
373
|
-
<field name="create_date" />
|
374
|
-
<field name="create_uid" />
|
375
|
-
<field name="product_qty" />
|
376
|
-
<templates>
|
377
|
-
<t t-name="kanban-box">
|
378
|
-
<div t-attf-class="oe_kanban_card">
|
379
|
-
<div class="row">
|
380
|
-
<div class="col">
|
381
|
-
<strong>
|
382
|
-
<span>
|
383
|
-
<t
|
384
|
-
t-esc="record.create_date.value"
|
385
|
-
/>
|
386
|
-
</span>
|
387
|
-
<span>
|
388
|
-
<t
|
389
|
-
t-esc="record.create_uid.value"
|
390
|
-
/>
|
391
|
-
</span>
|
392
|
-
</strong>
|
393
|
-
</div>
|
394
|
-
<div class="col">
|
395
|
-
<strong>
|
396
|
-
<span
|
397
|
-
class="pull-right text-right"
|
398
|
-
>
|
399
|
-
<t
|
400
|
-
t-esc="record.product_qty.value"
|
401
|
-
/>
|
402
|
-
</span>
|
403
|
-
</strong>
|
404
|
-
</div>
|
405
|
-
</div>
|
406
|
-
<row>
|
407
|
-
<div class="col">
|
408
|
-
<field name="product_id" />
|
409
|
-
</div>
|
410
|
-
</row>
|
411
|
-
</div>
|
412
|
-
</t>
|
413
|
-
</templates>
|
414
|
-
</kanban>
|
415
|
-
</field>
|
416
|
-
</group>
|
417
366
|
</div>
|
418
367
|
<div class="oe_stock_barcodes_bottombar d-flex">
|
419
368
|
<field name="display_menu" invisible="1" />
|
@@ -421,23 +370,26 @@
|
|
421
370
|
class="btn-group dropup"
|
422
371
|
attrs="{'invisible': [('display_menu', '=', True)]}"
|
423
372
|
>
|
373
|
+
<!-- FIXME: we can't use buttons of other tpye than object or action. Fix to achieve unfolding effect-->
|
424
374
|
<a
|
425
|
-
|
375
|
+
role="button"
|
426
376
|
class="btn btn-secondary dropdown-toggle d-lg-none"
|
427
|
-
data-toggle="dropdown"
|
377
|
+
data-bs-toggle="dropdown"
|
428
378
|
aria-haspopup="true"
|
429
379
|
aria-expanded="false"
|
380
|
+
title="Options"
|
430
381
|
>
|
431
382
|
<i class="fa fa-cogs" />
|
432
383
|
</a>
|
433
384
|
<div
|
434
|
-
class="
|
385
|
+
class="d-lg-flex-no-dropdown ps-2 dropdown-menu"
|
386
|
+
role="menu"
|
435
387
|
style="min-width: 200px"
|
436
388
|
>
|
437
389
|
<div name="manual_entry" class="d-flex">
|
438
390
|
<field
|
439
391
|
name="manual_entry"
|
440
|
-
widget="
|
392
|
+
widget="barcode_boolean_toggle"
|
441
393
|
data-hotkey="5"
|
442
394
|
/>
|
443
395
|
<label for="manual_entry">
|
@@ -447,60 +399,74 @@
|
|
447
399
|
</div>
|
448
400
|
</div>
|
449
401
|
<div
|
450
|
-
class="d-flex
|
402
|
+
class="d-flex d-lg-none ps-1"
|
451
403
|
style="width: 75px;flex-wrap: wrap;"
|
404
|
+
title="Manual entry"
|
452
405
|
attrs="{'invisible': [('display_menu', '=', True)]}"
|
453
406
|
>
|
454
407
|
<i
|
455
408
|
name="manual_entry"
|
456
|
-
class="fa
|
409
|
+
class="fa-hand-paper-o fa text-info me-1"
|
457
410
|
attrs="{'invisible': [('manual_entry', '=', False)]}"
|
458
411
|
/>
|
459
412
|
</div>
|
460
413
|
<!-- HACK: To avoid inheritance crash -->
|
461
414
|
<button name="action_manual_entry" invisible="1" />
|
415
|
+
<!-- Hide button in view to allow do onclick in JS. Use d-none instead of
|
416
|
+
invisible attribute to be allocated by jquery selector
|
417
|
+
-->
|
418
|
+
<button
|
419
|
+
name="dummy_on_barcode_scanned"
|
420
|
+
id="dummy_on_barcode_scanned"
|
421
|
+
type="object"
|
422
|
+
data-hotkey="99"
|
423
|
+
invisible="0"
|
424
|
+
class="d-none"
|
425
|
+
/>
|
462
426
|
<!-- // -->
|
463
427
|
<button
|
464
428
|
name="action_clean_values"
|
465
429
|
type="object"
|
466
|
-
|
430
|
+
icon="fa-trash-o"
|
431
|
+
title="Clean Values"
|
432
|
+
class="btn-warning ms-auto oe_kanban_action_button btn-sm ps-3 pe-3"
|
467
433
|
attrs="{'invisible': [('display_menu', '=', True)]}"
|
468
434
|
data-hotkey="7"
|
469
435
|
>
|
470
|
-
<i class="fa fa-trash-o" title="Clean Values" />
|
471
436
|
</button>
|
472
437
|
<button
|
473
438
|
name="action_confirm"
|
474
439
|
type="object"
|
475
|
-
|
440
|
+
icon="fa-check"
|
441
|
+
title="Confirm"
|
442
|
+
class="btn-success ms-auto oe_kanban_action_button btn-sm ps-3 pe-3"
|
476
443
|
attrs="{'invisible': ['|', '|','&', ('is_manual_confirm', '=', False), ('manual_entry', '=', False), ('display_menu', '=', True), ('visible_force_done', '=', True)]}"
|
477
444
|
data-hotkey="8"
|
478
|
-
|
479
|
-
<i class="fa fa-check" title="Confirm" />
|
480
|
-
</button>
|
445
|
+
/>
|
481
446
|
<button
|
482
447
|
name="action_force_done"
|
483
448
|
type="object"
|
484
449
|
icon="fa-check"
|
450
|
+
title="Force done"
|
485
451
|
attrs="{'invisible': [('visible_force_done', '=', False)]}"
|
486
|
-
class="btn-danger
|
452
|
+
class="btn-danger ms-auto oe_kanban_action_button btn-sm ps-3 pe-3"
|
487
453
|
style="width: 50px"
|
488
454
|
data-hotkey="8"
|
489
455
|
/>
|
490
456
|
<button
|
491
457
|
name="open_actions"
|
492
458
|
type="object"
|
493
|
-
class="
|
459
|
+
class="ms-auto oe_kanban_action_button btn-sm ps-3 pe-3"
|
460
|
+
icon="fa-bars"
|
461
|
+
title="Open actions"
|
494
462
|
attrs="{'invisible': [('display_menu', '=', True)]}"
|
495
463
|
data-hotkey="0"
|
496
|
-
|
497
|
-
<i class="fa fa-bars" title="Open actions" />
|
498
|
-
</button>
|
464
|
+
/>
|
499
465
|
<button
|
500
466
|
name="action_back"
|
501
467
|
type="object"
|
502
468
|
string="Back"
|
503
|
-
class="btn-secondary
|
469
|
+
class="btn-secondary ms-auto oe_kanban_action_button btn-sm"
|
504
470
|
icon="fa-backward"
|
505
471
|
attrs="{'invisible': [('display_menu', '=', False)]}"
|
506
472
|
data-hotkey="7"
|
@@ -514,32 +480,47 @@
|
|
514
480
|
<field name="name">stock.barcodes.read.packaging.form</field>
|
515
481
|
<field name="model">wiz.stock.barcodes.read</field>
|
516
482
|
<field name="inherit_id" ref="stock_barcodes.view_stock_barcodes_read_form" />
|
517
|
-
<field name="groups_id" eval="[(4, ref('product.group_stock_packaging'))]" />
|
518
483
|
<field name="arch" type="xml">
|
519
|
-
<
|
520
|
-
<
|
521
|
-
<
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
484
|
+
<group name="option_qty" position="before">
|
485
|
+
<group name="packaging" col="1">
|
486
|
+
<div colspan="2" groups="product.group_stock_packaging">
|
487
|
+
<field name="product_packaging_ids" invisible="1" />
|
488
|
+
<span
|
489
|
+
class="fa fa-archive d-sm-none oe_span_small_icon"
|
490
|
+
title="Source Location"
|
491
|
+
attrs="{'invisible': [('product_packaging_ids', '=', [])]}"
|
492
|
+
/>
|
493
|
+
<field
|
494
|
+
name="packaging_id"
|
495
|
+
options="{'no_open': True, 'no_create': True}"
|
496
|
+
domain="[('product_id', '=', product_id)]"
|
497
|
+
force_save="1"
|
498
|
+
style="width: 85%"
|
499
|
+
class="h5"
|
500
|
+
placeholder="Packaging"
|
501
|
+
nolabel="1"
|
502
|
+
attrs="{'invisible': [('product_packaging_ids', '=', [])]}"
|
503
|
+
/>
|
504
|
+
</div>
|
505
|
+
</group>
|
506
|
+
</group>
|
507
|
+
<xpath
|
508
|
+
expr="//div[@name='total_qty_field']//field[@name='product_qty']"
|
509
|
+
position="before"
|
510
|
+
>
|
511
|
+
<field
|
512
|
+
name="packaging_qty"
|
513
|
+
force_save="1"
|
514
|
+
widget="numeric_step"
|
515
|
+
options="{'auto_select': True}"
|
516
|
+
groups="product.group_stock_packaging"
|
517
|
+
attrs="{'invisible': [('product_packaging_ids', '=', [])]}"
|
518
|
+
/>
|
519
|
+
</xpath>
|
520
|
+
<!-- <div name="total_qty_field" position="before">
|
521
|
+
<div class="col text-center" groups="product.group_stock_packaging">
|
541
522
|
</div>
|
542
|
-
</div>
|
523
|
+
</div> -->
|
543
524
|
</field>
|
544
525
|
</record>
|
545
526
|
<!--
|
@@ -566,22 +547,24 @@
|
|
566
547
|
name="packaging_qty"
|
567
548
|
attrs="{'invisible': [('packaging_id', '=', False)]}"
|
568
549
|
force_save="1"
|
550
|
+
nolabel="1"
|
569
551
|
widget="numeric_step"
|
570
552
|
options="{'auto_select': True}"
|
571
553
|
/>
|
572
554
|
<field
|
573
555
|
name="product_qty"
|
574
556
|
force_save="1"
|
557
|
+
nolabel="1"
|
575
558
|
widget="numeric_step"
|
576
559
|
options="{'auto_select': True}"
|
577
560
|
/>
|
578
561
|
<button
|
579
562
|
name="action_reopen_wizard"
|
580
563
|
type="object"
|
564
|
+
icon="fa-check"
|
565
|
+
title="Reopen"
|
581
566
|
class="btn-success"
|
582
|
-
|
583
|
-
<i class="fa fa-check" title="Reopen" />
|
584
|
-
</button>
|
567
|
+
/>
|
585
568
|
</sheet>
|
586
569
|
</form>
|
587
570
|
</field>
|