odoo-addon-stock-barcodes 16.0.1.1.0.10__py3-none-any.whl → 16.0.2.0.0__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.
Files changed (79) hide show
  1. odoo/addons/stock_barcodes/README.rst +217 -12
  2. odoo/addons/stock_barcodes/__init__.py +1 -0
  3. odoo/addons/stock_barcodes/__manifest__.py +8 -3
  4. odoo/addons/stock_barcodes/data/stock_barcodes_action.xml +8 -0
  5. odoo/addons/stock_barcodes/data/stock_barcodes_option.xml +99 -1
  6. odoo/addons/stock_barcodes/i18n/stock_barcodes.pot +268 -79
  7. odoo/addons/stock_barcodes/models/__init__.py +1 -0
  8. odoo/addons/stock_barcodes/models/barcode_events_mixin.py +11 -0
  9. odoo/addons/stock_barcodes/models/stock_barcodes_action.py +137 -3
  10. odoo/addons/stock_barcodes/models/stock_picking.py +17 -2
  11. odoo/addons/stock_barcodes/models/stock_picking_type.py +35 -0
  12. odoo/addons/stock_barcodes/models/stock_quant.py +51 -1
  13. odoo/addons/stock_barcodes/readme/CONTRIBUTORS.rst +4 -0
  14. odoo/addons/stock_barcodes/readme/DESCRIPTION.rst +4 -0
  15. odoo/addons/stock_barcodes/readme/HISTORY.rst +12 -0
  16. odoo/addons/stock_barcodes/readme/USAGE.rst +191 -10
  17. odoo/addons/stock_barcodes/reports/__init__.py +1 -0
  18. odoo/addons/stock_barcodes/reports/barcode_actions_report.py +16 -0
  19. odoo/addons/stock_barcodes/reports/barcode_actions_report.xml +25 -0
  20. odoo/addons/stock_barcodes/reports/reports.xml +28 -0
  21. odoo/addons/stock_barcodes/static/description/index.html +189 -33
  22. odoo/addons/stock_barcodes/static/src/docs/barcodes_actions.pdf +0 -0
  23. odoo/addons/stock_barcodes/static/src/docs/barcodes_demo.pdf +0 -0
  24. odoo/addons/stock_barcodes/static/src/img/add_product.png +0 -0
  25. odoo/addons/stock_barcodes/static/src/img/apply_inventory.png +0 -0
  26. odoo/addons/stock_barcodes/static/src/img/apply_inventory_reason.png +0 -0
  27. odoo/addons/stock_barcodes/static/src/img/barcode_interface_picking.png +0 -0
  28. odoo/addons/stock_barcodes/static/src/img/confirm_all_quantity_items_picking.png +0 -0
  29. odoo/addons/stock_barcodes/static/src/img/confirm_items_picking.png +0 -0
  30. odoo/addons/stock_barcodes/static/src/img/create_barcode_action.png +0 -0
  31. odoo/addons/stock_barcodes/static/src/img/form_add_product.png +0 -0
  32. odoo/addons/stock_barcodes/static/src/img/form_add_product_quantity.png +0 -0
  33. odoo/addons/stock_barcodes/static/src/img/form_add_product_reset.png +0 -0
  34. odoo/addons/stock_barcodes/static/src/img/inventory_barcode_action.png +0 -0
  35. odoo/addons/stock_barcodes/static/src/img/list_action_items.png +0 -0
  36. odoo/addons/stock_barcodes/static/src/img/list_items.png +0 -0
  37. odoo/addons/stock_barcodes/static/src/img/list_items_picking.png +0 -0
  38. odoo/addons/stock_barcodes/static/src/img/list_items_picking_edit.png +0 -0
  39. odoo/addons/stock_barcodes/static/src/img/list_items_picking_quantity.png +0 -0
  40. odoo/addons/stock_barcodes/static/src/img/list_items_picking_scanned.png +0 -0
  41. odoo/addons/stock_barcodes/static/src/img/list_picking.png +0 -0
  42. odoo/addons/stock_barcodes/static/src/img/print_barcodes.png +0 -0
  43. odoo/addons/stock_barcodes/static/src/scss/barcode.scss +135 -0
  44. odoo/addons/stock_barcodes/static/src/scss/stock.scss +285 -0
  45. odoo/addons/stock_barcodes/static/src/utils/barcodes_models_utils.esm.js +1 -0
  46. odoo/addons/stock_barcodes/static/src/views/actions/stock_barcode_main_menu.esm.js +88 -0
  47. odoo/addons/stock_barcodes/static/src/views/actions/stock_barcode_main_menu.scss +74 -0
  48. odoo/addons/stock_barcodes/static/src/views/actions/stock_barcode_main_menu.xml +45 -0
  49. odoo/addons/stock_barcodes/static/src/views/form/form_controller.esm.js +71 -0
  50. odoo/addons/stock_barcodes/static/src/views/form/form_view.esm.js +14 -0
  51. odoo/addons/stock_barcodes/static/src/views/kanban/kanban_record.esm.js +27 -0
  52. odoo/addons/stock_barcodes/static/src/views/{kanban_renderer.esm.js → kanban/kanban_renderer.esm.js} +78 -27
  53. odoo/addons/stock_barcodes/static/src/views/kanban/kanban_view.esm.js +8 -0
  54. odoo/addons/stock_barcodes/static/src/views/kanban/stock_barcodes_kanban.xml +28 -0
  55. odoo/addons/stock_barcodes/static/src/views/views.esm.js +35 -7
  56. odoo/addons/stock_barcodes/static/src/widgets/boolean_toggle.esm.js +46 -0
  57. odoo/addons/stock_barcodes/tests/common.py +25 -0
  58. odoo/addons/stock_barcodes/tests/test_stock_barcodes.py +65 -1
  59. odoo/addons/stock_barcodes/tests/test_stock_barcodes_picking.py +97 -13
  60. odoo/addons/stock_barcodes/views/stock_barcodes_action_view.xml +83 -9
  61. odoo/addons/stock_barcodes/views/stock_barcodes_menu.xml +1 -1
  62. odoo/addons/stock_barcodes/views/stock_picking_views.xml +29 -10
  63. odoo/addons/stock_barcodes/wizard/__init__.py +1 -0
  64. odoo/addons/stock_barcodes/wizard/stock_barcodes_candidate_picking.py +148 -0
  65. odoo/addons/stock_barcodes/wizard/stock_barcodes_read.py +148 -55
  66. odoo/addons/stock_barcodes/wizard/stock_barcodes_read_inventory.py +30 -2
  67. odoo/addons/stock_barcodes/wizard/stock_barcodes_read_inventory_views.xml +101 -92
  68. odoo/addons/stock_barcodes/wizard/stock_barcodes_read_picking.py +77 -141
  69. odoo/addons/stock_barcodes/wizard/stock_barcodes_read_picking_views.xml +197 -219
  70. odoo/addons/stock_barcodes/wizard/stock_barcodes_read_todo.py +45 -0
  71. odoo/addons/stock_barcodes/wizard/stock_barcodes_read_views.xml +87 -170
  72. odoo_addon_stock_barcodes-16.0.2.0.0.dist-info/METADATA +435 -0
  73. odoo_addon_stock_barcodes-16.0.2.0.0.dist-info/RECORD +103 -0
  74. odoo/addons/stock_barcodes/static/src/css/stock.scss +0 -136
  75. odoo/addons/stock_barcodes/static/src/views/form_view.esm.js +0 -17
  76. odoo_addon_stock_barcodes-16.0.1.1.0.10.dist-info/METADATA +0 -230
  77. odoo_addon_stock_barcodes-16.0.1.1.0.10.dist-info/RECORD +0 -68
  78. {odoo_addon_stock_barcodes-16.0.1.1.0.10.dist-info → odoo_addon_stock_barcodes-16.0.2.0.0.dist-info}/WHEEL +0 -0
  79. {odoo_addon_stock_barcodes-16.0.1.1.0.10.dist-info → odoo_addon_stock_barcodes-16.0.2.0.0.dist-info}/top_level.txt +0 -0
@@ -3,101 +3,39 @@
3
3
  <field name="name">stock.barcodes.read.form</field>
4
4
  <field name="model">wiz.stock.barcodes.read</field>
5
5
  <field name="arch" type="xml">
6
- <form string="Barcodes" class="oe_stock_barcordes_form">
7
- <div class="d-flex flex-column h-100">
8
- <div
9
- name="menu_actions"
10
- attrs="{'invisible': [('display_menu', '=', False)]}"
11
- >
12
- <field
13
- name="action_ids"
14
- options="{'no_open': True}"
15
- nolabel="1"
16
- mode="kanban"
17
- context="{'context_display_menu': display_menu}"
18
- >
19
- <tree>
20
- <field name="name" />
21
- </tree>
22
- <kanban class="o_kanban_mobile">
23
- <field name="name" />
24
- <field name="action_window_id" />
25
- <field name="key_shortcut" />
26
- <field name="key_char_shortcut" />
27
- <field name="icon_class" />
28
- <templates>
29
- <t t-name="kanban-box">
30
- <div
31
- class="oe_kanban_details oe_kanban_card_full_width pt-4 pb-4"
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 &amp;&amp; record.key_char_shortcut.raw_value || ''"
40
- />
41
- <button
42
- name="open_action"
43
- type="object"
44
- class="float-end btn-full-width btn"
45
- style="width:100%"
46
- data-hotkey="hotkey"
47
- >
48
- <div class="row">
49
- <div class="col-1">
50
- <i
51
- t-attf-class="text-end #{record.icon_class.raw_value}"
52
- />
53
- </div>
54
- <div class="col">
55
- <strong>
56
- <span>
57
- <field name="name" />
58
- </span>
59
- </strong>
60
- </div>
61
- </div>
62
- </button>
63
- </div>
64
- </t>
65
- </templates>
66
- </kanban>
67
- </field>
68
- </div>
6
+ <form
7
+ string="Barcodes"
8
+ class="oe_stock_barcordes_form h-100"
9
+ js_class="stock_barcodes_form"
10
+ >
11
+ <div
12
+ class="d-flex flex-column h-100"
13
+ attrs="{'invisible': [('display_menu', '=', True)]}"
14
+ >
69
15
  <div
70
16
  attrs="{'invisible': [('display_menu', '=', True)]}"
71
17
  class="flex-fill oe_stock_barcordes_content"
72
18
  >
73
- <div name="info" class="text-center h3 mb-0">
74
- <div
75
- class="alert alert-success mb-0"
76
- role="status"
77
- attrs="{'invisible': [('message_type', '!=', 'success')]}"
78
- >
79
- <field name="message" class="mt-2" />
80
- </div>
81
- <div
82
- class="alert alert-info mb-0"
83
- role="status"
84
- attrs="{'invisible': [('message_type', '!=', 'info')]}"
85
- >
86
- <field name="message" class="mt-2" />
87
- </div>
19
+ <div name="info" class="text-center h3 mb-2">
88
20
  <div
89
- class="alert alert-danger mb-0"
21
+ class="alert barcode-info text-white mb-0 d-flex"
90
22
  role="status"
91
- attrs="{'invisible': [('message_type', '!=', 'more_match'), ('message_type', '!=', 'not_found')]}"
92
23
  >
93
- <field name="message" class="mt-2" />
94
24
  <button
95
- name="action_clean_message"
96
- class="float-end fa-window-close fa"
25
+ name="open_actions"
97
26
  type="object"
98
- title="Clean message"
99
- />
27
+ class="ms-auto oe_kanban_action_button btn-sm"
28
+ title="Open actions"
29
+ attrs="{'invisible': [('display_menu', '=', True)]}"
30
+ data-hotkey="0"
31
+ >
32
+ <i class="fa fa-chevron-left fa-2x text-white" />
33
+ </button>
34
+ <field name="message" class="mt-3 h3 text-white" />
35
+ <span class="fa fa-barcode fa-2x mt-2 mx-3" />
36
+
100
37
  </div>
38
+
101
39
  </div>
102
40
  <field name="message_type" invisible="1" />
103
41
  <field name="barcode" invisible="1" force_save="1" />
@@ -128,14 +66,16 @@
128
66
  widget="barcode_handler"
129
67
  invisible="0"
130
68
  />
131
- <group name="scan_fields" class="bg-light scan_fields">
69
+ <group
70
+ name="scan_fields"
71
+ class="bg-light scan_fields p-2 d-none"
72
+ >
132
73
  <group name="location" col="1">
133
74
  <div class="mt-1" colspan="2">
134
- <strong
135
- class=" d-none d-sm-block"
136
- >Source Location</strong>
75
+ <strong class=" d-none d-sm-block">Source Location
76
+ </strong>
137
77
  <span
138
- class="fa fa-map-marker d-sm-none oe_span_small_icon"
78
+ class="fa fa-map-marker fa-2x d-sm-none oe_span_small_icon"
139
79
  title="Source Location"
140
80
  />
141
81
  <field
@@ -157,7 +97,8 @@
157
97
  <div class="m-0" colspan="2">
158
98
  <strong
159
99
  class="d-none d-sm-block"
160
- >Source Package -&gt; Result Package</strong>
100
+ >Source Package -&gt; Result Package
101
+ </strong>
161
102
  <span
162
103
  class="fa fa-cubes d-sm-none oe_span_small_icon"
163
104
  title="Source Package to Result Package"
@@ -172,7 +113,8 @@
172
113
  />
173
114
  <span
174
115
  attrs="{'invisible': [('result_package_id', '=', False)]}"
175
- >-&gt;</span>
116
+ >-&gt;
117
+ </span>
176
118
  <field
177
119
  name="result_package_id"
178
120
  options="{'no_create': True, 'no_open': True}"
@@ -223,7 +165,7 @@
223
165
  <div class="m-0" colspan="2">
224
166
  <strong class="d-none d-sm-block">Product</strong>
225
167
  <span
226
- class="fa fa-th-list d-sm-none oe_span_small_icon"
168
+ class="fa fa-th-list fa-2x d-sm-none oe_span_small_icon"
227
169
  title="Product"
228
170
  />
229
171
  <field
@@ -252,7 +194,7 @@
252
194
  <div class="m-0" colspan="2">
253
195
  <strong class="d-none d-sm-block">Lot S/N</strong>
254
196
  <span
255
- class="fa fa-tags d-sm-none oe_span_small_icon"
197
+ class="fa fa-tags fa-2x d-sm-none oe_span_small_icon"
256
198
  title="Lot S/N"
257
199
  />
258
200
  <field
@@ -268,14 +210,13 @@
268
210
  context="{'default_product_id': product_id}"
269
211
  attrs="{'readonly': [('manual_entry', '=', False)], 'invisible': [('create_lot', '!=', False)]}"
270
212
  force_save="1"
271
- style="width:60%"
272
213
  class="h5"
273
214
  />
274
215
  <button
275
216
  class="btn-sm float-end btn-warning oe_kanban_action_button btn mr4"
276
217
  name="action_clean_lot"
277
218
  type="object"
278
- icon="fa-trash fa-1x"
219
+ icon="fa-trash fa-1x ml-2"
279
220
  attrs="{'invisible': [('lot_id', '=', False), ('lot_name', '=', False)]}"
280
221
  title="Clean lot"
281
222
  data-hotkey="G"
@@ -330,21 +271,25 @@
330
271
  <div
331
272
  attrs="{'invisible': [('total_product_uom_qty', '=', 0.0)]}"
332
273
  >
333
- <span>(<field
274
+ <span>(
275
+ <field
334
276
  name="total_product_qty_done"
335
277
  class="oe_inline"
336
278
  readonly="1"
337
- /> / <field
279
+ />
280
+ /<field
338
281
  name="total_product_uom_qty"
339
282
  class="oe_inline"
340
283
  readonly="1"
341
- />) <field
284
+ />)
285
+ <field
342
286
  name="product_uom_id"
343
287
  class="oe_inline"
344
288
  options="{'no_open': True}"
345
289
  readonly="1"
346
290
  widget="selection"
347
- /></span>
291
+ />
292
+ </span>
348
293
  </div>
349
294
  </div>
350
295
  </div>
@@ -364,52 +309,22 @@
364
309
  </group>
365
310
  </group>
366
311
  </div>
367
- <div class="oe_stock_barcodes_bottombar d-flex">
312
+ <div
313
+ class="oe_stock_barcodes_bottombar d-flex"
314
+ attrs="{'invisible': ['|',('display_menu', '=', True), ('enable_add_product', '=', False)]}"
315
+ >
368
316
  <field name="display_menu" invisible="1" />
317
+ <field name="enable_add_product" invisible="1" />
318
+ <field
319
+ name="manual_entry"
320
+ widget="barcode_boolean_toggle"
321
+ class="d-none"
322
+ />
369
323
  <div
370
324
  class="btn-group dropup"
371
325
  attrs="{'invisible': [('display_menu', '=', True)]}"
372
- >
373
- <!-- FIXME: we can't use buttons of other tpye than object or action. Fix to achieve unfolding effect-->
374
- <a
375
- role="button"
376
- class="btn btn-secondary dropdown-toggle d-lg-none"
377
- data-bs-toggle="dropdown"
378
- aria-haspopup="true"
379
- aria-expanded="false"
380
- title="Options"
381
- >
382
- <i class="fa fa-cogs" />
383
- </a>
384
- <div
385
- class="d-lg-flex-no-dropdown ps-2 dropdown-menu"
386
- role="menu"
387
- style="min-width: 200px"
388
- >
389
- <div name="manual_entry" class="d-flex">
390
- <field
391
- name="manual_entry"
392
- widget="barcode_boolean_toggle"
393
- data-hotkey="5"
394
- />
395
- <label for="manual_entry">
396
- Edit
397
- </label>
398
- </div>
399
- </div>
400
- </div>
401
- <div
402
- class="d-flex d-lg-none ps-1"
403
- style="width: 75px;flex-wrap: wrap;"
404
- title="Manual entry"
405
- attrs="{'invisible': [('display_menu', '=', True)]}"
406
- >
407
- <i
408
- name="manual_entry"
409
- class="fa-hand-paper-o fa text-info me-1"
410
- attrs="{'invisible': [('manual_entry', '=', False)]}"
411
- />
412
- </div>
326
+ />
327
+
413
328
  <!-- HACK: To avoid inheritance crash -->
414
329
  <button name="action_manual_entry" invisible="1" />
415
330
  <!-- Hide button in view to allow do onclick in JS. Use d-none instead of
@@ -423,54 +338,56 @@
423
338
  invisible="0"
424
339
  class="d-none"
425
340
  />
341
+
342
+ <button
343
+ name="action_add_scan_manual"
344
+ type="object"
345
+ title="ADD PRODUCT"
346
+ icon="fa-plus fa-2x"
347
+ class="btn-secondary w-100 oe_kanban_action_button btn-sm text-uppercase
348
+ d-flex justify-content-center align-items-center"
349
+ attrs="{'invisible': ['|',('display_menu', '=', True), ('enable_add_product', '=', False)]}"
350
+ style="width: 50px"
351
+ data-hotkey="8"
352
+ >
353
+ <span class="fs-1 d-none d-lg-block">Product</span>
354
+ </button>
426
355
  <!-- // -->
427
356
  <button
428
357
  name="action_clean_values"
429
358
  type="object"
430
- icon="fa-trash-o"
359
+ icon="fa-trash-o fa-2x"
431
360
  title="Clean Values"
432
- class="btn-warning ms-auto oe_kanban_action_button btn-sm ps-3 pe-3"
433
- attrs="{'invisible': [('display_menu', '=', True)]}"
361
+ class="btn-warning w-100 oe_kanban_action_button btn-sm ps-3 pe-3 mx-1
362
+ text-uppercase d-flex justify-content-center align-items-center"
363
+ attrs="{'invisible': ['|',('display_menu', '=', True), ('manual_entry', '=', False)]}"
434
364
  data-hotkey="7"
435
365
  >
366
+ <span class="fs-1 d-none d-lg-block">Clean Values</span>
436
367
  </button>
437
368
  <button
438
369
  name="action_confirm"
439
370
  type="object"
440
- icon="fa-check"
371
+ icon="fa-check fa-2x"
441
372
  title="Confirm"
442
- class="btn-success ms-auto oe_kanban_action_button btn-sm ps-3 pe-3"
373
+ class="btn-success w-100 oe_kanban_action_button btn-sm ps-3 pe-3 text-uppercase d-flex justify-content-center align-items-center"
443
374
  attrs="{'invisible': ['|', '|','&amp;', ('is_manual_confirm', '=', False), ('manual_entry', '=', False), ('display_menu', '=', True), ('visible_force_done', '=', True)]}"
444
375
  data-hotkey="8"
445
- />
376
+ >
377
+ <span class="fs-1 d-none d-lg-block">Confirm</span>
378
+ </button>
446
379
  <button
447
380
  name="action_force_done"
448
381
  type="object"
449
- icon="fa-check"
382
+ icon="fa-check fa-2x"
450
383
  title="Force done"
451
384
  attrs="{'invisible': [('visible_force_done', '=', False)]}"
452
- class="btn-danger ms-auto oe_kanban_action_button btn-sm ps-3 pe-3"
385
+ class="btn-danger w-100 oe_kanban_action_button btn-sm ps-3 pe-3 text-uppercase d-flex justify-content-center align-items-center"
453
386
  style="width: 50px"
454
387
  data-hotkey="8"
455
- />
456
- <button
457
- name="open_actions"
458
- type="object"
459
- class="ms-auto oe_kanban_action_button btn-sm ps-3 pe-3"
460
- icon="fa-bars"
461
- title="Open actions"
462
- attrs="{'invisible': [('display_menu', '=', True)]}"
463
- data-hotkey="0"
464
- />
465
- <button
466
- name="action_back"
467
- type="object"
468
- string="Back"
469
- class="btn-secondary ms-auto oe_kanban_action_button btn-sm"
470
- icon="fa-backward"
471
- attrs="{'invisible': [('display_menu', '=', False)]}"
472
- data-hotkey="7"
473
- />
388
+ >
389
+ <span class="fs-1 d-none d-lg-block">Confirm</span>
390
+ </button>
474
391
  </div>
475
392
  </div>
476
393
  </form>
@@ -533,7 +450,7 @@
533
450
  <field name="view_mode">form</field>
534
451
  <field name="context">{}</field>
535
452
  <field name="view_id" ref="view_stock_barcodes_read_form" />
536
- <field name="target">current</field>
453
+ <field name="target">fullscreen</field>
537
454
  </record>
538
455
  <record id="view_stock_barcodes_read_form_manual_qty" model="ir.ui.view">
539
456
  <field name="name">stock.barcodes.read.form.manual_qty</field>