[FIX] agreement_legal: remove account dependency

This commit is contained in:
Yves Goldberg
2019-04-02 10:59:30 +02:00
committed by Patrick Wilson
parent 1d3a0b7e53
commit 3f9ae292f5
5 changed files with 64 additions and 102 deletions

View File

@@ -12,7 +12,7 @@
"category": "Partner", "category": "Partner",
"license": "AGPL-3", "license": "AGPL-3",
"version": "12.0.1.0.0", "version": "12.0.1.0.0",
"depends": ["contacts", "agreement", "mail", "product"], "depends": ["contacts", "agreement", "product"],
"data": [ "data": [
"data/ir_sequence.xml", "data/ir_sequence.xml",
"data/module_category.xml", "data/module_category.xml",

View File

@@ -50,7 +50,7 @@ class Agreement(models.Model):
end_date = fields.Date( end_date = fields.Date(
string="End Date", string="End Date",
track_visibility="onchange", track_visibility="onchange",
help="When the agreement ends." help="When the agreement ends.",
) )
color = fields.Integer() color = fields.Integer()
active = fields.Boolean( active = fields.Boolean(
@@ -121,24 +121,18 @@ class Agreement(models.Model):
help="Date that the contract was terminated.", help="Date that the contract was terminated.",
) )
reviewed_date = fields.Date( reviewed_date = fields.Date(
string="Reviewed Date", string="Reviewed Date", track_visibility="onchange"
track_visibility="onchange") )
reviewed_user_id = fields.Many2one( reviewed_user_id = fields.Many2one(
"res.users", "res.users", string="Reviewed By", track_visibility="onchange"
string="Reviewed By",
track_visibility="onchange"
) )
approved_date = fields.Date( approved_date = fields.Date(
string="Approved Date", string="Approved Date", track_visibility="onchange"
track_visibility="onchange")
approved_user_id = fields.Many2one(
"res.users",
string="Approved By",
track_visibility="onchange"
) )
currency_id = fields.Many2one( approved_user_id = fields.Many2one(
"res.currency", "res.users", string="Approved By", track_visibility="onchange"
string="Currency") )
currency_id = fields.Many2one("res.currency", string="Currency")
partner_id = fields.Many2one( partner_id = fields.Many2one(
"res.partner", "res.partner",
string="Partner", string="Partner",
@@ -158,12 +152,10 @@ class Agreement(models.Model):
help="The primary partner contact (If Applicable).", help="The primary partner contact (If Applicable).",
) )
partner_contact_phone = fields.Char( partner_contact_phone = fields.Char(
related="partner_contact_id.phone", related="partner_contact_id.phone", string="Phone"
string="Phone"
) )
partner_contact_email = fields.Char( partner_contact_email = fields.Char(
related="partner_contact_id.email", related="partner_contact_id.email", string="Email"
string="Email"
) )
company_contact_id = fields.Many2one( company_contact_id = fields.Many2one(
"res.partner", "res.partner",
@@ -172,12 +164,10 @@ class Agreement(models.Model):
help="The primary contact in the company.", help="The primary contact in the company.",
) )
company_contact_phone = fields.Char( company_contact_phone = fields.Char(
related="company_contact_id.phone", related="company_contact_id.phone", string="Phone"
string="Phone"
) )
company_contact_email = fields.Char( company_contact_email = fields.Char(
related="company_contact_id.email", related="company_contact_id.email", string="Email"
string="Email"
) )
agreement_type_id = fields.Many2one( agreement_type_id = fields.Many2one(
"agreement.type", "agreement.type",
@@ -193,13 +183,7 @@ class Agreement(models.Model):
"agreement types.", "agreement types.",
) )
product_ids = fields.Many2many( product_ids = fields.Many2many(
"product.template", "product.template", string="Products & Services"
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( assigned_user_id = fields.Many2one(
"res.users", "res.users",
@@ -234,28 +218,16 @@ class Agreement(models.Model):
help="Describes what happens after the contract expires.", help="Describes what happens after the contract expires.",
) )
recital_ids = fields.One2many( recital_ids = fields.One2many(
"agreement.recital", "agreement.recital", "agreement_id", string="Recitals", copy=True
"agreement_id",
string="Recitals",
copy=True
) )
sections_ids = fields.One2many( sections_ids = fields.One2many(
"agreement.section", "agreement.section", "agreement_id", string="Sections", copy=True
"agreement_id",
string="Sections",
copy=True
) )
clauses_ids = fields.One2many( clauses_ids = fields.One2many(
"agreement.clause", "agreement.clause", "agreement_id", string="Clauses", copy=True
"agreement_id",
string="Clauses",
copy=True
) )
appendix_ids = fields.One2many( appendix_ids = fields.One2many(
"agreement.appendix", "agreement.appendix", "agreement_id", string="Appendices", copy=True
"agreement_id",
string="Appendices",
copy=True
) )
previous_version_agreements_ids = fields.One2many( previous_version_agreements_ids = fields.One2many(
"agreement", "agreement",
@@ -275,12 +247,10 @@ class Agreement(models.Model):
"agreement.line", "agreement.line",
"agreement_id", "agreement_id",
string="Products/Services", string="Products/Services",
copy=False copy=False,
) )
state = fields.Selection( state = fields.Selection(
[("draft", "Draft"), [("draft", "Draft"), ("active", "Active"), ("inactive", "Inactive")],
("active", "Active"),
("inactive", "Inactive")],
default="draft", default="draft",
track_visibility="always", track_visibility="always",
) )
@@ -292,8 +262,8 @@ class Agreement(models.Model):
) )
signed_contract_filename = fields.Char(string="Filename") signed_contract_filename = fields.Char(string="Filename")
signed_contract = fields.Binary( signed_contract = fields.Binary(
string="Signed Document", string="Signed Document", track_visibility="always"
track_visibility="always") )
field_id = fields.Many2one( field_id = fields.Many2one(
"ir.model.fields", "ir.model.fields",
string="Field", string="Field",
@@ -331,7 +301,8 @@ class Agreement(models.Model):
for agreement in self: for agreement in self:
lang = agreement.partner_id.lang or "en_US" lang = agreement.partner_id.lang or "en_US"
description = MailTemplates.with_context( description = MailTemplates.with_context(
lang=lang)._render_template( lang=lang
)._render_template(
agreement.description, "agreement", agreement.id agreement.description, "agreement", agreement.id
) )
agreement.dynamic_description = description agreement.dynamic_description = description
@@ -342,7 +313,8 @@ class Agreement(models.Model):
for agreement in self: for agreement in self:
lang = agreement.partner_id.lang or "en_US" lang = agreement.partner_id.lang or "en_US"
special_terms = MailTemplates.with_context( special_terms = MailTemplates.with_context(
lang=lang)._render_template( lang=lang
)._render_template(
agreement.special_terms, "agreement", agreement.id agreement.special_terms, "agreement", agreement.id
) )
agreement.dynamic_special_terms = special_terms agreement.dynamic_special_terms = special_terms
@@ -354,8 +326,7 @@ class Agreement(models.Model):
self.sub_object_id = False self.sub_object_id = False
if self.field_id and not self.field_id.relation: if self.field_id and not self.field_id.relation:
self.copyvalue = "${{object.{} or {}}}".format( self.copyvalue = "${{object.{} or {}}}".format(
self.field_id.name, self.field_id.name, self.default_value or "''"
self.default_value or "''",
) )
self.sub_model_object_field_id = False self.sub_model_object_field_id = False
if self.field_id and self.field_id.relation: if self.field_id and self.field_id.relation:
@@ -425,10 +396,9 @@ class Agreement(models.Model):
@api.model @api.model
def create(self, vals): def create(self, vals):
if vals.get("reference", _("New")) == _("New"): if vals.get("reference", _("New")) == _("New"):
vals["reference"] = self.env[ vals["reference"] = self.env["ir.sequence"].next_by_code(
"ir.sequence"].next_by_code("agreement") or _( "agreement"
"New" ) or _("New")
)
return super(Agreement, self).create(vals) return super(Agreement, self).create(vals)
# Increments the revision on each save action # Increments the revision on each save action

View File

@@ -12,11 +12,9 @@ class AgreementRecital(models.Model):
name = fields.Char(string="Name", required=True) name = fields.Char(string="Name", required=True)
title = fields.Char( title = fields.Char(
string="Title", 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( sequence = fields.Integer(string="Sequence", default=10)
string="Sequence",
default=10)
content = fields.Html(string="Content") content = fields.Html(string="Content")
dynamic_content = fields.Html( dynamic_content = fields.Html(
compute="_compute_dynamic_content", compute="_compute_dynamic_content",
@@ -24,9 +22,8 @@ class AgreementRecital(models.Model):
help="compute dynamic Content", help="compute dynamic Content",
) )
agreement_id = fields.Many2one( agreement_id = fields.Many2one(
"agreement", "agreement", string="Agreement", ondelete="cascade"
string="Agreement", )
ondelete="cascade")
active = fields.Boolean( active = fields.Boolean(
string="Active", string="Active",
default=True, default=True,
@@ -65,24 +62,26 @@ class AgreementRecital(models.Model):
template field.""", 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): def onchange_copyvalue(self):
self.sub_object_id = False self.sub_object_id = False
self.copyvalue = False self.copyvalue = False
self.sub_object_id = False self.sub_object_id = False
if self.field_id and not self.field_id.relation: if self.field_id and not self.field_id.relation:
self.copyvalue = "${object.%s or %s}" % \ self.copyvalue = "${{object.{} or {}}}".format(
(self.field_id.name, self.field_id.name, self.default_value or "''"
self.default_value or '\'\'') )
self.sub_model_object_field_id = False self.sub_model_object_field_id = False
if self.field_id and self.field_id.relation: if self.field_id and self.field_id.relation:
self.sub_object_id = self.env['ir.model'].search( self.sub_object_id = self.env["ir.model"].search(
[('model', '=', self.field_id.relation)])[0] [("model", "=", self.field_id.relation)]
)[0]
if self.sub_model_object_field_id: if self.sub_model_object_field_id:
self.copyvalue = "${object.%s.%s or %s}" %\ self.copyvalue = "${{object.{}.{} or {}}}".format(
(self.field_id.name, self.field_id.name,
self.sub_model_object_field_id.name, self.sub_model_object_field_id.name,
self.default_value or '\'\'') self.default_value or "''",
)
# compute the dynamic content for mako expression # compute the dynamic content for mako expression
@api.multi @api.multi

View File

@@ -12,17 +12,15 @@ class AgreementSection(models.Model):
name = fields.Char(string="Name", required=True) name = fields.Char(string="Name", required=True)
title = fields.Char( title = fields.Char(
string="Title", 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") sequence = fields.Integer(string="Sequence")
agreement_id = fields.Many2one( agreement_id = fields.Many2one(
"agreement", "agreement", string="Agreement", ondelete="cascade"
string="Agreement", )
ondelete="cascade")
clauses_ids = fields.One2many( clauses_ids = fields.One2many(
"agreement.clause", "agreement.clause", "section_id", string="Clauses"
"section_id", )
string="Clauses")
content = fields.Html(string="Section Content") content = fields.Html(string="Section Content")
dynamic_content = fields.Html( dynamic_content = fields.Html(
compute="_compute_dynamic_content", compute="_compute_dynamic_content",
@@ -67,24 +65,26 @@ class AgreementSection(models.Model):
template field.""", 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): def onchange_copyvalue(self):
self.sub_object_id = False self.sub_object_id = False
self.copyvalue = False self.copyvalue = False
self.sub_object_id = False self.sub_object_id = False
if self.field_id and not self.field_id.relation: if self.field_id and not self.field_id.relation:
self.copyvalue = "${object.%s or %s}" % \ self.copyvalue = "${{object.{} or {}}}".format(
(self.field_id.name, self.field_id.name, self.default_value or "''"
self.default_value or '\'\'') )
self.sub_model_object_field_id = False self.sub_model_object_field_id = False
if self.field_id and self.field_id.relation: if self.field_id and self.field_id.relation:
self.sub_object_id = self.env['ir.model'].search( self.sub_object_id = self.env["ir.model"].search(
[('model', '=', self.field_id.relation)])[0] [("model", "=", self.field_id.relation)]
)[0]
if self.sub_model_object_field_id: if self.sub_model_object_field_id:
self.copyvalue = "${object.%s.%s or %s}" %\ self.copyvalue = "${{object.{}.{} or {}}}".format(
(self.field_id.name, self.field_id.name,
self.sub_model_object_field_id.name, self.sub_model_object_field_id.name,
self.default_value or '\'\'') self.default_value or "''",
)
# compute the dynamic content for mako expression # compute the dynamic content for mako expression
@api.multi @api.multi

View File

@@ -130,13 +130,6 @@
<field name="termination_requested"/> <field name="termination_requested"/>
<field name="termination_date"/> <field name="termination_date"/>
</group> </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"> <group string="Special Terms">
<field name="special_terms" <field name="special_terms"
nolabel="1"/> nolabel="1"/>