mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[MIG] contract: Migration to 15.0
Most changes are related to the switch from jinja to qweb in mail templates. Also included: - convert deprecated onchange that returns a domain and other deprecation warnings (see below) - Add migration scripts from version 14.0 (force the update of the mail templates) - Fix warnings from pre-commit checks Fixes depreciation warnings: - onchange method ContractAbstractContractLine._onchange_product_id returned a domain, this is deprecated - SavepointCase is deprecated: https://github.com/odoo/odoo/blob/15.0/odoo/tests/common.py#L742 - assertDictContainsSubset: According to: https://stackoverflow.com/questions/20050913/python-unittests-assertdictcontainssubset-recommended-alternative
This commit is contained in:
committed by
Pedro M. Baeza
parent
7f620ee1e6
commit
2cae7764c8
@@ -4,93 +4,121 @@
|
||||
<field name="name">Email Contract Template</field>
|
||||
<field
|
||||
name="email_from"
|
||||
>${(object.user_id.email and '%s <%s>' % (object.user_id.name, object.user_id.email) or '')|safe}</field>
|
||||
>{{ (object.user_id.email and '%s <%s>' % (object.user_id.name, object.user_id.email) or '') }}</field>
|
||||
<field
|
||||
name="subject"
|
||||
>${object.company_id.name} Contract (Ref ${object.name or 'n/a'})</field>
|
||||
<field name="partner_to">${object.partner_id.id}</field>
|
||||
>{{ object.company_id.name }} Contract (Ref {{ object.name or 'n/a' }})</field>
|
||||
<field name="partner_to">{{ object.partner_id.id }}</field>
|
||||
<field name="model_id" ref="model_contract_contract" />
|
||||
<field name="auto_delete" eval="True" />
|
||||
<field name="report_template" ref="contract.report_contract" />
|
||||
<field name="report_name">Contract</field>
|
||||
<field name="lang">${object.partner_id.lang}</field>
|
||||
<field
|
||||
name="body_html"
|
||||
><![CDATA[
|
||||
<div style="font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
|
||||
<p>Hello ${object.partner_id.name or ''},</p>
|
||||
<p>A new contract has been created: </p>
|
||||
<field name="lang">{{ object.partner_id.lang }}</field>
|
||||
<field name="body_html" type="html">
|
||||
<div
|
||||
style="font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "
|
||||
>
|
||||
<p>Hello <t t-out="object.partner_id.name or '' " />,</p>
|
||||
<p>A new contract has been created: </p>
|
||||
|
||||
<p style="border-left: 1px solid #8e0000; margin-left: 30px;">
|
||||
<strong>REFERENCES</strong><br />
|
||||
Contract: <strong>${object.name}</strong><br />
|
||||
% if object.date_start:
|
||||
Contract Date Start: ${object.date_start or ''}<br />
|
||||
% endif
|
||||
<p style="border-left: 1px solid #8e0000; margin-left: 30px;">
|
||||
&nbsp;&nbsp;<strong>REFERENCES</strong><br />
|
||||
&nbsp;&nbsp;Contract: <strong t-out="object.name" /><br />
|
||||
<t t-if="object.date_start">
|
||||
&nbsp;&nbsp;Contract Date Start: <t
|
||||
t-out="object.date_start or ''"
|
||||
/><br />
|
||||
</t>
|
||||
|
||||
% if object.user_id:
|
||||
% if object.user_id.email:
|
||||
Your Contact: <a href="mailto:${object.user_id.email or ''}?subject=Contract%20${object.name}">${object.user_id.name}</a>
|
||||
% else:
|
||||
Your Contact: ${object.user_id.name}
|
||||
% endif
|
||||
% endif
|
||||
</p>
|
||||
<t t-if="object.user_id">
|
||||
<t t-if="object.user_id.email">
|
||||
&nbsp;&nbsp;Your Contact: <a
|
||||
t-att-href="'mailto:%s?subject=Contract %s' % (object.user_id.email, object.name)"
|
||||
t-out="object.user_id.name"
|
||||
/>
|
||||
</t>
|
||||
<t t-else="">
|
||||
&nbsp;&nbsp;Your Contact: <t
|
||||
t-out="object.user_id.name"
|
||||
/>
|
||||
</t>
|
||||
</t>
|
||||
</p>
|
||||
|
||||
<br/>
|
||||
<p>If you have any questions, do not hesitate to contact us.</p>
|
||||
<p>Thank you for choosing ${object.company_id.name or 'us'}!</p>
|
||||
<br/>
|
||||
<br/>
|
||||
<div style="width: 375px; margin: 0px; padding: 0px; background-color: #8E0000; border-top-left-radius: 5px 5px; border-top-right-radius: 5px 5px; background-repeat: repeat no-repeat;">
|
||||
<h3 style="margin: 0px; padding: 2px 14px; font-size: 12px; color: #DDD;">
|
||||
<strong style="text-transform:uppercase;">${object.company_id.name}</strong></h3>
|
||||
</div>
|
||||
<div style="width: 347px; margin: 0px; padding: 5px 14px; line-height: 16px; background-color: #F2F2F2;">
|
||||
<span style="color: #222; margin-bottom: 5px; display: block; ">
|
||||
${object.company_id.partner_id.sudo().with_context(show_address=True, html_format=True).name_get()[0][1] | safe}
|
||||
</span>
|
||||
% if object.company_id.phone:
|
||||
<div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
|
||||
Phone: ${object.company_id.phone}
|
||||
<br />
|
||||
<p>If you have any questions, do not hesitate to contact us.</p>
|
||||
<p>Thank you for choosing <t
|
||||
t-out="object.company_id.name or 'us'"
|
||||
/>!</p>
|
||||
<br />
|
||||
<br />
|
||||
<div
|
||||
style="width: 375px; margin: 0px; padding: 0px; background-color: #8E0000; border-top-left-radius: 5px 5px; border-top-right-radius: 5px 5px; background-repeat: repeat no-repeat;"
|
||||
>
|
||||
<h3
|
||||
style="margin: 0px; padding: 2px 14px; font-size: 12px; color: #DDD;"
|
||||
>
|
||||
<strong
|
||||
style="text-transform:uppercase;"
|
||||
t-out="object.company_id.name"
|
||||
/></h3>
|
||||
</div>
|
||||
<div
|
||||
style="width: 347px; margin: 0px; padding: 5px 14px; line-height: 16px; background-color: #F2F2F2;"
|
||||
>
|
||||
<span style="color: #222; margin-bottom: 5px; display: block; ">
|
||||
<address
|
||||
t-field="object.company_id.sudo().partner_id"
|
||||
t-options='{"widget": "contact", "fields": ["name", "address"], "no_marker": True}'
|
||||
/>
|
||||
</span>
|
||||
<t t-if="object.company_id.phone">
|
||||
<div
|
||||
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "
|
||||
>
|
||||
Phone: <t t-out="object.company_id.phone" />
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="object.company_id.website">
|
||||
<div>
|
||||
Web: <a
|
||||
t-att-href="object.company_id.website"
|
||||
t-out="object.company_id.website"
|
||||
/>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
<br />
|
||||
<a
|
||||
t-att-href="'%s/my/contracts/%s?access_token=%s' % (object.get_base_url(), object.id, object.access_token)"
|
||||
target="_blank"
|
||||
style="background-color:#875A7B;padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;"
|
||||
>View contract</a>
|
||||
</div>
|
||||
% endif
|
||||
% if object.company_id.website:
|
||||
<div>
|
||||
Web: <a href="${object.company_id.website}">${object.company_id.website}</a>
|
||||
</div>
|
||||
%endif
|
||||
<p></p>
|
||||
</div>
|
||||
<p></p>
|
||||
<a href="${object.get_base_url()}/my/contracts/${object.id}?access_token=${object.access_token}" target="_blank" style="background-color:#875A7B;padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;">View contract</a>
|
||||
</div>
|
||||
]]></field>
|
||||
</field>
|
||||
</record>
|
||||
<record id="mail_template_contract_modification" model="mail.template">
|
||||
<field name="name">Contract Modification Template</field>
|
||||
<field
|
||||
name="email_from"
|
||||
>${(object.user_id.email and '%s <%s>' % (object.user_id.name, object.user_id.email) or '')|safe}</field>
|
||||
>{{ (object.user_id.email and '%s <%s>' % (object.user_id.name, object.user_id.email) or '') }}</field>
|
||||
<field
|
||||
name="subject"
|
||||
>${object.company_id.name} Contract (Ref ${object.name or 'n/a'}) - Modifications</field>
|
||||
>{{ object.company_id.name }} Contract (Ref {{ object.name or 'n/a' }}) - Modifications</field>
|
||||
<field name="model_id" ref="model_contract_contract" />
|
||||
<field name="lang">${object.partner_id.lang}</field>
|
||||
<field
|
||||
name="body_html"
|
||||
><![CDATA[
|
||||
<field name="lang">{{ object.partner_id.lang }}</field>
|
||||
<field name="body_html" type="html">
|
||||
<p>Hello</p>
|
||||
<p>We have modifications on the contract that we want to notify you.</p>
|
||||
]]></field>
|
||||
</field>
|
||||
</record>
|
||||
<template
|
||||
id="mail_notification_contract"
|
||||
inherit_id="mail.mail_notification_paynow"
|
||||
primary="True"
|
||||
>
|
||||
<xpath expr="//t[@t-raw='message.body']" position="after">
|
||||
<t t-raw="0" />
|
||||
<xpath expr="//t[@t-out='message.body']" position="after">
|
||||
<t t-out="0" />
|
||||
<t t-if="record._name == 'contract.contract'">
|
||||
<t
|
||||
t-set="share_url"
|
||||
|
||||
Reference in New Issue
Block a user