[FIX] agreement_legal: remove account dependency

[FIX] ooops

[UPD] README.rst
This commit is contained in:
Yves Goldberg
2019-04-02 10:59:30 +02:00
committed by Víctor Martínez
parent f597f4cca8
commit 2efe22ccf0
7 changed files with 94 additions and 122 deletions

View File

@@ -1,6 +1,6 @@
==========
Agreements
==========
================
Agreements Legal
================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
@@ -14,13 +14,13 @@ Agreements
: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
:target: https://github.com/OCA/contract/tree/12.0/agreement_legal
: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
:target: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-agreement_legal
: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
:target: https://runbot.odoo-community.org/runbot/110/12.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -55,7 +55,7 @@ Usage
To use this module:
* Go to Agreement > Agrements
* Go to Agreement > Agreements
* Create a new agreement
* Select a template
* Follow the process to get the required approval
@@ -74,7 +74,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/contract/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 <https://github.com/OCA/contract/issues/new?body=module:%20agreement%0Aversion:%2011.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/contract/issues/new?body=module:%20agreement_legal%0Aversion:%2012.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.
@@ -86,6 +86,7 @@ Authors
* Pavlov Media
* Open Source Integrators
* Yves Goldberg (Ygol Internetwork)
Contributors
~~~~~~~~~~~~
@@ -95,6 +96,7 @@ Contributors
* Wolfgang Hall <whall@opensourceintegrators.com>
* Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
* Sandip Mangukiya <smangukiya@opensourceintegrators.com>
* Yves Goldberg <yves@ygol.com>
Other credits
~~~~~~~~~~~~~
@@ -103,6 +105,7 @@ The development of this module has been financially supported by:
* Pavlov Media
* Open Source Integrators
* Yves Goldberg
Maintainers
~~~~~~~~~~~
@@ -120,11 +123,14 @@ 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 `maintainer <https://odoo-community.org/page/maintainer-role>`__:
Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-max3903|
|maintainer-max3903| |maintainer-ygol|
This module is part of the `OCA/contract <https://github.com/OCA/contract/tree/11.0/agreement>`_ project on GitHub.
This module is part of the `OCA/contract <https://github.com/OCA/contract/tree/12.0/agreement_legal>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -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",

View File

@@ -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")
approved_user_id = fields.Many2one(
"res.users",
string="Approved By",
track_visibility="onchange"
string="Approved Date", track_visibility="onchange"
)
currency_id = fields.Many2one(
"res.currency",
string="Currency")
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",
@@ -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

View File

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

View File

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

View File

@@ -4,7 +4,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" />
<title>Agreements</title>
<title>Agreements Legal</title>
<style type="text/css">
/*
@@ -360,14 +360,14 @@ ul.auto-toc {
</style>
</head>
<body>
<div class="document" id="agreements">
<h1 class="title">Agreements</h1>
<div class="document" id="agreements-legal">
<h1 class="title">Agreements Legal</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/contract/tree/11.0/agreement"><img alt="OCA/contract" src="https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/contract-11-0/contract-11-0-agreement"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/110/11.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/contract/tree/12.0/agreement_legal"><img alt="OCA/contract" src="https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-agreement_legal"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/110/12.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>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
@@ -405,7 +405,7 @@ customer signature.</p>
<h1><a class="toc-backref" href="#id2">Usage</a></h1>
<p>To use this module:</p>
<ul class="simple">
<li>Go to Agreement &gt; Agrements</li>
<li>Go to Agreement &gt; Agreements</li>
<li>Create a new agreement</li>
<li>Select a template</li>
<li>Follow the process to get the required approval</li>
@@ -425,7 +425,7 @@ agreement_purchase)</li>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/contract/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/contract/issues/new?body=module:%20agreement%0Aversion:%2011.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<a class="reference external" href="https://github.com/OCA/contract/issues/new?body=module:%20agreement_legal%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
@@ -435,6 +435,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<ul class="simple">
<li>Pavlov Media</li>
<li>Open Source Integrators</li>
<li>Yves Goldberg (Ygol Internetwork)</li>
</ul>
</div>
<div class="section" id="contributors">
@@ -445,6 +446,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<li>Wolfgang Hall &lt;<a class="reference external" href="mailto:whall&#64;opensourceintegrators.com">whall&#64;opensourceintegrators.com</a>&gt;</li>
<li>Maxime Chambreuil &lt;<a class="reference external" href="mailto:mchambreuil&#64;opensourceintegrators.com">mchambreuil&#64;opensourceintegrators.com</a>&gt;</li>
<li>Sandip Mangukiya &lt;<a class="reference external" href="mailto:smangukiya&#64;opensourceintegrators.com">smangukiya&#64;opensourceintegrators.com</a>&gt;</li>
<li>Yves Goldberg &lt;<a class="reference external" href="mailto:yves&#64;ygol.com">yves&#64;ygol.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="other-credits">
@@ -453,6 +455,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<ul class="simple">
<li>Pavlov Media</li>
<li>Open Source Integrators</li>
<li>Yves Goldberg</li>
</ul>
</div>
<div class="section" id="maintainers">
@@ -462,9 +465,9 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<p>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.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
<p><a class="reference external" href="https://github.com/max3903"><img alt="max3903" src="https://github.com/max3903.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/contract/tree/11.0/agreement">OCA/contract</a> project on GitHub.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainers</a>:</p>
<p><a class="reference external" href="https://github.com/max3903"><img alt="max3903" src="https://github.com/max3903.png?size=40px" /></a> <a class="reference external" href="https://github.com/ygol"><img alt="ygol" src="https://github.com/ygol.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/contract/tree/12.0/agreement_legal">OCA/contract</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>

View File

@@ -130,12 +130,6 @@
<field name="termination_requested"/>
<field name="termination_date"/>
</group>
<group name="paymentterm_right" string="Payment Terms">
<field name="term" attrs="{'invisible': [('partner_id', '=', False)]}"/>
<field name="payment_term_id" widget="selection"/>
<field name="renewal_type_id" widget="selection"/>
<field name="increase_type_id" widget="selection"/>
</group>
</group>
<group string="Special Terms">
<field name="special_terms"