odoo-addon-quality-control-stock-oca 15.0.1.0.0.5__py3-none-any.whl → 16.0.1.0.0.3__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 (20) hide show
  1. odoo/addons/quality_control_stock_oca/README.rst +6 -6
  2. odoo/addons/quality_control_stock_oca/__manifest__.py +2 -1
  3. odoo/addons/quality_control_stock_oca/i18n/ca.po +7 -7
  4. odoo/addons/quality_control_stock_oca/i18n/de.po +7 -7
  5. odoo/addons/quality_control_stock_oca/i18n/el_GR.po +7 -7
  6. odoo/addons/quality_control_stock_oca/i18n/es.po +7 -7
  7. odoo/addons/quality_control_stock_oca/i18n/quality_control_stock_oca.pot +8 -8
  8. odoo/addons/quality_control_stock_oca/models/qc_inspection.py +18 -34
  9. odoo/addons/quality_control_stock_oca/models/stock_picking.py +1 -1
  10. odoo/addons/quality_control_stock_oca/models/stock_picking_type.py +13 -8
  11. odoo/addons/quality_control_stock_oca/models/stock_production_lot.py +1 -1
  12. odoo/addons/quality_control_stock_oca/static/description/index.html +4 -4
  13. odoo/addons/quality_control_stock_oca/tests/test_quality_control_stock.py +82 -101
  14. odoo/addons/quality_control_stock_oca/views/qc_trigger_view.xml +13 -0
  15. odoo/addons/quality_control_stock_oca/views/stock_picking_view.xml +9 -5
  16. odoo/addons/quality_control_stock_oca/views/stock_production_lot_view.xml +11 -7
  17. {odoo_addon_quality_control_stock_oca-15.0.1.0.0.5.dist-info → odoo_addon_quality_control_stock_oca-16.0.1.0.0.3.dist-info}/METADATA +11 -11
  18. {odoo_addon_quality_control_stock_oca-15.0.1.0.0.5.dist-info → odoo_addon_quality_control_stock_oca-16.0.1.0.0.3.dist-info}/RECORD +20 -19
  19. {odoo_addon_quality_control_stock_oca-15.0.1.0.0.5.dist-info → odoo_addon_quality_control_stock_oca-16.0.1.0.0.3.dist-info}/WHEEL +0 -0
  20. {odoo_addon_quality_control_stock_oca-15.0.1.0.0.5.dist-info → odoo_addon_quality_control_stock_oca-16.0.1.0.0.3.dist-info}/top_level.txt +0 -0
@@ -7,7 +7,7 @@ Quality control - Stock (OCA)
7
7
  !! This file is generated by oca-gen-addon-readme !!
8
8
  !! changes will be overwritten. !!
9
9
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
- !! source digest: sha256:6a7081017d1705e47f1c601056c9db6f3dd3368a22519f03457e7f239cf92505
10
+ !! source digest: sha256:7430252681826a0a0f9a869194458e38ac20900898f0f8ff40422f13702695ee
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -17,13 +17,13 @@ Quality control - Stock (OCA)
17
17
  :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18
18
  :alt: License: AGPL-3
19
19
  .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github
20
- :target: https://github.com/OCA/manufacture/tree/15.0/quality_control_stock_oca
20
+ :target: https://github.com/OCA/manufacture/tree/16.0/quality_control_stock_oca
21
21
  :alt: OCA/manufacture
22
22
  .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
23
- :target: https://translation.odoo-community.org/projects/manufacture-15-0/manufacture-15-0-quality_control_stock_oca
23
+ :target: https://translation.odoo-community.org/projects/manufacture-16-0/manufacture-16-0-quality_control_stock_oca
24
24
  :alt: Translate me on Weblate
25
25
  .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
26
- :target: https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=15.0
26
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=16.0
27
27
  :alt: Try me on Runboat
28
28
 
29
29
  |badge1| |badge2| |badge3| |badge4| |badge5|
@@ -48,7 +48,7 @@ Bug Tracker
48
48
  Bugs are tracked on `GitHub Issues <https://github.com/OCA/manufacture/issues>`_.
49
49
  In case of trouble, please check there if your issue has already been reported.
50
50
  If you spotted it first, help us to smash it by providing a detailed and welcomed
51
- `feedback <https://github.com/OCA/manufacture/issues/new?body=module:%20quality_control_stock_oca%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
51
+ `feedback <https://github.com/OCA/manufacture/issues/new?body=module:%20quality_control_stock_oca%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
52
52
 
53
53
  Do not contact contributors directly about support or help with technical issues.
54
54
 
@@ -89,6 +89,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
89
89
  mission is to support the collaborative development of Odoo features and
90
90
  promote its widespread use.
91
91
 
92
- This module is part of the `OCA/manufacture <https://github.com/OCA/manufacture/tree/15.0/quality_control_stock_oca>`_ project on GitHub.
92
+ This module is part of the `OCA/manufacture <https://github.com/OCA/manufacture/tree/16.0/quality_control_stock_oca>`_ project on GitHub.
93
93
 
94
94
  You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
@@ -5,7 +5,7 @@
5
5
 
6
6
  {
7
7
  "name": "Quality control - Stock (OCA)",
8
- "version": "15.0.1.0.0",
8
+ "version": "16.0.1.0.0",
9
9
  "category": "Quality control",
10
10
  "license": "AGPL-3",
11
11
  "author": "OdooMRP team, AvanzOSC, Serv. Tecnol. Avanzados - Pedro M. Baeza, "
@@ -16,6 +16,7 @@
16
16
  "views/qc_inspection_view.xml",
17
17
  "views/stock_picking_view.xml",
18
18
  "views/stock_production_lot_view.xml",
19
+ "views/qc_trigger_view.xml",
19
20
  ],
20
21
  "post_init_hook": "post_init_hook",
21
22
  "installable": True,
@@ -20,37 +20,37 @@ msgstr ""
20
20
  "X-Generator: Poedit 2.0.6\n"
21
21
 
22
22
  #. module: quality_control_stock_oca
23
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__created_inspections
23
24
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__created_inspections
24
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__created_inspections
25
25
  msgid "Created inspections"
26
26
  msgstr ""
27
27
 
28
28
  #. module: quality_control_stock_oca
29
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__done_inspections
29
30
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__done_inspections
30
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__done_inspections
31
31
  msgid "Done inspections"
32
32
  msgstr ""
33
33
 
34
34
  #. module: quality_control_stock_oca
35
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__qc_inspections_ids
35
36
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__qc_inspections_ids
36
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__qc_inspections_ids
37
37
  msgid "Inspections"
38
38
  msgstr ""
39
39
 
40
40
  #. module: quality_control_stock_oca
41
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__passed_inspections
41
42
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__passed_inspections
42
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__passed_inspections
43
43
  msgid "Inspections OK"
44
44
  msgstr ""
45
45
 
46
46
  #. module: quality_control_stock_oca
47
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__failed_inspections
47
48
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__failed_inspections
48
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__failed_inspections
49
49
  msgid "Inspections failed"
50
50
  msgstr ""
51
51
 
52
52
  #. module: quality_control_stock_oca
53
- #: model:ir.model.fields,help:quality_control_stock_oca.field_stock_production_lot__qc_inspections_ids
53
+ #: model:ir.model.fields,help:quality_control_stock_oca.field_stock_lot__qc_inspections_ids
54
54
  msgid "Inspections related to this lot."
55
55
  msgstr ""
56
56
 
@@ -68,7 +68,7 @@ msgid "Lot"
68
68
  msgstr ""
69
69
 
70
70
  #. module: quality_control_stock_oca
71
- #: model:ir.model,name:quality_control_stock_oca.model_stock_production_lot
71
+ #: model:ir.model,name:quality_control_stock_oca.model_stock_lot
72
72
  msgid "Lot/Serial"
73
73
  msgstr ""
74
74
 
@@ -25,37 +25,37 @@ msgstr ""
25
25
  "X-Generator: Poedit 2.0.6\n"
26
26
 
27
27
  #. module: quality_control_stock_oca
28
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__created_inspections
28
29
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__created_inspections
29
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__created_inspections
30
30
  msgid "Created inspections"
31
31
  msgstr "Erstellte Prüfungen"
32
32
 
33
33
  #. module: quality_control_stock_oca
34
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__done_inspections
34
35
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__done_inspections
35
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__done_inspections
36
36
  msgid "Done inspections"
37
37
  msgstr "Durchgeführte Prüfungen"
38
38
 
39
39
  #. module: quality_control_stock_oca
40
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__qc_inspections_ids
40
41
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__qc_inspections_ids
41
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__qc_inspections_ids
42
42
  msgid "Inspections"
43
43
  msgstr "Prüfungen"
44
44
 
45
45
  #. module: quality_control_stock_oca
46
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__passed_inspections
46
47
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__passed_inspections
47
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__passed_inspections
48
48
  msgid "Inspections OK"
49
49
  msgstr "Prüfungen OK"
50
50
 
51
51
  #. module: quality_control_stock_oca
52
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__failed_inspections
52
53
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__failed_inspections
53
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__failed_inspections
54
54
  msgid "Inspections failed"
55
55
  msgstr "Prüfungen gescheitert"
56
56
 
57
57
  #. module: quality_control_stock_oca
58
- #: model:ir.model.fields,help:quality_control_stock_oca.field_stock_production_lot__qc_inspections_ids
58
+ #: model:ir.model.fields,help:quality_control_stock_oca.field_stock_lot__qc_inspections_ids
59
59
  msgid "Inspections related to this lot."
60
60
  msgstr "Prüfungen mit Bezug auf dieses Los."
61
61
 
@@ -73,7 +73,7 @@ msgid "Lot"
73
73
  msgstr "Los"
74
74
 
75
75
  #. module: quality_control_stock_oca
76
- #: model:ir.model,name:quality_control_stock_oca.model_stock_production_lot
76
+ #: model:ir.model,name:quality_control_stock_oca.model_stock_lot
77
77
  msgid "Lot/Serial"
78
78
  msgstr "Chargen-/Seriennummer"
79
79
 
@@ -20,37 +20,37 @@ msgstr ""
20
20
  "X-Generator: Poedit 2.0.6\n"
21
21
 
22
22
  #. module: quality_control_stock_oca
23
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__created_inspections
23
24
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__created_inspections
24
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__created_inspections
25
25
  msgid "Created inspections"
26
26
  msgstr ""
27
27
 
28
28
  #. module: quality_control_stock_oca
29
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__done_inspections
29
30
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__done_inspections
30
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__done_inspections
31
31
  msgid "Done inspections"
32
32
  msgstr ""
33
33
 
34
34
  #. module: quality_control_stock_oca
35
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__qc_inspections_ids
35
36
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__qc_inspections_ids
36
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__qc_inspections_ids
37
37
  msgid "Inspections"
38
38
  msgstr ""
39
39
 
40
40
  #. module: quality_control_stock_oca
41
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__passed_inspections
41
42
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__passed_inspections
42
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__passed_inspections
43
43
  msgid "Inspections OK"
44
44
  msgstr ""
45
45
 
46
46
  #. module: quality_control_stock_oca
47
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__failed_inspections
47
48
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__failed_inspections
48
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__failed_inspections
49
49
  msgid "Inspections failed"
50
50
  msgstr ""
51
51
 
52
52
  #. module: quality_control_stock_oca
53
- #: model:ir.model.fields,help:quality_control_stock_oca.field_stock_production_lot__qc_inspections_ids
53
+ #: model:ir.model.fields,help:quality_control_stock_oca.field_stock_lot__qc_inspections_ids
54
54
  msgid "Inspections related to this lot."
55
55
  msgstr ""
56
56
 
@@ -68,7 +68,7 @@ msgid "Lot"
68
68
  msgstr ""
69
69
 
70
70
  #. module: quality_control_stock_oca
71
- #: model:ir.model,name:quality_control_stock_oca.model_stock_production_lot
71
+ #: model:ir.model,name:quality_control_stock_oca.model_stock_lot
72
72
  msgid "Lot/Serial"
73
73
  msgstr ""
74
74
 
@@ -23,37 +23,37 @@ msgstr ""
23
23
  "X-Generator: Poedit 2.0.6\n"
24
24
 
25
25
  #. module: quality_control_stock_oca
26
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__created_inspections
26
27
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__created_inspections
27
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__created_inspections
28
28
  msgid "Created inspections"
29
29
  msgstr "Inspecciones creadas"
30
30
 
31
31
  #. module: quality_control_stock_oca
32
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__done_inspections
32
33
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__done_inspections
33
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__done_inspections
34
34
  msgid "Done inspections"
35
35
  msgstr "Inspecciones realizadas"
36
36
 
37
37
  #. module: quality_control_stock_oca
38
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__qc_inspections_ids
38
39
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__qc_inspections_ids
39
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__qc_inspections_ids
40
40
  msgid "Inspections"
41
41
  msgstr "Inspecciones"
42
42
 
43
43
  #. module: quality_control_stock_oca
44
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__passed_inspections
44
45
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__passed_inspections
45
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__passed_inspections
46
46
  msgid "Inspections OK"
47
47
  msgstr "Inspecciones correctas"
48
48
 
49
49
  #. module: quality_control_stock_oca
50
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__failed_inspections
50
51
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__failed_inspections
51
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__failed_inspections
52
52
  msgid "Inspections failed"
53
53
  msgstr "Inspecciones fallidas"
54
54
 
55
55
  #. module: quality_control_stock_oca
56
- #: model:ir.model.fields,help:quality_control_stock_oca.field_stock_production_lot__qc_inspections_ids
56
+ #: model:ir.model.fields,help:quality_control_stock_oca.field_stock_lot__qc_inspections_ids
57
57
  msgid "Inspections related to this lot."
58
58
  msgstr "Inspecciones relativas a este lote."
59
59
 
@@ -71,7 +71,7 @@ msgid "Lot"
71
71
  msgstr "Lote"
72
72
 
73
73
  #. module: quality_control_stock_oca
74
- #: model:ir.model,name:quality_control_stock_oca.model_stock_production_lot
74
+ #: model:ir.model,name:quality_control_stock_oca.model_stock_lot
75
75
  msgid "Lot/Serial"
76
76
  msgstr "Lote/Nº de serie"
77
77
 
@@ -4,7 +4,7 @@
4
4
  #
5
5
  msgid ""
6
6
  msgstr ""
7
- "Project-Id-Version: Odoo Server 15.0\n"
7
+ "Project-Id-Version: Odoo Server 16.0\n"
8
8
  "Report-Msgid-Bugs-To: \n"
9
9
  "Last-Translator: \n"
10
10
  "Language-Team: \n"
@@ -14,37 +14,37 @@ msgstr ""
14
14
  "Plural-Forms: \n"
15
15
 
16
16
  #. module: quality_control_stock_oca
17
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__created_inspections
17
18
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__created_inspections
18
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__created_inspections
19
19
  msgid "Created inspections"
20
20
  msgstr ""
21
21
 
22
22
  #. module: quality_control_stock_oca
23
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__done_inspections
23
24
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__done_inspections
24
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__done_inspections
25
25
  msgid "Done inspections"
26
26
  msgstr ""
27
27
 
28
28
  #. module: quality_control_stock_oca
29
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__qc_inspections_ids
29
30
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__qc_inspections_ids
30
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__qc_inspections_ids
31
31
  msgid "Inspections"
32
32
  msgstr ""
33
33
 
34
34
  #. module: quality_control_stock_oca
35
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__passed_inspections
35
36
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__passed_inspections
36
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__passed_inspections
37
37
  msgid "Inspections OK"
38
38
  msgstr ""
39
39
 
40
40
  #. module: quality_control_stock_oca
41
+ #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_lot__failed_inspections
41
42
  #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_picking__failed_inspections
42
- #: model:ir.model.fields,field_description:quality_control_stock_oca.field_stock_production_lot__failed_inspections
43
43
  msgid "Inspections failed"
44
44
  msgstr ""
45
45
 
46
46
  #. module: quality_control_stock_oca
47
- #: model:ir.model.fields,help:quality_control_stock_oca.field_stock_production_lot__qc_inspections_ids
47
+ #: model:ir.model.fields,help:quality_control_stock_oca.field_stock_lot__qc_inspections_ids
48
48
  msgid "Inspections related to this lot."
49
49
  msgstr ""
50
50
 
@@ -62,7 +62,7 @@ msgid "Lot"
62
62
  msgstr ""
63
63
 
64
64
  #. module: quality_control_stock_oca
65
- #: model:ir.model,name:quality_control_stock_oca.model_stock_production_lot
65
+ #: model:ir.model,name:quality_control_stock_oca.model_stock_lot
66
66
  msgid "Lot/Serial"
67
67
  msgstr ""
68
68
 
@@ -13,7 +13,7 @@ class QcInspection(models.Model):
13
13
  comodel_name="stock.picking", compute="_compute_picking", store=True
14
14
  )
15
15
  lot_id = fields.Many2one(
16
- comodel_name="stock.production.lot", compute="_compute_lot", store=True
16
+ comodel_name="stock.lot", compute="_compute_lot", store=True
17
17
  )
18
18
 
19
19
  def object_selection_values(self):
@@ -22,21 +22,18 @@ class QcInspection(models.Model):
22
22
  [
23
23
  ("stock.picking", "Picking List"),
24
24
  ("stock.move", "Stock Move"),
25
- ("stock.production.lot", "Lot/Serial Number"),
25
+ ("stock.lot", "Lot/Serial Number"),
26
26
  ]
27
27
  )
28
28
  return result
29
29
 
30
30
  @api.depends("object_id")
31
31
  def _compute_picking(self):
32
- for inspection in self:
33
- if inspection.object_id:
34
- if inspection.object_id._name == "stock.move":
35
- inspection.picking_id = inspection.object_id.picking_id
36
- elif inspection.object_id._name == "stock.picking":
37
- inspection.picking_id = inspection.object_id
38
- elif inspection.object_id._name == "stock.move.line":
39
- inspection.picking_id = inspection.object_id.picking_id
32
+ for inspection in self.filtered("object_id"):
33
+ if inspection.object_id._name == "stock.move":
34
+ inspection.picking_id = inspection.object_id.picking_id
35
+ elif inspection.object_id._name == "stock.picking":
36
+ inspection.picking_id = inspection.object_id
40
37
 
41
38
  @api.depends("object_id")
42
39
  def _compute_lot(self):
@@ -46,19 +43,13 @@ class QcInspection(models.Model):
46
43
  move_lines = self.env["stock.move.line"].search(
47
44
  [("lot_id", "!=", False), ("move_id", "in", [move.id for move in moves])]
48
45
  )
49
-
50
- for inspection in self:
51
- if inspection.object_id:
52
- if inspection.object_id._name == "stock.move.line":
53
- inspection.lot_id = inspection.object_id.lot_id
54
- elif inspection.object_id._name == "stock.move":
55
- inspection.lot_id = first(
56
- move_lines.filtered(
57
- lambda line: line.move_id == inspection.object_id
58
- )
59
- ).lot_id
60
- elif inspection.object_id._name == "stock.production.lot":
61
- inspection.lot_id = inspection.object_id
46
+ for inspection in self.filtered("object_id"):
47
+ if inspection.object_id._name == "stock.move":
48
+ inspection.lot_id = first(
49
+ move_lines.filtered(lambda x: x.move_id == inspection.object_id)
50
+ ).lot_id
51
+ elif inspection.object_id._name == "stock.lot":
52
+ inspection.lot_id = inspection.object_id
62
53
 
63
54
  @api.depends("object_id")
64
55
  def _compute_product_id(self):
@@ -67,25 +58,18 @@ class QcInspection(models.Model):
67
58
  for inspection in self.filtered("object_id"):
68
59
  if inspection.object_id._name == "stock.move":
69
60
  inspection.product_id = inspection.object_id.product_id
70
- elif inspection.object_id._name == "stock.move.line":
71
- inspection.product_id = inspection.object_id.product_id
72
- elif inspection.object_id._name == "stock.production.lot":
61
+ elif inspection.object_id._name == "stock.lot":
73
62
  inspection.product_id = inspection.object_id.product_id
74
63
  return res
75
64
 
76
65
  @api.onchange("object_id")
77
66
  def onchange_object_id(self):
78
- if self.object_id:
79
- if self.object_id._name == "stock.move":
80
- self.qty = self.object_id.product_qty
81
- elif self.object_id._name == "stock.move.line":
82
- self.qty = self.object_id.product_qty
67
+ if self.object_id and self.object_id._name == "stock.move":
68
+ self.qty = self.object_id.product_qty
83
69
 
84
70
  def _prepare_inspection_header(self, object_ref, trigger_line):
85
71
  res = super()._prepare_inspection_header(object_ref, trigger_line)
86
72
  # Fill qty when coming from pack operations
87
- if object_ref and object_ref._name == "stock.move.line":
88
- res["qty"] = object_ref.product_qty
89
73
  if object_ref and object_ref._name == "stock.move":
90
74
  res["qty"] = object_ref.product_uom_qty
91
75
  return res
@@ -98,5 +82,5 @@ class QcInspectionLine(models.Model):
98
82
  comodel_name="stock.picking", related="inspection_id.picking_id", store=True
99
83
  )
100
84
  lot_id = fields.Many2one(
101
- comodel_name="stock.production.lot", related="inspection_id.lot_id", store=True
85
+ comodel_name="stock.lot", related="inspection_id.lot_id", store=True
102
86
  )
@@ -64,7 +64,7 @@ class StockPicking(models.Model):
64
64
  .sudo()
65
65
  .search([("picking_type_id", "=", self.picking_type_id.id)])
66
66
  )
67
- for operation in self.move_lines:
67
+ for operation in self.move_ids:
68
68
  trigger_lines = set()
69
69
  for model in [
70
70
  "qc.trigger.product_category_line",
@@ -8,15 +8,20 @@ from odoo import api, models
8
8
  class StockPickingType(models.Model):
9
9
  _inherit = "stock.picking.type"
10
10
 
11
+ def _prepare_qc_trigger_vals(self):
12
+ self.ensure_one()
13
+ return {
14
+ "name": self.display_name,
15
+ "company_id": self.warehouse_id.company_id.id,
16
+ "picking_type_id": self.id,
17
+ "partner_selectable": True,
18
+ }
19
+
11
20
  def _create_qc_trigger(self):
21
+ values = []
12
22
  for picking_type in self:
13
- qc_trigger = {
14
- "name": picking_type.display_name,
15
- "company_id": picking_type.warehouse_id.company_id.id,
16
- "picking_type_id": picking_type.id,
17
- "partner_selectable": True,
18
- }
19
- self.env["qc.trigger"].sudo().create(qc_trigger)
23
+ values.append(picking_type._prepare_qc_trigger_vals())
24
+ self.env["qc.trigger"].sudo().create(values)
20
25
 
21
26
  @api.model_create_multi
22
27
  def create(self, val_list):
@@ -32,5 +37,5 @@ class StockPickingType(models.Model):
32
37
  qc_triggers = qc_trigger_model.search(
33
38
  [("picking_type_id", "=", rec.id)]
34
39
  )
35
- qc_triggers.write({"name": rec.name})
40
+ qc_triggers.write({"name": rec.display_name})
36
41
  return res
@@ -6,7 +6,7 @@ from odoo import api, fields, models
6
6
 
7
7
 
8
8
  class StockProductionLot(models.Model):
9
- _inherit = "stock.production.lot"
9
+ _inherit = "stock.lot"
10
10
 
11
11
  qc_inspections_ids = fields.One2many(
12
12
  comodel_name="qc.inspection",
@@ -367,9 +367,9 @@ ul.auto-toc {
367
367
  !! This file is generated by oca-gen-addon-readme !!
368
368
  !! changes will be overwritten. !!
369
369
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
370
- !! source digest: sha256:6a7081017d1705e47f1c601056c9db6f3dd3368a22519f03457e7f239cf92505
370
+ !! source digest: sha256:7430252681826a0a0f9a869194458e38ac20900898f0f8ff40422f13702695ee
371
371
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
372
- <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/manufacture/tree/15.0/quality_control_stock_oca"><img alt="OCA/manufacture" src="https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/manufacture-15-0/manufacture-15-0-quality_control_stock_oca"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/manufacture&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
372
+ <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/manufacture/tree/16.0/quality_control_stock_oca"><img alt="OCA/manufacture" src="https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/manufacture-16-0/manufacture-16-0-quality_control_stock_oca"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/manufacture&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
373
373
  <p>This module defines triggers that creates inspections when stock moves are done.</p>
374
374
  <p>It also adds some shortcuts on picking and lots to these inspections.</p>
375
375
  <p><strong>Table of contents</strong></p>
@@ -396,7 +396,7 @@ ul.auto-toc {
396
396
  <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/manufacture/issues">GitHub Issues</a>.
397
397
  In case of trouble, please check there if your issue has already been reported.
398
398
  If you spotted it first, help us to smash it by providing a detailed and welcomed
399
- <a class="reference external" href="https://github.com/OCA/manufacture/issues/new?body=module:%20quality_control_stock_oca%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
399
+ <a class="reference external" href="https://github.com/OCA/manufacture/issues/new?body=module:%20quality_control_stock_oca%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
400
400
  <p>Do not contact contributors directly about support or help with technical issues.</p>
401
401
  </div>
402
402
  <div class="section" id="credits">
@@ -432,7 +432,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
432
432
  <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
433
433
  mission is to support the collaborative development of Odoo features and
434
434
  promote its widespread use.</p>
435
- <p>This module is part of the <a class="reference external" href="https://github.com/OCA/manufacture/tree/15.0/quality_control_stock_oca">OCA/manufacture</a> project on GitHub.</p>
435
+ <p>This module is part of the <a class="reference external" href="https://github.com/OCA/manufacture/tree/16.0/quality_control_stock_oca">OCA/manufacture</a> project on GitHub.</p>
436
436
  <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
437
437
  </div>
438
438
  </div>
@@ -1,119 +1,90 @@
1
1
  # Copyright 2015 Oihane Crucelaegui - AvanzOSC
2
2
  # Copyright 2018 Simone Rubino - Agile Business Group
3
3
  # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
4
+ from odoo.tests import Form, new_test_user
5
+ from odoo.tools import mute_logger
4
6
 
5
- from odoo.tests.common import TransactionCase, new_test_user
7
+ from odoo.addons.quality_control_oca.tests.test_quality_control import (
8
+ TestQualityControlOcaBase,
9
+ )
6
10
 
7
11
 
8
- class TestQualityControl(TransactionCase):
9
- def setUp(self):
10
- super().setUp()
11
- self.users_model = self.env["res.users"]
12
- self.picking_model = self.env["stock.picking"]
13
- self.inspection_model = self.env["qc.inspection"]
14
- self.qc_trigger_model = self.env["qc.trigger"]
15
- self.picking_type_model = self.env["stock.picking.type"]
16
- self.product = self.env.ref("product.product_product_2")
17
- self.partner1 = self.env.ref("base.res_partner_2")
18
- self.partner2 = self.env.ref("base.res_partner_4")
19
- self.test = self.env.ref("quality_control_oca.qc_test_1")
20
- self.picking_type = self.env.ref("stock.picking_type_out")
21
- self.location_dest = self.env.ref("stock.stock_location_customers")
22
- self.company = self.env.ref("base.main_company")
23
- self.sequence = self.env["ir.sequence"].create(
24
- {"code": "out", "name": "outgoing_sequence"}
25
- )
26
- inspection_lines = self.inspection_model._prepare_inspection_lines(self.test)
27
- self.inspection1 = self.inspection_model.create(
28
- {"name": "Test Inspection", "inspection_lines": inspection_lines}
29
- )
30
- self.trigger = self.qc_trigger_model.search(
31
- [("picking_type_id", "=", self.picking_type.id)]
32
- )
33
- self.lot = self.env["stock.production.lot"].create(
12
+ class TestQualityControlStockOca(TestQualityControlOcaBase):
13
+ @classmethod
14
+ def setUpClass(cls):
15
+ super().setUpClass()
16
+ cls.qc_trigger_model = cls.env["qc.trigger"]
17
+ cls.picking_type_model = cls.env["stock.picking.type"]
18
+ cls.partner1 = cls.env["res.partner"].create({"name": "Test partner 1"})
19
+ cls.partner2 = cls.env["res.partner"].create({"name": "Test partner 2"})
20
+ cls.picking_type = cls.env.ref("stock.picking_type_out")
21
+ cls.location = cls.picking_type.default_location_src_id
22
+ cls.location_dest = cls.picking_type.default_location_dest_id
23
+ cls.trigger = cls.qc_trigger_model.search(
24
+ [("picking_type_id", "=", cls.picking_type.id)]
25
+ )
26
+ cls.lot = cls.env["stock.lot"].create(
34
27
  {
35
28
  "name": "Lot for tests",
36
- "product_id": self.product.id,
37
- "company_id": self.company.id,
29
+ "product_id": cls.product.id,
38
30
  }
39
31
  )
40
- self.user1_id = new_test_user(
41
- self.env,
42
- login="user_1",
43
- groups="stock.group_stock_user,quality_control_oca.group_quality_control_user",
44
- company_id=self.company.id,
45
- ).id
46
- move_vals = {
47
- "name": self.product.name,
48
- "product_id": self.product.id,
49
- "product_uom": self.product.uom_id.id,
50
- "product_uom_qty": 2.0,
51
- "location_id": self.picking_type.default_location_src_id.id,
52
- "location_dest_id": self.location_dest.id,
53
- "quantity_done": 1.0,
54
- }
55
- self.picking1 = (
56
- self.picking_model.with_user(self.user1_id)
57
- .with_context(default_picking_type_id=self.picking_type.id)
58
- .create(
59
- {
60
- "partner_id": self.partner1.id,
61
- "picking_type_id": self.picking_type.id,
62
- "move_lines": [(0, 0, move_vals)],
63
- "location_dest_id": self.location_dest.id,
64
- }
65
- )
32
+ cls.product.detailed_type = "product"
33
+ cls.env["stock.quant"].create(
34
+ {
35
+ "product_id": cls.product.id,
36
+ "location_id": cls.location.id,
37
+ "quantity": 1,
38
+ "lot_id": cls.lot.id,
39
+ }
66
40
  )
67
- self.picking1.action_confirm()
68
- sequence = 10
69
- for line in self.picking1.move_lines.filtered(
70
- lambda r: r.product_id == self.product
71
- ):
72
- line.write(
73
- {
74
- "move_line_ids": [
75
- (
76
- 0,
77
- 0,
78
- {
79
- "lot_id": self.lot.id,
80
- "product_uom_qty": 1.0,
81
- "qty_done": 1.0,
82
- "product_uom_id": line.product_uom.id,
83
- "product_id": line.product_id.id,
84
- "location_id": line.location_id.id,
85
- "location_dest_id": line.location_dest_id.id,
86
- },
87
- )
88
- ],
89
- "sequence": sequence,
90
- }
91
- )
92
- sequence += 10
41
+ cls.user = new_test_user(
42
+ cls.env,
43
+ login="test_quality_control_stock_oca",
44
+ groups="%s,%s"
45
+ % (
46
+ "stock.group_stock_user",
47
+ "quality_control_oca.group_quality_control_user",
48
+ ),
49
+ )
50
+ picking_form = Form(
51
+ cls.env["stock.picking"]
52
+ .with_user(cls.user)
53
+ .with_context(default_picking_type_id=cls.picking_type.id)
54
+ )
55
+ picking_form.partner_id = cls.partner1
56
+ with picking_form.move_ids_without_package.new() as move_form:
57
+ move_form.product_id = cls.product
58
+ move_form.product_uom_qty = 2
59
+ cls.picking1 = picking_form.save()
60
+ cls.picking1.action_confirm()
61
+ cls.picking1.move_ids.move_line_ids.qty_done = 1
93
62
 
63
+ @mute_logger("odoo.models.unlink")
94
64
  def test_inspection_create_for_product(self):
95
65
  self.product.qc_triggers = [
96
66
  (0, 0, {"trigger": self.trigger.id, "test": self.test.id})
97
67
  ]
98
- self.picking1.button_validate()
68
+ self.picking1._action_done()
99
69
  self.assertEqual(
100
70
  self.picking1.created_inspections, 1, "Only one inspection must be created"
101
71
  )
102
72
  inspection = self.picking1.qc_inspections_ids[:1]
103
- self.assertEqual(inspection.qty, 2.0)
73
+ self.assertEqual(inspection.qty, self.picking1.move_ids.product_uom_qty)
104
74
  self.assertEqual(
105
75
  inspection.test, self.test, "Wrong test picked when creating inspection."
106
76
  )
107
77
  # Try in this context if onchange with an stock.pack.operation works
108
78
  inspection.qty = 5
109
79
  inspection.onchange_object_id()
110
- self.assertEqual(inspection.qty, 2.0)
80
+ self.assertEqual(inspection.qty, self.picking1.move_ids.product_uom_qty)
111
81
 
82
+ @mute_logger("odoo.models.unlink")
112
83
  def test_inspection_create_for_template(self):
113
84
  self.product.product_tmpl_id.qc_triggers = [
114
85
  (0, 0, {"trigger": self.trigger.id, "test": self.test.id})
115
86
  ]
116
- self.picking1.button_validate()
87
+ self.picking1._action_done()
117
88
  self.assertEqual(
118
89
  self.picking1.created_inspections, 1, "Only one inspection must be created"
119
90
  )
@@ -123,11 +94,12 @@ class TestQualityControl(TransactionCase):
123
94
  "Wrong test picked when creating inspection.",
124
95
  )
125
96
 
97
+ @mute_logger("odoo.models.unlink")
126
98
  def test_inspection_create_for_category(self):
127
99
  self.product.categ_id.qc_triggers = [
128
100
  (0, 0, {"trigger": self.trigger.id, "test": self.test.id})
129
101
  ]
130
- self.picking1.button_validate()
102
+ self.picking1._action_done()
131
103
  self.assertEqual(
132
104
  self.picking1.created_inspections, 1, "Only one inspection must be created"
133
105
  )
@@ -137,6 +109,7 @@ class TestQualityControl(TransactionCase):
137
109
  "Wrong test picked when creating inspection.",
138
110
  )
139
111
 
112
+ @mute_logger("odoo.models.unlink")
140
113
  def test_inspection_create_for_product_partner(self):
141
114
  self.product.qc_triggers = [
142
115
  (
@@ -149,7 +122,7 @@ class TestQualityControl(TransactionCase):
149
122
  },
150
123
  )
151
124
  ]
152
- self.picking1.button_validate()
125
+ self.picking1._action_done()
153
126
  self.assertEqual(
154
127
  self.picking1.created_inspections, 1, "Only one inspection must be created"
155
128
  )
@@ -159,6 +132,7 @@ class TestQualityControl(TransactionCase):
159
132
  "Wrong test picked when creating inspection.",
160
133
  )
161
134
 
135
+ @mute_logger("odoo.models.unlink")
162
136
  def test_inspection_create_for_template_partner(self):
163
137
  self.product.product_tmpl_id.qc_triggers = [
164
138
  (
@@ -171,7 +145,7 @@ class TestQualityControl(TransactionCase):
171
145
  },
172
146
  )
173
147
  ]
174
- self.picking1.button_validate()
148
+ self.picking1._action_done()
175
149
  self.assertEqual(
176
150
  self.picking1.created_inspections, 1, "Only one inspection must be created"
177
151
  )
@@ -181,6 +155,7 @@ class TestQualityControl(TransactionCase):
181
155
  "Wrong test picked when creating inspection.",
182
156
  )
183
157
 
158
+ @mute_logger("odoo.models.unlink")
184
159
  def test_inspection_create_for_category_partner(self):
185
160
  self.product.categ_id.qc_triggers = [
186
161
  (
@@ -193,7 +168,7 @@ class TestQualityControl(TransactionCase):
193
168
  },
194
169
  )
195
170
  ]
196
- self.picking1.button_validate()
171
+ self.picking1._action_done()
197
172
  self.assertEqual(
198
173
  self.picking1.created_inspections, 1, "Only one inspection must be created"
199
174
  )
@@ -203,6 +178,7 @@ class TestQualityControl(TransactionCase):
203
178
  "Wrong test picked when creating inspection.",
204
179
  )
205
180
 
181
+ @mute_logger("odoo.models.unlink")
206
182
  def test_inspection_create_for_product_wrong_partner(self):
207
183
  self.product.qc_triggers = [
208
184
  (
@@ -215,11 +191,12 @@ class TestQualityControl(TransactionCase):
215
191
  },
216
192
  )
217
193
  ]
218
- self.picking1.button_validate()
194
+ self.picking1._action_done()
219
195
  self.assertEqual(
220
196
  self.picking1.created_inspections, 0, "No inspection must be created"
221
197
  )
222
198
 
199
+ @mute_logger("odoo.models.unlink")
223
200
  def test_inspection_create_for_template_wrong_partner(self):
224
201
  self.product.product_tmpl_id.qc_triggers = [
225
202
  (
@@ -232,11 +209,12 @@ class TestQualityControl(TransactionCase):
232
209
  },
233
210
  )
234
211
  ]
235
- self.picking1.button_validate()
212
+ self.picking1._action_done()
236
213
  self.assertEqual(
237
214
  self.picking1.created_inspections, 0, "No inspection must be created"
238
215
  )
239
216
 
217
+ @mute_logger("odoo.models.unlink")
240
218
  def test_inspection_create_for_category_wrong_partner(self):
241
219
  self.product.categ_id.qc_triggers = [
242
220
  (
@@ -249,11 +227,12 @@ class TestQualityControl(TransactionCase):
249
227
  },
250
228
  )
251
229
  ]
252
- self.picking1.button_validate()
230
+ self.picking1._action_done()
253
231
  self.assertEqual(
254
232
  self.picking1.created_inspections, 0, "No inspection must be created"
255
233
  )
256
234
 
235
+ @mute_logger("odoo.models.unlink")
257
236
  def test_inspection_create_only_one(self):
258
237
  self.product.qc_triggers = [
259
238
  (0, 0, {"trigger": self.trigger.id, "test": self.test.id})
@@ -261,7 +240,7 @@ class TestQualityControl(TransactionCase):
261
240
  self.product.categ_id.qc_triggers = [
262
241
  (0, 0, {"trigger": self.trigger.id, "test": self.test.id})
263
242
  ]
264
- self.picking1.button_validate()
243
+ self.picking1._action_done()
265
244
  self.assertEqual(
266
245
  self.picking1.created_inspections, 1, "Only one inspection must be created"
267
246
  )
@@ -284,8 +263,8 @@ class TestQualityControl(TransactionCase):
284
263
  {
285
264
  "name": "Test Picking Type",
286
265
  "code": "outgoing",
287
- "sequence_code": "OUT",
288
- "sequence_id": self.sequence.id,
266
+ "sequence_code": self.picking_type.sequence_code,
267
+ "sequence_id": self.picking_type.sequence_id.id,
289
268
  }
290
269
  )
291
270
  trigger = self.qc_trigger_model.search(
@@ -307,7 +286,7 @@ class TestQualityControl(TransactionCase):
307
286
  def test_qc_inspection_picking(self):
308
287
  self.inspection1.write(
309
288
  {
310
- "name": self.picking1.move_lines[:1]._name + "inspection",
289
+ "name": self.picking1.move_ids[:1]._name + "inspection",
311
290
  "object_id": "%s,%d" % (self.picking1._name, self.picking1.id),
312
291
  }
313
292
  )
@@ -316,23 +295,25 @@ class TestQualityControl(TransactionCase):
316
295
  def test_qc_inspection_stock_move(self):
317
296
  self.inspection1.write(
318
297
  {
319
- "name": self.picking1.move_lines[:1]._name + "inspection",
298
+ "name": self.picking1.move_ids[:1]._name + "inspection",
320
299
  "object_id": "%s,%d"
321
- % (self.picking1.move_lines[:1]._name, self.picking1.move_lines[:1].id),
300
+ % (self.picking1.move_ids[:1]._name, self.picking1.move_ids[:1].id),
322
301
  }
323
302
  )
324
303
  self.inspection1.onchange_object_id()
325
304
  self.assertEqual(self.inspection1.picking_id, self.picking1)
326
305
  self.assertEqual(self.inspection1.lot_id, self.lot)
327
306
  self.assertEqual(
328
- self.inspection1.product_id, self.picking1.move_lines[:1].product_id
307
+ self.inspection1.product_id, self.picking1.move_ids[:1].product_id
308
+ )
309
+ self.assertEqual(
310
+ self.inspection1.qty, self.picking1.move_ids[:1].product_uom_qty
329
311
  )
330
- self.assertEqual(self.inspection1.qty, self.picking1.move_lines[:1].product_qty)
331
312
 
332
313
  def test_qc_inspection_lot(self):
333
314
  self.inspection1.write(
334
315
  {
335
- "name": self.picking1.move_lines[:1]._name + "inspection",
316
+ "name": self.picking1.move_ids[:1]._name + "inspection",
336
317
  "object_id": "%s,%d" % (self.lot._name, self.lot.id),
337
318
  }
338
319
  )
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <odoo>
3
+ <record model="ir.ui.view" id="qc_trigger_form_view">
4
+ <field name="name">qc.trigger.form</field>
5
+ <field name="model">qc.trigger</field>
6
+ <field name='inherit_id' ref='quality_control_oca.qc_trigger_form_view' />
7
+ <field name="arch" type="xml">
8
+ <xpath expr="//field[@name='partner_selectable']" position="after">
9
+ <field name="picking_type_id" readonly="1" />
10
+ </xpath>
11
+ </field>
12
+ </record>
13
+ </odoo>
@@ -36,10 +36,6 @@
36
36
  <field name="name">stock.picking.qc.view</field>
37
37
  <field name="model">stock.picking</field>
38
38
  <field name="inherit_id" ref="stock.view_picking_form" />
39
- <field
40
- name="groups_id"
41
- eval="[(4, ref('quality_control_oca.group_quality_control_user'))]"
42
- />
43
39
  <field name="arch" type="xml">
44
40
  <div name="button_box" position="inside">
45
41
  <button
@@ -47,6 +43,7 @@
47
43
  type="action"
48
44
  name="%(action_qc_inspection_per_picking)d"
49
45
  icon="fa-list"
46
+ groups="quality_control_oca.group_quality_control_user"
50
47
  >
51
48
  <field
52
49
  name="created_inspections"
@@ -59,6 +56,7 @@
59
56
  type="action"
60
57
  name="%(action_qc_inspection_per_picking_done)d"
61
58
  icon="fa-pencil"
59
+ groups="quality_control_oca.group_quality_control_user"
62
60
  >
63
61
  <field name="done_inspections" widget="statinfo" />
64
62
  </button>
@@ -67,6 +65,7 @@
67
65
  type="action"
68
66
  name="%(action_qc_inspection_per_picking_passed)d"
69
67
  icon="fa-thumbs-o-up"
68
+ groups="quality_control_oca.group_quality_control_user"
70
69
  >
71
70
  <field name="passed_inspections" widget="statinfo" />
72
71
  </button>
@@ -75,8 +74,13 @@
75
74
  type="action"
76
75
  name="%(action_qc_inspection_per_picking_failed)d"
77
76
  icon="fa-thumbs-o-down"
77
+ groups="quality_control_oca.group_quality_control_user"
78
78
  >
79
- <field name="failed_inspections" widget="statinfo" />
79
+ <field
80
+ name="failed_inspections"
81
+ widget="statinfo"
82
+ groups="quality_control_oca.group_quality_control_user"
83
+ />
80
84
  </button>
81
85
  </div>
82
86
  </field>
@@ -33,13 +33,9 @@
33
33
  >[('lot_id', '=', active_id), ('state', '=', 'failed')]</field>
34
34
  </record>
35
35
  <record model="ir.ui.view" id="stock_lot_qc_view">
36
- <field name="name">stock.production.lot.qc.view</field>
37
- <field name="model">stock.production.lot</field>
36
+ <field name="name">stock.lot.qc.view</field>
37
+ <field name="model">stock.lot</field>
38
38
  <field name="inherit_id" ref="stock.view_production_lot_form" />
39
- <field
40
- name="groups_id"
41
- eval="[(4, ref('quality_control_oca.group_quality_control_user'))]"
42
- />
43
39
  <field name="arch" type="xml">
44
40
  <div name="button_box" position="inside">
45
41
  <button
@@ -47,6 +43,7 @@
47
43
  type="action"
48
44
  name="%(action_qc_inspection_per_lot)d"
49
45
  icon="fa-list"
46
+ groups="quality_control_oca.group_quality_control_user"
50
47
  >
51
48
  <field
52
49
  name="created_inspections"
@@ -59,6 +56,7 @@
59
56
  type="action"
60
57
  name="%(action_qc_inspection_per_lot_done)d"
61
58
  icon="fa-pencil"
59
+ groups="quality_control_oca.group_quality_control_user"
62
60
  >
63
61
  <field name="done_inspections" widget="statinfo" />
64
62
  </button>
@@ -67,6 +65,7 @@
67
65
  type="action"
68
66
  name="%(action_qc_inspection_per_lot_passed)d"
69
67
  icon="fa-thumbs-o-up"
68
+ groups="quality_control_oca.group_quality_control_user"
70
69
  >
71
70
  <field name="passed_inspections" widget="statinfo" />
72
71
  </button>
@@ -75,8 +74,13 @@
75
74
  type="action"
76
75
  name="%(action_qc_inspection_per_lot_failed)d"
77
76
  icon="fa-thumbs-o-down"
77
+ groups="quality_control_oca.group_quality_control_user"
78
78
  >
79
- <field name="failed_inspections" widget="statinfo" />
79
+ <field
80
+ name="failed_inspections"
81
+ widget="statinfo"
82
+ groups="quality_control_oca.group_quality_control_user"
83
+ />
80
84
  </button>
81
85
  </div>
82
86
  </field>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-quality-control-stock-oca
3
- Version: 15.0.1.0.0.5
3
+ Version: 16.0.1.0.0.3
4
4
  Summary: Quality control - Stock (OCA)
5
5
  Home-page: https://github.com/OCA/manufacture
6
6
  Author: OdooMRP team, AvanzOSC, Serv. Tecnol. Avanzados - Pedro M. Baeza, Agile Business Group, Odoo Community Association (OCA)
@@ -9,11 +9,11 @@ License: AGPL-3
9
9
  Platform: UNKNOWN
10
10
  Classifier: Programming Language :: Python
11
11
  Classifier: Framework :: Odoo
12
- Classifier: Framework :: Odoo :: 15.0
12
+ Classifier: Framework :: Odoo :: 16.0
13
13
  Classifier: License :: OSI Approved :: GNU Affero General Public License v3
14
- Requires-Python: >=3.8
15
- Requires-Dist: odoo-addon-quality-control-oca <15.1dev,>=15.0dev
16
- Requires-Dist: odoo <15.1dev,>=15.0a
14
+ Requires-Python: >=3.10
15
+ Requires-Dist: odoo-addon-quality-control-oca <16.1dev,>=16.0dev
16
+ Requires-Dist: odoo <16.1dev,>=16.0a
17
17
 
18
18
  =============================
19
19
  Quality control - Stock (OCA)
@@ -24,7 +24,7 @@ Quality control - Stock (OCA)
24
24
  !! This file is generated by oca-gen-addon-readme !!
25
25
  !! changes will be overwritten. !!
26
26
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27
- !! source digest: sha256:6a7081017d1705e47f1c601056c9db6f3dd3368a22519f03457e7f239cf92505
27
+ !! source digest: sha256:7430252681826a0a0f9a869194458e38ac20900898f0f8ff40422f13702695ee
28
28
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29
29
 
30
30
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -34,13 +34,13 @@ Quality control - Stock (OCA)
34
34
  :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
35
35
  :alt: License: AGPL-3
36
36
  .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github
37
- :target: https://github.com/OCA/manufacture/tree/15.0/quality_control_stock_oca
37
+ :target: https://github.com/OCA/manufacture/tree/16.0/quality_control_stock_oca
38
38
  :alt: OCA/manufacture
39
39
  .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
40
- :target: https://translation.odoo-community.org/projects/manufacture-15-0/manufacture-15-0-quality_control_stock_oca
40
+ :target: https://translation.odoo-community.org/projects/manufacture-16-0/manufacture-16-0-quality_control_stock_oca
41
41
  :alt: Translate me on Weblate
42
42
  .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
43
- :target: https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=15.0
43
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=16.0
44
44
  :alt: Try me on Runboat
45
45
 
46
46
  |badge1| |badge2| |badge3| |badge4| |badge5|
@@ -65,7 +65,7 @@ Bug Tracker
65
65
  Bugs are tracked on `GitHub Issues <https://github.com/OCA/manufacture/issues>`_.
66
66
  In case of trouble, please check there if your issue has already been reported.
67
67
  If you spotted it first, help us to smash it by providing a detailed and welcomed
68
- `feedback <https://github.com/OCA/manufacture/issues/new?body=module:%20quality_control_stock_oca%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
68
+ `feedback <https://github.com/OCA/manufacture/issues/new?body=module:%20quality_control_stock_oca%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
69
69
 
70
70
  Do not contact contributors directly about support or help with technical issues.
71
71
 
@@ -106,7 +106,7 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
106
106
  mission is to support the collaborative development of Odoo features and
107
107
  promote its widespread use.
108
108
 
109
- This module is part of the `OCA/manufacture <https://github.com/OCA/manufacture/tree/15.0/quality_control_stock_oca>`_ project on GitHub.
109
+ This module is part of the `OCA/manufacture <https://github.com/OCA/manufacture/tree/16.0/quality_control_stock_oca>`_ project on GitHub.
110
110
 
111
111
  You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
112
112
 
@@ -1,10 +1,10 @@
1
- odoo/addons/quality_control_stock_oca/README.rst,sha256=U0BBTCuGommLaXo0VPLBCEMlhcEx6eMW-2U2nc2IOIc,3407
1
+ odoo/addons/quality_control_stock_oca/README.rst,sha256=a7HyZ7LysbKD8PO_TFvI4RR9e0YUh3J7pabwjvxPAGk,3407
2
2
  odoo/addons/quality_control_stock_oca/__init__.py,sha256=9AmVrugo-4RwxFv5RtciHQyj_eQwAZj8d_TT44vxLJE,504
3
- odoo/addons/quality_control_stock_oca/__manifest__.py,sha256=Y_HNZubOxRJR5a5jQ_yxX0DyZqVLsqThcFF5Xkvjy6Q,846
4
- odoo/addons/quality_control_stock_oca/i18n/ca.po,sha256=o_OuRQWGAMlAocjMbJyXT_1mHn2gHcDzBh89u_tzNwE,6161
5
- odoo/addons/quality_control_stock_oca/i18n/de.po,sha256=gXX34vIid2D1b2s9rEUGILG5poiPWDR9R4LC1avJnN4,7049
6
- odoo/addons/quality_control_stock_oca/i18n/el_GR.po,sha256=-xCxELFGLRJ7zFfAemBaWtluOpuK98dwymYMiV8p6d4,6174
7
- odoo/addons/quality_control_stock_oca/i18n/es.po,sha256=-ZKeVTHbS943cj4podrhobqvX9c009f_kD-4PimsJYo,6874
3
+ odoo/addons/quality_control_stock_oca/__manifest__.py,sha256=auG24sJKJB2AsM-Y8XsdINtzEppOYsoKU_pnVby2AYU,883
4
+ odoo/addons/quality_control_stock_oca/i18n/ca.po,sha256=R1s7jJCe0Gh8E39pmdr1nfVFkw7IBLQI5DZpRtsLIH8,6084
5
+ odoo/addons/quality_control_stock_oca/i18n/de.po,sha256=NPN2YapKjudiSK4fejhh78ybJyjjtuqQ0xeY-Tzmz2E,6972
6
+ odoo/addons/quality_control_stock_oca/i18n/el_GR.po,sha256=elsAV-RfZ4F-VB_FrvihwG0X-7Wb2GGeZN9pojHthnE,6097
7
+ odoo/addons/quality_control_stock_oca/i18n/es.po,sha256=l4L80SMmuvi_IPqqz8kTQbz5J_Pqy1Ah7UD7SiAwyCQ,6797
8
8
  odoo/addons/quality_control_stock_oca/i18n/es_AR.po,sha256=wrBKPasNwr0rR5vIFY_p7iuAuuZLID2IaisUAHUWW1g,6195
9
9
  odoo/addons/quality_control_stock_oca/i18n/es_ES.po,sha256=u4jNy71FhJjoAtuQ0HKl-wmCoji-agchIaOaRMg11WU,6179
10
10
  odoo/addons/quality_control_stock_oca/i18n/es_MX.po,sha256=1keRLmAu4nBco5nje0WTuiLMVsjvmDiVMhzcuHLRHMQ,6176
@@ -21,7 +21,7 @@ odoo/addons/quality_control_stock_oca/i18n/nl.po,sha256=GXj_8kRaZqhpJQ-MVMUgSH97
21
21
  odoo/addons/quality_control_stock_oca/i18n/nl_NL.po,sha256=xcwiN2sCQS3W1P0M5aE5Tp-W9G8ZBCq8krHeSf6Fae8,6179
22
22
  odoo/addons/quality_control_stock_oca/i18n/pt.po,sha256=Ly04eCrZzExYkEKxfUPuXRESMWf-KaKMXt4vW3bUKtI,6164
23
23
  odoo/addons/quality_control_stock_oca/i18n/pt_BR.po,sha256=lIZFtpk7g6-RcJwQcXiswItLCRdg-rwDlHojGmzXcHE,6792
24
- odoo/addons/quality_control_stock_oca/i18n/quality_control_stock_oca.pot,sha256=NHJOm6DGMu7JgNRbd56wZqZdl3UBDmVrHGkW2h6XJV0,5874
24
+ odoo/addons/quality_control_stock_oca/i18n/quality_control_stock_oca.pot,sha256=IOwQn9wLbK-JEeWXkSMP_H_AnozSWm22ouKW58dvGTg,5797
25
25
  odoo/addons/quality_control_stock_oca/i18n/ro.po,sha256=jOpxXvRpgwzQd9SWiRQLFpJxLbQcWBmpQMdSWi8OM-E,6206
26
26
  odoo/addons/quality_control_stock_oca/i18n/ru.po,sha256=fKaDRzsDEDaOocdBAlGyaUDyhj-V1PyY0k6jgqRLMU0,6305
27
27
  odoo/addons/quality_control_stock_oca/i18n/sk.po,sha256=rObaplMYi1YFCfDD-xW-RDjq1AIHCDNGgvBW-qmeJiA,6187
@@ -31,22 +31,23 @@ odoo/addons/quality_control_stock_oca/i18n/tr_TR.po,sha256=-TPDLS0tnjF1hDRXTataC
31
31
  odoo/addons/quality_control_stock_oca/i18n/vi_VN.po,sha256=pCaoaXZ4TjjTpuCI5DfBbfXI54Cplr2K75inuZC2Q3w,6357
32
32
  odoo/addons/quality_control_stock_oca/i18n/zh_CN.po,sha256=MEjTg3DLIz13vxqT0FNhsrD9IIywWI_BKx0zMqHaCv0,6168
33
33
  odoo/addons/quality_control_stock_oca/models/__init__.py,sha256=5W6REeWDL4dOmC9jP6Re4A8OjdXBgFl12DYLtxyTvNU,215
34
- odoo/addons/quality_control_stock_oca/models/qc_inspection.py,sha256=HfGzCrQPGK0p1z8US8alN9aoD3a3NUkt3s3oh4fx-_w,4146
34
+ odoo/addons/quality_control_stock_oca/models/qc_inspection.py,sha256=0k_VxBirjYhC12g0U2ESTpRIw6hbQVpPt5oFgCgjeUE,3295
35
35
  odoo/addons/quality_control_stock_oca/models/qc_trigger.py,sha256=WzRANS7KMEGStII3wlJ-x3zCn9-tnP890VfrDlcydAs,391
36
- odoo/addons/quality_control_stock_oca/models/stock_picking.py,sha256=hmLRX6gIqxIp75-kBIv5JuDCa3WyQLwIw0FxC2BBixI,3238
37
- odoo/addons/quality_control_stock_oca/models/stock_picking_type.py,sha256=02bTFmPm1dhxA6Y1Stu3MFNzrcN7j3snF00_vPBCVfs,1261
38
- odoo/addons/quality_control_stock_oca/models/stock_production_lot.py,sha256=iGaDxubKVuYHTblnRfY_wbQFZRGDH7vb6R6_Xt1SxTw,1934
36
+ odoo/addons/quality_control_stock_oca/models/stock_picking.py,sha256=bVjsKurJU7s2xlxgqyxKgt_APT3KKVs3mKH1Pea3OOY,3236
37
+ odoo/addons/quality_control_stock_oca/models/stock_picking_type.py,sha256=A9R0O24GM4hRNv3k-Hi9kHE2kixoyH8vgk8qQytkOeA,1361
38
+ odoo/addons/quality_control_stock_oca/models/stock_production_lot.py,sha256=wTlHrBL7F2TyTY0CMen-8JW3TYnI5Wup6iEYhEoCe3o,1923
39
39
  odoo/addons/quality_control_stock_oca/readme/CONTRIBUTORS.rst,sha256=SOMUd5YEC6mcdjdBxWciyPwJKj4zNkeYvJmltr742A8,312
40
40
  odoo/addons/quality_control_stock_oca/readme/DESCRIPTION.rst,sha256=AejtLJR6otMvuF5R56p6vXwDaMWE1dW3lg6tLEIyKsQ,152
41
41
  odoo/addons/quality_control_stock_oca/readme/ROADMAP.rst,sha256=uLH6_pi5ctOOlycssnwF2ggGwjYJMOmfzmCoTsFMonA,32
42
42
  odoo/addons/quality_control_stock_oca/static/description/icon.png,sha256=x3L6LkPBxlV3mIf1zIvHJZloOgNUDiOBOaFgqggexoo,9215
43
- odoo/addons/quality_control_stock_oca/static/description/index.html,sha256=_jui8YTqWYqQDBq46KSbg04uiLQz8SLUdJjub7Itrlw,13372
43
+ odoo/addons/quality_control_stock_oca/static/description/index.html,sha256=P7aboocbBx7qRw9YPlqKXL66Z-sRY4PGAZzMNtMZZBY,13372
44
44
  odoo/addons/quality_control_stock_oca/tests/__init__.py,sha256=DoOTjy4_SOM0tQiBUfjxHikooStDz_NrSluVnfx07bk,107
45
- odoo/addons/quality_control_stock_oca/tests/test_quality_control_stock.py,sha256=HXCwXDabjlj7Mwd9HU1MP9L4ZivzOyZDfB30N8Cpwts,12599
45
+ odoo/addons/quality_control_stock_oca/tests/test_quality_control_stock.py,sha256=IgAw4ZgeNb-ixx_KH1B6CG9IdSbtlwMRbzZ3GS-1giM,11608
46
46
  odoo/addons/quality_control_stock_oca/views/qc_inspection_view.xml,sha256=zERew9HMxyarqS9m41JjPnPLoadTx-L5fys9iO3ZP4Q,3936
47
- odoo/addons/quality_control_stock_oca/views/stock_picking_view.xml,sha256=VjxRQr4N4MwFFrB--WxM_wWJ1vQNIvahJL6OycTQTL0,3698
48
- odoo/addons/quality_control_stock_oca/views/stock_production_lot_view.xml,sha256=f3az4MxvO6ltM-fribepFJAwtsMkPX-2P-P3tIQiqw8,3651
49
- odoo_addon_quality_control_stock_oca-15.0.1.0.0.5.dist-info/METADATA,sha256=sGU1yv6IfEPwoSqEmLn0b-T2eYJzU9SpdCqAzUBfe6k,4098
50
- odoo_addon_quality_control_stock_oca-15.0.1.0.0.5.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
51
- odoo_addon_quality_control_stock_oca-15.0.1.0.0.5.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
52
- odoo_addon_quality_control_stock_oca-15.0.1.0.0.5.dist-info/RECORD,,
47
+ odoo/addons/quality_control_stock_oca/views/qc_trigger_view.xml,sha256=Iva-jto2Yr6qcIsSFnVdugjhUFfERUzPeKwWnpfsJkQ,527
48
+ odoo/addons/quality_control_stock_oca/views/stock_picking_view.xml,sha256=jXaLi5xFle8cDNWYqmQduu_HNpGWMPAyBO2RW887s5E,4015
49
+ odoo/addons/quality_control_stock_oca/views/stock_production_lot_view.xml,sha256=LYFOchJ8n89vVy4C840k8uedbXPH3KkqhtjcfwUws6M,3946
50
+ odoo_addon_quality_control_stock_oca-16.0.1.0.0.3.dist-info/METADATA,sha256=PnS_evB-cK6IHXc7lf5FY2p0F9-TKCehOyJOnAgfo7g,4099
51
+ odoo_addon_quality_control_stock_oca-16.0.1.0.0.3.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
52
+ odoo_addon_quality_control_stock_oca-16.0.1.0.0.3.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
53
+ odoo_addon_quality_control_stock_oca-16.0.1.0.0.3.dist-info/RECORD,,