From f1c264760765c4e1338a8c9b648e1ad980b0f537 Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Fri, 29 Mar 2019 17:06:57 +0100 Subject: [PATCH 1/5] [ADD] agreement_legal migration --- agreement_legal/README.rst | 130 ++ agreement_legal/__init__.py | 4 + agreement_legal/__manifest__.py | 41 + agreement_legal/data/agreement_stage.xml | 49 + agreement_legal/data/agreement_type.xml | 16 + agreement_legal/data/ir_sequence.xml | 13 + agreement_legal/data/module_category.xml | 9 + agreement_legal/i18n/agreement_legal.pot | 1782 ++++++++++++++++ agreement_legal/i18n/fr.po | 1800 +++++++++++++++++ agreement_legal/models/__init__.py | 18 + agreement_legal/models/agreement.py | 398 ++++ agreement_legal/models/agreement_appendix.py | 101 + agreement_legal/models/agreement_clause.py | 103 + .../models/agreement_increasetype.py | 27 + agreement_legal/models/agreement_line.py | 30 + agreement_legal/models/agreement_recital.py | 102 + .../models/agreement_renewaltype.py | 23 + agreement_legal/models/agreement_section.py | 104 + agreement_legal/models/agreement_stage.py | 28 + agreement_legal/models/agreement_status.py | 12 + agreement_legal/models/agreement_subtype.py | 14 + agreement_legal/models/agreement_type.py | 16 + agreement_legal/models/product_template.py | 12 + agreement_legal/models/res_config_settings.py | 38 + agreement_legal/models/res_partner.py | 13 + agreement_legal/readme/CONFIGURE.rst | 6 + agreement_legal/readme/CONTRIBUTORS.rst | 6 + agreement_legal/readme/CREDITS.rst | 5 + agreement_legal/readme/DESCRIPTION.rst | 9 + agreement_legal/readme/ROADMAP.rst | 3 + agreement_legal/readme/USAGE.rst | 7 + agreement_legal/report/agreement.xml | 144 ++ agreement_legal/security/ir.model.access.csv | 23 + agreement_legal/security/res_groups.xml | 22 + agreement_legal/static/description/icon.png | Bin 0 -> 6755 bytes agreement_legal/static/description/index.html | 473 +++++ agreement_legal/views/agreement.xml | 368 ++++ agreement_legal/views/agreement_appendix.xml | 95 + agreement_legal/views/agreement_clause.xml | 97 + .../views/agreement_increasetype.xml | 45 + agreement_legal/views/agreement_recital.xml | 94 + .../views/agreement_renewaltype.xml | 41 + agreement_legal/views/agreement_section.xml | 109 + agreement_legal/views/agreement_stages.xml | 43 + agreement_legal/views/agreement_subtype.xml | 45 + agreement_legal/views/agreement_type.xml | 45 + agreement_legal/views/menu.xml | 147 ++ agreement_legal/views/res_config_settings.xml | 161 ++ agreement_legal/views/res_partner.xml | 17 + 49 files changed, 6888 insertions(+) create mode 100644 agreement_legal/README.rst create mode 100644 agreement_legal/__init__.py create mode 100644 agreement_legal/__manifest__.py create mode 100644 agreement_legal/data/agreement_stage.xml create mode 100644 agreement_legal/data/agreement_type.xml create mode 100644 agreement_legal/data/ir_sequence.xml create mode 100644 agreement_legal/data/module_category.xml create mode 100644 agreement_legal/i18n/agreement_legal.pot create mode 100644 agreement_legal/i18n/fr.po create mode 100644 agreement_legal/models/__init__.py create mode 100644 agreement_legal/models/agreement.py create mode 100644 agreement_legal/models/agreement_appendix.py create mode 100644 agreement_legal/models/agreement_clause.py create mode 100644 agreement_legal/models/agreement_increasetype.py create mode 100644 agreement_legal/models/agreement_line.py create mode 100644 agreement_legal/models/agreement_recital.py create mode 100644 agreement_legal/models/agreement_renewaltype.py create mode 100644 agreement_legal/models/agreement_section.py create mode 100644 agreement_legal/models/agreement_stage.py create mode 100644 agreement_legal/models/agreement_status.py create mode 100644 agreement_legal/models/agreement_subtype.py create mode 100644 agreement_legal/models/agreement_type.py create mode 100644 agreement_legal/models/product_template.py create mode 100644 agreement_legal/models/res_config_settings.py create mode 100644 agreement_legal/models/res_partner.py create mode 100644 agreement_legal/readme/CONFIGURE.rst create mode 100644 agreement_legal/readme/CONTRIBUTORS.rst create mode 100644 agreement_legal/readme/CREDITS.rst create mode 100644 agreement_legal/readme/DESCRIPTION.rst create mode 100644 agreement_legal/readme/ROADMAP.rst create mode 100644 agreement_legal/readme/USAGE.rst create mode 100644 agreement_legal/report/agreement.xml create mode 100644 agreement_legal/security/ir.model.access.csv create mode 100644 agreement_legal/security/res_groups.xml create mode 100644 agreement_legal/static/description/icon.png create mode 100644 agreement_legal/static/description/index.html create mode 100644 agreement_legal/views/agreement.xml create mode 100644 agreement_legal/views/agreement_appendix.xml create mode 100644 agreement_legal/views/agreement_clause.xml create mode 100644 agreement_legal/views/agreement_increasetype.xml create mode 100644 agreement_legal/views/agreement_recital.xml create mode 100644 agreement_legal/views/agreement_renewaltype.xml create mode 100644 agreement_legal/views/agreement_section.xml create mode 100644 agreement_legal/views/agreement_stages.xml create mode 100644 agreement_legal/views/agreement_subtype.xml create mode 100644 agreement_legal/views/agreement_type.xml create mode 100644 agreement_legal/views/menu.xml create mode 100644 agreement_legal/views/res_config_settings.xml create mode 100644 agreement_legal/views/res_partner.xml diff --git a/agreement_legal/README.rst b/agreement_legal/README.rst new file mode 100644 index 00000000..8a2f6307 --- /dev/null +++ b/agreement_legal/README.rst @@ -0,0 +1,130 @@ +========== +Agreements +========== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Fcontract-lightgray.png?logo=github + :target: https://github.com/OCA/contract/tree/11.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-11-0/contract-11-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/11.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows you to manage agreements, letter of intent and contract content. +The module is meant to be used by the legal team of a company and to allow them +to define sections, clauses and templates with their respective content that can +be dynamic. + +Based on the template, an agreement can be created and the pdf document generated. + +The agreement would go through a workflow to finally become a contract with the +customer signature. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module: + +* Go to Agreement > Configuration > Templates +* Create a new template with sections and clauses and their respective content +* Go to Agreement > Configuration > Stages +* Create and reorder stages to match your process + +Usage +===== + +To use this module: + +* Go to Agreement > Agrements +* Create a new agreement +* Select a template +* Follow the process to get the required approval +* Send the invitation to the customer to review and sign the agreement + +Known issues / Roadmap +====================== + +* Split the module to remove the dependencies on sale and account and provide + the same feature in extra modules (agreement_sale, agreement_account, + agreement_purchase) + +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 +~~~~~~~ + +* Pavlov Media +* Open Source Integrators + +Contributors +~~~~~~~~~~~~ + +* Patrick Wilson +* Bhavesh Odedra +* Wolfgang Hall +* Maxime Chambreuil +* Sandip Mangukiya + +Other credits +~~~~~~~~~~~~~ + +The development of this module has been financially supported by: + +* Pavlov Media +* Open Source Integrators + +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-max3903| image:: https://github.com/max3903.png?size=40px + :target: https://github.com/max3903 + :alt: max3903 + +Current `maintainer `__: + +|maintainer-max3903| + +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_legal/__init__.py b/agreement_legal/__init__.py new file mode 100644 index 00000000..073035d1 --- /dev/null +++ b/agreement_legal/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models diff --git a/agreement_legal/__manifest__.py b/agreement_legal/__manifest__.py new file mode 100644 index 00000000..543d9b9a --- /dev/null +++ b/agreement_legal/__manifest__.py @@ -0,0 +1,41 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Agreements Legal", + "summary": "Manage Agreements, LOI and Contracts", + "author": "Pavlov Media, " + "Open Source Integrators, " + "Yves Goldberg (Ygol Internetwork), " + "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/contract", + "category": "Partner", + "license": "AGPL-3", + "version": "12.0.1.0.0", + "depends": ["contacts", "agreement", "mail", "product"], + "data": [ + "data/ir_sequence.xml", + "data/module_category.xml", + "data/agreement_stage.xml", + "data/agreement_type.xml", + "security/res_groups.xml", + "security/ir.model.access.csv", + "report/agreement.xml", + "views/res_config_settings.xml", + "views/agreement_appendix.xml", + "views/agreement_clause.xml", + "views/agreement_recital.xml", + "views/agreement_section.xml", + "views/agreement_stages.xml", + "views/agreement_type.xml", + "views/agreement_subtype.xml", + "views/agreement_renewaltype.xml", + "views/agreement_increasetype.xml", + "views/res_partner.xml", + "views/agreement.xml", + "views/menu.xml", + ], + "application": True, + "development_status": "Beta", + "maintainers": ["max3903", "ygol"], +} diff --git a/agreement_legal/data/agreement_stage.xml b/agreement_legal/data/agreement_stage.xml new file mode 100644 index 00000000..cef2b25e --- /dev/null +++ b/agreement_legal/data/agreement_stage.xml @@ -0,0 +1,49 @@ + + + + + New + 10 + + + + Draft + 20 + + + + Reviewed + 30 + + + + Negotiation + 40 + + + + Out for Customer Signature + 50 + + + + Waiting Internal Signature + 60 + + + + Active + 70 + + + + Expired + 80 + + + + Cancelled + 100 + True + + diff --git a/agreement_legal/data/agreement_type.xml b/agreement_legal/data/agreement_type.xml new file mode 100644 index 00000000..4cdf6761 --- /dev/null +++ b/agreement_legal/data/agreement_type.xml @@ -0,0 +1,16 @@ + + + + + Agreement + + + + Contract + + + + Letter of Intent + + + diff --git a/agreement_legal/data/ir_sequence.xml b/agreement_legal/data/ir_sequence.xml new file mode 100644 index 00000000..d2104c55 --- /dev/null +++ b/agreement_legal/data/ir_sequence.xml @@ -0,0 +1,13 @@ + + + + + + Agreements + agreement + AG + 3 + + + + diff --git a/agreement_legal/data/module_category.xml b/agreement_legal/data/module_category.xml new file mode 100644 index 00000000..d3c2ee7a --- /dev/null +++ b/agreement_legal/data/module_category.xml @@ -0,0 +1,9 @@ + + + + + Agreement + 80 + + + diff --git a/agreement_legal/i18n/agreement_legal.pot b/agreement_legal/i18n/agreement_legal.pot new file mode 100644 index 00000000..9b03a8d6 --- /dev/null +++ b/agreement_legal/i18n/agreement_legal.pot @@ -0,0 +1,1782 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * agreement_legal +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-24 16:53+0000\n" +"PO-Revision-Date: 2019-03-24 16:53+0000\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: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: agreement_legal +#: selection:agreement,state:0 +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__active +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__active +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__active +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__active +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__active +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__active +msgid "Active" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Administration" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Advanced Features" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_account_analytic_line__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__agreement_id +#: model:ir.module.category,name:agreement_legal.agreement +#: model:ir.module.category,name:agreement_legal.module_agreement_legal_category +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Agreement" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_appendix +msgid "Agreement Appendices" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_clause_search_view +msgid "Agreement Clause Search" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_clause +msgid "Agreement Clauses" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_increasetype +msgid "Agreement Increase Type" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_line +msgid "Agreement Lines" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Agreement Name" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_recital +msgid "Agreement Recitals" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_renewaltype +msgid "Agreement Renewal Type" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Agreement Search" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_search_view +msgid "Agreement Section Search" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_section +#: model:ir.model,name:agreement_legal.model_agreement_section +msgid "Agreement Sections" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_serviceprofile +msgid "Agreement Service Profiles" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_stage +msgid "Agreement Stage" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_stage +msgid "Agreement Stages" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_subtype +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_subtype_form_view +msgid "Agreement Sub-Types" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__agreement_subtype_id +msgid "Agreement Sub-type" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_subtype +msgid "Agreement Subtypes" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__agreement_type_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__agreement_type_id +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_subtype_list_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_type_form_view +msgid "Agreement Type" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_type +#: model:ir.model,name:agreement_legal.model_agreement_type +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_type_list_view +msgid "Agreement Types" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.action_agreement_report_order +#: model:ir.actions.act_window,name:agreement_legal.agreement_dashboard_agreement +#: model:ir.actions.act_window,name:agreement_legal.agreement_operations_agreement +#: model:ir.model.fields,field_description:agreement_legal.field_product_template__agreements_ids +#: model:ir.model.fields,field_description:agreement_legal.field_res_partner__agreement_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_agreement_reporting +#: model:ir.ui.menu,name:agreement_legal.agreement_root +#: model:ir.ui.menu,name:agreement_legal.dashboard_agreements +#: model:ir.ui.menu,name:agreement_legal.operations_agreements +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_graph_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_pivot_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_list_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_search_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Agreements" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Agreements Form" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_stage_form_view +msgid "Agreements Stage Form" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_increasetype_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_renewaltype_form_view +msgid "Agreements Type Form" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__analytic_id +msgid "Analytic Account" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__special_terms +msgid "Any terms that you have agreed to and want to track on the agreement/contract." +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.agreement_appendix_action +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__appendix_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_appendices +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_tree +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Appendices" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +msgid "Appendix" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__approved_user_id +msgid "Approved By" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__approved_date +msgid "Approved Date" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Approved by" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Archived" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__assigned_user_id +msgid "Assigned To" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "By:" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__change_notice +msgid "Change Notice (Days)" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__child_agreements_ids +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__previous_version_agreements_ids +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Child Agreements" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +msgid "Clause" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__content +msgid "Clause Content" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_clause +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__clauses_ids +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__clauses_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_clauses +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_list_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Clauses" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__color +msgid "Color" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_partner_id +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Company" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_contact_id +msgid "Company Contact" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Company Information" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__total_company_mrc +msgid "Company MRC" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__total_company_nrc +msgid "Company NRC" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__dynamic_description +msgid "Compute dynamic description" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__dynamic_special_terms +msgid "Compute dynamic special terms" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_configuration +msgid "Configuration" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_res_partner +msgid "Contact" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__partner_signed_user_id +msgid "Contact on the account that signed the agreement/contract." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__content +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__content +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Content" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_data_contents +msgid "Contents" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.report,name:agreement_legal.partner_agreement_contract_document +msgid "Contract Document" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.report,name:agreement_legal.partner_agreement_contract_document_preview +msgid "Contract Document Preview" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__contract_value +msgid "Contract Value" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Copy and paste the placeholder expression in the content" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Copy and paste the placeholder expression in the description or the special terms" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_sale +msgid "Create an agreement when the sale order is confirmed." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Create an agreement when the sales order is confirmed" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__create_uid +msgid "Created by" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__create_date +msgid "Created on" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__currency_id +msgid "Currency" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__total_customer_mrc +msgid "Customer MRC" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__total_customer_nrc +msgid "Customer NRC" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_dashboard +msgid "Dashboard" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__termination_requested +msgid "Date that a request for termination was received." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__termination_date +msgid "Date that the contract was terminated." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__company_signed_date +msgid "Date the contract was signed by Company." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__partner_signed_date +msgid "Date the contract was signed by the Partner." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Date:" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__default_value +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__default_value +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__default_value +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__default_value +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__default_value +msgid "Default Value" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__renewal_type_id +msgid "Describes what happens after the contract expires." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__description +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__description +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__description +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__description +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_increasetype_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_renewaltype_form_view +msgid "Description" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__description +msgid "Description of the agreement" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_increasetype__description +#: model:ir.model.fields,help:agreement_legal.field_agreement_renewaltype__description +msgid "Description of the renewal type." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__display_name +msgid "Display Name" +msgstr "" + +#. module: agreement_legal +#: selection:agreement,state:0 +msgid "Draft" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__dynamic_content +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__dynamic_content +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__dynamic_content +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__dynamic_content +msgid "Dynamic Content" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__dynamic_description +msgid "Dynamic Description" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__dynamic_special_terms +msgid "Dynamic Special Terms" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.view_project_agreement_kanban +msgid "Edit" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_contact_email +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_contact_email +msgid "Email" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__end_date +msgid "End Date" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Enter the default value if the field is empty" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__expiration_notice +msgid "Exp. Notice (Days)" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__field_id +msgid "Field" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Field Service" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__signed_contract_filename +msgid "Filename" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__copyvalue +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__copyvalue +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__copyvalue +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__copyvalue +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__copyvalue +msgid "Final placeholder expression, to be copy-pasted in the desired\n" +" template field." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Financials" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "General" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Helpdesk" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__id +msgid "ID" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__reference +msgid "ID used for internal contract tracking." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__active +msgid "If unchecked, it will allow you to hide the\n" +" agreement without removing it." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__active +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__active +msgid "If unchecked, it will allow you to hide the agreement without removing it." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__active +msgid "If unchecked, it will allow you to hide this appendix without removing it." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__active +msgid "If unchecked, it will allow you to hide this recital without removing it." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_serviceprofile__active +msgid "If unchecked, it will allow you to hide this service profile without removing it." +msgstr "" + +#. module: agreement_legal +#: selection:agreement,state:0 +msgid "Inactive" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__increase_percent +msgid "Increase Percentage" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__increase_type_id +msgid "Increase Type" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_increamenttypes +msgid "Increase Types" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_increasetype__name +msgid "Increase types describe any increases that may happen during the contract." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Inventory" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__fold +msgid "Is Folded" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__is_template +msgid "Is a Template?" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type____last_update +msgid "Last Modified on" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__write_date +msgid "Last Updated on" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__parent_agreement_id +msgid "Link this agreement to a parent agreement. For example if this agreement is an amendment to another agreement. This list will only show other agreements related to the same account." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your Field Service orders and equipments to an agreement" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_fieldservice_agreement +msgid "Link your Field Service orders and equipments to an agreement." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your Helpdesk tickets to an agreement" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_helpdesk_agreement +msgid "Link your Helpdesk tickets to an agreement." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_rma +msgid "Link your RMAs to an agreement." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your manufacturing orders to an agreement" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_mrp +msgid "Link your manufacturing orders to an agreement." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_stock +msgid "Link your pickings to an agreement." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your projects and tasks to an agreement" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_project +msgid "Link your projects and tasks to an agreement." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your repair orders to an agreement" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_repair +msgid "Link your repair orders to an agreement." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your returns to an agreement" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your subscriptions to an agreement" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_sale_subscription +msgid "Link your subscriptions to an agreement." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your transfers to an agreement" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_main_attachment_id +msgid "Main Attachment" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Maintenance" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__is_template +msgid "Make this agreement a template." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Manage maintenance agreements and contracts" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_maintenance +msgid "Manage maintenance agreements and contracts." +msgstr "" + +#. module: agreement_legal +#: model:res.groups,name:agreement_legal.group_agreement_manager +msgid "Manager" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Manufacturing" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_masterdata +msgid "Master Data" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_ids +msgid "Messages" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__name +msgid "Name" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Name:" +msgstr "" + +#. module: agreement_legal +#: code:addons/agreement_legal/models/agreement.py:108 +#: code:addons/agreement_legal/models/agreement.py:444 +#: code:addons/agreement_legal/models/agreement.py:445 +#, python-format +msgid "New" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "New Agreement" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "New Version" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Non-Templates" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__notification_address_id +msgid "Notification Address" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__expiration_notice +msgid "Number of Days before expiration to be notified." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__change_notice +msgid "Number of Days to be notified before changes." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_has_error_counter +msgid "Number of error" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__term +msgid "Number of months this agreement/contract is in effect with the partner." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_operations +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Operations" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__default_value +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__default_value +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__default_value +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__default_value +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__default_value +msgid "Optional value to use if the target field is empty." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__parent_agreement_id +msgid "Parent Agreement" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Parties" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_id +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Partner" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_contact_id +msgid "Partner Contact" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Partner Information" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Partners" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__payment_term_id +msgid "Payment Term" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Payment Terms" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_increasetype__increase_percent +msgid "Percentage that the amount will increase." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Performance" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Perhaps include invoices with total vs costs?" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_contact_phone +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_contact_phone +msgid "Phone" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__copyvalue +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__copyvalue +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__copyvalue +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__copyvalue +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__copyvalue +msgid "Placeholder Expression" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Preview" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Previouse Versions" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Primary Contact" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Print" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__product_id +msgid "Product" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_product_template +msgid "Product Template" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_products +msgid "Products" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__product_ids +msgid "Products & Services" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__line_ids +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Products/Services" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Project" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__qty +msgid "Quantity" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +msgid "Recital" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.agreement_recital_action +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__recital_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_recitals +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_tree +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Recitals" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.view_project_agreement_kanban +msgid "Record's Colour" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__reference +msgid "Reference" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__renewal_type_id +msgid "Renewal Type" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_renewaltype +msgid "Renewal Types" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_renewaltype__name +msgid "Renewal types describe what happens after the agreement/contract expires." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Repair" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_reporting +msgid "Reporting" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Represented by" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Returns" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__analytic_line_ids +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Revenues and Costs" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__reviewed_user_id +msgid "Reviewed By" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__reviewed_date +msgid "Reviewed Date" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Reviewed by" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__revision +msgid "Revision" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Revisions" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Sale Subscriptions" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Sales" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__sale_order_id +msgid "Sales Order" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__section_id +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Section" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__content +msgid "Section Content" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__sections_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_sections +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_list_view +msgid "Sections" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__field_id +msgid "Select target field from the related document model. If it is a\n" +" relationship field you will be able to select a target field at the\n" +" destination of the relationship." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__sale_order_id +msgid "Select the Sales Order that this agreement is related to." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Select the agreement field" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +msgid "Select the appendix field" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +msgid "Select the clause field" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__stage_id +msgid "Select the current stage of the agreement." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +msgid "Select the recital field" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Select the section field" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Select the sub-field" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__agreement_subtype_id +msgid "Select the sub-type of this agreement. Sub-Types are related to agreement types." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__agreement_type_id +msgid "Select the type of agreement." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__assigned_user_id +msgid "Select the user who manages this agreement." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Sell and purchase products in different units of measure" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__sequence +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__sequence +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__sequence +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__sequence +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__sequence +msgid "Sequence" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__order_lines_services_ids +msgid "Service Order Lines" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_serviceprofile_form +msgid "Service Profile" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.agreement_serviceprofile_action +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__serviceprofile_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_serviceprofiles +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_serviceprofile_tree +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Service Profiles" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.order_lines_search_view +msgid "Service Type" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.action_agreement_config +#: model:ir.ui.menu,name:agreement_legal.agreement_settings +msgid "Settings" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Signatures" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_signed_user_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_signed_user_id +msgid "Signed By" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__signed_contract +msgid "Signed Document" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_signed_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_signed_date +msgid "Signed on" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__special_terms +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Special Terms" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__stage_id +msgid "Stage" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__name +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_stage_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_stage_list_view +msgid "Stage Name" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_stages +msgid "Stages" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__start_date +msgid "Start Date" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__state +msgid "State" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Status" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Structure" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_subtype_list_view +msgid "Sub-Type Name" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_subtypes +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_type_list_view +msgid "Sub-Types" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__sub_model_object_field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__sub_model_object_field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__sub_model_object_field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__sub_model_object_field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__sub_model_object_field_id +msgid "Sub-field" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__sub_object_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__sub_object_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__sub_object_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__sub_object_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__sub_object_id +msgid "Sub-model" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__agreement_subtypes_ids +msgid "Subtypes" +msgstr "" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_agreement_templates +#: model:ir.ui.menu,name:agreement_legal.template +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Templates" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__term +msgid "Term (Months)" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Term Dates" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__termination_date +msgid "Termination Date" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__termination_requested +msgid "Termination Requested Date" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__payment_term_id +msgid "Terms of payments." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__notification_address_id +msgid "The address to send notificaitons to, if different from customer address.(Address Type = Other)" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__increase_type_id +msgid "The amount that certain rates may increase." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__partner_id +msgid "The customer or vendor this agreement is related to." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__company_contact_id +msgid "The primary contact in the company." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__partner_contact_id +msgid "The primary partner contact (If Applicable)." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__revision +msgid "The revision will increase with every save event." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__title +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__title +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__title +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__title +msgid "The title is displayed on the PDF.The name is not." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__company_signed_user_id +msgid "The user at our company who authorized/signed the agreement or contract." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__version +msgid "The versions are used to keep track of document history and previous versions can be referenced." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "This section (on the left) allows you to add dynamic fields inside the content." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "This section (on the left) allows you to add dynamic fields inside the description and special terms." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "This section is a place where financial records will show the current performance of this agreement." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_stage__fold +msgid "This stage is folded in the kanban view by deafault." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__title +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__title +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__title +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__title +msgid "Title" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Title:" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__total_company_mrc +msgid "Total company monthly recurring costs." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__total_company_nrc +msgid "Total company non-recurring costs." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__total_customer_mrc +msgid "Total custemer monthly recurring costs." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__total_customer_nrc +msgid "Total custemer non-monthly recurring costs." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__contract_value +msgid "Total value of the contract over ther entire term." +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_type_list_view +msgid "Type Name" +msgstr "" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_types +msgid "Types" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__uom_id +msgid "Unit of Measure" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Units Of Measure" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_unread +msgid "Unread Messages" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_unread_counter +msgid "Unread Messages Counter" +msgstr "" + +#. module: agreement_legal +#: model:res.groups,name:agreement_legal.group_agreement_user +msgid "User" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__version +msgid "Version" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Version:" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__sub_model_object_field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__sub_model_object_field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__sub_model_object_field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__sub_model_object_field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__sub_model_object_field_id +msgid "When a relationship field is selected as first field, this\n" +" field lets you select the target field within the destination document\n" +" model (sub-model)." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__sub_object_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__sub_object_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__sub_object_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__sub_object_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__sub_object_id +msgid "When a relationship field is selected as first field, this\n" +" field shows the document model the relationship goes to." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__end_date +msgid "When the agreement ends." +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__start_date +msgid "When the agreement starts." +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement +msgid "agreement" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_increasetype +msgid "agreement.increasetype" +msgstr "" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_renewaltype +msgid "agreement.renewaltype" +msgstr "" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__dynamic_content +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__dynamic_content +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__dynamic_content +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__dynamic_content +msgid "compute dynamic Content" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.view_project_agreement_kanban +msgid "oe_kanban_text_red" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "on" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.view_project_agreement_kanban +msgid "user & picture" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "| Created By:" +msgstr "" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "| Created On:" +msgstr "" + diff --git a/agreement_legal/i18n/fr.po b/agreement_legal/i18n/fr.po new file mode 100644 index 00000000..47c00033 --- /dev/null +++ b/agreement_legal/i18n/fr.po @@ -0,0 +1,1800 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * agreement_legal +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-03-24 16:40+0000\n" +"PO-Revision-Date: 2019-03-24 18:18+0100\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"Language: fr\n" +"X-Generator: Poedit 1.8.6\n" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_needaction +msgid "Action Needed" +msgstr "Nécessite une action" + +#. module: agreement_legal +#: selection:agreement,state:0 +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__active +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__active +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__active +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__active +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__active +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__active +msgid "Active" +msgstr "Actif" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Administration" +msgstr "Administration" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Advanced Features" +msgstr "Fonctionnalités avancées" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_account_analytic_line__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__agreement_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__agreement_id +#: model:ir.module.category,name:agreement_legal.agreement +#: model:ir.module.category,name:agreement_legal.module_agreement_legal_category +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Agreement" +msgstr "Accord" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_appendix +msgid "Agreement Appendices" +msgstr "Annexes de l'accord" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_clause_search_view +msgid "Agreement Clause Search" +msgstr "Recherche de clause d'accord" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_clause +msgid "Agreement Clauses" +msgstr "Clause de l'accord" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_increasetype +msgid "Agreement Increase Type" +msgstr "Type d'augmentation d'accord" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_line +msgid "Agreement Lines" +msgstr "Lignes de l'accord" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Agreement Name" +msgstr "Nom de l'accord" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_recital +msgid "Agreement Recitals" +msgstr "Préambules de l'accord" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_renewaltype +msgid "Agreement Renewal Type" +msgstr "Type de renouvellement de l'accord" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Agreement Search" +msgstr "Recherche d'accord" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_search_view +msgid "Agreement Section Search" +msgstr "Recherche de section d'accord" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_section +#: model:ir.model,name:agreement_legal.model_agreement_section +msgid "Agreement Sections" +msgstr "Sections de l'accord" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_serviceprofile +msgid "Agreement Service Profiles" +msgstr "Profils de service d'accord" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_stage +msgid "Agreement Stage" +msgstr "Étape de l'accord" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_stage +msgid "Agreement Stages" +msgstr "Étapes de l'accord" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_subtype +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_subtype_form_view +msgid "Agreement Sub-Types" +msgstr "Sous-types de l'accord" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__agreement_subtype_id +msgid "Agreement Sub-type" +msgstr "Sous-type de l'accord" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_subtype +msgid "Agreement Subtypes" +msgstr "Sous-types de l'accord" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__agreement_type_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__agreement_type_id +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_subtype_list_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_type_form_view +msgid "Agreement Type" +msgstr "Type de l'accord" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_type +#: model:ir.model,name:agreement_legal.model_agreement_type +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_type_list_view +msgid "Agreement Types" +msgstr "Types de l'accord" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.action_agreement_report_order +#: model:ir.actions.act_window,name:agreement_legal.agreement_dashboard_agreement +#: model:ir.actions.act_window,name:agreement_legal.agreement_operations_agreement +#: model:ir.model.fields,field_description:agreement_legal.field_product_template__agreements_ids +#: model:ir.model.fields,field_description:agreement_legal.field_res_partner__agreement_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_agreement_reporting +#: model:ir.ui.menu,name:agreement_legal.agreement_root +#: model:ir.ui.menu,name:agreement_legal.dashboard_agreements +#: model:ir.ui.menu,name:agreement_legal.operations_agreements +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_graph_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_pivot_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_list_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_search_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Agreements" +msgstr "Accords" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Agreements Form" +msgstr "Formulaire des accords" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_stage_form_view +msgid "Agreements Stage Form" +msgstr "Formulaire d'étape des accords" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_increasetype_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_renewaltype_form_view +msgid "Agreements Type Form" +msgstr "Formulaire du type d'accords" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__analytic_id +msgid "Analytic Account" +msgstr "Compte analytique" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_account_analytic_line +msgid "Analytic Line" +msgstr "Ligne analytique" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__special_terms +msgid "Any terms that you have agreed to and want to track on the agreement/contract." +msgstr "Toutes les conditions que vous avez acceptées et que vous souhaitez suivre sur l’accord / contrat." + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.agreement_appendix_action +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__appendix_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_appendices +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_tree +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Appendices" +msgstr "Annexes" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +msgid "Appendix" +msgstr "Annexe" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__approved_user_id +msgid "Approved By" +msgstr "Approuvé par" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__approved_date +msgid "Approved Date" +msgstr "Date d'approbation" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Approved by" +msgstr "Approuvé par" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Archived" +msgstr "Archivé" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__assigned_user_id +msgid "Assigned To" +msgstr "Assigné à" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_attachment_count +msgid "Attachment Count" +msgstr "Nombre de pièces jointes" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "By:" +msgstr "Par :" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__change_notice +msgid "Change Notice (Days)" +msgstr "Avis de modification (Jours)" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__child_agreements_ids +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__previous_version_agreements_ids +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Child Agreements" +msgstr "Sous-Accords" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +msgid "Clause" +msgstr "Clause" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__content +msgid "Clause Content" +msgstr "Contenu de la clause" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_action_clause +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__clauses_ids +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__clauses_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_clauses +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_list_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Clauses" +msgstr "Clauses" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__color +msgid "Color" +msgstr "Couleur" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_partner_id +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Company" +msgstr "Société" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_contact_id +msgid "Company Contact" +msgstr "Contact de la société" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Company Information" +msgstr "Informations sur la société" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__total_company_mrc +msgid "Company MRC" +msgstr "Société MRC" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__total_company_nrc +msgid "Company NRC" +msgstr "Société NRC" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__dynamic_description +msgid "Compute dynamic description" +msgstr "Générer description dynamique" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__dynamic_special_terms +msgid "Compute dynamic special terms" +msgstr "Générer les termes spéciaux dynamiques" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_res_config_settings +msgid "Config Settings" +msgstr "Paramètres de config" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_configuration +msgid "Configuration" +msgstr "Configuration" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_res_partner +msgid "Contact" +msgstr "Contact" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__partner_signed_user_id +msgid "Contact on the account that signed the agreement/contract." +msgstr "Contact du compte qui a signé l'accord / contrat." + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__content +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__content +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Content" +msgstr "Contenu" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_data_contents +msgid "Contents" +msgstr "Contenu" + +#. module: agreement_legal +#: model:ir.actions.report,name:agreement_legal.partner_agreement_contract_document +msgid "Contract Document" +msgstr "Document contractuel" + +#. module: agreement_legal +#: model:ir.actions.report,name:agreement_legal.partner_agreement_contract_document_preview +msgid "Contract Document Preview" +msgstr "Aperçu du contrat" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__contract_value +msgid "Contract Value" +msgstr "Valeur du contrat" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Copy and paste the placeholder expression in the content" +msgstr "Copiez et collez l'expression dans le contenu." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Copy and paste the placeholder expression in the description or the special terms" +msgstr "Copiez et collez l'expression dans la description ou les conditions spéciales" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_sale +msgid "Create an agreement when the sale order is confirmed." +msgstr "Créez un contrat lorsque la commande est confirmée." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Create an agreement when the sales order is confirmed" +msgstr "Créer un contrat lorsque la commande client est confirmée" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__create_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__create_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__currency_id +msgid "Currency" +msgstr "Devise" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__total_customer_mrc +msgid "Customer MRC" +msgstr "MRC client" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__total_customer_nrc +msgid "Customer NRC" +msgstr "NRC client" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_dashboard +msgid "Dashboard" +msgstr "Tableau de bord" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__termination_requested +msgid "Date that a request for termination was received." +msgstr "Date à laquelle la demande de résiliation a été reçue." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__termination_date +msgid "Date that the contract was terminated." +msgstr "Date à laquelle le contrat a été résilié." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__company_signed_date +msgid "Date the contract was signed by Company." +msgstr "Date à laquelle le contrat a été signé par la société." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__partner_signed_date +msgid "Date the contract was signed by the Partner." +msgstr "Date de signature du contrat par le partenaire." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Date:" +msgstr "Date :" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__default_value +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__default_value +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__default_value +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__default_value +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__default_value +msgid "Default Value" +msgstr "Valeur par défaut" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__renewal_type_id +msgid "Describes what happens after the contract expires." +msgstr "Description de ce qui se passe après l'expiration du contrat." + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__description +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__description +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__description +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__description +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_increasetype_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_renewaltype_form_view +msgid "Description" +msgstr "Description" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__description +msgid "Description of the agreement" +msgstr "Description de l'accord" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_increasetype__description +#: model:ir.model.fields,help:agreement_legal.field_agreement_renewaltype__description +msgid "Description of the renewal type." +msgstr "Description du type de renouvellement." + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__display_name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: agreement_legal +#: selection:agreement,state:0 +msgid "Draft" +msgstr "Bozza" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__dynamic_content +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__dynamic_content +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__dynamic_content +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__dynamic_content +msgid "Dynamic Content" +msgstr "Contenu dynamique" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__dynamic_description +msgid "Dynamic Description" +msgstr "Description dynamique" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__dynamic_special_terms +msgid "Dynamic Special Terms" +msgstr "Conditions spéciales dynamiques" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.view_project_agreement_kanban +msgid "Edit" +msgstr "Modifier" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_contact_email +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_contact_email +msgid "Email" +msgstr "Courriel" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__end_date +msgid "End Date" +msgstr "Date de fin" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Enter the default value if the field is empty" +msgstr "Entrez la valeur par défaut si le champ est vide" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__expiration_notice +msgid "Exp. Notice (Days)" +msgstr "Préavis (Jours)" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__field_id +msgid "Field" +msgstr "Champ" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Field Service" +msgstr "Service sur site" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__signed_contract_filename +msgid "Filename" +msgstr "Nom du fichier" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__copyvalue +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__copyvalue +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__copyvalue +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__copyvalue +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__copyvalue +msgid "" +"Final placeholder expression, to be copy-pasted in the desired\n" +" template field." +msgstr "" +"Expression de substitution finale, à copier-coller dans\n" +" le champ du modèle." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Financials" +msgstr "Finance" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_follower_ids +msgid "Followers" +msgstr "Abonnés" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_channel_ids +msgid "Followers (Channels)" +msgstr "Abonnés (Canaux)" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_partner_ids +msgid "Followers (Partners)" +msgstr "Abonnés (Partenaires)" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "General" +msgstr "Général" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Helpdesk" +msgstr "Assistance" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__id +msgid "ID" +msgstr "ID" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__reference +msgid "ID used for internal contract tracking." +msgstr "ID utilisé pour le suivi interne des contrats." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_unread +msgid "If checked new messages require your attention." +msgstr "Si coché, de nouveaux messages demandent votre attention." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Si coché, de nouveaux messages demandent votre attention." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Si actif, certains messages ont une erreur de livraison." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__active +msgid "" +"If unchecked, it will allow you to hide the\n" +" agreement without removing it." +msgstr "" +"Si décoché, cela vous permettra de cacher l'\n" +" accord sans l'enlever." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__active +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__active +msgid "If unchecked, it will allow you to hide the agreement without removing it." +msgstr "Si cette case est décochée, cela vous permettra de cacher l'accord sans le supprimer." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__active +msgid "If unchecked, it will allow you to hide this appendix without removing it." +msgstr "Si cette case est décochée, cela vous permettra de masquer cette annexe sans la supprimer." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__active +msgid "If unchecked, it will allow you to hide this recital without removing it." +msgstr "Si cette case est décochée, cela vous permettra de masquer ce préambule sans le supprimer." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_serviceprofile__active +msgid "If unchecked, it will allow you to hide this service profile without removing it." +msgstr "Si cette case est décochée, cela vous permettra de masquer ce profil de service sans le supprimer." + +#. module: agreement_legal +#: selection:agreement,state:0 +msgid "Inactive" +msgstr "Inattivo" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__increase_percent +msgid "Increase Percentage" +msgstr "Augmentation (en pourcentage)" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__increase_type_id +msgid "Increase Type" +msgstr "Type de l'augmentation" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_increamenttypes +msgid "Increase Types" +msgstr "Types de l'augmentation" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_increasetype__name +msgid "Increase types describe any increases that may happen during the contract." +msgstr "Les types d'augmentation décrivent les augmentations éventuelles en cours de contrat." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Inventory" +msgstr "Inventaire" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__fold +msgid "Is Folded" +msgstr "Est replié" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_is_follower +msgid "Is Follower" +msgstr "Est un abonné" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__is_template +msgid "Is a Template?" +msgstr "Est un modèle?" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype____last_update +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__write_uid +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__write_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__parent_agreement_id +msgid "Link this agreement to a parent agreement. For example if this agreement is an amendment to another agreement. This list will only show other agreements related to the same account." +msgstr "Liez cet accord à un accord parent. Par exemple, dans le cas d'amendement à un accord. Cette liste ne montrera que les autres accords liés au même compte." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your Field Service orders and equipments to an agreement" +msgstr "Liez vos commandes de service après-vente et équipements pour le contrat" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_fieldservice_agreement +msgid "Link your Field Service orders and equipments to an agreement." +msgstr "Liez vos commandes de service après-vente et vos équipements à un contrat." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your Helpdesk tickets to an agreement" +msgstr "Liez vos tickets de support à un contrat" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_helpdesk_agreement +msgid "Link your Helpdesk tickets to an agreement." +msgstr "Liez vos tickets de support à un contrat." + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_rma +msgid "Link your RMAs to an agreement." +msgstr "Liez vos RMA à un accord." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your manufacturing orders to an agreement" +msgstr "Liez vos ordres de fabrication à un contrat" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_mrp +msgid "Link your manufacturing orders to an agreement." +msgstr "Liez vos ordres de fabrication à un accord." + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_stock +msgid "Link your pickings to an agreement." +msgstr "Liez vos prélèvements d'inventaire à un accord." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your projects and tasks to an agreement" +msgstr "Liez vos projets et tâches à un accord" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_project +msgid "Link your projects and tasks to an agreement." +msgstr "Liez vos projets et tâches à un accord." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your repair orders to an agreement" +msgstr "Liez vos commandes de réparation à un contrat" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_repair +msgid "Link your repair orders to an agreement." +msgstr "Liez vos commandes de réparation à un contrat." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your returns to an agreement" +msgstr "Liez vos retours à un accord" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your subscriptions to an agreement" +msgstr "Liez vos abonnements à un contrat" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_sale_subscription +msgid "Link your subscriptions to an agreement." +msgstr "Liez vos abonnements à un contrat." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Link your transfers to an agreement" +msgstr "Liez vos transferts à un accord" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_main_attachment_id +msgid "Main Attachment" +msgstr "Pièce jointe principale" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Maintenance" +msgstr "Entretien" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__is_template +msgid "Make this agreement a template." +msgstr "Faites de cet accord un modèle." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Manage maintenance agreements and contracts" +msgstr "Gérer les contrats de maintenance et les contrats" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_res_config_settings__module_agreement_maintenance +msgid "Manage maintenance agreements and contracts." +msgstr "Gérer les contrats de maintenance et les contrats." + +#. module: agreement_legal +#: model:res.groups,name:agreement_legal.group_agreement_manager +msgid "Manager" +msgstr "Responsable" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Manufacturing" +msgstr "Fabrication" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_masterdata +msgid "Master Data" +msgstr "Données de base" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_has_error +msgid "Message Delivery error" +msgstr "Erreur d'envoi du message" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_ids +msgid "Messages" +msgstr "Messages" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_serviceprofile__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_subtype__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__name +msgid "Name" +msgstr "Nom" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Name:" +msgstr "Nom :" + +#. module: agreement_legal +#: code:addons/agreement_legal/models/agreement.py:108 +#: code:addons/agreement_legal/models/agreement.py:444 +#: code:addons/agreement_legal/models/agreement.py:445 +#, python-format +msgid "New" +msgstr "Nouveau" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "New Agreement" +msgstr "Nouvel accord" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "New Version" +msgstr "Nouvelle version" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Non-Templates" +msgstr "Non-modèles" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__notification_address_id +msgid "Notification Address" +msgstr "Adresse de notification" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_needaction_counter +msgid "Number of Actions" +msgstr "Nombre d'actions" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__expiration_notice +msgid "Number of Days before expiration to be notified." +msgstr "Nombre de jours avant expiration à notifier." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__change_notice +msgid "Number of Days to be notified before changes." +msgstr "Nombre de jours à notifier avant les modifications." + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_has_error_counter +msgid "Number of error" +msgstr "Nombre d'erreurs" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "Nombre de messages exigeant une action" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Nombre de messages avec des erreurs d'envoi" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__term +msgid "Number of months this agreement/contract is in effect with the partner." +msgstr "Nombre de mois de validité de cet accord / contrat avec le partenaire." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__message_unread_counter +msgid "Number of unread messages" +msgstr "Nombre de messages non lus" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_operations +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Operations" +msgstr "Opérations" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__default_value +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__default_value +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__default_value +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__default_value +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__default_value +msgid "Optional value to use if the target field is empty." +msgstr "Valeur facultative à utiliser si le champ cible est vide." + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__parent_agreement_id +msgid "Parent Agreement" +msgstr "Contrat parent" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Parties" +msgstr "Parties de l'accord" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_id +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Partner" +msgstr "Partenaire" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_contact_id +msgid "Partner Contact" +msgstr "Contact partenaire" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Partner Information" +msgstr "Information partenaire" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Partners" +msgstr "Partenaires" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__payment_term_id +msgid "Payment Term" +msgstr "Modalité de paiement" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Payment Terms" +msgstr "Conditions de paiement" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_increasetype__increase_percent +msgid "Percentage that the amount will increase." +msgstr "Pourcentage que le montant va augmenter." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Performance" +msgstr "Performance" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Perhaps include invoices with total vs costs?" +msgstr "Peut-être inclure le total des factures vs coûts?" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_contact_phone +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_contact_phone +msgid "Phone" +msgstr "Téléphone" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__copyvalue +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__copyvalue +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__copyvalue +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__copyvalue +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__copyvalue +msgid "Placeholder Expression" +msgstr "Expression fictive" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Preview" +msgstr "Prévisualiser" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Previouse Versions" +msgstr "Versions précédentes" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Primary Contact" +msgstr "Contact principal" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Print" +msgstr "Imprimer" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__product_id +msgid "Product" +msgstr "Article" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_product_template +msgid "Product Template" +msgstr "Modèle d'article" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_products +msgid "Products" +msgstr "Articles" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__product_ids +msgid "Products & Services" +msgstr "Produits & Services" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__line_ids +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Products/Services" +msgstr "Produits/Services" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Project" +msgstr "Projet" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__qty +msgid "Quantity" +msgstr "Quantité" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +msgid "Recital" +msgstr "Préambule" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.agreement_recital_action +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__recital_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_recitals +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_tree +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Recitals" +msgstr "Préambules" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.view_project_agreement_kanban +msgid "Record's Colour" +msgstr "Couleur de l'enregistrement" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__reference +msgid "Reference" +msgstr "Référence" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__renewal_type_id +msgid "Renewal Type" +msgstr "Type de renouvellement" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_renewaltype +msgid "Renewal Types" +msgstr "Types de renouvellement" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_renewaltype__name +msgid "Renewal types describe what happens after the agreement/contract expires." +msgstr "Les types de renouvellement décrivent ce qui se passe après l'expiration de l'accord / du contrat." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Repair" +msgstr "Réparation" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_reporting +msgid "Reporting" +msgstr "Rapport" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Represented by" +msgstr "Représenté par" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Returns" +msgstr "Retours" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__analytic_line_ids +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Revenues and Costs" +msgstr "Revenus et Coûts" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__reviewed_user_id +msgid "Reviewed By" +msgstr "Révisée par" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__reviewed_date +msgid "Reviewed Date" +msgstr "Date de révision" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Reviewed by" +msgstr "Révisée par" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__revision +msgid "Revision" +msgstr "Révision" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Revisions" +msgstr "Révisions" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Sale Subscriptions" +msgstr "Abonnements" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Sales" +msgstr "Vente" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__sale_order_id +msgid "Sales Order" +msgstr "Bon de commande" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__section_id +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Section" +msgstr "Section" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__content +msgid "Section Content" +msgstr "Contenu de la section" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__sections_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_sections +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_list_view +msgid "Sections" +msgstr "Sections" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__field_id +msgid "" +"Select target field from the related document model. If it is a\n" +" relationship field you will be able to select a target field at the\n" +" destination of the relationship." +msgstr "" +"Sélectionnez le champ cible dans le modèle de document associé. Dans le cas d'un\n" +" champ relationnel, vous serez en mesure de sélectionner un champ cible à la\n" +" destination de la relation." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__sale_order_id +msgid "Select the Sales Order that this agreement is related to." +msgstr "Sélectionnez la commande à laquelle cet accord se rapporte." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Select the agreement field" +msgstr "Sélectionnez le champ \"accord\"" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +msgid "Select the appendix field" +msgstr "Sélectionnez le champ \"annexe\"" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +msgid "Select the clause field" +msgstr "Sélectionnez le champ \"clause\"" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__stage_id +msgid "Select the current stage of the agreement." +msgstr "Sélectionnez le stade actuel de l'accord." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +msgid "Select the recital field" +msgstr "Sélectionnez le champ \"préambule\"" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Select the section field" +msgstr "Sélectionnez le champ \"section\"" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "Select the sub-field" +msgstr "Sélectionnez le sous-champ" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__agreement_subtype_id +msgid "Select the sub-type of this agreement. Sub-Types are related to agreement types." +msgstr "Sélectionnez le sous-type de cet accord. Les sous-types sont liés aux types d'accord." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__agreement_type_id +msgid "Select the type of agreement." +msgstr "Sélectionnez le type d'accord." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__assigned_user_id +msgid "Select the user who manages this agreement." +msgstr "Sélectionnez l'utilisateur qui gère cet accord." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Sell and purchase products in different units of measure" +msgstr "Acheter et vendre dans des unités de mesure différentes" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__sequence +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__sequence +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__sequence +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__sequence +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__sequence +msgid "Sequence" +msgstr "Séquence" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__order_lines_services_ids +msgid "Service Order Lines" +msgstr "Lignes de commande de service" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_serviceprofile_form +msgid "Service Profile" +msgstr "Profil de service" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.agreement_serviceprofile_action +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__serviceprofile_ids +#: model:ir.ui.menu,name:agreement_legal.agreement_serviceprofiles +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_serviceprofile_tree +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Service Profiles" +msgstr "Profils de service" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.order_lines_search_view +msgid "Service Type" +msgstr "Type de service" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.action_agreement_config +#: model:ir.ui.menu,name:agreement_legal.agreement_settings +msgid "Settings" +msgstr "Configuration" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Signatures" +msgstr "Signatures" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_signed_user_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_signed_user_id +msgid "Signed By" +msgstr "Signé par" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__signed_contract +msgid "Signed Document" +msgstr "Document signé" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__company_signed_date +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__partner_signed_date +msgid "Signed on" +msgstr "Signé le" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__special_terms +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Special Terms" +msgstr "Conditions spéciales" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__stage_id +msgid "Stage" +msgstr "Étape" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_stage__name +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_stage_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_stage_list_view +msgid "Stage Name" +msgstr "Nom de l'étape" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_stages +msgid "Stages" +msgstr "Étapes" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__start_date +msgid "Start Date" +msgstr "Date de début" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__state +msgid "State" +msgstr "État" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Status" +msgstr "Statut" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Structure" +msgstr "Structure" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_subtype_list_view +msgid "Sub-Type Name" +msgstr "Nom du sous-type" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_subtypes +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_type_list_view +msgid "Sub-Types" +msgstr "Sous-types" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__sub_model_object_field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__sub_model_object_field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__sub_model_object_field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__sub_model_object_field_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__sub_model_object_field_id +msgid "Sub-field" +msgstr "Sous champ" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__sub_object_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__sub_object_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__sub_object_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__sub_object_id +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__sub_object_id +msgid "Sub-model" +msgstr "Sous-modèle" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_type__agreement_subtypes_ids +msgid "Subtypes" +msgstr "Sous-types" + +#. module: agreement_legal +#: model:ir.actions.act_window,name:agreement_legal.partner_agreement_agreement_templates +#: model:ir.ui.menu,name:agreement_legal.template +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_search_view +msgid "Templates" +msgstr "Modèles" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__term +msgid "Term (Months)" +msgstr "Terme (mois)" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Term Dates" +msgstr "Dates d'expiration" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__termination_date +msgid "Termination Date" +msgstr "Date de résiliation" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__termination_requested +msgid "Termination Requested Date" +msgstr "Date de résiliation demandée" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__payment_term_id +msgid "Terms of payments." +msgstr "Conditions de paiements." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__notification_address_id +msgid "The address to send notificaitons to, if different from customer address.(Address Type = Other)" +msgstr "Adresse à laquelle envoyer les notifications, si différente de l'adresse du client. (Type d'adresse = Autre)" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__increase_type_id +msgid "The amount that certain rates may increase." +msgstr "Le montant que certains taux peuvent augmenter." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__partner_id +msgid "The customer or vendor this agreement is related to." +msgstr "Le client ou le fournisseur auquel cet accord est lié." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__company_contact_id +msgid "The primary contact in the company." +msgstr "Le contact principal dans l'entreprise." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__partner_contact_id +msgid "The primary partner contact (If Applicable)." +msgstr "Le contact principal du partenaire (le cas échéant)." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__revision +msgid "The revision will increase with every save event." +msgstr "Le numéro de révision augmentera à chaque sauvegarde." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__title +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__title +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__title +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__title +msgid "The title is displayed on the PDF.The name is not." +msgstr "Le titre est affiché sur le PDF. Le nom ne l’est pas." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__company_signed_user_id +msgid "The user at our company who authorized/signed the agreement or contract." +msgstr "L'utilisateur de notre société qui a autorisé / signé l'accord ou le contrat." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__version +msgid "The versions are used to keep track of document history and previous versions can be referenced." +msgstr "Les versions permettent de suivre l'historique des documents et les versions précédentes peuvent être référencées." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_appendix_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.agreement_recital_form +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_clause_form_view +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_section_form_view +msgid "This section (on the left) allows you to add dynamic fields inside the content." +msgstr "Cette section (à gauche) vous permet d'ajouter des champs dynamiques à l'intérieur du contenu." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "This section (on the left) allows you to add dynamic fields inside the description and special terms." +msgstr "Cette section (à gauche) vous permet d'ajouter des champs dynamiques à l'intérieur de la description et des termes spéciaux." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "This section is a place where financial records will show the current performance of this agreement." +msgstr "Cette section est un endroit où les registres financiers montreront la performance actuelle de cet accord." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_stage__fold +msgid "This stage is folded in the kanban view by deafault." +msgstr "Cette étape est repliée dans la vue kanban par défaut." + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_appendix__title +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_clause__title +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_increasetype__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_recital__title +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_renewaltype__name +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_section__title +msgid "Title" +msgstr "Titre" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.report_agreement_document +msgid "Title:" +msgstr "Titre:" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__total_company_mrc +msgid "Total company monthly recurring costs." +msgstr "Total des coûts récurrents mensuels de la société." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__total_company_nrc +msgid "Total company non-recurring costs." +msgstr "Total des coûts non récurrents de la société." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__total_customer_mrc +msgid "Total custemer monthly recurring costs." +msgstr "Total des coûts récurrents mensuels du client." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__total_customer_nrc +msgid "Total custemer non-monthly recurring costs." +msgstr "Total des coûts client mensuels non-récurrents." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__contract_value +msgid "Total value of the contract over ther entire term." +msgstr "Valeur totale du contrat sur toute la durée." + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_type_list_view +msgid "Type Name" +msgstr "Nom du type" + +#. module: agreement_legal +#: model:ir.ui.menu,name:agreement_legal.agreement_types +msgid "Types" +msgstr "Types" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement_line__uom_id +msgid "Unit of Measure" +msgstr "Unité de mesure" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.res_config_settings_view_form +msgid "Units Of Measure" +msgstr "Unités de mesure" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_unread +msgid "Unread Messages" +msgstr "Messages non lus" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__message_unread_counter +msgid "Unread Messages Counter" +msgstr "Compteur de messages non lus" + +#. module: agreement_legal +#: model:res.groups,name:agreement_legal.group_agreement_user +msgid "User" +msgstr "Utilisateur" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__version +msgid "Version" +msgstr "Version" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "Version:" +msgstr "Version:" + +#. module: agreement_legal +#: model:ir.model.fields,field_description:agreement_legal.field_agreement__website_message_ids +msgid "Website Messages" +msgstr "Messages du site web" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__website_message_ids +msgid "Website communication history" +msgstr "Historique de communication du site web" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__sub_model_object_field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__sub_model_object_field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__sub_model_object_field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__sub_model_object_field_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__sub_model_object_field_id +msgid "" +"When a relationship field is selected as first field, this\n" +" field lets you select the target field within the destination document\n" +" model (sub-model)." +msgstr "" +"Lorsqu'un champ relationnel est sélectionné en premier, cela\n" +" vous permet de sélectionner le champ cible dans le document de destination\n" +" modèle (sous-modèle)." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__sub_object_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__sub_object_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__sub_object_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__sub_object_id +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__sub_object_id +msgid "" +"When a relationship field is selected as first field, this\n" +" field shows the document model the relationship goes to." +msgstr "" +"Lorsqu'un champ relationnel est sélectionné, ce\n" +" champ indique le modèle de document cible." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__end_date +msgid "When the agreement ends." +msgstr "Quand l'accord se termine." + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement__start_date +msgid "When the agreement starts." +msgstr "Quand l'accord commence" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement +msgid "agreement" +msgstr "accord" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_increasetype +msgid "agreement.increasetype" +msgstr "agreement.increasetype" + +#. module: agreement_legal +#: model:ir.model,name:agreement_legal.model_agreement_renewaltype +msgid "agreement.renewaltype" +msgstr "agreement.renewaltype" + +#. module: agreement_legal +#: model:ir.model.fields,help:agreement_legal.field_agreement_appendix__dynamic_content +#: model:ir.model.fields,help:agreement_legal.field_agreement_clause__dynamic_content +#: model:ir.model.fields,help:agreement_legal.field_agreement_recital__dynamic_content +#: model:ir.model.fields,help:agreement_legal.field_agreement_section__dynamic_content +msgid "compute dynamic Content" +msgstr "Générer le contenu dynamique" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.view_project_agreement_kanban +msgid "oe_kanban_text_red" +msgstr "oe_kanban_text_red" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "on" +msgstr "le" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.view_project_agreement_kanban +msgid "user & picture" +msgstr "utilisateur et image" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "| Created By:" +msgstr "| Créé par:" + +#. module: agreement_legal +#: model_terms:ir.ui.view,arch_db:agreement_legal.partner_agreement_form_view +msgid "| Created On:" +msgstr "| Créé le:" diff --git a/agreement_legal/models/__init__.py b/agreement_legal/models/__init__.py new file mode 100644 index 00000000..c24e38c0 --- /dev/null +++ b/agreement_legal/models/__init__.py @@ -0,0 +1,18 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import ( + res_config_settings, + agreement_stage, + agreement, + agreement_appendix, + agreement_clause, + agreement_line, + agreement_recital, + agreement_section, + agreement_type, + agreement_subtype, + res_partner, + product_template, + agreement_renewaltype, + agreement_increasetype, +) diff --git a/agreement_legal/models/agreement.py b/agreement_legal/models/agreement.py new file mode 100644 index 00000000..0e6009cb --- /dev/null +++ b/agreement_legal/models/agreement.py @@ -0,0 +1,398 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import _, api, fields, models + + +class Agreement(models.Model): + _name = "agreement" + _inherit = ["agreement", "mail.thread"] + + def _default_stage_id(self): + return self.env.ref("agreement_legal.agreement_stage_new") + + # General + name = fields.Char(string="Title", required=True) + is_template = fields.Boolean( + string="Is a Template?", + default=False, + copy=False, + help="Make this agreement a template.", + ) + version = fields.Integer( + string="Version", + default=1, + copy=False, + help="The versions are used to keep track of document history and " + "previous versions can be referenced.", + ) + revision = fields.Integer( + string="Revision", + default=0, + copy=False, + help="The revision will increase with every save event.", + ) + description = fields.Text( + string="Description", + track_visibility="onchange", + help="Description of the agreement", + ) + dynamic_description = fields.Text( + compute="_compute_dynamic_description", + string="Dynamic Description", + help="Compute dynamic description", + ) + start_date = fields.Date( + string="Start Date", + track_visibility="onchange", + help="When the agreement starts.", + ) + end_date = fields.Date( + string="End Date", track_visibility="onchange", help="When the agreement ends." + ) + color = fields.Integer() + active = fields.Boolean( + string="Active", + default=True, + help="If unchecked, it will allow you to hide the agreement without " + "removing it.", + ) + company_signed_date = fields.Date( + string="Signed on", + track_visibility="onchange", + help="Date the contract was signed by Company.", + ) + partner_signed_date = fields.Date( + string="Signed on", + track_visibility="onchange", + help="Date the contract was signed by the Partner.", + ) + term = fields.Integer( + string="Term (Months)", + track_visibility="onchange", + help="Number of months this agreement/contract is in effect with the " + "partner.", + ) + expiration_notice = fields.Integer( + string="Exp. Notice (Days)", + track_visibility="onchange", + help="Number of Days before expiration to be notified.", + ) + change_notice = fields.Integer( + string="Change Notice (Days)", + track_visibility="onchange", + help="Number of Days to be notified before changes.", + ) + special_terms = fields.Text( + string="Special Terms", + track_visibility="onchange", + help="Any terms that you have agreed to and want to track on the " + "agreement/contract.", + ) + dynamic_special_terms = fields.Text( + compute="_compute_dynamic_special_terms", + string="Dynamic Special Terms", + help="Compute dynamic special terms", + ) + reference = fields.Char( + string="Reference", + copy=False, + required=True, + default=lambda self: _("New"), + track_visibility="onchange", + help="ID used for internal contract tracking.", + ) + increase_type_id = fields.Many2one( + "agreement.increasetype", + string="Increase Type", + track_visibility="onchange", + help="The amount that certain rates may increase.", + ) + termination_requested = fields.Date( + string="Termination Requested Date", + track_visibility="onchange", + help="Date that a request for termination was received.", + ) + termination_date = fields.Date( + string="Termination Date", + track_visibility="onchange", + help="Date that the contract was terminated.", + ) + reviewed_date = fields.Date(string="Reviewed Date", track_visibility="onchange") + reviewed_user_id = fields.Many2one( + "res.users", string="Reviewed By", track_visibility="onchange" + ) + approved_date = fields.Date(string="Approved Date", track_visibility="onchange") + approved_user_id = fields.Many2one( + "res.users", string="Approved By", track_visibility="onchange" + ) + currency_id = fields.Many2one("res.currency", string="Currency") + partner_id = fields.Many2one( + "res.partner", + string="Partner", + copy=True, + help="The customer or vendor this agreement is related to.", + ) + company_partner_id = fields.Many2one( + "res.partner", + string="Company", + copy=True, + default=lambda self: self.env.user.company_id.partner_id, + ) + partner_contact_id = fields.Many2one( + "res.partner", + string="Partner Contact", + copy=True, + help="The primary partner contact (If Applicable).", + ) + partner_contact_phone = fields.Char( + related="partner_contact_id.phone", string="Phone" + ) + partner_contact_email = fields.Char( + related="partner_contact_id.email", string="Email" + ) + company_contact_id = fields.Many2one( + "res.partner", + string="Company Contact", + copy=True, + help="The primary contact in the company.", + ) + company_contact_phone = fields.Char( + related="company_contact_id.phone", string="Phone" + ) + company_contact_email = fields.Char( + related="company_contact_id.email", string="Email" + ) + agreement_type_id = fields.Many2one( + "agreement.type", + string="Agreement Type", + track_visibility="onchange", + help="Select the type of agreement.", + ) + agreement_subtype_id = fields.Many2one( + "agreement.subtype", + string="Agreement Sub-type", + track_visibility="onchange", + help="Select the sub-type of this agreement. Sub-Types are related to " + "agreement types.", + ) + product_ids = fields.Many2many("product.template", string="Products & Services") + payment_term_id = fields.Many2one( + "account.payment.term", + string="Payment Term", + track_visibility="onchange", + help="Terms of payments.", + ) + assigned_user_id = fields.Many2one( + "res.users", + string="Assigned To", + track_visibility="onchange", + help="Select the user who manages this agreement.", + ) + company_signed_user_id = fields.Many2one( + "res.users", + string="Signed By", + track_visibility="onchange", + help="The user at our company who authorized/signed the agreement or " + "contract.", + ) + partner_signed_user_id = fields.Many2one( + "res.partner", + string="Signed By", + track_visibility="onchange", + help="Contact on the account that signed the agreement/contract.", + ) + parent_agreement_id = fields.Many2one( + "agreement", + string="Parent Agreement", + help="Link this agreement to a parent agreement. For example if this " + "agreement is an amendment to another agreement. This list will " + "only show other agreements related to the same account.", + ) + renewal_type_id = fields.Many2one( + "agreement.renewaltype", + string="Renewal Type", + track_visibility="onchange", + help="Describes what happens after the contract expires.", + ) + recital_ids = fields.One2many( + "agreement.recital", "agreement_id", string="Recitals", copy=True + ) + sections_ids = fields.One2many( + "agreement.section", "agreement_id", string="Sections", copy=True + ) + clauses_ids = fields.One2many( + "agreement.clause", "agreement_id", string="Clauses", copy=True + ) + appendix_ids = fields.One2many( + "agreement.appendix", "agreement_id", string="Appendices", copy=True + ) + previous_version_agreements_ids = fields.One2many( + "agreement", + "parent_agreement_id", + string="Child Agreements", + copy=False, + domain=[("active", "=", False)], + ) + child_agreements_ids = fields.One2many( + "agreement", + "parent_agreement_id", + string="Child Agreements", + copy=False, + domain=[("active", "=", True)], + ) + line_ids = fields.One2many( + "agreement.line", "agreement_id", string="Products/Services", copy=False + ) + state = fields.Selection( + [("draft", "Draft"), ("active", "Active"), ("inactive", "Inactive")], + default="draft", + track_visibility="always", + ) + notification_address_id = fields.Many2one( + "res.partner", + string="Notification Address", + help="The address to send notificaitons to, if different from " + "customer address.(Address Type = Other)", + ) + signed_contract_filename = fields.Char(string="Filename") + signed_contract = fields.Binary(string="Signed Document", track_visibility="always") + field_id = fields.Many2one( + "ir.model.fields", + string="Field", + help="""Select target field from the related document model. If it is a + relationship field you will be able to select a target field at the + destination of the relationship.""", + ) + sub_object_id = fields.Many2one( + "ir.model", + string="Sub-model", + help="""When a relationship field is selected as first field, this + field shows the document model the relationship goes to.""", + ) + sub_model_object_field_id = fields.Many2one( + "ir.model.fields", + string="Sub-field", + help="""When a relationship field is selected as first field, this + field lets you select the target field within the destination document + model (sub-model).""", + ) + default_value = fields.Char( + string="Default Value", + help="Optional value to use if the target field is empty.", + ) + copyvalue = fields.Char( + string="Placeholder Expression", + help="""Final placeholder expression, to be copy-pasted in the desired + template field.""", + ) + + # compute the dynamic content for mako expression + @api.multi + def _compute_dynamic_description(self): + MailTemplates = self.env["mail.template"] + for agreement in self: + lang = agreement.partner_id.lang or "en_US" + description = MailTemplates.with_context(lang=lang)._render_template( + agreement.description, "agreement", agreement.id + ) + agreement.dynamic_description = description + + @api.multi + def _compute_dynamic_special_terms(self): + MailTemplates = self.env["mail.template"] + for agreement in self: + lang = agreement.partner_id.lang or "en_US" + special_terms = MailTemplates.with_context(lang=lang)._render_template( + agreement.special_terms, "agreement", agreement.id + ) + agreement.dynamic_special_terms = special_terms + + @api.onchange("field_id", "sub_model_object_field_id", "default_value") + def onchange_copyvalue(self): + self.sub_object_id = False + self.copyvalue = False + self.sub_object_id = False + if self.field_id and not self.field_id.relation: + self.copyvalue = "${{object.{} or {}}}".format( + self.field_id.name, + self.default_value or "''", + ) + self.sub_model_object_field_id = False + if self.field_id and self.field_id.relation: + self.sub_object_id = self.env["ir.model"].search( + [("model", "=", self.field_id.relation)] + )[0] + if self.sub_model_object_field_id: + self.copyvalue = "${{object.{}.{} or {}}}".format( + self.field_id.name, + self.sub_model_object_field_id.name, + self.default_value or "''", + ) + + # Used for Kanban grouped_by view + @api.model + def _read_group_stage_ids(self, stages, domain, order): + stage_ids = self.env["agreement.stage"].search([]) + return stage_ids + + stage_id = fields.Many2one( + "agreement.stage", + string="Stage", + group_expand="_read_group_stage_ids", + help="Select the current stage of the agreement.", + track_visibility="onchange", + index=True, + # default=lambda self: self._default_stage_id(), + ) + + # Create New Version Button + @api.multi + def create_new_version(self, vals): + for rec in self: + if not rec.state == "draft": + # Make sure status is draft + rec.state = "draft" + default_vals = { + "name": "{} - OLD VERSION".format(rec.name), + "active": False, + "parent_agreement_id": rec.id, + } + # Make a current copy and mark it as old + rec.copy(default=default_vals) + # Increment the Version + rec.version = rec.version + 1 + # Reset revision to 0 since it's a new version + vals["revision"] = 0 + return super(Agreement, self).write(vals) + + def create_new_agreement(self): + default_vals = { + "name": "NEW", + "active": True, + "version": 1, + "revision": 0, + "state": "draft", + } + res = self.copy(default=default_vals) + return { + "res_model": "agreement", + "type": "ir.actions.act_window", + "view_mode": "form", + "view_type": "form", + "res_id": res.id, + } + + @api.model + def create(self, vals): + if vals.get("reference", _("New")) == _("New"): + vals["reference"] = self.env["ir.sequence"].next_by_code("agreement") or _( + "New" + ) + return super(Agreement, self).create(vals) + + # Increments the revision on each save action + @api.multi + def write(self, vals): + vals["revision"] = self.revision + 1 + return super(Agreement, self).write(vals) diff --git a/agreement_legal/models/agreement_appendix.py b/agreement_legal/models/agreement_appendix.py new file mode 100644 index 00000000..e81bd53c --- /dev/null +++ b/agreement_legal/models/agreement_appendix.py @@ -0,0 +1,101 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class AgreementAppendix(models.Model): + _name = "agreement.appendix" + _description = "Agreement Appendices" + _order = "sequence" + + name = fields.Char(string="Name", required=True) + title = fields.Char( + string="Title", + required=True, + help="The title is displayed on the PDF." "The name is not.", + ) + sequence = fields.Integer( + string="Sequence", + default=10) + content = fields.Html(string="Content") + dynamic_content = fields.Html( + compute="_compute_dynamic_content", + string="Dynamic Content", + help="compute dynamic Content", + ) + agreement_id = fields.Many2one( + "agreement", + string="Agreement", + ondelete="cascade") + active = fields.Boolean( + string="Active", + default=True, + help="If unchecked, it will allow you to hide this appendix without " + "removing it.", + ) + + # Dynamic field editor + field_id = fields.Many2one( + "ir.model.fields", + string="Field", + help="""Select target field from the related document model. If it is a + relationship field you will be able to select a target field at the + destination of the relationship.""", + ) + sub_object_id = fields.Many2one( + "ir.model", + string="Sub-model", + help="""When a relationship field is selected as first field, this + field shows the document model the relationship goes to.""", + ) + sub_model_object_field_id = fields.Many2one( + "ir.model.fields", + string="Sub-field", + help="""When a relationship field is selected as first field, this + field lets you select the target field within the destination document + model (sub-model).""", + ) + default_value = fields.Char( + string="Default Value", + help="Optional value to use if the target field is empty.", + ) + copyvalue = fields.Char( + string="Placeholder Expression", + help="""Final placeholder expression, to be copy-pasted in the desired + template field.""", + ) + + @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + def onchange_copyvalue(self): + self.sub_object_id = False + self.copyvalue = False + self.sub_object_id = False + if self.field_id and not self.field_id.relation: + self.copyvalue = "${object.%s or %s}" % \ + (self.field_id.name, + self.default_value or '\'\'') + self.sub_model_object_field_id = False + if self.field_id and self.field_id.relation: + self.sub_object_id = self.env['ir.model'].search( + [('model', '=', self.field_id.relation)])[0] + if self.sub_model_object_field_id: + self.copyvalue = "${object.%s.%s or %s}" %\ + (self.field_id.name, + self.sub_model_object_field_id.name, + self.default_value or '\'\'') + + # compute the dynamic content for mako expression + @api.multi + def _compute_dynamic_content(self): + MailTemplates = self.env["mail.template"] + for appendix in self: + lang = ( + appendix.agreement_id + and appendix.agreement_id.partner_id.lang + or "en_US" + ) + content = MailTemplates.with_context(lang=lang)._render_template( + appendix.content, "agreement.appendix", appendix.id + ) + appendix.dynamic_content = content diff --git a/agreement_legal/models/agreement_clause.py b/agreement_legal/models/agreement_clause.py new file mode 100644 index 00000000..2c2debad --- /dev/null +++ b/agreement_legal/models/agreement_clause.py @@ -0,0 +1,103 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class AgreementClause(models.Model): + _name = "agreement.clause" + _description = "Agreement Clauses" + _order = "sequence" + + name = fields.Char(string="Name", required=True) + title = fields.Char( + string="Title", + help="The title is displayed on the PDF." "The name is not." + ) + sequence = fields.Integer(string="Sequence") + agreement_id = fields.Many2one( + "agreement", + string="Agreement", + ondelete="cascade") + section_id = fields.Many2one( + "agreement.section", + string="Section", + ondelete="cascade" + ) + content = fields.Html(string="Clause Content") + dynamic_content = fields.Html( + compute="_compute_dynamic_content", + string="Dynamic Content", + help="compute dynamic Content", + ) + active = fields.Boolean( + string="Active", + default=True, + help="If unchecked, it will allow you to hide the agreement without " + "removing it.", + ) + + # Dynamic field editor + field_id = fields.Many2one( + "ir.model.fields", + string="Field", + help="""Select target field from the related document model. If it is a + relationship field you will be able to select a target field at the + destination of the relationship.""", + ) + sub_object_id = fields.Many2one( + "ir.model", + string="Sub-model", + help="""When a relationship field is selected as first field, this + field shows the document model the relationship goes to.""", + ) + sub_model_object_field_id = fields.Many2one( + "ir.model.fields", + string="Sub-field", + help="""When a relationship field is selected as first field, this + field lets you select the target field within the destination document + model (sub-model).""", + ) + default_value = fields.Char( + string="Default Value", + help="Optional value to use if the target field is empty.", + ) + copyvalue = fields.Char( + string="Placeholder Expression", + help="""Final placeholder expression, to be copy-pasted in the desired + template field.""", + ) + + @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + def onchange_copyvalue(self): + self.sub_object_id = False + self.copyvalue = False + self.sub_object_id = False + if self.field_id and not self.field_id.relation: + self.copyvalue = "${object.%s or %s}" % \ + (self.field_id.name, + self.default_value or '\'\'') + self.sub_model_object_field_id = False + if self.field_id and self.field_id.relation: + self.sub_object_id = self.env['ir.model'].search( + [('model', '=', self.field_id.relation)])[0] + if self.sub_model_object_field_id: + self.copyvalue = "${object.%s.%s or %s}" %\ + (self.field_id.name, + self.sub_model_object_field_id.name, + self.default_value or '\'\'') + + # compute the dynamic content for mako expression + @api.multi + def _compute_dynamic_content(self): + MailTemplates = self.env["mail.template"] + for clause in self: + lang = ( + clause.agreement_id + and clause.agreement_id.partner_id.lang + or "en_US" + ) + content = MailTemplates.with_context(lang=lang)._render_template( + clause.content, "agreement.clause", clause.id + ) + clause.dynamic_content = content diff --git a/agreement_legal/models/agreement_increasetype.py b/agreement_legal/models/agreement_increasetype.py new file mode 100644 index 00000000..094168c1 --- /dev/null +++ b/agreement_legal/models/agreement_increasetype.py @@ -0,0 +1,27 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +# Main Agreement Increase Type Records Model +class AgreementIncreaseType(models.Model): + _name = "agreement.increasetype" + _description = "Agreement Increase Type" + + # General + name = fields.Char( + string="Title", + required=True, + help="Increase types describe any increases that may happen during " + "the contract.", + ) + description = fields.Text( + string="Description", + required=True, + help="Description of the renewal type." + ) + increase_percent = fields.Integer( + string="Increase Percentage", + help="Percentage that the amount will increase." + ) diff --git a/agreement_legal/models/agreement_line.py b/agreement_legal/models/agreement_line.py new file mode 100644 index 00000000..3960681f --- /dev/null +++ b/agreement_legal/models/agreement_line.py @@ -0,0 +1,30 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class AgreementLine(models.Model): + _name = "agreement.line" + _description = "Agreement Lines" + + product_id = fields.Many2one( + "product.product", + string="Product") + name = fields.Char( + string="Description", + required=True) + agreement_id = fields.Many2one( + "agreement", + string="Agreement", + ondelete="cascade") + qty = fields.Float(string="Quantity") + uom_id = fields.Many2one( + "uom.uom", + string="Unit of Measure", + required=True) + + @api.onchange("product_id") + def _onchange_product_id(self): + self.name = self.product_id.name + self.uom_id = self.product_id.uom_id.id diff --git a/agreement_legal/models/agreement_recital.py b/agreement_legal/models/agreement_recital.py new file mode 100644 index 00000000..08aee172 --- /dev/null +++ b/agreement_legal/models/agreement_recital.py @@ -0,0 +1,102 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class AgreementRecital(models.Model): + _name = "agreement.recital" + _description = "Agreement Recitals" + _order = "sequence" + + name = fields.Char(string="Name", required=True) + title = fields.Char( + string="Title", + help="The title is displayed on the PDF." "The name is not." + ) + sequence = fields.Integer( + string="Sequence", + default=10) + content = fields.Html(string="Content") + dynamic_content = fields.Html( + compute="_compute_dynamic_content", + string="Dynamic Content", + help="compute dynamic Content", + ) + agreement_id = fields.Many2one( + "agreement", + string="Agreement", + ondelete="cascade") + active = fields.Boolean( + string="Active", + default=True, + help="If unchecked, it will allow you to hide this recital without " + "removing it.", + ) + + # Dynamic field editor + field_id = fields.Many2one( + "ir.model.fields", + string="Field", + help="""Select target field from the related document model. If it is a + relationship field you will be able to select a target field at the + destination of the relationship.""", + ) + sub_object_id = fields.Many2one( + "ir.model", + string="Sub-model", + help="""When a relationship field is selected as first field, this + field shows the document model the relationship goes to.""", + ) + sub_model_object_field_id = fields.Many2one( + "ir.model.fields", + string="Sub-field", + help="""When a relationship field is selected as first field, this + field lets you select the target field within the destination document + model (sub-model).""", + ) + default_value = fields.Char( + string="Default Value", + help="Optional value to use if the target field is empty.", + ) + copyvalue = fields.Char( + string="Placeholder Expression", + help="""Final placeholder expression, to be copy-pasted in the desired + template field.""", + ) + + + @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + def onchange_copyvalue(self): + self.sub_object_id = False + self.copyvalue = False + self.sub_object_id = False + if self.field_id and not self.field_id.relation: + self.copyvalue = "${object.%s or %s}" % \ + (self.field_id.name, + self.default_value or '\'\'') + self.sub_model_object_field_id = False + if self.field_id and self.field_id.relation: + self.sub_object_id = self.env['ir.model'].search( + [('model', '=', self.field_id.relation)])[0] + if self.sub_model_object_field_id: + self.copyvalue = "${object.%s.%s or %s}" %\ + (self.field_id.name, + self.sub_model_object_field_id.name, + self.default_value or '\'\'') + + + # compute the dynamic content for mako expression + @api.multi + def _compute_dynamic_content(self): + MailTemplates = self.env["mail.template"] + for recital in self: + lang = ( + recital.agreement_id + and recital.agreement_id.partner_id.lang + or "en_US" + ) + content = MailTemplates.with_context(lang=lang)._render_template( + recital.content, "agreement.recital", recital.id + ) + recital.dynamic_content = content diff --git a/agreement_legal/models/agreement_renewaltype.py b/agreement_legal/models/agreement_renewaltype.py new file mode 100644 index 00000000..ee03893c --- /dev/null +++ b/agreement_legal/models/agreement_renewaltype.py @@ -0,0 +1,23 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +# Main Agreement Section Records Model +class AgreementRenewalType(models.Model): + _name = "agreement.renewaltype" + _description = "Agreement Renewal Type" + + # General + name = fields.Char( + string="Title", + required=True, + help="Renewal types describe what happens after the " + "agreement/contract expires.", + ) + description = fields.Text( + string="Description", + required=True, + help="Description of the renewal type." + ) diff --git a/agreement_legal/models/agreement_section.py b/agreement_legal/models/agreement_section.py new file mode 100644 index 00000000..0a1d00d4 --- /dev/null +++ b/agreement_legal/models/agreement_section.py @@ -0,0 +1,104 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class AgreementSection(models.Model): + _name = "agreement.section" + _description = "Agreement Sections" + _order = "sequence" + + name = fields.Char(string="Name", required=True) + title = fields.Char( + string="Title", + help="The title is displayed on the PDF." "The name is not." + ) + sequence = fields.Integer(string="Sequence") + agreement_id = fields.Many2one( + "agreement", + string="Agreement", + ondelete="cascade") + clauses_ids = fields.One2many( + "agreement.clause", + "section_id", + string="Clauses") + content = fields.Html(string="Section Content") + dynamic_content = fields.Html( + compute="_compute_dynamic_content", + string="Dynamic Content", + help="compute dynamic Content", + ) + active = fields.Boolean( + string="Active", + default=True, + help="""If unchecked, it will allow you to hide the + agreement without removing it.""", + ) + + # Dynamic field editor + field_id = fields.Many2one( + "ir.model.fields", + string="Field", + help="""Select target field from the related document model. If it is a + relationship field you will be able to select a target field at the + destination of the relationship.""", + ) + sub_object_id = fields.Many2one( + "ir.model", + string="Sub-model", + help="""When a relationship field is selected as first field, this + field shows the document model the relationship goes to.""", + ) + sub_model_object_field_id = fields.Many2one( + "ir.model.fields", + string="Sub-field", + help="""When a relationship field is selected as first field, this + field lets you select the target field within the destination document + model (sub-model).""", + ) + default_value = fields.Char( + string="Default Value", + help="Optional value to use if the target field is empty.", + ) + copyvalue = fields.Char( + string="Placeholder Expression", + help="""Final placeholder expression, to be copy-pasted in the desired + template field.""", + ) + + + @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + def onchange_copyvalue(self): + self.sub_object_id = False + self.copyvalue = False + self.sub_object_id = False + if self.field_id and not self.field_id.relation: + self.copyvalue = "${object.%s or %s}" % \ + (self.field_id.name, + self.default_value or '\'\'') + self.sub_model_object_field_id = False + if self.field_id and self.field_id.relation: + self.sub_object_id = self.env['ir.model'].search( + [('model', '=', self.field_id.relation)])[0] + if self.sub_model_object_field_id: + self.copyvalue = "${object.%s.%s or %s}" %\ + (self.field_id.name, + self.sub_model_object_field_id.name, + self.default_value or '\'\'') + + + # compute the dynamic content for mako expression + @api.multi + def _compute_dynamic_content(self): + MailTemplates = self.env["mail.template"] + for section in self: + lang = ( + section.agreement_id + and section.agreement_id.partner_id.lang + or "en_US" + ) + content = MailTemplates.with_context(lang=lang)._render_template( + section.content, "agreement.section", section.id + ) + section.dynamic_content = content diff --git a/agreement_legal/models/agreement_stage.py b/agreement_legal/models/agreement_stage.py new file mode 100644 index 00000000..05cbb459 --- /dev/null +++ b/agreement_legal/models/agreement_stage.py @@ -0,0 +1,28 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +# Main Agreement Section Records Model +class AgreementStage(models.Model): + _name = "agreement.stage" + _description = "Agreement Stages" + _order = "sequence" + + # General + name = fields.Char( + string="Stage Name", + required=True) + description = fields.Text( + string="Description", + required=False) + sequence = fields.Integer( + string="Sequence", + default="1", + required=False) + fold = fields.Boolean( + string="Is Folded", + required=False, + help="This stage is folded in the kanban view by deafault.", + ) diff --git a/agreement_legal/models/agreement_status.py b/agreement_legal/models/agreement_status.py new file mode 100644 index 00000000..8d9ef3a2 --- /dev/null +++ b/agreement_legal/models/agreement_status.py @@ -0,0 +1,12 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +# Main Agreement Status Records Model +class AgreementStatus(models.Model): + _name = "agreement.type" + + # General + name = fields.Char(string="Title", required=True) diff --git a/agreement_legal/models/agreement_subtype.py b/agreement_legal/models/agreement_subtype.py new file mode 100644 index 00000000..961be088 --- /dev/null +++ b/agreement_legal/models/agreement_subtype.py @@ -0,0 +1,14 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class AgreementSubtype(models.Model): + _name = "agreement.subtype" + _description = "Agreement Subtypes" + + name = fields.Char(string="Name", required=True) + agreement_type_id = fields.Many2one( + "agreement.type", + string="Agreement Type") diff --git a/agreement_legal/models/agreement_type.py b/agreement_legal/models/agreement_type.py new file mode 100644 index 00000000..3422ec93 --- /dev/null +++ b/agreement_legal/models/agreement_type.py @@ -0,0 +1,16 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class AgreementType(models.Model): + _name = "agreement.type" + _description = "Agreement Types" + + name = fields.Char(string="Name", required=True) + agreement_subtypes_ids = fields.One2many( + "agreement.subtype", + "agreement_type_id", + string="Subtypes" + ) diff --git a/agreement_legal/models/product_template.py b/agreement_legal/models/product_template.py new file mode 100644 index 00000000..3c3b6e9e --- /dev/null +++ b/agreement_legal/models/product_template.py @@ -0,0 +1,12 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class Product(models.Model): + _inherit = "product.template" + + agreements_ids = fields.Many2many( + "agreement", + string="Agreements") diff --git a/agreement_legal/models/res_config_settings.py b/agreement_legal/models/res_config_settings.py new file mode 100644 index 00000000..7864ddc7 --- /dev/null +++ b/agreement_legal/models/res_config_settings.py @@ -0,0 +1,38 @@ +# Copyright (C) 2018 - TODAY, Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + module_agreement_maintenance = fields.Boolean( + string="Manage maintenance agreements and contracts." + ) + module_agreement_mrp = fields.Boolean( + string="Link your manufacturing orders to an agreement." + ) + module_agreement_project = fields.Boolean( + string="Link your projects and tasks to an agreement." + ) + module_agreement_repair = fields.Boolean( + string="Link your repair orders to an agreement." + ) + module_agreement_rma = fields.Boolean( + string="Link your RMAs to an agreement.") + module_agreement_sale = fields.Boolean( + string="Create an agreement when the sale order is confirmed." + ) + module_agreement_sale_subscription = fields.Boolean( + string="Link your subscriptions to an agreement." + ) + module_agreement_stock = fields.Boolean( + string="Link your pickings to an agreement." + ) + module_fieldservice_agreement = fields.Boolean( + string="Link your Field Service orders and equipments to an agreement." + ) + module_helpdesk_agreement = fields.Boolean( + string="Link your Helpdesk tickets to an agreement." + ) diff --git a/agreement_legal/models/res_partner.py b/agreement_legal/models/res_partner.py new file mode 100644 index 00000000..66f42bce --- /dev/null +++ b/agreement_legal/models/res_partner.py @@ -0,0 +1,13 @@ +# Copyright (C) 2018 - TODAY, Pavlov Media +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class Partner(models.Model): + _inherit = "res.partner" + + agreement_ids = fields.One2many( + "agreement", + "partner_id", + string="Agreements") diff --git a/agreement_legal/readme/CONFIGURE.rst b/agreement_legal/readme/CONFIGURE.rst new file mode 100644 index 00000000..3871fc34 --- /dev/null +++ b/agreement_legal/readme/CONFIGURE.rst @@ -0,0 +1,6 @@ +To configure this module: + +* Go to Agreement > Configuration > Templates +* Create a new template with sections and clauses and their respective content +* Go to Agreement > Configuration > Stages +* Create and reorder stages to match your process diff --git a/agreement_legal/readme/CONTRIBUTORS.rst b/agreement_legal/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..a0afb123 --- /dev/null +++ b/agreement_legal/readme/CONTRIBUTORS.rst @@ -0,0 +1,6 @@ +* Patrick Wilson +* Bhavesh Odedra +* Wolfgang Hall +* Maxime Chambreuil +* Sandip Mangukiya +* Yves Goldberg diff --git a/agreement_legal/readme/CREDITS.rst b/agreement_legal/readme/CREDITS.rst new file mode 100644 index 00000000..76f8e5a3 --- /dev/null +++ b/agreement_legal/readme/CREDITS.rst @@ -0,0 +1,5 @@ +The development of this module has been financially supported by: + +* Pavlov Media +* Open Source Integrators +* Yves Goldberg diff --git a/agreement_legal/readme/DESCRIPTION.rst b/agreement_legal/readme/DESCRIPTION.rst new file mode 100644 index 00000000..0680b36c --- /dev/null +++ b/agreement_legal/readme/DESCRIPTION.rst @@ -0,0 +1,9 @@ +This module allows you to manage agreements, letter of intent and contract content. +The module is meant to be used by the legal team of a company and to allow them +to define sections, clauses and templates with their respective content that can +be dynamic. + +Based on the template, an agreement can be created and the pdf document generated. + +The agreement would go through a workflow to finally become a contract with the +customer signature. diff --git a/agreement_legal/readme/ROADMAP.rst b/agreement_legal/readme/ROADMAP.rst new file mode 100644 index 00000000..58ac79c6 --- /dev/null +++ b/agreement_legal/readme/ROADMAP.rst @@ -0,0 +1,3 @@ +* Split the module to remove the dependencies on sale and account and provide + the same feature in extra modules (agreement_sale, agreement_account, + agreement_purchase) diff --git a/agreement_legal/readme/USAGE.rst b/agreement_legal/readme/USAGE.rst new file mode 100644 index 00000000..7e899648 --- /dev/null +++ b/agreement_legal/readme/USAGE.rst @@ -0,0 +1,7 @@ +To use this module: + +* Go to Agreement > Agreements +* Create a new agreement +* Select a template +* Follow the process to get the required approval +* Send the invitation to the customer to review and sign the agreement diff --git a/agreement_legal/report/agreement.xml b/agreement_legal/report/agreement.xml new file mode 100644 index 00000000..f497e7a2 --- /dev/null +++ b/agreement_legal/report/agreement.xml @@ -0,0 +1,144 @@ + + + + + + + + + + diff --git a/agreement_legal/security/ir.model.access.csv b/agreement_legal/security/ir.model.access.csv new file mode 100644 index 00000000..2126d363 --- /dev/null +++ b/agreement_legal/security/ir.model.access.csv @@ -0,0 +1,23 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_agreement_allusers,agreement all users,model_agreement,group_agreement_user,1,1,1,0 +access_agreement_manager,agreement manager,model_agreement,group_agreement_manager,1,1,1,1 +access_agreement_recital_allusers,recital all users,model_agreement_recital,group_agreement_user,1,1,1,0 +access_agreement_recital_manager,recital manager,model_agreement_recital,group_agreement_manager,1,1,1,1 +access_agreement_section_allusers,section all users,model_agreement_section,group_agreement_user,1,1,1,0 +access_agreement_section_manager,section manager,model_agreement_section,group_agreement_manager,1,1,1,1 +access_agreement_clause_allusers,clause all users,model_agreement_clause,group_agreement_user,1,1,1,0 +access_agreement_clause_manager,clause manager,model_agreement_clause,group_agreement_manager,1,1,1,1 +access_agreement_appendix_allusers,appendix all users,model_agreement_appendix,group_agreement_user,1,1,1,0 +access_agreement_appendix_manager,appendix manager,model_agreement_appendix,group_agreement_manager,1,1,1,1 +access_agreement_line_allusers,agreement line all users,model_agreement_line,group_agreement_user,1,1,1,0 +access_agreement_line_manager,agreement line manager,model_agreement_line,group_agreement_manager,1,1,1,1 +access_agreement_stage_allusers,stage all users,model_agreement_stage,group_agreement_user,1,0,0,0 +access_agreement_stage_manager,stage manager,model_agreement_stage,group_agreement_manager,1,1,1,1 +access_agreement_type_allusers,type all users,model_agreement_type,group_agreement_user,1,0,0,0 +access_agreement_type_manager,type manager,model_agreement_type,group_agreement_manager,1,1,1,1 +access_agreement_subtype_allusers,subtype all users,model_agreement_subtype,group_agreement_user,1,0,0,0 +access_agreement_subtype_manager,subtype manager,model_agreement_subtype,group_agreement_manager,1,1,1,1 +access_agreement_renewaltype_allusers,renewaltype all users,model_agreement_renewaltype,group_agreement_user,1,0,0,0 +access_agreement_renewaltype_manager,renewaltype manager,model_agreement_renewaltype,group_agreement_manager,1,1,1,1 +access_agreement_increasetype_allusers,increasetype all users,model_agreement_increasetype,group_agreement_user,1,0,0,0 +access_agreement_increasetype_manager,increasetype manager,model_agreement_increasetype,group_agreement_manager,1,1,1,1 diff --git a/agreement_legal/security/res_groups.xml b/agreement_legal/security/res_groups.xml new file mode 100644 index 00000000..5edde014 --- /dev/null +++ b/agreement_legal/security/res_groups.xml @@ -0,0 +1,22 @@ + + + + Agreement + 17 + + + + User + + + + + + + Manager + + + + + + diff --git a/agreement_legal/static/description/icon.png b/agreement_legal/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..23ce93135053c48a74469807879f2805b12382ad GIT binary patch literal 6755 zcmV-p8l2^cP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vG&=l}pD=mCOb1snhX8Td&=K~#8N-CKFQ zBvp0(s=Io9`)n{X!YCjrLL4@uLLx?^7>Nlg;0OWKpNe}Tf-$lvB8s2}{h8qK3&9P6 zA)<*}0!9po;{xiS0)rw5Gt55ky?(Ek>Z-1M-??>PSHF1!0kiLh2wasDW7Mv0M0u zAiRJ^rHqA4zG5Ljk*y(xm+2{|26%Krt8`xQhXRsC)@DI(@bcpppYg!>v;++1pP(b zB62H-0kN3ksaS zR}aWD)l0;!XGCohU_SQS-CoR|NhIdH`PiGAGavhN=hn!rHy`_k8N??N6qOqcfEdVw zYK|$D#GZf7Gu%fHdYr?({Mo+@_XY!NOCXPXgWMR+(PN&k`H&?-_G#d?mP(6sE#^fQ20q0-8j1dCw}k zkNIsfAY={-+|HERRq|lXT!gdv#KlNdZY2*$l4K6eI%=noM#Knb7R#__Ub83iBR9sa zFLdiVCFRHD>9SKnDWkpcn%?@EO&5gVpby@rj9@?sHi^Q-qQSKUjyWwxW|ca#UuB0u zRG>iA2Tk&I&2eY0T1Cbf)pL%s{Ilq|(Hd)o!Q4DO^FtI$#ekTn?LZ?-MFvJyxORb_ z>t+tZ9t!Y8RHmF5#}bqqAx+Q;hf(QH(*?Vjj4BulV;sJs&UBLV$q{GRIwmk5wUTaI zPKj<^&w^?pE1F~K3_{l~y0WhELE1URYE6NS;p8;#;^$jB*xl)2=}?K=p}@_W(I;w+ zfU*gTRDkHrhv0w@`Rni?$knwyx?Sx)Em}l5YM@yh!_LMGKJX_)IODm?c{&tPQ6zQr zD6zX}$Tg)BJEH7KpxapPc;Ycd^QPUjg>B6Q*PSqoV-Gz9 zjme!Tb7~TnjA5-|1*P(0n=&M21_gw)Mu3UYAr4M3Iol=;hCz*!Vr-O@t~$4!d|frI z&7;^9M~JDYv`|9Cp--uI@a>He&iwjTEE$pkoH$|Vyh=GikyreM6yRWS#xeV$ zIm0+WCgh%Fx|Uun*b5a-DN&_m)=R|->ctR4oL8j_4pRZkN2*x9bPQ*H;;SguM^UYW zc+KVCz`o0hSUy(Aa5=zGjSA-))e^T>DYW&=^!<|Pu-(&2RWH#jRJ34friC;9DG<-;`cUSOSg-~W5bx3 z7_oKb!X=@U!7{&ok^Q#S$P@L9I4F@fa@~u`J3S!jn&6KI?i9!!BPrd-1ZQrq-QUxh z97iZJ^6!{#Vf%&0;?Y)@`a*73!Z$u2mEtHKnQo#?#*~UTvJH=Ho5n+1rtt9gY5accZalbUlJ!a4_q$1~zjqV9@zYnCnW2IbQCleq zY8Yjr@SKD8$K9KzG0LQBtjLQng(@+67s+gik$>NjGS=PtORRm%OEAkZ&0Yy%Qs5W` zTmQ;lG(7nG?k||}1Hd5P794-t6f7%U#KMEOelo4{JfER-xQCO5R zobUp(f=4x}6j_!rx6IQfD%dvN#`dk7@PX^^!g)9S0w2He`?!?&k+0v0OTKgmF8|tX zxc1!F;KMhq$Mx?%9^F*&eXn3!*U-`QV9#0A1SZdt-%IVr_Q%f$_dZ~tpABl8 z135bdR&cZc=@zzcR1BPJx~J@!U5dJCSfL<1!ir2$t0Nd2ZD27^hOyC6j172o?`ml*;~!Y!`u$0Z`i@ut?0d90Se^8Td4qZSoo^N5QMyV;A)2&-CMd*04maX|1vsm~nuBmutIOCtbNg`ZFX*R)9@;RCkPR}v| z>yBgFf^+g_WWBNW1}+nP94%=9%LsGobPV-TxkUfj5!Ge0}|0_~u1#Ws>B)$z_vHxhaEeo5$bg zZ5^!Ke;I!KlMQ&+NiQWsEvDYQ_@vAh&C#hA-ca?PBBJ8D^q82rN)kmF9SU*qyKlhQ zqGf2;hmi83rc~NIlG{dniI(#U2YY=b)(4W*BrA9l(3(nu$e9VL{qCka%{l`1Xzgm1 zn{~)!kAd);>wk@}uKyKo`q8g(`uYF)&vkW3EUrS>wgm}aMv>+`;i+8&YJKdBia>R?#4(ziJ^8*Td{p}mE>Wyphstc~d z5ANS$?-2Y}Fq&EE);CfHyd79wA<;a`D!Bn{&qKCboe&x zsewwzl>@sY*=hn#khRpU7+~IEH6a&ury#+*xhw55m4PWH2O8Gn^;to1tXjrt7hi*u zFZnl|{88d1H?q7Dr(ALaUUA7S_{H5Dam{;9z$I%|BdsmQ&Injk>S58y2)=*kJ#ImQ zx4b~gH!Ef>y00(=bBCb#H<{$S&PaZo2j>CCGe1<}CbHMj0+Z5XADktmbuMbpj}3Nz zpaQ0vE!_JrXXD<_y&W6ZzJvHq!~5303lCp)Ca!$%8vOM|*WpLp3OAp9EDk$pKXkZN zbiDSMOzjC`+?i+&$iH5Q=)Hi=8W(GKpLk`nTMA2h$^-OP+2sb@|MuQO*Wt`)99JODd1!_n1}{TmoC8e&P0&Q5wX@V- zR(wcEAQn;H*!*iLYiC``5Mw)fS!#GaY>Xt_QJo zQ-W7rycQ>Z`Zly14cD5yZUQ@Ng9w~d~ZL7G|Jod!AuSn4q|pvgcW zr~Gs>3NxQ~bo8a8b*M>hEbWl@9<`}I2@vrdk2AtjLZ?GyTf|_cy3X~O&k;Rjyi&%7 ztKN%8cTDm+J%cTsDmv{+Y-j&yt&104cnxm&_D@l&GovfiFH#PLpg!@kA~C{=`j0d$bBoL z7oZ|z->zyg?xRvPi?F#HK{So29Sz*|sWp}g>)h5`+X{vBDX@~2BHILdho?X}S`YET z>wk#djSgz%0%{CsNyM7=1yfqkzUW}9;!KMN_p>G{Soiad*!*Y{Eed??*)PX` z{P-cf;bn(m`N%L@+!AvCh$*m?okShds^ExozJ$f&`=DDLMz=fylq=}*!sXL*9of2} z%E%T2>9rLsQtF zUW#+CxgBf2dpBNr!8K?ybEL!>Z3=JOk+jLHoK`Mxu1)r72lEE!+5D4d=fGWts2$63 zI7r{^>p1L@0P|Lq;}$(&8ifw;@H?mQgO8t#MyrdEH#5Dma_BA`4&5Ae8bJScYA}L9AWchiVI$I z6ej8=3ePyh^+i`Fl4wLUnEn2Uo*>UPi%TB1N4x-DNBnl3{uK)c43Tru&6BWzlC&A+`nVd{-k;f2JjUC=akURrN^^ zVDyd5!gOz8n@1Kc*=n_{%%iL>%qzyXt1aTTh$D{aMEK42-8lWv4#w|4a~c*6RdDt9 zHewND!mc>LA0N0F7oGAvY@%}7JaXHl>DP41blXwKxbgs##d~iiiiykzpEi5Qwt$NP zHYg9K1YIta0jf7J!pa17^hlUir%mCT6vCBKL>?uq%4V~PX4bDZ)mtn(j1?^^0_|CB z-LezE-QGlxYo!dVvz-`+OoaIKsYm0Xt=rIPHs;oK^Rdsd8 zuFfgZE=X*bx2P}R+S0n6{Q9Rx5w>w8Ws21eG$hhuMIO0~-0SXq5F2^wocH4AprdV+ zbZG>gPA<5~TkX!l`B4`5>eUKPzw#E0O)N!Ft|Mh05LX#c^}7Rop(C2gS;&ZckH9B= zIm(*WvBh0lOD*zjFD4W|Y9MIOpwOarCwJn~Q;tS6o<>5I>g#cBAqngi;E^9DxClyk zy+%`EpT*4X&G_g^hoiydgl6J`q)Z0%^;sZ|iV-_s*_EoF!pj51@H_>W_t-^5!jq)l zIH@KcI7hjCi4DD2w^V@>))c@oDxEUKHx*2ttMxiATz4l%#ulSg8$qkS3_)cGagjMe zMY#Y~PCk|2%V6?c^8ia<$&j{yk|4eM2^e5{;9WfKAfzG`MI)Z!FMQfCPXz`XqCgI% z?*h&3C7j79+p?bR~!Gtq|H&EY!0ST(6H8_VwOLkeSnlgioS-oQA}qt+B;g@JzL@;O!O!#kbt5Cu@>3 zS<+fqT3;rZR!J31OzTb&Zea)6D2~r0BDg2lL)Q8e{9r+D5n0lMoig^MPqjNE^@p$~ zA*EpQsO-|sm$$h-H_Mt#5ek~-3H)dAM(BPGo=xN;4yg!flKaQ@u9aDx3+q{^aUN|P z(adDlAp^=S6kt`xZoZ+OJ^D6V+pS@*p;B*!1Qrt*G`%M}58wz5vH-@4Tto(AicN#)*iZ~mu;Cdk z)Xj^Q)v@V!mIvEw^UyT!=aR5T`%b|WCdK#B+?GNKxxj+x`wdk$;^Nm1$4qMH8M-N^ zl0gBIt{&SlPM&0JodR0G5#~Ha{~TDLQlFVosJi|Qj(aSywHJT^&zJ||$;!Qu+1uQK z@iH8ZotBskyO+;?2zG`Ek5i zvg+&nlgn#KZ+$6E?+eZC%}qsz9U5e4ooq9$s&r_58NvK`17FFZmdPtYgbn#DvgT#> z=cX7@Ln)9&hOY2*`>1yDC3zL)J=%Qst5nT^)&7 + + + + + +Agreements + + + +
+

Agreements

+ + +

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

+

This module allows you to manage agreements, letter of intent and contract content. +The module is meant to be used by the legal team of a company and to allow them +to define sections, clauses and templates with their respective content that can +be dynamic.

+

Based on the template, an agreement can be created and the pdf document generated.

+

The agreement would go through a workflow to finally become a contract with the +customer signature.

+

Table of contents

+ +
+

Configuration

+

To configure this module:

+
    +
  • Go to Agreement > Configuration > Templates
  • +
  • Create a new template with sections and clauses and their respective content
  • +
  • Go to Agreement > Configuration > Stages
  • +
  • Create and reorder stages to match your process
  • +
+
+
+

Usage

+

To use this module:

+
    +
  • Go to Agreement > Agrements
  • +
  • Create a new agreement
  • +
  • Select a template
  • +
  • Follow the process to get the required approval
  • +
  • Send the invitation to the customer to review and sign the agreement
  • +
+
+
+

Known issues / Roadmap

+
    +
  • Split the module to remove the dependencies on sale and account and provide +the same feature in extra modules (agreement_sale, agreement_account, +agreement_purchase)
  • +
+
+
+

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

+
    +
  • Pavlov Media
  • +
  • Open Source Integrators
  • +
+
+ +
+

Other credits

+

The development of this module has been financially supported by:

+
    +
  • Pavlov Media
  • +
  • Open Source Integrators
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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:

+

max3903

+

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_legal/views/agreement.xml b/agreement_legal/views/agreement.xml new file mode 100644 index 00000000..83d229df --- /dev/null +++ b/agreement_legal/views/agreement.xml @@ -0,0 +1,368 @@ + + + + + + Agreement List + agreement + + + + + + + + + + + + + + + + Agreement Form + agreement + +
+
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+ This section (on the left) allows you to add dynamic fields inside the description and special terms. +

    +
  1. Select the agreement field
  2. +
  3. Select the sub-field
  4. +
  5. Enter the default value if the field is empty
  6. +
  7. Copy and paste the placeholder expression in the description or the special terms
  8. +
+

+
+ + +
+ +
+
+ +
+ +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

This section is a place where financial records will show the current performance of this agreement.

+

Perhaps include invoices with total vs costs?

+
+
+ +
+

Reviewed by on .

+

Approved by on .

+
+
+
+ Version: . + | Created By: + | Created On: +
+
+
+ + +
+
+
+
+ + + + Agreement Kanban + agreement + + + + + + +
+
+
+
+ + +
+
+ + oe_kanban_text_red +
+ +
+
+
+ +
+
+ - +
+
+
+ V: +
+
+ user & picture +
+
+
+
+
+ + + + + + + + + Agreement Search + agreement + + + + + + + + + + + + + + + + + + agreement.graph + agreement + + + + + + + + + agreement.pivot + agreement + + + + + + + + + Agreements + agreement + form + graph,pivot + + + + + + Agreements + agreement + [('is_template', '=', False)] + kanban,tree,form + + + + Agreements + agreement + [('is_template', '=', False)] + tree,form + + + + Templates + agreement + [('is_template', '=', True)] + + tree,kanban,form + + + diff --git a/agreement_legal/views/agreement_appendix.xml b/agreement_legal/views/agreement_appendix.xml new file mode 100644 index 00000000..2d522928 --- /dev/null +++ b/agreement_legal/views/agreement_appendix.xml @@ -0,0 +1,95 @@ + + + + + + + Agreement Appendix Tree + agreement.appendix + + + + + + + + + + + + + + Agreement Appendix Form + agreement.appendix + +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + +

+ This section (on the left) allows you to add dynamic fields inside the content. +

    +
  1. Select the appendix field
  2. +
  3. Select the sub-field
  4. +
  5. Enter the default value if the field is empty
  6. +
  7. Copy and paste the placeholder expression in the content
  8. +
+

+
+
+
+
+
+ + + + Agreement Appendix Search + agreement.appendix + + + + + + + + + + Appendices + agreement.appendix + tree,form + + +
diff --git a/agreement_legal/views/agreement_clause.xml b/agreement_legal/views/agreement_clause.xml new file mode 100644 index 00000000..276947e7 --- /dev/null +++ b/agreement_legal/views/agreement_clause.xml @@ -0,0 +1,97 @@ + + + + + + Agreement Clause List + agreement.clause + + + + + + + + + + + + + + + Agreement clause Form + agreement.clause + +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + +

+ This section (on the left) allows you to add dynamic fields inside the content. +

    +
  1. Select the clause field
  2. +
  3. Select the sub-field
  4. +
  5. Enter the default value if the field is empty
  6. +
  7. Copy and paste the placeholder expression in the content
  8. +
+

+
+
+
+
+
+ + + + Agreement Clause Search + agreement.clause + + + + + + + + + + + Clauses + agreement.clause + tree,form + + +
diff --git a/agreement_legal/views/agreement_increasetype.xml b/agreement_legal/views/agreement_increasetype.xml new file mode 100644 index 00000000..8ec1504d --- /dev/null +++ b/agreement_legal/views/agreement_increasetype.xml @@ -0,0 +1,45 @@ + + + + + + Agreement Increase Type List + agreement.increasetype + + + + + + + + + + + + Agreement Increase Type Form + agreement.increasetype + +
+ + + + + + + + + + + +
+
+
+ + + + Agreement Increase Type + agreement.increasetype + tree,form + + +
diff --git a/agreement_legal/views/agreement_recital.xml b/agreement_legal/views/agreement_recital.xml new file mode 100644 index 00000000..008d63a3 --- /dev/null +++ b/agreement_legal/views/agreement_recital.xml @@ -0,0 +1,94 @@ + + + + + + Agreement Recital Tree + agreement.recital + + + + + + + + + + + + + + Agreement Recital Form + agreement.recital + +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + +

+ This section (on the left) allows you to add dynamic fields inside the content. +

    +
  1. Select the recital field
  2. +
  3. Select the sub-field
  4. +
  5. Enter the default value if the field is empty
  6. +
  7. Copy and paste the placeholder expression in the content
  8. +
+

+
+
+
+
+
+ + + + Agreement Recital Search + agreement.recital + + + + + + + + + + Recitals + agreement.recital + tree,form + + +
diff --git a/agreement_legal/views/agreement_renewaltype.xml b/agreement_legal/views/agreement_renewaltype.xml new file mode 100644 index 00000000..9dde1fe8 --- /dev/null +++ b/agreement_legal/views/agreement_renewaltype.xml @@ -0,0 +1,41 @@ + + + + + + Agreement Renewal Type List + agreement.renewaltype + + + + + + + + + + + Agreement Renewal Type Form + agreement.renewaltype + +
+ + + + + + + + +
+
+
+ + + + Agreement Renewal Type + agreement.renewaltype + tree,form + + +
diff --git a/agreement_legal/views/agreement_section.xml b/agreement_legal/views/agreement_section.xml new file mode 100644 index 00000000..517197ae --- /dev/null +++ b/agreement_legal/views/agreement_section.xml @@ -0,0 +1,109 @@ + + + + + + Agreement Section List + agreement.section + + + + + + + + + + + + + + Agreement Section Form + agreement.section + +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + +

+ This section (on the left) allows you to add dynamic fields inside the content. +

    +
  1. Select the section field
  2. +
  3. Select the sub-field
  4. +
  5. Enter the default value if the field is empty
  6. +
  7. Copy and paste the placeholder expression in the content
  8. +
+

+
+
+ + + + + + + + + +
+
+
+
+
+ + + + Agreement Section Search + agreement.section + + + + + + + + + + Agreement Sections + agreement.section + tree,form + + +
diff --git a/agreement_legal/views/agreement_stages.xml b/agreement_legal/views/agreement_stages.xml new file mode 100644 index 00000000..fdb41380 --- /dev/null +++ b/agreement_legal/views/agreement_stages.xml @@ -0,0 +1,43 @@ + + + + + + Agreement Stage List + agreement.stage + + + + + + + + + + + Agreement Stage Form + agreement.stage + +
+ +
+
+ + + + +
+
+
+
+ + + + Agreement Stage + agreement.stage + tree,form + + +
diff --git a/agreement_legal/views/agreement_subtype.xml b/agreement_legal/views/agreement_subtype.xml new file mode 100644 index 00000000..a22063eb --- /dev/null +++ b/agreement_legal/views/agreement_subtype.xml @@ -0,0 +1,45 @@ + + + + + + Agreement Subtype List + agreement.subtype + + + + + + + + + + + Agreement Sub Type Form + agreement.subtype + +
+ +
+
+ + + + + + +
+
+
+
+ + + + Agreement Sub-Types + agreement.subtype + tree,form + + +
diff --git a/agreement_legal/views/agreement_type.xml b/agreement_legal/views/agreement_type.xml new file mode 100644 index 00000000..1d86cab5 --- /dev/null +++ b/agreement_legal/views/agreement_type.xml @@ -0,0 +1,45 @@ + + + + + + Agreement Type List + agreement.type + + + + + + + + + + + Agreement Type Form + agreement.type + +
+ +
+
+ + + + + +
+
+
+
+ + + + Agreement Types + agreement.type + tree,form + + +
diff --git a/agreement_legal/views/menu.xml b/agreement_legal/views/menu.xml new file mode 100644 index 00000000..7bf16318 --- /dev/null +++ b/agreement_legal/views/menu.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/agreement_legal/views/res_config_settings.xml b/agreement_legal/views/res_config_settings.xml new file mode 100644 index 00000000..0d58c3d7 --- /dev/null +++ b/agreement_legal/views/res_config_settings.xml @@ -0,0 +1,161 @@ + + + + + res.config.settings.view.form.agreement + res.config.settings + + + + +
+

Operations

+
+
+
+ +
+
+
+
+
+

Advanced Features

+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+ + + +
diff --git a/agreement_legal/views/res_partner.xml b/agreement_legal/views/res_partner.xml new file mode 100644 index 00000000..6b37099a --- /dev/null +++ b/agreement_legal/views/res_partner.xml @@ -0,0 +1,17 @@ + + + + + res.partner + + + + + + + + + + + + From 71e6c812a19d4a6b3af0cc5e7b077a634b990dd2 Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Fri, 29 Mar 2019 17:37:59 +0100 Subject: [PATCH 2/5] [FIX] flake8 --- agreement_legal/models/agreement.py | 82 +++++++++++++++------ agreement_legal/models/agreement_recital.py | 1 - 2 files changed, 61 insertions(+), 22 deletions(-) diff --git a/agreement_legal/models/agreement.py b/agreement_legal/models/agreement.py index 0e6009cb..1046d6f0 100644 --- a/agreement_legal/models/agreement.py +++ b/agreement_legal/models/agreement.py @@ -48,7 +48,9 @@ class Agreement(models.Model): help="When the agreement starts.", ) end_date = fields.Date( - string="End Date", track_visibility="onchange", help="When the agreement ends." + string="End Date", + track_visibility="onchange", + help="When the agreement ends." ) color = fields.Integer() active = fields.Boolean( @@ -118,15 +120,25 @@ class Agreement(models.Model): track_visibility="onchange", help="Date that the contract was terminated.", ) - reviewed_date = fields.Date(string="Reviewed Date", track_visibility="onchange") + reviewed_date = fields.Date( + string="Reviewed Date", + track_visibility="onchange") reviewed_user_id = fields.Many2one( - "res.users", string="Reviewed By", track_visibility="onchange" + "res.users", + string="Reviewed By", + track_visibility="onchange" ) - approved_date = fields.Date(string="Approved Date", track_visibility="onchange") + approved_date = fields.Date( + string="Approved Date", + track_visibility="onchange") approved_user_id = fields.Many2one( - "res.users", string="Approved By", track_visibility="onchange" + "res.users", + string="Approved By", + track_visibility="onchange" ) - currency_id = fields.Many2one("res.currency", string="Currency") + currency_id = fields.Many2one( + "res.currency", + string="Currency") partner_id = fields.Many2one( "res.partner", string="Partner", @@ -146,10 +158,12 @@ class Agreement(models.Model): help="The primary partner contact (If Applicable).", ) partner_contact_phone = fields.Char( - related="partner_contact_id.phone", string="Phone" + related="partner_contact_id.phone", + string="Phone" ) partner_contact_email = fields.Char( - related="partner_contact_id.email", string="Email" + related="partner_contact_id.email", + string="Email" ) company_contact_id = fields.Many2one( "res.partner", @@ -158,10 +172,12 @@ class Agreement(models.Model): help="The primary contact in the company.", ) company_contact_phone = fields.Char( - related="company_contact_id.phone", string="Phone" + related="company_contact_id.phone", + string="Phone" ) company_contact_email = fields.Char( - related="company_contact_id.email", string="Email" + related="company_contact_id.email", + string="Email" ) agreement_type_id = fields.Many2one( "agreement.type", @@ -176,7 +192,9 @@ class Agreement(models.Model): help="Select the sub-type of this agreement. Sub-Types are related to " "agreement types.", ) - product_ids = fields.Many2many("product.template", string="Products & Services") + product_ids = fields.Many2many( + "product.template", + string="Products & Services") payment_term_id = fields.Many2one( "account.payment.term", string="Payment Term", @@ -216,16 +234,28 @@ class Agreement(models.Model): help="Describes what happens after the contract expires.", ) recital_ids = fields.One2many( - "agreement.recital", "agreement_id", string="Recitals", copy=True + "agreement.recital", + "agreement_id", + string="Recitals", + copy=True ) sections_ids = fields.One2many( - "agreement.section", "agreement_id", string="Sections", copy=True + "agreement.section", + "agreement_id", + string="Sections", + copy=True ) clauses_ids = fields.One2many( - "agreement.clause", "agreement_id", string="Clauses", copy=True + "agreement.clause", + "agreement_id", + string="Clauses", + copy=True ) appendix_ids = fields.One2many( - "agreement.appendix", "agreement_id", string="Appendices", copy=True + "agreement.appendix", + "agreement_id", + string="Appendices", + copy=True ) previous_version_agreements_ids = fields.One2many( "agreement", @@ -242,10 +272,15 @@ class Agreement(models.Model): domain=[("active", "=", True)], ) line_ids = fields.One2many( - "agreement.line", "agreement_id", string="Products/Services", copy=False + "agreement.line", + "agreement_id", + string="Products/Services", + copy=False ) state = fields.Selection( - [("draft", "Draft"), ("active", "Active"), ("inactive", "Inactive")], + [("draft", "Draft"), + ("active", "Active"), + ("inactive", "Inactive")], default="draft", track_visibility="always", ) @@ -256,7 +291,9 @@ class Agreement(models.Model): "customer address.(Address Type = Other)", ) signed_contract_filename = fields.Char(string="Filename") - signed_contract = fields.Binary(string="Signed Document", track_visibility="always") + signed_contract = fields.Binary( + string="Signed Document", + track_visibility="always") field_id = fields.Many2one( "ir.model.fields", string="Field", @@ -293,7 +330,8 @@ class Agreement(models.Model): MailTemplates = self.env["mail.template"] for agreement in self: lang = agreement.partner_id.lang or "en_US" - description = MailTemplates.with_context(lang=lang)._render_template( + description = MailTemplates.with_context( + lang=lang)._render_template( agreement.description, "agreement", agreement.id ) agreement.dynamic_description = description @@ -303,7 +341,8 @@ class Agreement(models.Model): MailTemplates = self.env["mail.template"] for agreement in self: lang = agreement.partner_id.lang or "en_US" - special_terms = MailTemplates.with_context(lang=lang)._render_template( + special_terms = MailTemplates.with_context( + lang=lang)._render_template( agreement.special_terms, "agreement", agreement.id ) agreement.dynamic_special_terms = special_terms @@ -386,7 +425,8 @@ class Agreement(models.Model): @api.model def create(self, vals): if vals.get("reference", _("New")) == _("New"): - vals["reference"] = self.env["ir.sequence"].next_by_code("agreement") or _( + vals["reference"] = self.env[ + "ir.sequence"].next_by_code("agreement") or _( "New" ) return super(Agreement, self).create(vals) diff --git a/agreement_legal/models/agreement_recital.py b/agreement_legal/models/agreement_recital.py index 08aee172..f380f167 100644 --- a/agreement_legal/models/agreement_recital.py +++ b/agreement_legal/models/agreement_recital.py @@ -3,7 +3,6 @@ from odoo import api, fields, models - class AgreementRecital(models.Model): _name = "agreement.recital" _description = "Agreement Recitals" From ad81655ae66967fe15eb174a8c926a9b09939ae4 Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Fri, 29 Mar 2019 17:46:53 +0100 Subject: [PATCH 3/5] [FIX] flake8(2) --- agreement_legal/models/agreement_recital.py | 3 +-- agreement_legal/models/agreement_section.py | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/agreement_legal/models/agreement_recital.py b/agreement_legal/models/agreement_recital.py index f380f167..ec65c29e 100644 --- a/agreement_legal/models/agreement_recital.py +++ b/agreement_legal/models/agreement_recital.py @@ -3,6 +3,7 @@ from odoo import api, fields, models + class AgreementRecital(models.Model): _name = "agreement.recital" _description = "Agreement Recitals" @@ -64,7 +65,6 @@ class AgreementRecital(models.Model): template field.""", ) - @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') def onchange_copyvalue(self): self.sub_object_id = False @@ -84,7 +84,6 @@ class AgreementRecital(models.Model): self.sub_model_object_field_id.name, self.default_value or '\'\'') - # compute the dynamic content for mako expression @api.multi def _compute_dynamic_content(self): diff --git a/agreement_legal/models/agreement_section.py b/agreement_legal/models/agreement_section.py index 0a1d00d4..f278aae8 100644 --- a/agreement_legal/models/agreement_section.py +++ b/agreement_legal/models/agreement_section.py @@ -67,7 +67,6 @@ class AgreementSection(models.Model): template field.""", ) - @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') def onchange_copyvalue(self): self.sub_object_id = False @@ -87,7 +86,6 @@ class AgreementSection(models.Model): self.sub_model_object_field_id.name, self.default_value or '\'\'') - # compute the dynamic content for mako expression @api.multi def _compute_dynamic_content(self): From b7b7aa36fa2c89c4183b5eb51621e897921ab047 Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Tue, 2 Apr 2019 10:59:30 +0200 Subject: [PATCH 4/5] [FIX] agreement_legal: remove account dependency --- agreement_legal/__manifest__.py | 2 +- agreement_legal/models/agreement.py | 88 +++++++-------------- agreement_legal/models/agreement_recital.py | 33 ++++---- agreement_legal/models/agreement_section.py | 34 ++++---- agreement_legal/views/agreement.xml | 7 -- 5 files changed, 63 insertions(+), 101 deletions(-) diff --git a/agreement_legal/__manifest__.py b/agreement_legal/__manifest__.py index 543d9b9a..d519218a 100644 --- a/agreement_legal/__manifest__.py +++ b/agreement_legal/__manifest__.py @@ -12,7 +12,7 @@ "category": "Partner", "license": "AGPL-3", "version": "12.0.1.0.0", - "depends": ["contacts", "agreement", "mail", "product"], + "depends": ["contacts", "agreement", "product"], "data": [ "data/ir_sequence.xml", "data/module_category.xml", diff --git a/agreement_legal/models/agreement.py b/agreement_legal/models/agreement.py index 1046d6f0..4539024e 100644 --- a/agreement_legal/models/agreement.py +++ b/agreement_legal/models/agreement.py @@ -50,7 +50,7 @@ class Agreement(models.Model): end_date = fields.Date( string="End Date", track_visibility="onchange", - help="When the agreement ends." + help="When the agreement ends.", ) color = fields.Integer() active = fields.Boolean( @@ -121,24 +121,18 @@ class Agreement(models.Model): help="Date that the contract was terminated.", ) reviewed_date = fields.Date( - string="Reviewed Date", - track_visibility="onchange") + string="Reviewed Date", track_visibility="onchange" + ) reviewed_user_id = fields.Many2one( - "res.users", - string="Reviewed By", - track_visibility="onchange" + "res.users", string="Reviewed By", track_visibility="onchange" ) approved_date = fields.Date( - string="Approved Date", - track_visibility="onchange") + string="Approved Date", track_visibility="onchange" + ) approved_user_id = fields.Many2one( - "res.users", - string="Approved By", - track_visibility="onchange" + "res.users", string="Approved By", track_visibility="onchange" ) - currency_id = fields.Many2one( - "res.currency", - string="Currency") + currency_id = fields.Many2one("res.currency", string="Currency") partner_id = fields.Many2one( "res.partner", string="Partner", @@ -158,12 +152,10 @@ class Agreement(models.Model): help="The primary partner contact (If Applicable).", ) partner_contact_phone = fields.Char( - related="partner_contact_id.phone", - string="Phone" + related="partner_contact_id.phone", string="Phone" ) partner_contact_email = fields.Char( - related="partner_contact_id.email", - string="Email" + related="partner_contact_id.email", string="Email" ) company_contact_id = fields.Many2one( "res.partner", @@ -172,12 +164,10 @@ class Agreement(models.Model): help="The primary contact in the company.", ) company_contact_phone = fields.Char( - related="company_contact_id.phone", - string="Phone" + related="company_contact_id.phone", string="Phone" ) company_contact_email = fields.Char( - related="company_contact_id.email", - string="Email" + related="company_contact_id.email", string="Email" ) agreement_type_id = fields.Many2one( "agreement.type", @@ -193,13 +183,7 @@ class Agreement(models.Model): "agreement types.", ) product_ids = fields.Many2many( - "product.template", - string="Products & Services") - payment_term_id = fields.Many2one( - "account.payment.term", - string="Payment Term", - track_visibility="onchange", - help="Terms of payments.", + "product.template", string="Products & Services" ) assigned_user_id = fields.Many2one( "res.users", @@ -234,28 +218,16 @@ class Agreement(models.Model): help="Describes what happens after the contract expires.", ) recital_ids = fields.One2many( - "agreement.recital", - "agreement_id", - string="Recitals", - copy=True + "agreement.recital", "agreement_id", string="Recitals", copy=True ) sections_ids = fields.One2many( - "agreement.section", - "agreement_id", - string="Sections", - copy=True + "agreement.section", "agreement_id", string="Sections", copy=True ) clauses_ids = fields.One2many( - "agreement.clause", - "agreement_id", - string="Clauses", - copy=True + "agreement.clause", "agreement_id", string="Clauses", copy=True ) appendix_ids = fields.One2many( - "agreement.appendix", - "agreement_id", - string="Appendices", - copy=True + "agreement.appendix", "agreement_id", string="Appendices", copy=True ) previous_version_agreements_ids = fields.One2many( "agreement", @@ -275,12 +247,10 @@ class Agreement(models.Model): "agreement.line", "agreement_id", string="Products/Services", - copy=False + copy=False, ) state = fields.Selection( - [("draft", "Draft"), - ("active", "Active"), - ("inactive", "Inactive")], + [("draft", "Draft"), ("active", "Active"), ("inactive", "Inactive")], default="draft", track_visibility="always", ) @@ -292,8 +262,8 @@ class Agreement(models.Model): ) signed_contract_filename = fields.Char(string="Filename") signed_contract = fields.Binary( - string="Signed Document", - track_visibility="always") + string="Signed Document", track_visibility="always" + ) field_id = fields.Many2one( "ir.model.fields", string="Field", @@ -331,7 +301,8 @@ class Agreement(models.Model): for agreement in self: lang = agreement.partner_id.lang or "en_US" description = MailTemplates.with_context( - lang=lang)._render_template( + lang=lang + )._render_template( agreement.description, "agreement", agreement.id ) agreement.dynamic_description = description @@ -342,7 +313,8 @@ class Agreement(models.Model): for agreement in self: lang = agreement.partner_id.lang or "en_US" special_terms = MailTemplates.with_context( - lang=lang)._render_template( + lang=lang + )._render_template( agreement.special_terms, "agreement", agreement.id ) agreement.dynamic_special_terms = special_terms @@ -354,8 +326,7 @@ class Agreement(models.Model): self.sub_object_id = False if self.field_id and not self.field_id.relation: self.copyvalue = "${{object.{} or {}}}".format( - self.field_id.name, - self.default_value or "''", + self.field_id.name, self.default_value or "''" ) self.sub_model_object_field_id = False if self.field_id and self.field_id.relation: @@ -425,10 +396,9 @@ class Agreement(models.Model): @api.model def create(self, vals): if vals.get("reference", _("New")) == _("New"): - vals["reference"] = self.env[ - "ir.sequence"].next_by_code("agreement") or _( - "New" - ) + vals["reference"] = self.env["ir.sequence"].next_by_code( + "agreement" + ) or _("New") return super(Agreement, self).create(vals) # Increments the revision on each save action diff --git a/agreement_legal/models/agreement_recital.py b/agreement_legal/models/agreement_recital.py index ec65c29e..15b04517 100644 --- a/agreement_legal/models/agreement_recital.py +++ b/agreement_legal/models/agreement_recital.py @@ -12,11 +12,9 @@ class AgreementRecital(models.Model): name = fields.Char(string="Name", required=True) title = fields.Char( string="Title", - help="The title is displayed on the PDF." "The name is not." + help="The title is displayed on the PDF." "The name is not.", ) - sequence = fields.Integer( - string="Sequence", - default=10) + sequence = fields.Integer(string="Sequence", default=10) content = fields.Html(string="Content") dynamic_content = fields.Html( compute="_compute_dynamic_content", @@ -24,9 +22,8 @@ class AgreementRecital(models.Model): help="compute dynamic Content", ) agreement_id = fields.Many2one( - "agreement", - string="Agreement", - ondelete="cascade") + "agreement", string="Agreement", ondelete="cascade" + ) active = fields.Boolean( string="Active", default=True, @@ -65,24 +62,26 @@ class AgreementRecital(models.Model): template field.""", ) - @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + @api.onchange("field_id", "sub_model_object_field_id", "default_value") def onchange_copyvalue(self): self.sub_object_id = False self.copyvalue = False self.sub_object_id = False if self.field_id and not self.field_id.relation: - self.copyvalue = "${object.%s or %s}" % \ - (self.field_id.name, - self.default_value or '\'\'') + self.copyvalue = "${{object.{} or {}}}".format( + self.field_id.name, self.default_value or "''" + ) self.sub_model_object_field_id = False if self.field_id and self.field_id.relation: - self.sub_object_id = self.env['ir.model'].search( - [('model', '=', self.field_id.relation)])[0] + self.sub_object_id = self.env["ir.model"].search( + [("model", "=", self.field_id.relation)] + )[0] if self.sub_model_object_field_id: - self.copyvalue = "${object.%s.%s or %s}" %\ - (self.field_id.name, - self.sub_model_object_field_id.name, - self.default_value or '\'\'') + self.copyvalue = "${{object.{}.{} or {}}}".format( + self.field_id.name, + self.sub_model_object_field_id.name, + self.default_value or "''", + ) # compute the dynamic content for mako expression @api.multi diff --git a/agreement_legal/models/agreement_section.py b/agreement_legal/models/agreement_section.py index f278aae8..2fe67ea9 100644 --- a/agreement_legal/models/agreement_section.py +++ b/agreement_legal/models/agreement_section.py @@ -12,17 +12,15 @@ class AgreementSection(models.Model): name = fields.Char(string="Name", required=True) title = fields.Char( string="Title", - help="The title is displayed on the PDF." "The name is not." + help="The title is displayed on the PDF." "The name is not.", ) sequence = fields.Integer(string="Sequence") agreement_id = fields.Many2one( - "agreement", - string="Agreement", - ondelete="cascade") + "agreement", string="Agreement", ondelete="cascade" + ) clauses_ids = fields.One2many( - "agreement.clause", - "section_id", - string="Clauses") + "agreement.clause", "section_id", string="Clauses" + ) content = fields.Html(string="Section Content") dynamic_content = fields.Html( compute="_compute_dynamic_content", @@ -67,24 +65,26 @@ class AgreementSection(models.Model): template field.""", ) - @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + @api.onchange("field_id", "sub_model_object_field_id", "default_value") def onchange_copyvalue(self): self.sub_object_id = False self.copyvalue = False self.sub_object_id = False if self.field_id and not self.field_id.relation: - self.copyvalue = "${object.%s or %s}" % \ - (self.field_id.name, - self.default_value or '\'\'') + self.copyvalue = "${{object.{} or {}}}".format( + self.field_id.name, self.default_value or "''" + ) self.sub_model_object_field_id = False if self.field_id and self.field_id.relation: - self.sub_object_id = self.env['ir.model'].search( - [('model', '=', self.field_id.relation)])[0] + self.sub_object_id = self.env["ir.model"].search( + [("model", "=", self.field_id.relation)] + )[0] if self.sub_model_object_field_id: - self.copyvalue = "${object.%s.%s or %s}" %\ - (self.field_id.name, - self.sub_model_object_field_id.name, - self.default_value or '\'\'') + self.copyvalue = "${{object.{}.{} or {}}}".format( + self.field_id.name, + self.sub_model_object_field_id.name, + self.default_value or "''", + ) # compute the dynamic content for mako expression @api.multi diff --git a/agreement_legal/views/agreement.xml b/agreement_legal/views/agreement.xml index 83d229df..5bb9a09c 100644 --- a/agreement_legal/views/agreement.xml +++ b/agreement_legal/views/agreement.xml @@ -130,13 +130,6 @@ - - - - - - - From 868830bd08f1f7f80e8785e4f2b707b53adb59ce Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Tue, 2 Apr 2019 11:16:12 +0200 Subject: [PATCH 5/5] [FIX] ooops --- agreement_legal/views/agreement.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/agreement_legal/views/agreement.xml b/agreement_legal/views/agreement.xml index 5bb9a09c..86830848 100644 --- a/agreement_legal/views/agreement.xml +++ b/agreement_legal/views/agreement.xml @@ -130,6 +130,7 @@ +