From 9db8c24bb8aa0da14172e22e84ea1a603813717a Mon Sep 17 00:00:00 2001
From: sergio-teruel
Date: Sun, 14 Feb 2021 09:20:21 +0100
Subject: [PATCH] [MIG] agreement: Migration to 13.0
---
agreement/README.rst | 13 +-
agreement/__manifest__.py | 7 +-
agreement/demo/demo.xml | 104 ++++---
agreement/i18n/agreement.pot | 96 +++----
agreement/i18n/es.po | 155 +++++------
.../13.0.1.0.0/noupdate_changes.xml | 8 +
.../migrations/13.0.1.0.0/post-migration.py | 11 +
agreement/models/agreement.py | 13 +-
agreement/models/agreement_type.py | 4 +-
agreement/readme/CONTRIBUTORS.rst | 3 +
agreement/security/agreement_security.xml | 36 ++-
agreement/static/description/index.html | 22 +-
agreement/tests/__init__.py | 1 +
agreement/tests/test_agreement.py | 36 +++
agreement/views/agreement.xml | 257 ++++++++++--------
agreement/views/agreement_type.xml | 58 ++--
setup/agreement/odoo/addons/agreement | 1 +
setup/agreement/setup.py | 6 +
18 files changed, 443 insertions(+), 388 deletions(-)
create mode 100644 agreement/migrations/13.0.1.0.0/noupdate_changes.xml
create mode 100644 agreement/migrations/13.0.1.0.0/post-migration.py
create mode 100644 agreement/tests/__init__.py
create mode 100644 agreement/tests/test_agreement.py
create mode 120000 setup/agreement/odoo/addons/agreement
create mode 100644 setup/agreement/setup.py
diff --git a/agreement/README.rst b/agreement/README.rst
index 7c8c928f72..b6045ba25e 100644
--- a/agreement/README.rst
+++ b/agreement/README.rst
@@ -14,13 +14,13 @@ Agreement
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github
- :target: https://github.com/OCA/contract/tree/12.0/agreement
+ :target: https://github.com/OCA/contract/tree/13.0/agreement
:alt: OCA/contract
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-agreement
+ :target: https://translation.odoo-community.org/projects/contract-13-0/contract-13-0-agreement
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/110/12.0
+ :target: https://runbot.odoo-community.org/runbot/110/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -51,7 +51,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.
@@ -70,6 +70,9 @@ Contributors
* Alexis de Lattre
* Yves Goldberg
* Alexandre Fayolle
+* `Tecnativa `_:
+
+ * Sergio Teruel
Maintainers
~~~~~~~~~~~
@@ -95,6 +98,6 @@ Current `maintainers `__:
|maintainer-ygol| |maintainer-alexis-via|
-This module is part of the `OCA/contract `_ project on GitHub.
+This module is part of the `OCA/contract `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/agreement/__manifest__.py b/agreement/__manifest__.py
index 6eb9e9b06f..eaf041247c 100644
--- a/agreement/__manifest__.py
+++ b/agreement/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "Agreement",
"summary": "Adds an agreement object",
- "version": "12.0.1.2.0",
+ "version": "13.0.1.0.0",
"category": "Contract",
"author": "Akretion, "
"Yves Goldberg (Ygol Internetwork), "
@@ -20,9 +20,6 @@
],
"demo": ["demo/demo.xml"],
"development_status": "Beta",
- "maintainers": [
- "ygol",
- "alexis-via",
- ],
+ "maintainers": ["ygol", "alexis-via"],
"installable": True,
}
diff --git a/agreement/demo/demo.xml b/agreement/demo/demo.xml
index 5cc580779e..25c2ed328e 100644
--- a/agreement/demo/demo.xml
+++ b/agreement/demo/demo.xml
@@ -1,63 +1,53 @@
-
+
-
-
-
-
- C2C-IT0042
- Hardware IT
-
- 2017-09-10
- 2017-09-10
- 2018-09-10
-
-
-
- C2C-IT0043
- Fiber access office Lausanne
-
-
-
-
-
-
-
- AGR-VETO001
- Vétérinaire
-
- 2017-08-01
- 2017-08-01
- 2018-08-01
-
-
-
- AGR-TEL001
- Wazo IPBX deployment and maintenance
-
- 2017-05-05
- 2017-05-05
- 2018-09-10
-
-
-
- BUY-VOIP012
- SIP Phones supply
-
-
-
-
-
-
-
- BUY-VOIP013
- SIP-ISDN gateways
-
- 2017-09-02
-
-
-
+
+ C2C-IT0042
+ Hardware IT
+
+ 2017-09-10
+ 2017-09-10
+ 2018-09-10
+
+
+ C2C-IT0043
+ Fiber access office Lausanne
+
+
+
+
+
+
+ AGR-VETO001
+ Vétérinaire
+
+ 2017-08-01
+ 2017-08-01
+ 2018-08-01
+
+
+ AGR-TEL001
+ Wazo IPBX deployment and maintenance
+
+ 2017-05-05
+ 2017-05-05
+ 2018-09-10
+
+
+ BUY-VOIP012
+ SIP Phones supply
+
+
+
+
+
+
+ BUY-VOIP013
+ SIP-ISDN gateways
+
+ 2017-09-02
+
diff --git a/agreement/i18n/agreement.pot b/agreement/i18n/agreement.pot
index 7909efc990..b03eed71e7 100644
--- a/agreement/i18n/agreement.pot
+++ b/agreement/i18n/agreement.pot
@@ -1,12 +1,14 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * agreement
+# * agreement
#
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"
+"POT-Creation-Date: 2021-02-14 16:28+0000\n"
+"PO-Revision-Date: 2021-02-14 16:28+0000\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -14,7 +16,7 @@ msgstr ""
"Plural-Forms: \n"
#. module: agreement
-#: code:addons/agreement/models/agreement.py:74
+#: code:addons/agreement/models/agreement.py:0
#, python-format
msgid "%s (copy)"
msgstr ""
@@ -35,6 +37,11 @@ msgstr ""
msgid "Activities"
msgstr ""
+#. module: agreement
+#: model:ir.model.fields,field_description:agreement.field_agreement__activity_exception_decoration
+msgid "Activity Exception Decoration"
+msgstr ""
+
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__activity_state
msgid "Activity State"
@@ -74,7 +81,9 @@ msgid "Agreements"
msgstr ""
#. module: agreement
+#: model_terms:ir.ui.view,arch_db:agreement.agreement_form
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search
+#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_form_view
#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_search
msgid "Archived"
msgstr ""
@@ -84,6 +93,11 @@ msgstr ""
msgid "Attachment Count"
msgstr ""
+#. module: agreement
+#: model:ir.model.fields,field_description:agreement.field_agreement__code
+msgid "Code"
+msgstr ""
+
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__company_id
msgid "Company"
@@ -147,17 +161,18 @@ msgid "ID"
msgstr ""
#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__code
-msgid "ID used for internal contract tracking."
+#: model:ir.model.fields,field_description:agreement.field_agreement__activity_exception_icon
+msgid "Icon"
msgstr ""
#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__message_unread
-msgid "If checked new messages require your attention."
+#: model:ir.model.fields,help:agreement.field_agreement__activity_exception_icon
+msgid "Icon to indicate an exception activity."
msgstr ""
#. module: agreement
#: model:ir.model.fields,help:agreement.field_agreement__message_needaction
+#: model:ir.model.fields,help:agreement.field_agreement__message_unread
msgid "If checked, new messages require your attention."
msgstr ""
@@ -166,11 +181,6 @@ msgstr ""
msgid "If checked, some messages have a delivery error."
msgstr ""
-#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__active
-msgid "If unchecked, it will allow you to hide the agreement without removing it."
-msgstr ""
-
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_is_follower
msgid "Is Follower"
@@ -215,6 +225,7 @@ msgid "Messages"
msgstr ""
#. module: agreement
+#: model:ir.model.fields,field_description:agreement.field_agreement__name
#: model:ir.model.fields,field_description:agreement.field_agreement_type__name
msgid "Name"
msgstr ""
@@ -246,7 +257,7 @@ msgstr ""
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_has_error_counter
-msgid "Number of error"
+msgid "Number of errors"
msgstr ""
#. module: agreement
@@ -264,11 +275,6 @@ msgstr ""
msgid "Number of unread messages"
msgstr ""
-#. module: agreement
-#: selection:agreement,activity_state:0
-msgid "Overdue"
-msgstr ""
-
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__partner_id
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search
@@ -276,30 +282,20 @@ msgid "Partner"
msgstr ""
#. module: agreement
-#: selection:agreement,activity_state:0
-msgid "Planned"
-msgstr ""
-
-#. module: agreement
-#: code:addons/agreement/models/agreement.py:45
+#: code:addons/agreement/models/agreement.py:0
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search
#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_search
#, python-format
msgid "Purchase"
msgstr ""
-#. module: agreement
-#: model:ir.model.fields,field_description:agreement.field_agreement__code
-msgid "Reference"
-msgstr ""
-
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: agreement
-#: code:addons/agreement/models/agreement.py:44
+#: code:addons/agreement/models/agreement.py:0
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search
#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_search
#, python-format
@@ -318,7 +314,9 @@ msgstr ""
#. module: agreement
#: model:ir.model.fields,help:agreement.field_agreement__is_template
-msgid "Set if the agreement is a template. Template agreements don't require a partner."
+msgid ""
+"Set if the agreement is a template. Template agreements don't require a "
+"partner."
msgstr ""
#. module: agreement
@@ -334,35 +332,26 @@ msgstr ""
#. module: agreement
#: model:ir.model.fields,help:agreement.field_agreement__activity_state
-msgid "Status based on activities\n"
+msgid ""
+"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__partner_id
-msgid "The customer or vendor this agreement is related to."
-msgstr ""
-
-#. module: agreement
-#: sql_constraint:agreement:0
+#: model:ir.model.constraint,message:agreement.constraint_agreement_code_partner_company_unique
msgid "This agreement code already exists for this partner!"
msgstr ""
#. module: agreement
-#: model:ir.model.fields,field_description:agreement.field_agreement__name
-msgid "Title"
-msgstr ""
-
-#. module: agreement
-#: selection:agreement,activity_state:0
-msgid "Today"
+#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_list_view
+msgid "Type Name"
msgstr ""
#. module: agreement
-#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_list_view
-msgid "Type Name"
+#: model:ir.model.fields,help:agreement.field_agreement__activity_exception_decoration
+msgid "Type of the exception activity on record."
msgstr ""
#. module: agreement
@@ -384,14 +373,3 @@ msgstr ""
#: model:res.groups,name:agreement.group_use_agreement_type
msgid "Use agreement type"
msgstr ""
-
-#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__end_date
-msgid "When the agreement ends."
-msgstr ""
-
-#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__start_date
-msgid "When the agreement starts."
-msgstr ""
-
diff --git a/agreement/i18n/es.po b/agreement/i18n/es.po
index 21c81a514c..93452bdd71 100644
--- a/agreement/i18n/es.po
+++ b/agreement/i18n/es.po
@@ -6,26 +6,27 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2020-06-17 11:28+0000\n"
-"Last-Translator: Pedro M. Baeza \n"
+"POT-Creation-Date: 2021-02-14 16:28+0000\n"
+"PO-Revision-Date: 2021-02-14 17:34+0100\n"
+"Last-Translator: Sergio Teruel \n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
+"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10\n"
+"X-Generator: Poedit 2.3\n"
#. module: agreement
-#: code:addons/agreement/models/agreement.py:74
+#: code:addons/agreement/models/agreement.py:0
#, python-format
msgid "%s (copy)"
-msgstr ""
+msgstr "%s (copia)"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_needaction
msgid "Action Needed"
-msgstr ""
+msgstr "Acción necesaria"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__active
@@ -38,6 +39,11 @@ msgstr "Activo"
msgid "Activities"
msgstr "Actividades"
+#. module: agreement
+#: model:ir.model.fields,field_description:agreement.field_agreement__activity_exception_decoration
+msgid "Activity Exception Decoration"
+msgstr "Info de Excepción"
+
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__activity_state
msgid "Activity State"
@@ -51,9 +57,8 @@ msgstr "Acuerdo"
#. module: agreement
#: model_terms:ir.ui.view,arch_db:agreement.agreement_form
-#, fuzzy
msgid "Agreement Name"
-msgstr "Tipo de Acuerdo"
+msgstr "Nombre de acuerdo"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__agreement_type_id
@@ -78,7 +83,9 @@ msgid "Agreements"
msgstr "Acuerdos"
#. module: agreement
+#: model_terms:ir.ui.view,arch_db:agreement.agreement_form
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search
+#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_form_view
#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_search
msgid "Archived"
msgstr "Archivado"
@@ -88,6 +95,11 @@ msgstr "Archivado"
msgid "Attachment Count"
msgstr "Nº de archivos adjuntos"
+#. module: agreement
+#: model:ir.model.fields,field_description:agreement.field_agreement__code
+msgid "Code"
+msgstr "Código"
+
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__company_id
msgid "Company"
@@ -122,7 +134,7 @@ msgstr "Nombre para Mostrar"
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search
#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_search
msgid "Domain"
-msgstr ""
+msgstr "Dominio"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__end_date
@@ -132,17 +144,17 @@ msgstr "Fecha Final"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_follower_ids
msgid "Followers"
-msgstr ""
+msgstr "Seguidores"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_channel_ids
msgid "Followers (Channels)"
-msgstr ""
+msgstr "Seguidores (Canales)"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_partner_ids
msgid "Followers (Partners)"
-msgstr ""
+msgstr "Seguidores (Empresas)"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__id
@@ -151,35 +163,30 @@ msgid "ID"
msgstr "ID"
#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__code
-msgid "ID used for internal contract tracking."
-msgstr "Identificación utilizada para el seguimiento interno del contrato."
+#: model:ir.model.fields,field_description:agreement.field_agreement__activity_exception_icon
+msgid "Icon"
+msgstr "Icono"
#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__message_unread
-msgid "If checked new messages require your attention."
-msgstr ""
+#: model:ir.model.fields,help:agreement.field_agreement__activity_exception_icon
+msgid "Icon to indicate an exception activity."
+msgstr "Icono para indicar una excepción de actividad."
#. module: agreement
#: model:ir.model.fields,help:agreement.field_agreement__message_needaction
+#: model:ir.model.fields,help:agreement.field_agreement__message_unread
msgid "If checked, new messages require your attention."
-msgstr ""
+msgstr "Si está marcado, hay nuevos mensajes que requieren su atención."
#. module: agreement
#: model:ir.model.fields,help:agreement.field_agreement__message_has_error
msgid "If checked, some messages have a delivery error."
-msgstr ""
-
-#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__active
-msgid ""
-"If unchecked, it will allow you to hide the agreement without removing it."
-msgstr "Si no está marcada, le permitirá ocultar el acuerdo sin eliminarlo."
+msgstr "Si se encuentra marcado, algunos mensajes tienen error de envío."
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_is_follower
msgid "Is Follower"
-msgstr ""
+msgstr "Es seguidor"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__is_template
@@ -207,19 +214,20 @@ msgstr "Ultima actualización en"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_main_attachment_id
msgid "Main Attachment"
-msgstr ""
+msgstr "Adjuntos principales"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_has_error
msgid "Message Delivery error"
-msgstr ""
+msgstr "Error de Envío de Mensaje"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_ids
msgid "Messages"
-msgstr ""
+msgstr "Messages"
#. module: agreement
+#: model:ir.model.fields,field_description:agreement.field_agreement__name
#: model:ir.model.fields,field_description:agreement.field_agreement_type__name
msgid "Name"
msgstr "Nombre"
@@ -232,47 +240,42 @@ msgstr "Nombre o numero"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__activity_date_deadline
msgid "Next Activity Deadline"
-msgstr ""
+msgstr "Siguiente plazo de actividad"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__activity_summary
msgid "Next Activity Summary"
-msgstr ""
+msgstr "Resumen de la siguiente actividad"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__activity_type_id
msgid "Next Activity Type"
-msgstr ""
+msgstr "Siguiente tipo de actividad"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_needaction_counter
msgid "Number of Actions"
-msgstr ""
+msgstr "Número de acciones"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_has_error_counter
-msgid "Number of error"
-msgstr ""
+msgid "Number of errors"
+msgstr "Errores"
#. module: agreement
#: model:ir.model.fields,help:agreement.field_agreement__message_needaction_counter
msgid "Number of messages which requires an action"
-msgstr ""
+msgstr "Número de mensajes que requieren una acción"
#. module: agreement
#: model:ir.model.fields,help:agreement.field_agreement__message_has_error_counter
msgid "Number of messages with delivery error"
-msgstr ""
+msgstr "Número de mensajes con error de envío"
#. module: agreement
#: model:ir.model.fields,help:agreement.field_agreement__message_unread_counter
msgid "Number of unread messages"
-msgstr ""
-
-#. module: agreement
-#: selection:agreement,activity_state:0
-msgid "Overdue"
-msgstr ""
+msgstr "Número de mensajes no leidos"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__partner_id
@@ -281,35 +284,25 @@ msgid "Partner"
msgstr "Cliente"
#. module: agreement
-#: selection:agreement,activity_state:0
-msgid "Planned"
-msgstr ""
-
-#. module: agreement
-#: code:addons/agreement/models/agreement.py:45
+#: code:addons/agreement/models/agreement.py:0
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search
#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_search
#, python-format
msgid "Purchase"
-msgstr ""
-
-#. module: agreement
-#: model:ir.model.fields,field_description:agreement.field_agreement__code
-msgid "Reference"
-msgstr "Referencia"
+msgstr "Compra"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__activity_user_id
msgid "Responsible User"
-msgstr ""
+msgstr "Usuario responsable"
#. module: agreement
-#: code:addons/agreement/models/agreement.py:44
+#: code:addons/agreement/models/agreement.py:0
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search
#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_search
#, python-format
msgid "Sale"
-msgstr ""
+msgstr "Venta"
#. module: agreement
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search
@@ -349,41 +342,35 @@ msgid ""
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
+"Estado basado en actividades\n"
+"Vencida: la fecha tope ya ha pasado\n"
+"Hoy: La fecha tope es hoy\n"
+"Planificada: futuras actividades."
#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__partner_id
-msgid "The customer or vendor this agreement is related to."
-msgstr "El cliente o proveedor con el que está relacionado este acuerdo."
-
-#. module: agreement
-#: sql_constraint:agreement:0
+#: model:ir.model.constraint,message:agreement.constraint_agreement_code_partner_company_unique
msgid "This agreement code already exists for this partner!"
msgstr "¡Este código de acuerdo ya existe para este socio!"
-#. module: agreement
-#: model:ir.model.fields,field_description:agreement.field_agreement__name
-msgid "Title"
-msgstr "Título"
-
-#. module: agreement
-#: selection:agreement,activity_state:0
-msgid "Today"
-msgstr ""
-
#. module: agreement
#: model_terms:ir.ui.view,arch_db:agreement.agreement_type_list_view
msgid "Type Name"
-msgstr "Escribe un nombre"
+msgstr "Tipo de acuerdo"
+
+#. module: agreement
+#: model:ir.model.fields,help:agreement.field_agreement__activity_exception_decoration
+msgid "Type of the exception activity on record."
+msgstr "Tipo de excepción de actividad del registro."
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_unread
msgid "Unread Messages"
-msgstr ""
+msgstr "Mensajes sin leer"
#. module: agreement
#: model:ir.model.fields,field_description:agreement.field_agreement__message_unread_counter
msgid "Unread Messages Counter"
-msgstr ""
+msgstr "Contador de mensajes no leidos"
#. module: agreement
#: model:res.groups,name:agreement.group_use_agreement_template
@@ -394,13 +381,3 @@ msgstr "Usar plantilla de acuerdo"
#: model:res.groups,name:agreement.group_use_agreement_type
msgid "Use agreement type"
msgstr "Usar tipo de acuerdo"
-
-#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__end_date
-msgid "When the agreement ends."
-msgstr "Cuando termina el acuerdo."
-
-#. module: agreement
-#: model:ir.model.fields,help:agreement.field_agreement__start_date
-msgid "When the agreement starts."
-msgstr "Cuando comienza el acuerdo."
diff --git a/agreement/migrations/13.0.1.0.0/noupdate_changes.xml b/agreement/migrations/13.0.1.0.0/noupdate_changes.xml
new file mode 100644
index 0000000000..99df475c10
--- /dev/null
+++ b/agreement/migrations/13.0.1.0.0/noupdate_changes.xml
@@ -0,0 +1,8 @@
+
+
+
+ ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]
+
+
diff --git a/agreement/migrations/13.0.1.0.0/post-migration.py b/agreement/migrations/13.0.1.0.0/post-migration.py
new file mode 100644
index 0000000000..061514759b
--- /dev/null
+++ b/agreement/migrations/13.0.1.0.0/post-migration.py
@@ -0,0 +1,11 @@
+# Copyright 2021 Tecnativa - Sergio Teruel
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+from openupgradelib import openupgrade # pylint: disable=W7936
+
+
+@openupgrade.migrate()
+def migrate(env, version):
+ openupgrade.load_data(
+ env.cr, "agreement", "migrations/13.0.1.0.0/noupdate_changes.xml"
+ )
diff --git a/agreement/models/agreement.py b/agreement/models/agreement.py
index 9b11f500a2..cb6baeb2a7 100644
--- a/agreement/models/agreement.py
+++ b/agreement/models/agreement.py
@@ -2,7 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from odoo import _, api, models, fields
+from odoo import _, api, fields, models
class Agreement(models.Model):
@@ -20,9 +20,7 @@ class Agreement(models.Model):
track_visibility="onchange",
)
company_id = fields.Many2one(
- "res.company",
- string="Company",
- default=lambda self: self.env["res.company"]._company_default_get(),
+ "res.company", string="Company", default=lambda self: self.env.company,
)
is_template = fields.Boolean(
string="Is a Template?",
@@ -32,9 +30,7 @@ class Agreement(models.Model):
"Template agreements don't require a partner.",
)
agreement_type_id = fields.Many2one(
- "agreement.type",
- string="Agreement Type",
- help="Select the type of agreement",
+ "agreement.type", string="Agreement Type", help="Select the type of agreement",
)
domain = fields.Selection(
"_domain_selection",
@@ -64,7 +60,7 @@ def name_get(self):
for agr in self:
name = agr.name
if agr.code:
- name = "[%s] %s" % (agr.code, agr.name)
+ name = "[{}] {}".format(agr.code, agr.name)
res.append((agr.id, name))
return res
@@ -76,7 +72,6 @@ def name_get(self):
)
]
- @api.returns("self", lambda value: value.id)
def copy(self, default=None):
"""Always assign a value for code because is required"""
default = dict(default or {})
diff --git a/agreement/models/agreement_type.py b/agreement/models/agreement_type.py
index de8b4f99ea..2508ac8cf7 100644
--- a/agreement/models/agreement_type.py
+++ b/agreement/models/agreement_type.py
@@ -10,9 +10,7 @@ class AgreementType(models.Model):
name = fields.Char(string="Name", required=True)
active = fields.Boolean(default=True)
- domain = fields.Selection(
- "_domain_selection", string="Domain", default="sale"
- )
+ domain = fields.Selection("_domain_selection", string="Domain", default="sale")
@api.model
def _domain_selection(self):
diff --git a/agreement/readme/CONTRIBUTORS.rst b/agreement/readme/CONTRIBUTORS.rst
index 05342b3317..1b0d06ae24 100644
--- a/agreement/readme/CONTRIBUTORS.rst
+++ b/agreement/readme/CONTRIBUTORS.rst
@@ -1,3 +1,6 @@
* Alexis de Lattre
* Yves Goldberg
* Alexandre Fayolle
+* `Tecnativa `_:
+
+ * Sergio Teruel
diff --git a/agreement/security/agreement_security.xml b/agreement/security/agreement_security.xml
index 9784e6b7a3..7dd222ed81 100644
--- a/agreement/security/agreement_security.xml
+++ b/agreement/security/agreement_security.xml
@@ -1,26 +1,22 @@
-
+
-
-
-
-
- Agreement multi-company
-
- ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]
-
-
-
- Use agreement type
-
-
-
-
- Use agreement template
-
-
-
+
+ Agreement multi-company
+
+ ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]
+
+
+ Use agreement type
+
+
+
+ Use agreement template
+
+
diff --git a/agreement/static/description/index.html b/agreement/static/description/index.html
index 6a8f2b62a0..7cf63a16f7 100644
--- a/agreement/static/description/index.html
+++ b/agreement/static/description/index.html
@@ -367,7 +367,7 @@ Agreement
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module adds an Agreement object with the following properties:
code,
@@ -398,7 +398,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.
@@ -427,7 +437,7 @@
promote its widespread use.
Current maintainers :
-
This module is part of the OCA/contract project on GitHub.
+
This module is part of the OCA/contract project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute .
diff --git a/agreement/tests/__init__.py b/agreement/tests/__init__.py
new file mode 100644
index 0000000000..b636caa998
--- /dev/null
+++ b/agreement/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_agreement
diff --git a/agreement/tests/test_agreement.py b/agreement/tests/test_agreement.py
new file mode 100644
index 0000000000..00fcf15829
--- /dev/null
+++ b/agreement/tests/test_agreement.py
@@ -0,0 +1,36 @@
+# Copyright 2021 Ecosoft Co., Ltd (http://ecosoft.co.th)
+# Copyright 2021 Sergio Teruel - Tecnativa
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
+from odoo.tests.common import TransactionCase
+
+
+class TestAgreement(TransactionCase):
+ def setUp(self):
+ super().setUp()
+ self.agreement_type = self.env["agreement.type"].create(
+ {"name": "Test Agreement Type", "domain": "purchase"}
+ )
+ self.agreement = self.env.ref("agreement.market1")
+
+ def test_domain_selection(self):
+ domain_agreement_type = self.env["agreement.type"]._domain_selection()
+ domain_agreement = self.env["agreement"]._domain_selection()
+ self.assertEqual(domain_agreement_type, domain_agreement)
+
+ def test_agreement_type_change(self):
+ self.agreement.write({"agreement_type_id": self.agreement_type.id})
+ self.agreement.agreement_type_change()
+ self.assertEqual(self.agreement.domain, self.agreement_type.domain)
+
+ def test_name_get(self):
+ res = self.agreement.name_get()
+ self.assertEqual(res[0][0], self.agreement.id)
+ self.assertEqual(
+ res[0][1], "[{}] {}".format(self.agreement.code, self.agreement.name)
+ )
+
+ def test_copy(self):
+ agreement1 = self.agreement.copy(default={"code": "Test Code"})
+ agreement2 = self.agreement.copy()
+ self.assertEqual(agreement1.code, "Test Code")
+ self.assertEqual(agreement2.code, "%s (copy)" % (self.agreement.code))
diff --git a/agreement/views/agreement.xml b/agreement/views/agreement.xml
index bb6b8925bb..c29b5cbacc 100644
--- a/agreement/views/agreement.xml
+++ b/agreement/views/agreement.xml
@@ -1,120 +1,153 @@
-
+
-
-
-
-
- agreement.form
- agreement
-
-
-
-
-
-
- agreement.tree
- agreement
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- agreement.search
- agreement
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Agreements
- agreement
- tree,form
-
-
-
-
-
-
-
-
+
+
+
+
+ Agreements
+ agreement
+ tree,form
+
+
+
+
diff --git a/agreement/views/agreement_type.xml b/agreement/views/agreement_type.xml
index b801260eef..54c54388e7 100644
--- a/agreement/views/agreement_type.xml
+++ b/agreement/views/agreement_type.xml
@@ -1,4 +1,4 @@
-
+
@@ -6,56 +6,68 @@
agreement.type
-
-
+
+
-
Agreement Type Form
agreement.type
-
-
-
-
-
+
+
+
-
-
+
+
+
+
-
+
-
agreement.type.search
agreement.type
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
Agreement Types
diff --git a/setup/agreement/odoo/addons/agreement b/setup/agreement/odoo/addons/agreement
new file mode 120000
index 0000000000..3f654b935e
--- /dev/null
+++ b/setup/agreement/odoo/addons/agreement
@@ -0,0 +1 @@
+../../../../agreement
\ No newline at end of file
diff --git a/setup/agreement/setup.py b/setup/agreement/setup.py
new file mode 100644
index 0000000000..28c57bb640
--- /dev/null
+++ b/setup/agreement/setup.py
@@ -0,0 +1,6 @@
+import setuptools
+
+setuptools.setup(
+ setup_requires=['setuptools-odoo'],
+ odoo_addon=True,
+)