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. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/contract Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/contract Translate me on Weblate Try me on Runbot

This module adds an Agreement object with the following properties:

  • code,
  • @@ -398,7 +398,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.

    @@ -412,10 +412,20 @@

    Authors

    Contributors

    +
    @@ -427,7 +437,7 @@

    Maintainers

    promote its widespread use.

    Current maintainers:

    ygol 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/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.form + agreement + + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + + agreement.tree + agreement + + + + + + + + + + + + + + + agreement.search + 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, +)