Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
4919141
[ADD] agreement_legal migration
ygol Mar 29, 2019
2dfbb66
[FIX] flake8
ygol Mar 29, 2019
c065eaa
[FIX] flake8(2)
ygol Mar 29, 2019
836ac0e
[FIX] agreement_legal: remove account dependency
ygol Apr 2, 2019
b791463
[FIX] ooops
ygol Apr 2, 2019
8ef08ab
[FIX] handling code field + partner_id
ygol Apr 2, 2019
060cb34
[UPD] remove field reference and use field code
ygol Apr 2, 2019
ff89cc7
[ADD] custom dynamic parties
ygol Apr 11, 2019
77e79df
[FIX] flake8
ygol Apr 12, 2019
1a0d44c
[FIX] pylint
ygol Apr 12, 2019
aadfe45
[IMP] add default html value for parties
ygol Apr 16, 2019
33fbd6a
[UPD] flake8
ygol Apr 16, 2019
d6a16ee
[FIX][12.0] Menu Icon.
murtuzasaleh Apr 18, 2019
db023a8
[FIX] Icon in settings
max3903 Apr 30, 2019
7f0f95e
[FIX] agreement_legal: module name
max3903 May 1, 2019
72e908a
[FIX] Issue #323 + Cleanup
max3903 May 7, 2019
6b085ea
Update agreement_section.py
max3903 May 7, 2019
4128bd9
[FIX] Duplicate label
max3903 May 8, 2019
b381997
[FIX] Clauses are copied from the sections
max3903 May 8, 2019
067d4e6
[FIX] agreement_legal: Copy
max3903 May 13, 2019
9e0479a
[FIX] View priority
max3903 May 15, 2019
5c139be
[FIX] Issue #331
max3903 May 17, 2019
4167e06
[IMP] agreement_legal: add readonly group
max3903 May 20, 2019
a2c49dd
[UPD] update agreement demo data with compulsory fields
ygol May 29, 2019
7541709
[UPD] move data to demo keyword
ygol May 29, 2019
a52af5b
[UPD] PR review's remarks
ygol May 29, 2019
eebb568
Update agreement_legal/__manifest__.py
ygol May 29, 2019
09968c7
[UPD] update agreement demo data with compulsory fields
ygol May 29, 2019
e390e57
[FIX] Issue #342
ygol Jun 5, 2019
59f30c3
[IMP] agreement_serviceprofile: add stage
brian10048 Jul 18, 2019
0dc584f
Update agreement_legal/models/agreement.py
ygol Sep 11, 2019
de62063
[IMP] move some notions from agreement_legal to agreement
gurneyalex Sep 27, 2019
606ff2b
[IMP] New icon for agreement modules (svg file in agreement_legal)
marcelsavegnago Feb 15, 2020
808a68b
[FIX] agreement_legal: Change company_contact_id domain
Tardo Feb 17, 2020
e13197e
[FIX] agreement_legal: Change partner_id domain in agreement view
Tardo Feb 18, 2020
3328061
[FIX] company_partner_id and partner_id have the same label: Partner.
MiquelRForgeFlow Feb 18, 2020
c6405b4
[IMP] agreement,agreement_legal: support activities
Mar 6, 2020
8d706b3
[FIX] agreement_legal
murtuzasaleh May 5, 2020
fcf62e8
[12.0][FIX] agreement_legal: Error when mass action on list view
newtratip Feb 18, 2021
5e50eef
[14.0][MIG] agreement_legal (Version 12.0 to 14.0)
patrickrwilson May 4, 2021
c6cd70b
[FIX] Removed old demo file
patrickrwilson Jul 2, 2021
b4da77e
[14.0][ENH] agreement_legal
newtratip Jul 16, 2021
e99d167
[FIX] agreement_legal: Change create_new_version() function in agreem…
victoralmau Oct 8, 2021
a59c526
[FIX] agreement_legal: Change image field name in view.
victoralmau Oct 15, 2021
338b9e8
[IMP] agreement_legal: Replace the created_by + date_created fields.
victoralmau Oct 19, 2021
560cb1d
[IMP] agreement_legal: Add agreement list button
olgamarcocb Nov 17, 2021
9d9a58f
[IMP] agreement_legal: Add res_partner security group
olgamarcocb Oct 14, 2021
d24e1f0
Added translation using Weblate (Spanish (Argentina))
ibuioli Feb 6, 2022
3f15fb1
Translated using Weblate (Spanish (Argentina))
ibuioli Feb 6, 2022
63caf1a
[MIG] agreement_legal: Migration to 15.0
olgamarcocb May 11, 2022
75d12fc
[IMP] agreement_legal: black, isort, prettier
etobella Aug 31, 2022
172130f
[MIG] agreement_legal: Finish migration to 15.0
etobella Aug 31, 2022
f3db1a8
[IMP] agreement_legal: pre-commit stuff
urvisha-serpentcs Jan 13, 2023
9ad46aa
[MIG] agreement_legal: Migration to 16.0
urvisha-serpentcs Jan 13, 2023
3d4a15b
[IMP] agreement_legal: Define warning days cron and filter
olgamarcocb Oct 15, 2021
147037d
[FIX] agreement_legal: Fix alert, improve test coverage
etobella Dec 13, 2021
e825c65
[IMP] agreement_legal: create in batch
len-foss May 27, 2023
109e17d
[REF] agreement_legal: split logic and view code functions
len-foss May 27, 2023
1db2fde
[MIG] agreement_legal: cleanup
aktiv-heli-kantawala Jun 5, 2023
ac06003
Translated using Weblate (Spanish)
Ivorra78 Jul 20, 2023
d1474b1
Translated using Weblate (French)
gregory-moka Nov 8, 2023
9064593
Added translation using Weblate (Italian)
mymage May 2, 2024
d02776e
Translated using Weblate (Portuguese (Brazil))
SottomaiorMacedoTec Jul 6, 2024
d085c50
[IMP] agreement_legal: pre-commit auto fixes
imlopes Sep 20, 2024
14b4d01
[17.0][MIG] agreement_legal: Migration to 17.0
imlopes Sep 20, 2024
b48f50f
Translated using Weblate (Italian)
mymage Feb 5, 2025
3a2ce51
[IMP] agreement_legal: pre-commit execution
Mar 20, 2025
92f3662
[MIG] agreement_legal: Migration to 18.0
Mar 20, 2025
4903b70
Added translation using Weblate (Swedish)
jakobkrabbe Sep 18, 2025
64888e5
[IMP] agreement_legal: Add logo
etobella Oct 17, 2025
f242339
Translated using Weblate (Swedish)
jakobkrabbe Nov 4, 2025
4c37cea
[MOV] agreement_legal > agreement: res.partner.agreement_[ids|count]
vvrossem Sep 22, 2025
156f5ac
[FIX] agreement_legal: use url instead kanban_image()
Saran440 Dec 3, 2025
c9340ff
Translated using Weblate (Swedish)
jakobkrabbe Jan 14, 2026
ee14b87
[FIX] agreement_legal: remove redundant t-name from report_agreement_…
BhaveshHeliconia Mar 6, 2026
272d650
Added translation using Weblate (Turkish)
bo-eska Mar 10, 2026
fe86eff
[IMP] agreement_legal: refactor agreement form to inherit base view
Copilot Apr 20, 2026
a80b6f5
[IMP] agreement_legal: Recompute from template
CRogos Apr 20, 2026
94782ae
[REF] agreement_legal: Replace repeated dynamic field code with mixin
CRogos Apr 20, 2026
ce9ad24
[IMP] agreement_legal: pre-commit auto fixes
CRogos Apr 20, 2026
10d8430
[MIG] agreement_legal: Migration to 19.0
CRogos Apr 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 151 additions & 0 deletions agreement_legal/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

================
Agreements Legal
================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:b168e767de287aa2616348248cc51cf8b030bb149e009df552d931cc6cdefd70
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fagreement-lightgray.png?logo=github
:target: https://github.com/OCA/agreement/tree/19.0/agreement_legal
:alt: OCA/agreement
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/agreement-19-0/agreement-19-0-agreement_legal
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/agreement&target_branch=19.0
:alt: Try me on Runboat

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

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 <https://github.com/OCA/agreement/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/agreement/issues/new?body=module:%20agreement_legal%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Pavlov Media
* Open Source Integrators
* Yves Goldberg (Ygol Internetwork)

Contributors
------------

- Patrick Wilson <pwilson@pavlovmedia.com>
- Bhavesh Odedra <bodedra@opensourceintegrators.com>
- Wolfgang Hall <whall@opensourceintegrators.com>
- Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
- Sandip Mangukiya <smangukiya@opensourceintegrators.com>
- Yves Goldberg <yves@ygol.com>
- Tharathip Chaweewongphan <tharathipc@ecosoft.co.th>
- Italo LOPES <italo.lopes@camptocamp.com>
- `APSL-Nagarro <https://www.apsl.tech>`__:

- Antoni Marroig <amarroig@apsl.net>
- Miquel Alzanillas <miquel.alzanillas@nagarro.com>

Other credits
-------------

The development of this module has been financially supported by:

- Pavlov Media
- Open Source Integrators
- Yves Goldberg

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
.. |maintainer-ygol| image:: https://github.com/ygol.png?size=40px
:target: https://github.com/ygol
:alt: ygol

Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-max3903| |maintainer-ygol|

This module is part of the `OCA/agreement <https://github.com/OCA/agreement/tree/19.0/agreement_legal>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
5 changes: 5 additions & 0 deletions agreement_legal/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Copyright (C) 2018 - TODAY, Pavlov Media
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from . import models
from . import wizards
47 changes: 47 additions & 0 deletions agreement_legal/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# 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/agreement",
"category": "Partner",
"license": "AGPL-3",
"version": "19.0.1.0.0",
"depends": ["contacts", "agreement", "product", "web"],
"data": [
"data/cron.xml",
"data/ir_sequence.xml",
"data/ir_actions.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.xml",
"views/menu.xml",
"wizards/create_agreement_wizard.xml",
],
"demo": ["demo/demo.xml"],
"assets": {
"web.assets_backend": [
"agreement_legal/static/src/js/**/*",
"agreement_legal/static/src/xml/**/*",
],
},
"application": True,
"development_status": "Beta",
"maintainers": ["max3903", "ygol"],
}
63 changes: 63 additions & 0 deletions agreement_legal/data/agreement_stage.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<odoo>
<record id="agreement_stage_new" model="agreement.stage">
<field name="name">New</field>
<field name="sequence">10</field>
<field name="stage_type">agreement</field>
</record>

<record id="agreement_stage_draft" model="agreement.stage">
<field name="name">Draft</field>
<field name="sequence">20</field>
<field name="stage_type">agreement</field>
</record>

<record id="agreement_stage_reviewed" model="agreement.stage">
<field name="name">Reviewed</field>
<field name="sequence">30</field>
<field name="stage_type">agreement</field>
</record>

<record id="agreement_stage_negotiation" model="agreement.stage">
<field name="name">Negotiation</field>
<field name="sequence">40</field>
<field name="stage_type">agreement</field>
</record>

<record id="agreement_stage_out" model="agreement.stage">
<field name="name">Out for Customer Signature</field>
<field name="sequence">50</field>
<field name="stage_type">agreement</field>
</record>

<record id="agreement_stage_internal" model="agreement.stage">
<field name="name">Waiting Internal Signature</field>
<field name="sequence">60</field>
<field name="stage_type">agreement</field>
</record>

<record id="agreement_stage_active" model="agreement.stage">
<field name="name">Active</field>
<field name="sequence">70</field>
<field name="stage_type">agreement</field>
</record>

<record id="agreement_stage_expired" model="agreement.stage">
<field name="name">Expired</field>
<field name="sequence">80</field>
<field name="stage_type">agreement</field>
</record>

<record id="agreement_stage_terminated" model="agreement.stage">
<field name="name">Terminated</field>
<field name="sequence">90</field>
<field name="fold">True</field>
<field name="stage_type">agreement</field>
</record>

<record id="agreement_stage_cancelled" model="agreement.stage">
<field name="name">Cancelled</field>
<field name="sequence">100</field>
<field name="fold">True</field>
<field name="stage_type">agreement</field>
</record>
</odoo>
13 changes: 13 additions & 0 deletions agreement_legal/data/agreement_type.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<odoo>
<record id="agreement_type_agreement" model="agreement.type">
<field name="name">Agreement</field>
</record>

<record id="agreement_type_contract" model="agreement.type">
<field name="name">Contract</field>
</record>

<record id="agreement_type_loi" model="agreement.type">
<field name="name">Letter of Intent</field>
</record>
</odoo>
23 changes: 23 additions & 0 deletions agreement_legal/data/cron.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo noupdate="1">
<!-- Add warning days -->
<record id="mail_activity_review_agreement" model="mail.activity.type">
<field name="name">Agreement needs a review</field>
<field name="summary">note</field>
<field name="category">default</field>
<field name="res_model">agreement</field>
<field name="icon">fa-tasks</field>
<field name="delay_count">0</field>
</record>
<!--Test warning days -->
<record model="ir.cron" forcecreate="True" id="ir_cron_test_acc_move_except">
<field name="name">Agreement: Check to Review Days</field>
<field name="model_id" ref="agreement_legal.model_agreement" />
<field name="state">code</field>
<field name="code">model._alert_to_review_date()</field>
<field name="user_id" ref="base.user_root" />
<field name="interval_number">20</field>
<field name="interval_type">minutes</field>
<field name="active" eval="True" />
</record>
</odoo>
18 changes: 18 additions & 0 deletions agreement_legal/data/ir_actions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo noupdate="1">
<!-- Copyright 2026 Antoni Marroig (APSL-Nagarro)
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<record
id="action_agreement_legal_recompute_from_template"
model="ir.actions.server"
>
<field name="name">Recompute From Template</field>
<field name="model_id" ref="agreement.model_agreement" />
<field name="state">code</field>
<field name="code">
model.recompute_from_template()
</field>
<field name="binding_model_id" ref="agreement.model_agreement" />
<field name="binding_view_types">list,form</field>
</record>
</odoo>
10 changes: 10 additions & 0 deletions agreement_legal/data/ir_sequence.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<odoo noupdate="1">
<!-- Sequence for agreement -->
<record id="seq_agreement" model="ir.sequence">
<field name="name">Agreements</field>
<field name="code">agreement</field>
<field name="prefix">AG</field>
<field name="padding">3</field>
<field name="company_id" eval="False" />
</record>
</odoo>
38 changes: 38 additions & 0 deletions agreement_legal/demo/demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<!--
© 2019 Ygol Internetwork (yves@ygol.com)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo noupdate="1">
<record id="agreement.market1" model="agreement">
<field name="description">Hardware IT (C2C-IT0042)</field>
<field name="agreement_type_id" ref="agreement_type_agreement" />
</record>

<record id="agreement.market2" model="agreement">
<field name="description">Fiber access office Lausanne (C2C-IT0043)</field>
<field name="agreement_type_id" ref="agreement_type_contract" />
</record>

<record id="agreement.market3" model="agreement">
<field name="description">Vétérinaire (AGR-VETO001)</field>
<field name="agreement_type_id" ref="agreement_type_loi" />
</record>

<record id="agreement.market4" model="agreement">
<field
name="description"
>Wazo IPBX deployment and maintenance (AGR-TEL001)</field>
<field name="agreement_type_id" ref="agreement_type_loi" />
</record>

<record id="agreement.market5" model="agreement">
<field name="description">SIP Phones supply (BUY-VOIP012)</field>
<field name="agreement_type_id" ref="agreement_type_agreement" />
</record>

<record id="agreement.market6" model="agreement">
<field name="is_template">True</field>
<field name="description">SIP-ISDN gateways (BUY-VOIP013)</field>
<field name="agreement_type_id" ref="agreement_legal.agreement_type_contract" />
</record>
</odoo>
Loading
Loading