From 1e842b2fb7e399e234acbc37ee226fab4180a3dd Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Tue, 5 May 2020 23:29:58 +0200
Subject: [PATCH 01/43] Add module purchase_reception_status
---
purchase_reception_status/__init__.py | 1 +
purchase_reception_status/__manifest__.py | 19 +++++++
purchase_reception_status/models/__init__.py | 1 +
.../models/purchase_order.py | 50 ++++++++++++++++++
.../readme/CONTRIBUTORS.rst | 1 +
.../readme/DESCRIPTION.rst | 5 ++
purchase_reception_status/readme/USAGE.rst | 1 +
.../views/purchase_order.xml | 51 +++++++++++++++++++
8 files changed, 129 insertions(+)
create mode 100644 purchase_reception_status/__init__.py
create mode 100644 purchase_reception_status/__manifest__.py
create mode 100644 purchase_reception_status/models/__init__.py
create mode 100644 purchase_reception_status/models/purchase_order.py
create mode 100644 purchase_reception_status/readme/CONTRIBUTORS.rst
create mode 100644 purchase_reception_status/readme/DESCRIPTION.rst
create mode 100644 purchase_reception_status/readme/USAGE.rst
create mode 100644 purchase_reception_status/views/purchase_order.xml
diff --git a/purchase_reception_status/__init__.py b/purchase_reception_status/__init__.py
new file mode 100644
index 00000000000..0650744f6bc
--- /dev/null
+++ b/purchase_reception_status/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/purchase_reception_status/__manifest__.py b/purchase_reception_status/__manifest__.py
new file mode 100644
index 00000000000..2c4e329bb7f
--- /dev/null
+++ b/purchase_reception_status/__manifest__.py
@@ -0,0 +1,19 @@
+# Copyright 2020 Akretion France (http://www.akretion.com/)
+# @author: Alexis de Lattre
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+{
+ 'name': 'Purchase Reception Status',
+ 'version': '12.0.1.0.0',
+ 'category': 'Purchases',
+ 'license': 'AGPL-3',
+ 'summary': 'Add reception status on purchase orders',
+ 'author': 'Akretion,Odoo Community Association (OCA)',
+ 'maintainers': ['alexis-via'],
+ 'website': 'https://github.com/OCA/purchase-workflow',
+ 'depends': ['purchase'],
+ 'data': [
+ 'views/purchase_order.xml',
+ ],
+ 'installable': True,
+}
diff --git a/purchase_reception_status/models/__init__.py b/purchase_reception_status/models/__init__.py
new file mode 100644
index 00000000000..9f03530643d
--- /dev/null
+++ b/purchase_reception_status/models/__init__.py
@@ -0,0 +1 @@
+from . import purchase_order
diff --git a/purchase_reception_status/models/purchase_order.py b/purchase_reception_status/models/purchase_order.py
new file mode 100644
index 00000000000..5e7facc7a2d
--- /dev/null
+++ b/purchase_reception_status/models/purchase_order.py
@@ -0,0 +1,50 @@
+# Copyright 2020 Akretion France (http://www.akretion.com/)
+# @author: Alexis de Lattre
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from odoo import api, fields, models
+from odoo.tools import float_compare
+
+
+class PurchaseOrder(models.Model):
+ _inherit = 'purchase.order'
+
+ reception_status = fields.Selection([
+ ('no', 'Nothing Received'),
+ ('partial', 'Partially Received'),
+ ('received', 'Fully Received'),
+ ], compute='_compute_reception_status',
+ string='Reception Status', store=True)
+ force_received = fields.Boolean(
+ string='Force Received',
+ readonly=True, states={'done': [('readonly', False)]}, copy=False,
+ help="If true, the reception status will be forced to Fully Received, "
+ "even if some lines are not fully received. "
+ "To be able to modify this field, you must first lock the order.")
+
+ @api.depends(
+ 'state', 'force_received',
+ 'order_line.qty_received', 'order_line.product_qty')
+ def _compute_reception_status(self):
+ prec = self.env['decimal.precision'].precision_get(
+ 'Product Unit of Measure')
+ for order in self:
+ status = 'no'
+ if order.state in ('purchase', 'done'):
+ if order.force_received:
+ status = 'received'
+ elif all([
+ float_compare(
+ line.qty_received,
+ line.product_qty,
+ precision_digits=prec) >= 0
+ for line in order.order_line]):
+ status = 'received'
+ elif any([
+ float_compare(
+ line.qty_received,
+ 0,
+ precision_digits=prec) > 0
+ for line in order.order_line]):
+ status = 'partial'
+ order.reception_status = status
diff --git a/purchase_reception_status/readme/CONTRIBUTORS.rst b/purchase_reception_status/readme/CONTRIBUTORS.rst
new file mode 100644
index 00000000000..ff65d68ce6d
--- /dev/null
+++ b/purchase_reception_status/readme/CONTRIBUTORS.rst
@@ -0,0 +1 @@
+* Alexis de Lattre
diff --git a/purchase_reception_status/readme/DESCRIPTION.rst b/purchase_reception_status/readme/DESCRIPTION.rst
new file mode 100644
index 00000000000..285d3626d25
--- /dev/null
+++ b/purchase_reception_status/readme/DESCRIPTION.rst
@@ -0,0 +1,5 @@
+This module adds a field *Receiption Status* on purchase orders. On a confirmed purchase order, it can have 3 different values:
+
+* Nothing Received
+* Partially Received
+* Fully Received
diff --git a/purchase_reception_status/readme/USAGE.rst b/purchase_reception_status/readme/USAGE.rst
new file mode 100644
index 00000000000..8af96fb5f2a
--- /dev/null
+++ b/purchase_reception_status/readme/USAGE.rst
@@ -0,0 +1 @@
+If you are part of the *Purchase Manager* group, you can force a confirmed purchase order to **Full Received** status: you should first *lock* the order, then check the field **Force Received** located in the *Other Information* tab.
diff --git a/purchase_reception_status/views/purchase_order.xml b/purchase_reception_status/views/purchase_order.xml
new file mode 100644
index 00000000000..e3fb00b27e6
--- /dev/null
+++ b/purchase_reception_status/views/purchase_order.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ received_status.purchase.order.form
+ purchase.order
+
+
+
+
+
+
+
+
+
+
+ received_status.purchase.order.tree
+ purchase.order
+
+
+
+
+
+
+
+
+
+ received_status.purchase.order.search
+ purchase.order
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From 28680f763da2f3ef3f122197cef9ca80e88eb937 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Wed, 6 May 2020 13:39:05 +0000
Subject: [PATCH 02/43] [UPD] Update purchase_reception_status.pot
---
.../i18n/purchase_reception_status.pot | 57 +++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 purchase_reception_status/i18n/purchase_reception_status.pot
diff --git a/purchase_reception_status/i18n/purchase_reception_status.pot b/purchase_reception_status/i18n/purchase_reception_status.pot
new file mode 100644
index 00000000000..2d2a5675089
--- /dev/null
+++ b/purchase_reception_status/i18n/purchase_reception_status.pot
@@ -0,0 +1,57 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * purchase_reception_status
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__force_received
+msgid "Force Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
+#: selection:purchase.order,reception_status:0
+msgid "Fully Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,help:purchase_reception_status.field_purchase_order__force_received
+msgid "If true, the reception status will be forced to Fully Received, even if some lines are not fully received. To be able to modify this field, you must first lock the order."
+msgstr ""
+
+#. module: purchase_reception_status
+#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
+msgid "Not Fully Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: selection:purchase.order,reception_status:0
+msgid "Nothing Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: selection:purchase.order,reception_status:0
+msgid "Partially Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model,name:purchase_reception_status.model_purchase_order
+msgid "Purchase Order"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__reception_status
+#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
+msgid "Reception Status"
+msgstr ""
+
From e40c6b635bd6476ff5143a8b2107bb6bb19c36dd Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 6 May 2020 14:23:35 +0000
Subject: [PATCH 03/43] [UPD] README.rst
---
purchase_reception_status/README.rst | 90 ++++
.../static/description/index.html | 431 ++++++++++++++++++
2 files changed, 521 insertions(+)
create mode 100644 purchase_reception_status/README.rst
create mode 100644 purchase_reception_status/static/description/index.html
diff --git a/purchase_reception_status/README.rst b/purchase_reception_status/README.rst
new file mode 100644
index 00000000000..5603de3ddff
--- /dev/null
+++ b/purchase_reception_status/README.rst
@@ -0,0 +1,90 @@
+=========================
+Purchase Reception Status
+=========================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
+ :target: https://github.com/OCA/purchase-workflow/tree/12.0/purchase_reception_status
+ :alt: OCA/purchase-workflow
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/purchase-workflow-12-0/purchase-workflow-12-0-purchase_reception_status
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/142/12.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module adds a field *Receiption Status* on purchase orders. On a confirmed purchase order, it can have 3 different values:
+
+* Nothing Received
+* Partially Received
+* Fully Received
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Usage
+=====
+
+If you are part of the *Purchase Manager* group, you can force a confirmed purchase order to **Full Received** status: you should first *lock* the order, then check the field **Force Received** located in the *Other Information* tab.
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Akretion
+
+Contributors
+~~~~~~~~~~~~
+
+* Alexis de Lattre
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+.. |maintainer-alexis-via| image:: https://github.com/alexis-via.png?size=40px
+ :target: https://github.com/alexis-via
+ :alt: alexis-via
+
+Current `maintainer `__:
+
+|maintainer-alexis-via|
+
+This module is part of the `OCA/purchase-workflow `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/purchase_reception_status/static/description/index.html b/purchase_reception_status/static/description/index.html
new file mode 100644
index 00000000000..1bc2a8757a0
--- /dev/null
+++ b/purchase_reception_status/static/description/index.html
@@ -0,0 +1,431 @@
+
+
+
+
+
+
+Purchase Reception Status
+
+
+
+
+
Purchase Reception Status
+
+
+

+
This module adds a field Receiption Status on purchase orders. On a confirmed purchase order, it can have 3 different values:
+
+- Nothing Received
+- Partially Received
+- Fully Received
+
+
Table of contents
+
+
+
+
If you are part of the Purchase Manager group, you can force a confirmed purchase order to Full Received status: you should first lock the order, then check the field Force Received located in the Other Information tab.
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+

+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
Current maintainer:
+

+
This module is part of the OCA/purchase-workflow project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
From 7461a689d68e2bd2bd02e9d078d674924304d776 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 6 May 2020 14:23:35 +0000
Subject: [PATCH 04/43] [ADD] icon.png
---
.../static/description/icon.png | Bin 0 -> 9455 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 purchase_reception_status/static/description/icon.png
diff --git a/purchase_reception_status/static/description/icon.png b/purchase_reception_status/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
From 78e5344a880e18c73b8fe869eead9a318deadce0 Mon Sep 17 00:00:00 2001
From: Radovan Skolnik
Date: Sat, 23 May 2020 20:40:46 +0200
Subject: [PATCH 05/43] [IMP] purchase_reception_status: black, isort, prettier
---
purchase_reception_status/__manifest__.py | 24 +++--
.../models/purchase_order.py | 69 ++++++++------
.../views/purchase_order.xml | 93 ++++++++++---------
3 files changed, 101 insertions(+), 85 deletions(-)
diff --git a/purchase_reception_status/__manifest__.py b/purchase_reception_status/__manifest__.py
index 2c4e329bb7f..84756977d33 100644
--- a/purchase_reception_status/__manifest__.py
+++ b/purchase_reception_status/__manifest__.py
@@ -3,17 +3,15 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
- 'name': 'Purchase Reception Status',
- 'version': '12.0.1.0.0',
- 'category': 'Purchases',
- 'license': 'AGPL-3',
- 'summary': 'Add reception status on purchase orders',
- 'author': 'Akretion,Odoo Community Association (OCA)',
- 'maintainers': ['alexis-via'],
- 'website': 'https://github.com/OCA/purchase-workflow',
- 'depends': ['purchase'],
- 'data': [
- 'views/purchase_order.xml',
- ],
- 'installable': True,
+ "name": "Purchase Reception Status",
+ "version": "12.0.1.0.0",
+ "category": "Purchases",
+ "license": "AGPL-3",
+ "summary": "Add reception status on purchase orders",
+ "author": "Akretion,Odoo Community Association (OCA)",
+ "maintainers": ["alexis-via"],
+ "website": "https://github.com/OCA/purchase-workflow",
+ "depends": ["purchase"],
+ "data": ["views/purchase_order.xml",],
+ "installable": True,
}
diff --git a/purchase_reception_status/models/purchase_order.py b/purchase_reception_status/models/purchase_order.py
index 5e7facc7a2d..5f9da770b55 100644
--- a/purchase_reception_status/models/purchase_order.py
+++ b/purchase_reception_status/models/purchase_order.py
@@ -7,44 +7,53 @@
class PurchaseOrder(models.Model):
- _inherit = 'purchase.order'
+ _inherit = "purchase.order"
- reception_status = fields.Selection([
- ('no', 'Nothing Received'),
- ('partial', 'Partially Received'),
- ('received', 'Fully Received'),
- ], compute='_compute_reception_status',
- string='Reception Status', store=True)
+ reception_status = fields.Selection(
+ [
+ ("no", "Nothing Received"),
+ ("partial", "Partially Received"),
+ ("received", "Fully Received"),
+ ],
+ compute="_compute_reception_status",
+ string="Reception Status",
+ store=True,
+ )
force_received = fields.Boolean(
- string='Force Received',
- readonly=True, states={'done': [('readonly', False)]}, copy=False,
+ string="Force Received",
+ readonly=True,
+ states={"done": [("readonly", False)]},
+ copy=False,
help="If true, the reception status will be forced to Fully Received, "
"even if some lines are not fully received. "
- "To be able to modify this field, you must first lock the order.")
+ "To be able to modify this field, you must first lock the order.",
+ )
@api.depends(
- 'state', 'force_received',
- 'order_line.qty_received', 'order_line.product_qty')
+ "state", "force_received", "order_line.qty_received", "order_line.product_qty"
+ )
def _compute_reception_status(self):
- prec = self.env['decimal.precision'].precision_get(
- 'Product Unit of Measure')
+ prec = self.env["decimal.precision"].precision_get("Product Unit of Measure")
for order in self:
- status = 'no'
- if order.state in ('purchase', 'done'):
+ status = "no"
+ if order.state in ("purchase", "done"):
if order.force_received:
- status = 'received'
- elif all([
+ status = "received"
+ elif all(
+ [
float_compare(
- line.qty_received,
- line.product_qty,
- precision_digits=prec) >= 0
- for line in order.order_line]):
- status = 'received'
- elif any([
- float_compare(
- line.qty_received,
- 0,
- precision_digits=prec) > 0
- for line in order.order_line]):
- status = 'partial'
+ line.qty_received, line.product_qty, precision_digits=prec
+ )
+ >= 0
+ for line in order.order_line
+ ]
+ ):
+ status = "received"
+ elif any(
+ [
+ float_compare(line.qty_received, 0, precision_digits=prec) > 0
+ for line in order.order_line
+ ]
+ ):
+ status = "partial"
order.reception_status = status
diff --git a/purchase_reception_status/views/purchase_order.xml b/purchase_reception_status/views/purchase_order.xml
index e3fb00b27e6..d68659952c7 100644
--- a/purchase_reception_status/views/purchase_order.xml
+++ b/purchase_reception_status/views/purchase_order.xml
@@ -1,51 +1,60 @@
-
+
-
-
-
-
- received_status.purchase.order.form
- purchase.order
-
-
-
-
-
+
+ received_status.purchase.order.form
+ purchase.order
+
+
+
+
+
+
-
-
-
-
- received_status.purchase.order.tree
- purchase.order
-
-
-
-
+
+
+ received_status.purchase.order.tree
+ purchase.order
+
+
+
+
+
-
-
-
-
- received_status.purchase.order.search
- purchase.order
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ received_status.purchase.order.search
+ purchase.order
+
+
+
+
+
+
+
+
+
+
+
+
From 7c2f292d3fb1b385cc6cd19f7c4731ed5cef2276 Mon Sep 17 00:00:00 2001
From: Radovan Skolnik
Date: Sun, 24 May 2020 00:32:28 +0200
Subject: [PATCH 06/43] [MIG] purchase_receptions_status: Migration to 13.0
---
purchase_reception_status/README.rst | 8 ++++----
purchase_reception_status/__manifest__.py | 4 ++--
.../i18n/purchase_reception_status.pot | 2 +-
.../static/description/index.html | 6 +++---
purchase_reception_status/views/purchase_order.xml | 12 +++++++++++-
5 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/purchase_reception_status/README.rst b/purchase_reception_status/README.rst
index 5603de3ddff..2a27866368a 100644
--- a/purchase_reception_status/README.rst
+++ b/purchase_reception_status/README.rst
@@ -14,13 +14,13 @@ Purchase Reception Status
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
- :target: https://github.com/OCA/purchase-workflow/tree/12.0/purchase_reception_status
+ :target: https://github.com/OCA/purchase-workflow/tree/13.0/purchase_reception_status
:alt: OCA/purchase-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/purchase-workflow-12-0/purchase-workflow-12-0-purchase_reception_status
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/142/12.0
+ :target: https://runbot.odoo-community.org/runbot/142/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -47,7 +47,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -85,6 +85,6 @@ Current `maintainer `__:
|maintainer-alexis-via|
-This module is part of the `OCA/purchase-workflow `_ project on GitHub.
+This module is part of the `OCA/purchase-workflow `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/purchase_reception_status/__manifest__.py b/purchase_reception_status/__manifest__.py
index 84756977d33..62524282dd3 100644
--- a/purchase_reception_status/__manifest__.py
+++ b/purchase_reception_status/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "Purchase Reception Status",
- "version": "12.0.1.0.0",
+ "version": "13.0.1.0.0",
"category": "Purchases",
"license": "AGPL-3",
"summary": "Add reception status on purchase orders",
@@ -12,6 +12,6 @@
"maintainers": ["alexis-via"],
"website": "https://github.com/OCA/purchase-workflow",
"depends": ["purchase"],
- "data": ["views/purchase_order.xml",],
+ "data": ["views/purchase_order.xml"],
"installable": True,
}
diff --git a/purchase_reception_status/i18n/purchase_reception_status.pot b/purchase_reception_status/i18n/purchase_reception_status.pot
index 2d2a5675089..1eff77f55e9 100644
--- a/purchase_reception_status/i18n/purchase_reception_status.pot
+++ b/purchase_reception_status/i18n/purchase_reception_status.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Language-Team: \n"
diff --git a/purchase_reception_status/static/description/index.html b/purchase_reception_status/static/description/index.html
index 1bc2a8757a0..7d5ebec62b8 100644
--- a/purchase_reception_status/static/description/index.html
+++ b/purchase_reception_status/static/description/index.html
@@ -367,7 +367,7 @@ Purchase Reception Status
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module adds a field Receiption Status on purchase orders. On a confirmed purchase order, it can have 3 different values:
- Nothing Received
@@ -396,7 +396,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
diff --git a/purchase_reception_status/views/purchase_order.xml b/purchase_reception_status/views/purchase_order.xml
index d68659952c7..b855040dbc2 100644
--- a/purchase_reception_status/views/purchase_order.xml
+++ b/purchase_reception_status/views/purchase_order.xml
@@ -30,10 +30,20 @@
+
+ received_status.purchase.order.tree
+ purchase.order
+
+
+
+
+
+
+
received_status.purchase.order.search
purchase.order
-
+
Date: Sat, 7 Nov 2020 15:08:05 +0000
Subject: [PATCH 07/43] Added translation using Weblate (Italian)
---
purchase_reception_status/i18n/it.po | 60 ++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
create mode 100644 purchase_reception_status/i18n/it.po
diff --git a/purchase_reception_status/i18n/it.po b/purchase_reception_status/i18n/it.po
new file mode 100644
index 00000000000..f164be79955
--- /dev/null
+++ b/purchase_reception_status/i18n/it.po
@@ -0,0 +1,60 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * purchase_reception_status
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 13.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__force_received
+msgid "Force Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__received
+#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
+msgid "Fully Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,help:purchase_reception_status.field_purchase_order__force_received
+msgid ""
+"If true, the reception status will be forced to Fully Received, even if some"
+" lines are not fully received. To be able to modify this field, you must "
+"first lock the order."
+msgstr ""
+
+#. module: purchase_reception_status
+#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
+msgid "Not Fully Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__no
+msgid "Nothing Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__partial
+msgid "Partially Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model,name:purchase_reception_status.model_purchase_order
+msgid "Purchase Order"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__reception_status
+#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
+msgid "Reception Status"
+msgstr ""
From 09111bece9b65e75958c0bee787b05f1e4d8fe4b Mon Sep 17 00:00:00 2001
From: Alessandro Fiorino
Date: Sat, 7 Nov 2020 15:08:22 +0000
Subject: [PATCH 08/43] Translated using Weblate (Italian)
Currently translated at 100.0% (8 of 8 strings)
Translation: purchase-workflow-13.0/purchase-workflow-13.0-purchase_reception_status
Translate-URL: https://translation.odoo-community.org/projects/purchase-workflow-13-0/purchase-workflow-13-0-purchase_reception_status/it/
---
purchase_reception_status/i18n/it.po | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/purchase_reception_status/i18n/it.po b/purchase_reception_status/i18n/it.po
index f164be79955..5a5d82e949b 100644
--- a/purchase_reception_status/i18n/it.po
+++ b/purchase_reception_status/i18n/it.po
@@ -6,24 +6,26 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2020-11-07 18:08+0000\n"
+"Last-Translator: Alessandro Fiorino \n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.10\n"
#. module: purchase_reception_status
#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__force_received
msgid "Force Received"
-msgstr ""
+msgstr "Forza Ricevuto"
#. module: purchase_reception_status
#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__received
#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
msgid "Fully Received"
-msgstr ""
+msgstr "Ricevuto Completamente"
#. module: purchase_reception_status
#: model:ir.model.fields,help:purchase_reception_status.field_purchase_order__force_received
@@ -32,29 +34,32 @@ msgid ""
" lines are not fully received. To be able to modify this field, you must "
"first lock the order."
msgstr ""
+"Se vero, lo stato di ricezione sarà forzato a Completamente Ricevuto, anche "
+"se alcune righe non sono state completamente ricevute. Per essere in grado "
+"di modificare questo campo, devi prima aver bloccato l'ordine."
#. module: purchase_reception_status
#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
msgid "Not Fully Received"
-msgstr ""
+msgstr "Ricevuto Parzialmente"
#. module: purchase_reception_status
#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__no
msgid "Nothing Received"
-msgstr ""
+msgstr "Nulla Ricevuto"
#. module: purchase_reception_status
#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__partial
msgid "Partially Received"
-msgstr ""
+msgstr "Ricevuto Parzialmente"
#. module: purchase_reception_status
#: model:ir.model,name:purchase_reception_status.model_purchase_order
msgid "Purchase Order"
-msgstr ""
+msgstr "Ordine d'Acquisto"
#. module: purchase_reception_status
#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__reception_status
#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
msgid "Reception Status"
-msgstr ""
+msgstr "Stato Ricezione"
From 8a7dcde48f2cc77779bd2bf3f33d3ba8d76e07c4 Mon Sep 17 00:00:00 2001
From: koen
Date: Tue, 5 Jan 2021 17:09:53 +0100
Subject: [PATCH 09/43] [14.0-mig-purchase] [MIG] purchase_reception_status:
Migration to 14.0
---
purchase_reception_status/README.rst | 6 +++---
purchase_reception_status/__manifest__.py | 2 +-
purchase_reception_status/static/description/index.html | 6 +++---
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/purchase_reception_status/README.rst b/purchase_reception_status/README.rst
index 2a27866368a..977a3946350 100644
--- a/purchase_reception_status/README.rst
+++ b/purchase_reception_status/README.rst
@@ -23,7 +23,7 @@ Purchase Reception Status
:target: https://runbot.odoo-community.org/runbot/142/13.0
:alt: Try me on Runbot
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This module adds a field *Receiption Status* on purchase orders. On a confirmed purchase order, it can have 3 different values:
@@ -83,8 +83,8 @@ promote its widespread use.
Current `maintainer `__:
-|maintainer-alexis-via|
+|maintainer-alexis-via|
-This module is part of the `OCA/purchase-workflow `_ project on GitHub.
+This module is part of the `OCA/purchase-workflow `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/purchase_reception_status/__manifest__.py b/purchase_reception_status/__manifest__.py
index 62524282dd3..a69b328fe32 100644
--- a/purchase_reception_status/__manifest__.py
+++ b/purchase_reception_status/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "Purchase Reception Status",
- "version": "13.0.1.0.0",
+ "version": "14.0.1.0.0",
"category": "Purchases",
"license": "AGPL-3",
"summary": "Add reception status on purchase orders",
diff --git a/purchase_reception_status/static/description/index.html b/purchase_reception_status/static/description/index.html
index 7d5ebec62b8..967deb300f3 100644
--- a/purchase_reception_status/static/description/index.html
+++ b/purchase_reception_status/static/description/index.html
@@ -367,7 +367,7 @@ Purchase Reception Status
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module adds a field Receiption Status on purchase orders. On a confirmed purchase order, it can have 3 different values:
- Nothing Received
@@ -396,7 +396,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
From f7662c207305a1f70167ac8a20c3074523a86829 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Fri, 12 Mar 2021 06:31:29 +0000
Subject: [PATCH 10/43] [UPD] Update purchase_reception_status.pot
---
.../i18n/purchase_reception_status.pot | 33 ++++++++++++++-----
1 file changed, 25 insertions(+), 8 deletions(-)
diff --git a/purchase_reception_status/i18n/purchase_reception_status.pot b/purchase_reception_status/i18n/purchase_reception_status.pot
index 1eff77f55e9..15cd2cd7063 100644
--- a/purchase_reception_status/i18n/purchase_reception_status.pot
+++ b/purchase_reception_status/i18n/purchase_reception_status.pot
@@ -1,32 +1,50 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * purchase_reception_status
+# * purchase_reception_status
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: <>\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__display_name
+msgid "Display Name"
+msgstr ""
+
#. module: purchase_reception_status
#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__force_received
msgid "Force Received"
msgstr ""
#. module: purchase_reception_status
+#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__received
#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
-#: selection:purchase.order,reception_status:0
msgid "Fully Received"
msgstr ""
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__id
+msgid "ID"
+msgstr ""
+
#. module: purchase_reception_status
#: model:ir.model.fields,help:purchase_reception_status.field_purchase_order__force_received
-msgid "If true, the reception status will be forced to Fully Received, even if some lines are not fully received. To be able to modify this field, you must first lock the order."
+msgid ""
+"If true, the reception status will be forced to Fully Received, even if some"
+" lines are not fully received. To be able to modify this field, you must "
+"first lock the order."
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order____last_update
+msgid "Last Modified on"
msgstr ""
#. module: purchase_reception_status
@@ -35,12 +53,12 @@ msgid "Not Fully Received"
msgstr ""
#. module: purchase_reception_status
-#: selection:purchase.order,reception_status:0
+#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__no
msgid "Nothing Received"
msgstr ""
#. module: purchase_reception_status
-#: selection:purchase.order,reception_status:0
+#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__partial
msgid "Partially Received"
msgstr ""
@@ -54,4 +72,3 @@ msgstr ""
#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
msgid "Reception Status"
msgstr ""
-
From fd796fb2d8641746f4632f6e8a6c637aa32a455f Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Fri, 12 Mar 2021 06:48:55 +0000
Subject: [PATCH 11/43] [UPD] README.rst
---
purchase_reception_status/README.rst | 12 ++++++------
.../static/description/index.html | 2 +-
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/purchase_reception_status/README.rst b/purchase_reception_status/README.rst
index 977a3946350..5e9262c5828 100644
--- a/purchase_reception_status/README.rst
+++ b/purchase_reception_status/README.rst
@@ -14,16 +14,16 @@ Purchase Reception Status
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
- :target: https://github.com/OCA/purchase-workflow/tree/13.0/purchase_reception_status
+ :target: https://github.com/OCA/purchase-workflow/tree/14.0/purchase_reception_status
:alt: OCA/purchase-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/purchase-workflow-12-0/purchase-workflow-12-0-purchase_reception_status
+ :target: https://translation.odoo-community.org/projects/purchase-workflow-14-0/purchase-workflow-14-0-purchase_reception_status
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/142/13.0
+ :target: https://runbot.odoo-community.org/runbot/142/14.0
:alt: Try me on Runbot
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This module adds a field *Receiption Status* on purchase orders. On a confirmed purchase order, it can have 3 different values:
@@ -47,7 +47,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -83,7 +83,7 @@ promote its widespread use.
Current `maintainer `__:
-|maintainer-alexis-via|
+|maintainer-alexis-via|
This module is part of the `OCA/purchase-workflow `_ project on GitHub.
diff --git a/purchase_reception_status/static/description/index.html b/purchase_reception_status/static/description/index.html
index 967deb300f3..d9de347bbf3 100644
--- a/purchase_reception_status/static/description/index.html
+++ b/purchase_reception_status/static/description/index.html
@@ -367,7 +367,7 @@ Purchase Reception Status
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module adds a field Receiption Status on purchase orders. On a confirmed purchase order, it can have 3 different values:
- Nothing Received
From 2195a75093e4de5da5d6ca8ac0e7c97c4b5814ff Mon Sep 17 00:00:00 2001
From: Emmanuel HURET
Date: Thu, 27 Jan 2022 09:16:36 +0000
Subject: [PATCH 12/43] Added translation using Weblate (French)
---
purchase_reception_status/i18n/fr.po | 75 ++++++++++++++++++++++++++++
1 file changed, 75 insertions(+)
create mode 100644 purchase_reception_status/i18n/fr.po
diff --git a/purchase_reception_status/i18n/fr.po b/purchase_reception_status/i18n/fr.po
new file mode 100644
index 00000000000..ce249e3f180
--- /dev/null
+++ b/purchase_reception_status/i18n/fr.po
@@ -0,0 +1,75 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * purchase_reception_status
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__force_received
+msgid "Force Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__received
+#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
+msgid "Fully Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__id
+msgid "ID"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,help:purchase_reception_status.field_purchase_order__force_received
+msgid ""
+"If true, the reception status will be forced to Fully Received, even if some"
+" lines are not fully received. To be able to modify this field, you must "
+"first lock the order."
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
+msgid "Not Fully Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__no
+msgid "Nothing Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields.selection,name:purchase_reception_status.selection__purchase_order__reception_status__partial
+msgid "Partially Received"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model,name:purchase_reception_status.model_purchase_order
+msgid "Purchase Order"
+msgstr ""
+
+#. module: purchase_reception_status
+#: model:ir.model.fields,field_description:purchase_reception_status.field_purchase_order__reception_status
+#: model_terms:ir.ui.view,arch_db:purchase_reception_status.view_purchase_order_filter
+msgid "Reception Status"
+msgstr ""
From 10e05d196c09abf23ca64d9e916dd9ecba720de9 Mon Sep 17 00:00:00 2001
From: Emmanuel HURET
Date: Wed, 9 Feb 2022 14:33:38 +0100
Subject: [PATCH 13/43] [MIG] purchase_reception_status: Migration to 15.0
---
purchase_reception_status/README.rst | 14 +++++++-------
purchase_reception_status/__manifest__.py | 2 +-
purchase_reception_status/models/purchase_order.py | 2 --
.../static/description/index.html | 8 ++++----
4 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/purchase_reception_status/README.rst b/purchase_reception_status/README.rst
index 5e9262c5828..426f9a38438 100644
--- a/purchase_reception_status/README.rst
+++ b/purchase_reception_status/README.rst
@@ -14,16 +14,16 @@ Purchase Reception Status
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
- :target: https://github.com/OCA/purchase-workflow/tree/14.0/purchase_reception_status
+ :target: https://github.com/OCA/purchase-workflow/tree/15.0/purchase_reception_status
:alt: OCA/purchase-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/purchase-workflow-14-0/purchase-workflow-14-0-purchase_reception_status
+ :target: https://translation.odoo-community.org/projects/purchase-workflow-15-0/purchase-workflow-15-0-purchase_reception_status
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/142/14.0
+ :target: https://runbot.odoo-community.org/runbot/142/15.0
:alt: Try me on Runbot
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This module adds a field *Receiption Status* on purchase orders. On a confirmed purchase order, it can have 3 different values:
@@ -47,7 +47,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -83,8 +83,8 @@ promote its widespread use.
Current `maintainer `__:
-|maintainer-alexis-via|
+|maintainer-alexis-via|
-This module is part of the `OCA/purchase-workflow `_ project on GitHub.
+This module is part of the `OCA/purchase-workflow `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/purchase_reception_status/__manifest__.py b/purchase_reception_status/__manifest__.py
index a69b328fe32..a6b99313c49 100644
--- a/purchase_reception_status/__manifest__.py
+++ b/purchase_reception_status/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "Purchase Reception Status",
- "version": "14.0.1.0.0",
+ "version": "15.0.1.0.0",
"category": "Purchases",
"license": "AGPL-3",
"summary": "Add reception status on purchase orders",
diff --git a/purchase_reception_status/models/purchase_order.py b/purchase_reception_status/models/purchase_order.py
index 5f9da770b55..f655aed4f8f 100644
--- a/purchase_reception_status/models/purchase_order.py
+++ b/purchase_reception_status/models/purchase_order.py
@@ -16,11 +16,9 @@ class PurchaseOrder(models.Model):
("received", "Fully Received"),
],
compute="_compute_reception_status",
- string="Reception Status",
store=True,
)
force_received = fields.Boolean(
- string="Force Received",
readonly=True,
states={"done": [("readonly", False)]},
copy=False,
diff --git a/purchase_reception_status/static/description/index.html b/purchase_reception_status/static/description/index.html
index d9de347bbf3..8649b8a3181 100644
--- a/purchase_reception_status/static/description/index.html
+++ b/purchase_reception_status/static/description/index.html
@@ -3,7 +3,7 @@
-
+
Purchase Reception Status
-
-
Purchase Reception Status
+
+
+
+
+
+
-
+
If you are part of the Purchase Manager group, you can force a
confirmed purchase order to Full Received status: you should first
lock the order, then check the field Force Received located in the
Other Information tab.
-
+
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
@@ -405,24 +411,26 @@
Do not contact contributors directly about support or help with technical issues.
-
+
-
+
This module is maintained by the OCA.
-

+
+
+
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
@@ -433,5 +441,6 @@
+
From 9de581ddb5109ca019f64af7a3487c051e173021 Mon Sep 17 00:00:00 2001
From: AaronHForgeFlow
Date: Wed, 10 Sep 2025 16:54:40 +0200
Subject: [PATCH 38/43] [MIG] purchase_reception_status: Migration to v18
---
purchase_reception_status/README.rst | 16 +++-----
purchase_reception_status/__manifest__.py | 2 +-
.../static/description/index.html | 41 ++++++++-----------
.../tests/test_purchase_reception_status.py | 3 +-
4 files changed, 25 insertions(+), 37 deletions(-)
diff --git a/purchase_reception_status/README.rst b/purchase_reception_status/README.rst
index 873987370b8..2619825a6bc 100644
--- a/purchase_reception_status/README.rst
+++ b/purchase_reception_status/README.rst
@@ -1,7 +1,3 @@
-.. image:: https://odoo-community.org/readme-banner-image
- :target: https://odoo-community.org/get-involved?utm_source=readme
- :alt: Odoo Community Association
-
=========================
Purchase Reception Status
=========================
@@ -17,17 +13,17 @@ Purchase Reception Status
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
-.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
- :target: https://github.com/OCA/purchase-workflow/tree/17.0/purchase_reception_status
+ :target: https://github.com/OCA/purchase-workflow/tree/18.0/purchase_reception_status
:alt: OCA/purchase-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/purchase-workflow-17-0/purchase-workflow-17-0-purchase_reception_status
+ :target: https://translation.odoo-community.org/projects/purchase-workflow-18-0/purchase-workflow-18-0-purchase_reception_status
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
- :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=17.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=18.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -58,7 +54,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -97,6 +93,6 @@ Current `maintainer `__:
|maintainer-alexis-via|
-This module is part of the `OCA/purchase-workflow `_ project on GitHub.
+This module is part of the `OCA/purchase-workflow `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/purchase_reception_status/__manifest__.py b/purchase_reception_status/__manifest__.py
index 5edd0f77ff9..f62e1c0b5b3 100644
--- a/purchase_reception_status/__manifest__.py
+++ b/purchase_reception_status/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "Purchase Reception Status",
- "version": "17.0.1.0.0",
+ "version": "18.0.1.0.0",
"category": "Purchases",
"license": "AGPL-3",
"summary": "Add reception status on purchase orders (OCA logic)",
diff --git a/purchase_reception_status/static/description/index.html b/purchase_reception_status/static/description/index.html
index 35b24c85775..03bdc458805 100644
--- a/purchase_reception_status/static/description/index.html
+++ b/purchase_reception_status/static/description/index.html
@@ -3,16 +3,15 @@
-README.rst
+Purchase Reception Status
-
+
+
Purchase Reception Status
-
-
-
-
-
-
+
If you are part of the Purchase Manager group, you can force a
confirmed purchase order to Full Received status: you should first
lock the order, then check the field Force Received located in the
Other Information tab.
-
+
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-feedback.
+
feedback.
Do not contact contributors directly about support or help with technical issues.
-
+
-
+
This module is maintained by the OCA.
-
-
-
+
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
Current maintainer:

-
This module is part of the OCA/purchase-workflow project on GitHub.
+
This module is part of the OCA/purchase-workflow project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
-