[IMP] contract: Add contract modification

This commit is contained in:
Víctor Martínez
2020-12-28 09:47:21 +01:00
parent 378a0da5cc
commit aa5f72c734
15 changed files with 620 additions and 2372 deletions

View File

@@ -4,4 +4,12 @@
<field name="name">Invoice created</field> <field name="name">Invoice created</field>
<field name="res_model">contract.contract</field> <field name="res_model">contract.contract</field>
</record> </record>
<record
id="mail_message_subtype_contract_modification"
model="mail.message.subtype"
>
<field name="name">Contract modifications</field>
<field name="res_model">contract.contract</field>
<field name="default" eval="False" />
</record>
</odoo> </odoo>

View File

@@ -67,4 +67,54 @@
</div> </div>
]]></field> ]]></field>
</record> </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 &lt;%s&gt;' % (object.user_id.name, object.user_id.email) or '')|safe}</field>
<field
name="subject"
>${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[
<p>Hello</p>
<p>We have modifications on the contract that we want to notify you.</p>
]]></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>
</template>
<template id="template_contract_modification" name="Contract Modification">
<t t-call="contract.mail_notification_contract">
<table border="1" align="center">
<thead>
<tr>
<th name="th_date">Date</th>
<th name="th_description">Description</th>
</tr>
</thead>
<tbody>
<t t-foreach="record.modification_ids" t-as="modification">
<tr t-if="not modification.sent">
<td name="td_date">
<span t-field="modification.date" />
</td>
<td name="td_description">
<div t-field="modification.description" />
</td>
</tr>
</t>
</tbody>
</table>
</t>
</template>
</odoo> </odoo>

View File

@@ -6,6 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 13.0\n" "Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-29 07:26+0000\n"
"PO-Revision-Date: 2020-12-29 07:26+0000\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -13,6 +15,15 @@ msgstr ""
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#. module: contract
#: model:mail.template,body_html:contract.mail_template_contract_modification
msgid ""
"\n"
" <p>Hello</p>\n"
" <p>We have modifications on the contract that we want to notify you.</p>\n"
" "
msgstr ""
#. module: contract #. module: contract
#: model:mail.template,body_html:contract.email_contract_template #: model:mail.template,body_html:contract.email_contract_template
msgid "" msgid ""
@@ -73,6 +84,13 @@ msgstr ""
msgid "${object.company_id.name} Contract (Ref ${object.name or 'n/a'})" msgid "${object.company_id.name} Contract (Ref ${object.name or 'n/a'})"
msgstr "" msgstr ""
#. module: contract
#: model:mail.template,subject:contract.mail_template_contract_modification
msgid ""
"${object.company_id.name} Contract (Ref ${object.name or 'n/a'}) - "
"Modifications"
msgstr ""
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_manually_create_invoice_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_manually_create_invoice_form_view
msgid "" msgid ""
@@ -149,6 +167,11 @@ msgstr ""
msgid "<strong>Description</strong>" msgid "<strong>Description</strong>"
msgstr "" msgstr ""
#. module: contract
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document
msgid "<strong>Modifications</strong>"
msgstr ""
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document #: model_terms:ir.ui.view,arch_db:contract.report_contract_document
msgid "<strong>Notes: </strong>" msgid "<strong>Notes: </strong>"
@@ -445,6 +468,7 @@ msgstr ""
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__contract_id #: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__contract_id
#: model:ir.model.fields,field_description:contract.field_contract_contract_terminate__contract_id #: model:ir.model.fields,field_description:contract.field_contract_contract_terminate__contract_id
#: model:ir.model.fields,field_description:contract.field_contract_line__contract_id #: model:ir.model.fields,field_description:contract.field_contract_line__contract_id
#: model:ir.model.fields,field_description:contract.field_contract_modification__contract_id
#: model:ir.model.fields,field_description:contract.field_contract_template_line__contract_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__contract_id
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view
#: model_terms:ir.ui.view,arch_db:contract.res_config_settings_form_view #: model_terms:ir.ui.view,arch_db:contract.res_config_settings_form_view
@@ -457,6 +481,11 @@ msgstr ""
msgid "Contract #" msgid "Contract #"
msgstr "" msgstr ""
#. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "Contract -"
msgstr ""
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_terminate_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_contract_terminate_form_view
msgid "Contract Contract Terminate" msgid "Contract Contract Terminate"
@@ -490,13 +519,13 @@ msgid "Contract Manually Create Invoice Wizard"
msgstr "" msgstr ""
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view #: model:ir.model,name:contract.model_contract_modification
msgid "Contract Name" msgid "Contract Modification"
msgstr "" msgstr ""
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view
msgid "Contract Order -" msgid "Contract Name"
msgstr "" msgstr ""
#. module: contract #. module: contract
@@ -660,6 +689,17 @@ msgid ""
"id=\"%s\">Invoice</a>" "id=\"%s\">Invoice</a>"
msgstr "" msgstr ""
#. module: contract
#: model:mail.message.subtype,name:contract.mail_message_subtype_contract_modification
msgid "Contract modifications"
msgstr ""
#. module: contract
#: code:addons/contract/models/contract.py:0
#, python-format
msgid "Contract start"
msgstr ""
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_template__contract_line_ids #: model:ir.model.fields,field_description:contract.field_contract_template__contract_line_ids
msgid "Contract template lines" msgid "Contract template lines"
@@ -714,6 +754,7 @@ msgstr ""
#: model:ir.model.fields,field_description:contract.field_contract_line__create_uid #: model:ir.model.fields,field_description:contract.field_contract_line__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__create_uid #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__create_uid #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_modification__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_tag__create_uid #: model:ir.model.fields,field_description:contract.field_contract_tag__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_template__create_uid #: model:ir.model.fields,field_description:contract.field_contract_template__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_template_line__create_uid #: model:ir.model.fields,field_description:contract.field_contract_template_line__create_uid
@@ -727,6 +768,7 @@ msgstr ""
#: model:ir.model.fields,field_description:contract.field_contract_line__create_date #: model:ir.model.fields,field_description:contract.field_contract_line__create_date
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__create_date #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__create_date
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__create_date #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__create_date
#: model:ir.model.fields,field_description:contract.field_contract_modification__create_date
#: model:ir.model.fields,field_description:contract.field_contract_tag__create_date #: model:ir.model.fields,field_description:contract.field_contract_tag__create_date
#: model:ir.model.fields,field_description:contract.field_contract_template__create_date #: model:ir.model.fields,field_description:contract.field_contract_template__create_date
#: model:ir.model.fields,field_description:contract.field_contract_template_line__create_date #: model:ir.model.fields,field_description:contract.field_contract_template_line__create_date
@@ -768,7 +810,10 @@ msgstr ""
#. module: contract #. module: contract
#: code:addons/contract/controllers/main.py:0 #: code:addons/contract/controllers/main.py:0
#: model:ir.model.fields,field_description:contract.field_contract_modification__date
#: model_terms:ir.ui.view,arch_db:contract.portal_my_contracts #: model_terms:ir.ui.view,arch_db:contract.portal_my_contracts
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document
#: model_terms:ir.ui.view,arch_db:contract.template_contract_modification
#, python-format #, python-format
msgid "Date" msgid "Date"
msgstr "" msgstr ""
@@ -850,9 +895,12 @@ msgstr ""
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__name #: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__name
#: model:ir.model.fields,field_description:contract.field_contract_line__name #: model:ir.model.fields,field_description:contract.field_contract_line__name
#: model:ir.model.fields,field_description:contract.field_contract_modification__description
#: model:ir.model.fields,field_description:contract.field_contract_template_line__name #: model:ir.model.fields,field_description:contract.field_contract_template_line__name
#: model_terms:ir.ui.view,arch_db:contract.contract_abstract_contract_line_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_abstract_contract_line_form_view
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document
#: model_terms:ir.ui.view,arch_db:contract.template_contract_modification
msgid "Description" msgid "Description"
msgstr "" msgstr ""
@@ -886,6 +934,7 @@ msgstr ""
#: model:ir.model.fields,field_description:contract.field_contract_line__display_name #: model:ir.model.fields,field_description:contract.field_contract_line__display_name
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__display_name #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__display_name
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__display_name #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__display_name
#: model:ir.model.fields,field_description:contract.field_contract_modification__display_name
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin__display_name #: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin__display_name
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin__display_name #: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin__display_name
#: model:ir.model.fields,field_description:contract.field_contract_tag__display_name #: model:ir.model.fields,field_description:contract.field_contract_tag__display_name
@@ -952,6 +1001,7 @@ msgstr ""
#: model:ir.model.fields,field_description:contract.field_contract_line__id #: model:ir.model.fields,field_description:contract.field_contract_line__id
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__id #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__id
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__id #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__id
#: model:ir.model.fields,field_description:contract.field_contract_modification__id
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin__id #: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin__id
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin__id #: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin__id
#: model:ir.model.fields,field_description:contract.field_contract_tag__id #: model:ir.model.fields,field_description:contract.field_contract_tag__id
@@ -1146,6 +1196,7 @@ msgstr ""
#: model:ir.model.fields,field_description:contract.field_contract_line____last_update #: model:ir.model.fields,field_description:contract.field_contract_line____last_update
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard____last_update #: model:ir.model.fields,field_description:contract.field_contract_line_wizard____last_update
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice____last_update #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice____last_update
#: model:ir.model.fields,field_description:contract.field_contract_modification____last_update
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin____last_update #: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin____last_update
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin____last_update #: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin____last_update
#: model:ir.model.fields,field_description:contract.field_contract_tag____last_update #: model:ir.model.fields,field_description:contract.field_contract_tag____last_update
@@ -1161,6 +1212,7 @@ msgstr ""
#: model:ir.model.fields,field_description:contract.field_contract_line__write_uid #: model:ir.model.fields,field_description:contract.field_contract_line__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__write_uid #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__write_uid #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_modification__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_tag__write_uid #: model:ir.model.fields,field_description:contract.field_contract_tag__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_template__write_uid #: model:ir.model.fields,field_description:contract.field_contract_template__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_template_line__write_uid #: model:ir.model.fields,field_description:contract.field_contract_template_line__write_uid
@@ -1174,6 +1226,7 @@ msgstr ""
#: model:ir.model.fields,field_description:contract.field_contract_line__write_date #: model:ir.model.fields,field_description:contract.field_contract_line__write_date
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__write_date #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__write_date
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__write_date #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__write_date
#: model:ir.model.fields,field_description:contract.field_contract_modification__write_date
#: model:ir.model.fields,field_description:contract.field_contract_tag__write_date #: model:ir.model.fields,field_description:contract.field_contract_tag__write_date
#: model:ir.model.fields,field_description:contract.field_contract_template__write_date #: model:ir.model.fields,field_description:contract.field_contract_template__write_date
#: model:ir.model.fields,field_description:contract.field_contract_template_line__write_date #: model:ir.model.fields,field_description:contract.field_contract_template_line__write_date
@@ -1239,6 +1292,12 @@ msgstr ""
msgid "Messages" msgid "Messages"
msgstr "" msgstr ""
#. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__modification_ids
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view
msgid "Modifications"
msgstr ""
#. module: contract #. module: contract
#: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_rule_type__monthly #: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_rule_type__monthly
#: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract_line__auto_renew_rule_type__monthly #: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract_line__auto_renew_rule_type__monthly
@@ -1638,6 +1697,11 @@ msgstr ""
msgid "Send by Email" msgid "Send by Email"
msgstr "" msgstr ""
#. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_modification__sent
msgid "Sent"
msgstr ""
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__sequence #: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__sequence
#: model:ir.model.fields,field_description:contract.field_contract_line__sequence #: model:ir.model.fields,field_description:contract.field_contract_line__sequence

View File

@@ -9,16 +9,31 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 11.0\n" "Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-04-27 01:12+0000\n" "POT-Creation-Date: 2020-12-29 07:26+0000\n"
"PO-Revision-Date: 2020-06-17 11:28+0000\n" "PO-Revision-Date: 2020-12-29 08:27+0100\n"
"Last-Translator: Pedro M. Baeza <pedro.baeza@gmail.com>\n" "Last-Translator: Pedro M. Baeza <pedro.baeza@gmail.com>\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" "Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
"Language: es\n" "Language: es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10\n" "X-Generator: Poedit 2.3\n"
#. module: contract
#: model:mail.template,body_html:contract.mail_template_contract_modification
msgid ""
"\n"
" <p>Hello</p>\n"
" <p>We have modifications on the contract that we want to notify "
"you.</p>\n"
" "
msgstr ""
"\n"
" <p>Hola</p>\n"
" <p>Tenemos modificaciones en el contrato que queremos "
"notificarle.</p>\n"
" "
#. module: contract #. module: contract
#: model:mail.template,body_html:contract.email_contract_template #: model:mail.template,body_html:contract.email_contract_template
@@ -88,12 +103,85 @@ msgid ""
"</div>\n" "</div>\n"
" " " "
msgstr "" msgstr ""
"\n"
"<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-"
"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; \">\n"
" <p>Hola ${object.partner_id.name or ''},</p>\n"
" <p>Se ha creado un nuevo contrato: </p>\n"
"\n"
" <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;\">\n"
" &nbsp;&nbsp;<strong>REFERENCIAS</strong><br />\n"
" &nbsp;&nbsp;Contrato: <strong>${object.name}</strong><br />\n"
" % if object.date_start:\n"
" &nbsp;&nbsp;Fecha inicio contrato: ${object.date_start or ''}<br />\n"
" % endif\n"
"\n"
" % if object.user_id:\n"
" % if object.user_id.email:\n"
" &nbsp;&nbsp;Su contacto: <a href=\"mailto:${object.user_id.email or "
"''}?subject=Contract%20${object.name}\">${object.user_id.name}</a>\n"
" % else:\n"
" &nbsp;&nbsp;Su contacto: ${object.user_id.name}\n"
" % endif\n"
" % endif\n"
" </p>\n"
"\n"
" <br/>\n"
" <p>Si tiene alguna pregunta, no dude en contactarnos.</p>\n"
" <p>Gracias por elegir a ${object.company_id.name or 'nosotros'}!</p>\n"
" <br/>\n"
" <br/>\n"
" <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;\">\n"
" <h3 style=\"margin: 0px; padding: 2px 14px; font-size: 12px; color: "
"#DDD;\">\n"
" <strong style=\"text-transform:uppercase;\">${object.company_id."
"name}</strong></h3>\n"
" </div>\n"
" <div style=\"width: 347px; margin: 0px; padding: 5px 14px; line-height: "
"16px; background-color: #F2F2F2;\">\n"
" <span style=\"color: #222; margin-bottom: 5px; display: block; \">\n"
" ${object.company_id.partner_id.sudo()."
"with_context(show_address=True, html_format=True).name_get()[0][1] | safe}\n"
" </span>\n"
" % if object.company_id.phone:\n"
" <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; \">\n"
" Teléfono: ${object.company_id.phone}\n"
" </div>\n"
" % endif\n"
" % if object.company_id.website:\n"
" <div>\n"
" Web: <a href=\"${object.company_id.website}\">${object."
"company_id.website}</a>\n"
" </div>\n"
" %endif\n"
" <p></p>\n"
" </div>\n"
" <p></p>\n"
" <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;\">Ver contrato</a>\n"
"</div>\n"
" "
#. module: contract #. module: contract
#: model:mail.template,subject:contract.email_contract_template #: model:mail.template,subject:contract.email_contract_template
msgid "${object.company_id.name} Contract (Ref ${object.name or 'n/a'})" msgid "${object.company_id.name} Contract (Ref ${object.name or 'n/a'})"
msgstr "${object.company_id.name} Contrato (Ref ${object.name or 'n/a'})" msgstr "${object.company_id.name} Contrato (Ref ${object.name or 'n/a'})"
#. module: contract
#: model:mail.template,subject:contract.mail_template_contract_modification
msgid ""
"${object.company_id.name} Contract (Ref ${object.name or 'n/a'}) - "
"Modifications"
msgstr ""
"${object.company_id.name} Contrato (Ref ${object.name or 'n/a'}) - "
"Modificaciones"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_manually_create_invoice_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_manually_create_invoice_form_view
msgid "" msgid ""
@@ -127,6 +215,10 @@ msgid ""
" the\n" " the\n"
" invoiced period" " invoiced period"
msgstr "" msgstr ""
"<strong>#END#</strong>: Fecha final\n"
" del\n"
" periodo\n"
" facturado"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_template_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_template_form_view
@@ -142,6 +234,10 @@ msgid ""
" of the\n" " of the\n"
" invoiced period" " invoiced period"
msgstr "" msgstr ""
"<strong>#START#</strong>: Fecha\n"
" inicio\n"
" del\n"
" periodo facturado"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_template_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_template_form_view
@@ -156,7 +252,7 @@ msgstr "<strong>Contrato: </strong>"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "<strong>Customer:</strong>" msgid "<strong>Customer:</strong>"
msgstr "" msgstr "<strong>Cliente:</strong>"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document #: model_terms:ir.ui.view,arch_db:contract.report_contract_document
@@ -166,18 +262,23 @@ msgstr "<strong>Fecha de inicio</strong>"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "<strong>Date end</strong>" msgid "<strong>Date end</strong>"
msgstr "" msgstr "<strong>Fecha fin</strong>"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "<strong>Date of Next Invoice</strong>" msgid "<strong>Date of Next Invoice</strong>"
msgstr "" msgstr "<strong>Fecha de siguiente factura</strong>"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document #: model_terms:ir.ui.view,arch_db:contract.report_contract_document
msgid "<strong>Description</strong>" msgid "<strong>Description</strong>"
msgstr "<strong>Descripción</strong>" msgstr "<strong>Descripción</strong>"
#. module: contract
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document
msgid "<strong>Modifications</strong>"
msgstr "<strong>Modificaciones</strong>"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document #: model_terms:ir.ui.view,arch_db:contract.report_contract_document
msgid "<strong>Notes: </strong>" msgid "<strong>Notes: </strong>"
@@ -206,7 +307,7 @@ msgstr "<strong>Elementos recurrentes</strong>"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "<strong>Reference</strong>" msgid "<strong>Reference</strong>"
msgstr "" msgstr "<strong>Referencia</strong>"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document #: model_terms:ir.ui.view,arch_db:contract.report_contract_document
@@ -216,7 +317,7 @@ msgstr "<strong>Responsable: </strong>"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "<strong>Responsible:</strong>" msgid "<strong>Responsible:</strong>"
msgstr "" msgstr "<strong>Responsable:</strong>"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document #: model_terms:ir.ui.view,arch_db:contract.report_contract_document
@@ -259,7 +360,7 @@ msgstr "Línea de Contrato Recurrente Abstracta"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__access_warning #: model:ir.model.fields,field_description:contract.field_contract_contract__access_warning
msgid "Access warning" msgid "Access warning"
msgstr "" msgstr "Alerta de acceso"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__message_needaction #: model:ir.model.fields,field_description:contract.field_contract_contract__message_needaction
@@ -280,7 +381,7 @@ msgstr "Actividades"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__activity_exception_decoration #: model:ir.model.fields,field_description:contract.field_contract_contract__activity_exception_decoration
msgid "Activity Exception Decoration" msgid "Activity Exception Decoration"
msgstr "" msgstr "Decoración de excepción de actividad"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__activity_state #: model:ir.model.fields,field_description:contract.field_contract_contract__activity_state
@@ -371,7 +472,7 @@ msgstr "¿Precio automático?"
#. module: contract #. module: contract
#: model:ir.model,name:contract.model_contract_recurrency_basic_mixin #: model:ir.model,name:contract.model_contract_recurrency_basic_mixin
msgid "Basic recurrency mixin for abstract contract models" msgid "Basic recurrency mixin for abstract contract models"
msgstr "" msgstr "Mixin de recurrencia básica para modelos de contrato abstracto"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view
@@ -434,7 +535,7 @@ msgstr "Entidad comercial"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "Communication" msgid "Communication"
msgstr "" msgstr "Comunicación"
#. module: contract #. module: contract
#: model:ir.model,name:contract.model_res_company #: model:ir.model,name:contract.model_res_company
@@ -475,6 +576,7 @@ msgstr "Contacto"
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__contract_id #: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__contract_id
#: model:ir.model.fields,field_description:contract.field_contract_contract_terminate__contract_id #: model:ir.model.fields,field_description:contract.field_contract_contract_terminate__contract_id
#: model:ir.model.fields,field_description:contract.field_contract_line__contract_id #: model:ir.model.fields,field_description:contract.field_contract_line__contract_id
#: model:ir.model.fields,field_description:contract.field_contract_modification__contract_id
#: model:ir.model.fields,field_description:contract.field_contract_template_line__contract_id #: model:ir.model.fields,field_description:contract.field_contract_template_line__contract_id
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view
#: model_terms:ir.ui.view,arch_db:contract.res_config_settings_form_view #: model_terms:ir.ui.view,arch_db:contract.res_config_settings_form_view
@@ -485,7 +587,12 @@ msgstr "Contrato"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_my_contracts #: model_terms:ir.ui.view,arch_db:contract.portal_my_contracts
msgid "Contract #" msgid "Contract #"
msgstr "" msgstr "Contrato #"
#. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "Contract -"
msgstr "Contrato -"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_terminate_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_contract_terminate_form_view
@@ -519,16 +626,16 @@ msgstr "Contrato Crear factura manualmente"
msgid "Contract Manually Create Invoice Wizard" msgid "Contract Manually Create Invoice Wizard"
msgstr "Asistente de creación manual de facturas de contrato" msgstr "Asistente de creación manual de facturas de contrato"
#. module: contract
#: model:ir.model,name:contract.model_contract_modification
msgid "Contract Modification"
msgstr "Modificación del contrato"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view
msgid "Contract Name" msgid "Contract Name"
msgstr "Nombre del contrato" msgstr "Nombre del contrato"
#. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "Contract Order -"
msgstr ""
#. module: contract #. module: contract
#: model:ir.model,name:contract.model_contract_tag #: model:ir.model,name:contract.model_contract_tag
#: model:ir.ui.menu,name:contract.contract_tag_menu #: model:ir.ui.menu,name:contract.contract_tag_menu
@@ -704,7 +811,7 @@ msgstr "Líneas de contrato"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__contract_line_fixed_ids #: model:ir.model.fields,field_description:contract.field_contract_contract__contract_line_fixed_ids
msgid "Contract lines (fixed)" msgid "Contract lines (fixed)"
msgstr "" msgstr "Líneas de contrato (fijo)"
#. module: contract #. module: contract
#: code:addons/contract/models/contract.py:0 #: code:addons/contract/models/contract.py:0
@@ -716,6 +823,17 @@ msgstr ""
"Contratos facturados manualmente: <a href=\"#\" data-oe-model=\"%s\" data-oe-" "Contratos facturados manualmente: <a href=\"#\" data-oe-model=\"%s\" data-oe-"
"id=\"%s\">Factura</a>" "id=\"%s\">Factura</a>"
#. module: contract
#: model:mail.message.subtype,name:contract.mail_message_subtype_contract_modification
msgid "Contract modifications"
msgstr "Modificaciones del contrato"
#. module: contract
#: code:addons/contract/models/contract.py:0
#, python-format
msgid "Contract start"
msgstr "Inicio del contrato"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_template__contract_line_ids #: model:ir.model.fields,field_description:contract.field_contract_template__contract_line_ids
msgid "Contract template lines" msgid "Contract template lines"
@@ -770,6 +888,7 @@ msgstr "Crear facturas"
#: model:ir.model.fields,field_description:contract.field_contract_line__create_uid #: model:ir.model.fields,field_description:contract.field_contract_line__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__create_uid #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__create_uid #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_modification__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_tag__create_uid #: model:ir.model.fields,field_description:contract.field_contract_tag__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_template__create_uid #: model:ir.model.fields,field_description:contract.field_contract_template__create_uid
#: model:ir.model.fields,field_description:contract.field_contract_template_line__create_uid #: model:ir.model.fields,field_description:contract.field_contract_template_line__create_uid
@@ -783,6 +902,7 @@ msgstr "Creado por"
#: model:ir.model.fields,field_description:contract.field_contract_line__create_date #: model:ir.model.fields,field_description:contract.field_contract_line__create_date
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__create_date #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__create_date
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__create_date #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__create_date
#: model:ir.model.fields,field_description:contract.field_contract_modification__create_date
#: model:ir.model.fields,field_description:contract.field_contract_tag__create_date #: model:ir.model.fields,field_description:contract.field_contract_tag__create_date
#: model:ir.model.fields,field_description:contract.field_contract_template__create_date #: model:ir.model.fields,field_description:contract.field_contract_template__create_date
#: model:ir.model.fields,field_description:contract.field_contract_template_line__create_date #: model:ir.model.fields,field_description:contract.field_contract_template_line__create_date
@@ -820,14 +940,17 @@ msgstr "Contratos de cliente"
#. module: contract #. module: contract
#: model:ir.model.fields,help:contract.field_contract_contract__access_url #: model:ir.model.fields,help:contract.field_contract_contract__access_url
msgid "Customer Portal URL" msgid "Customer Portal URL"
msgstr "" msgstr "URL para portal"
#. module: contract #. module: contract
#: code:addons/contract/controllers/main.py:0 #: code:addons/contract/controllers/main.py:0
#: model:ir.model.fields,field_description:contract.field_contract_modification__date
#: model_terms:ir.ui.view,arch_db:contract.portal_my_contracts #: model_terms:ir.ui.view,arch_db:contract.portal_my_contracts
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document
#: model_terms:ir.ui.view,arch_db:contract.template_contract_modification
#, python-format #, python-format
msgid "Date" msgid "Date"
msgstr "" msgstr "Fecha"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__date_end #: model:ir.model.fields,field_description:contract.field_contract_contract__date_end
@@ -854,7 +977,7 @@ msgstr "Fecha de inicio"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_my_contracts #: model_terms:ir.ui.view,arch_db:contract.portal_my_contracts
msgid "Date end" msgid "Date end"
msgstr "" msgstr "Fecha fin"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract__recurring_next_date #: model:ir.model.fields,field_description:contract.field_contract_abstract_contract__recurring_next_date
@@ -871,7 +994,7 @@ msgstr "Próxima fecha de factura"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "Date of next invoice" msgid "Date of next invoice"
msgstr "" msgstr "Fecha de siguiente factura"
#. module: contract #. module: contract
#: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_rule_type__daily #: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_rule_type__daily
@@ -910,9 +1033,12 @@ msgstr ""
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__name #: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__name
#: model:ir.model.fields,field_description:contract.field_contract_line__name #: model:ir.model.fields,field_description:contract.field_contract_line__name
#: model:ir.model.fields,field_description:contract.field_contract_modification__description
#: model:ir.model.fields,field_description:contract.field_contract_template_line__name #: model:ir.model.fields,field_description:contract.field_contract_template_line__name
#: model_terms:ir.ui.view,arch_db:contract.contract_abstract_contract_line_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_abstract_contract_line_form_view
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
#: model_terms:ir.ui.view,arch_db:contract.report_contract_document
#: model_terms:ir.ui.view,arch_db:contract.template_contract_modification
msgid "Description" msgid "Description"
msgstr "Descripción" msgstr "Descripción"
@@ -948,6 +1074,7 @@ msgstr ""
#: model:ir.model.fields,field_description:contract.field_contract_line__display_name #: model:ir.model.fields,field_description:contract.field_contract_line__display_name
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__display_name #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__display_name
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__display_name #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__display_name
#: model:ir.model.fields,field_description:contract.field_contract_modification__display_name
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin__display_name #: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin__display_name
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin__display_name #: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin__display_name
#: model:ir.model.fields,field_description:contract.field_contract_tag__display_name #: model:ir.model.fields,field_description:contract.field_contract_tag__display_name
@@ -1014,6 +1141,7 @@ msgstr "Agrupar por..."
#: model:ir.model.fields,field_description:contract.field_contract_line__id #: model:ir.model.fields,field_description:contract.field_contract_line__id
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__id #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__id
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__id #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__id
#: model:ir.model.fields,field_description:contract.field_contract_modification__id
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin__id #: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin__id
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin__id #: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin__id
#: model:ir.model.fields,field_description:contract.field_contract_tag__id #: model:ir.model.fields,field_description:contract.field_contract_tag__id
@@ -1026,12 +1154,12 @@ msgstr "ID"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__activity_exception_icon #: model:ir.model.fields,field_description:contract.field_contract_contract__activity_exception_icon
msgid "Icon" msgid "Icon"
msgstr "" msgstr "Icono"
#. module: contract #. module: contract
#: model:ir.model.fields,help:contract.field_contract_contract__activity_exception_icon #: model:ir.model.fields,help:contract.field_contract_contract__activity_exception_icon
msgid "Icon to indicate an exception activity." msgid "Icon to indicate an exception activity."
msgstr "" msgstr "Icono para indicar una actividad de excepción."
#. module: contract #. module: contract
#: model:ir.model.fields,help:contract.field_res_company__create_new_line_at_contract_line_renew #: model:ir.model.fields,help:contract.field_res_company__create_new_line_at_contract_line_renew
@@ -1114,7 +1242,7 @@ msgstr "Facturar cada"
#. module: contract #. module: contract
#: model:mail.message.subtype,name:contract.mail_message_subtype_invoice_created #: model:mail.message.subtype,name:contract.mail_message_subtype_invoice_created
msgid "Invoice created" msgid "Invoice created"
msgstr "" msgstr "Factura creada"
#. module: contract #. module: contract
#: model:ir.model.fields,help:contract.field_contract_abstract_contract__recurring_interval #: model:ir.model.fields,help:contract.field_contract_abstract_contract__recurring_interval
@@ -1174,7 +1302,7 @@ msgstr "Es seguidor"
#: model:ir.model.fields,field_description:contract.field_contract_line__is_recurring_note #: model:ir.model.fields,field_description:contract.field_contract_line__is_recurring_note
#: model:ir.model.fields,field_description:contract.field_contract_template_line__is_recurring_note #: model:ir.model.fields,field_description:contract.field_contract_template_line__is_recurring_note
msgid "Is Recurring Note" msgid "Is Recurring Note"
msgstr "" msgstr "Es nota recurrente"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_line_wizard_stop_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_line_wizard_stop_form_view
@@ -1192,12 +1320,12 @@ msgstr "Diario"
#. module: contract #. module: contract
#: model:ir.model,name:contract.model_account_move #: model:ir.model,name:contract.model_account_move
msgid "Journal Entries" msgid "Journal Entries"
msgstr "" msgstr "Asientos contables"
#. module: contract #. module: contract
#: model:ir.model,name:contract.model_account_move_line #: model:ir.model,name:contract.model_account_move_line
msgid "Journal Item" msgid "Journal Item"
msgstr "" msgstr "Apunte contable"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__last_date_invoiced #: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__last_date_invoiced
@@ -1216,6 +1344,7 @@ msgstr "Última fecha facturada"
#: model:ir.model.fields,field_description:contract.field_contract_line____last_update #: model:ir.model.fields,field_description:contract.field_contract_line____last_update
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard____last_update #: model:ir.model.fields,field_description:contract.field_contract_line_wizard____last_update
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice____last_update #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice____last_update
#: model:ir.model.fields,field_description:contract.field_contract_modification____last_update
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin____last_update #: model:ir.model.fields,field_description:contract.field_contract_recurrency_basic_mixin____last_update
#: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin____last_update #: model:ir.model.fields,field_description:contract.field_contract_recurrency_mixin____last_update
#: model:ir.model.fields,field_description:contract.field_contract_tag____last_update #: model:ir.model.fields,field_description:contract.field_contract_tag____last_update
@@ -1231,6 +1360,7 @@ msgstr "Última Modificación en"
#: model:ir.model.fields,field_description:contract.field_contract_line__write_uid #: model:ir.model.fields,field_description:contract.field_contract_line__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__write_uid #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__write_uid #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_modification__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_tag__write_uid #: model:ir.model.fields,field_description:contract.field_contract_tag__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_template__write_uid #: model:ir.model.fields,field_description:contract.field_contract_template__write_uid
#: model:ir.model.fields,field_description:contract.field_contract_template_line__write_uid #: model:ir.model.fields,field_description:contract.field_contract_template_line__write_uid
@@ -1244,6 +1374,7 @@ msgstr "Última Actualización por"
#: model:ir.model.fields,field_description:contract.field_contract_line__write_date #: model:ir.model.fields,field_description:contract.field_contract_line__write_date
#: model:ir.model.fields,field_description:contract.field_contract_line_wizard__write_date #: model:ir.model.fields,field_description:contract.field_contract_line_wizard__write_date
#: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__write_date #: model:ir.model.fields,field_description:contract.field_contract_manually_create_invoice__write_date
#: model:ir.model.fields,field_description:contract.field_contract_modification__write_date
#: model:ir.model.fields,field_description:contract.field_contract_tag__write_date #: model:ir.model.fields,field_description:contract.field_contract_tag__write_date
#: model:ir.model.fields,field_description:contract.field_contract_template__write_date #: model:ir.model.fields,field_description:contract.field_contract_template__write_date
#: model:ir.model.fields,field_description:contract.field_contract_template_line__write_date #: model:ir.model.fields,field_description:contract.field_contract_template_line__write_date
@@ -1254,7 +1385,7 @@ msgstr "Última Actualización en"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.portal_contract_page #: model_terms:ir.ui.view,arch_db:contract.portal_contract_page
msgid "Last date invoice" msgid "Last date invoice"
msgstr "" msgstr "Última fecha de factura"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view
@@ -1271,7 +1402,7 @@ msgstr "Adjunto principal"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__manual_currency_id #: model:ir.model.fields,field_description:contract.field_contract_contract__manual_currency_id
msgid "Manual Currency" msgid "Manual Currency"
msgstr "" msgstr "Moneda manual"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_line__manual_renew_needed #: model:ir.model.fields,field_description:contract.field_contract_line__manual_renew_needed
@@ -1299,6 +1430,8 @@ msgid ""
"Mark this check if you want to control recurrrence at line level instead of " "Mark this check if you want to control recurrrence at line level instead of "
"all together for the whole contract." "all together for the whole contract."
msgstr "" msgstr ""
"Marque esta casilla si desea controlar la recurrencia a nivel de línea en "
"lugar de todos juntos para todo el contrato."
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__message_has_error #: model:ir.model.fields,field_description:contract.field_contract_contract__message_has_error
@@ -1310,6 +1443,12 @@ msgstr "Mensaje de Error de entrega"
msgid "Messages" msgid "Messages"
msgstr "Mensajes" msgstr "Mensajes"
#. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__modification_ids
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view
msgid "Modifications"
msgstr "Modificaciones"
#. module: contract #. module: contract
#: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_rule_type__monthly #: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_rule_type__monthly
#: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract_line__auto_renew_rule_type__monthly #: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract_line__auto_renew_rule_type__monthly
@@ -1437,7 +1576,7 @@ msgstr ""
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__message_has_error_counter #: model:ir.model.fields,field_description:contract.field_contract_contract__message_has_error_counter
msgid "Number of errors" msgid "Number of errors"
msgstr "" msgstr "Número de errores"
#. module: contract #. module: contract
#: model:ir.model.fields,help:contract.field_contract_contract__message_needaction_counter #: model:ir.model.fields,help:contract.field_contract_contract__message_needaction_counter
@@ -1502,7 +1641,7 @@ msgstr "Por favor defina un diario de %s para la compañía '%s'."
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__access_url #: model:ir.model.fields,field_description:contract.field_contract_contract__access_url
msgid "Portal Access URL" msgid "Portal Access URL"
msgstr "" msgstr "URL de acceso al portal"
#. module: contract #. module: contract
#: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_invoicing_type__post-paid #: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_invoicing_type__post-paid
@@ -1536,7 +1675,7 @@ msgstr "Líneas de contrato predecesora"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view
msgid "Preview" msgid "Preview"
msgstr "" msgstr "Previsualizar"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract__pricelist_id #: model:ir.model.fields,field_description:contract.field_contract_abstract_contract__pricelist_id
@@ -1598,12 +1737,12 @@ msgstr "Recurrencia"
#: model:ir.model.fields,field_description:contract.field_contract_contract__line_recurrence #: model:ir.model.fields,field_description:contract.field_contract_contract__line_recurrence
#: model:ir.model.fields,field_description:contract.field_contract_template__line_recurrence #: model:ir.model.fields,field_description:contract.field_contract_template__line_recurrence
msgid "Recurrence at line level?" msgid "Recurrence at line level?"
msgstr "" msgstr "¿Recurrencia a nivel de línea?"
#. module: contract #. module: contract
#: model:ir.model,name:contract.model_contract_recurrency_mixin #: model:ir.model,name:contract.model_contract_recurrency_mixin
msgid "Recurrency mixin for contract models" msgid "Recurrency mixin for contract models"
msgstr "" msgstr "Mixin de recurrencia para modelos contractuales"
#. module: contract #. module: contract
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view #: model_terms:ir.ui.view,arch_db:contract.contract_contract_form_view
@@ -1671,7 +1810,7 @@ msgstr "Usuario Responsable"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__message_has_sms_error #: model:ir.model.fields,field_description:contract.field_contract_contract__message_has_sms_error
msgid "SMS Delivery error" msgid "SMS Delivery error"
msgstr "" msgstr "Error de entrega de SMS"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_res_partner__sale_contract_count #: model:ir.model.fields,field_description:contract.field_res_partner__sale_contract_count
@@ -1691,7 +1830,7 @@ msgstr "Sección"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_contract__access_token #: model:ir.model.fields,field_description:contract.field_contract_contract__access_token
msgid "Security Token" msgid "Security Token"
msgstr "" msgstr "Token de seguridad"
#. module: contract #. module: contract
#: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_rule_type__semesterly #: model:ir.model.fields.selection,name:contract.selection__contract_abstract_contract__recurring_rule_type__semesterly
@@ -1711,6 +1850,11 @@ msgstr "Semestre/s"
msgid "Send by Email" msgid "Send by Email"
msgstr "Enviar por correo electrónico" msgstr "Enviar por correo electrónico"
#. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_modification__sent
msgid "Sent"
msgstr "Enviado"
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__sequence #: model:ir.model.fields,field_description:contract.field_contract_abstract_contract_line__sequence
#: model:ir.model.fields,field_description:contract.field_contract_line__sequence #: model:ir.model.fields,field_description:contract.field_contract_line__sequence
@@ -1962,7 +2106,7 @@ msgstr "Para renovar"
#. module: contract #. module: contract
#: model:ir.model.fields,help:contract.field_contract_contract__activity_exception_decoration #: model:ir.model.fields,help:contract.field_contract_contract__activity_exception_decoration
msgid "Type of the exception activity on record." msgid "Type of the exception activity on record."
msgstr "" msgstr "Tipo de actividad de excepción en registro."
#. module: contract #. module: contract
#: model:ir.model.fields,field_description:contract.field_contract_line__is_un_cancel_allowed #: model:ir.model.fields,field_description:contract.field_contract_line__is_un_cancel_allowed
@@ -2167,231 +2311,5 @@ msgstr "ejemplo Contrato XYZ"
msgid "on" msgid "on"
msgstr "en" msgstr "en"
#~ msgid "" #~ msgid "Contract Order -"
#~ "\n" #~ msgstr "Pedido de contrato -"
#~ "<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-"
#~ "serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "
#~ "\">\n"
#~ " <p>Hello ${object.partner_id.name or ''},</p>\n"
#~ " <p>A new contract has been created: </p>\n"
#~ "\n"
#~ " <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;\">\n"
#~ " &nbsp;&nbsp;<strong>REFERENCES</strong><br />\n"
#~ " &nbsp;&nbsp;Contract: <strong>${object.name}</strong><br />\n"
#~ " % if object.date_start:\n"
#~ " &nbsp;&nbsp;Contract Date Start: ${object.date_start or ''}<br />\n"
#~ " % endif\n"
#~ "\n"
#~ " % if object.user_id:\n"
#~ " % if object.user_id.email:\n"
#~ " &nbsp;&nbsp;Your Contact: <a href=\"mailto:${object.user_id.email "
#~ "or ''}?subject=Contract%20${object.name}\">${object.user_id.name}</a>\n"
#~ " % else:\n"
#~ " &nbsp;&nbsp;Your Contact: ${object.user_id.name}\n"
#~ " % endif\n"
#~ " % endif\n"
#~ " </p>\n"
#~ "\n"
#~ " <br/>\n"
#~ " <p>If you have any questions, do not hesitate to contact us.</p>\n"
#~ " <p>Thank you for choosing ${object.company_id.name or 'us'}!</p>\n"
#~ " <br/>\n"
#~ " <br/>\n"
#~ " <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;\">\n"
#~ " <h3 style=\"margin: 0px; padding: 2px 14px; font-size: 12px; "
#~ "color: #DDD;\">\n"
#~ " <strong style=\"text-transform:uppercase;\">${object."
#~ "company_id.name}</strong></h3>\n"
#~ " </div>\n"
#~ " <div style=\"width: 347px; margin: 0px; padding: 5px 14px; line-"
#~ "height: 16px; background-color: #F2F2F2;\">\n"
#~ " <span style=\"color: #222; margin-bottom: 5px; display: block; "
#~ "\">\n"
#~ " ${object.company_id.partner_id.sudo()."
#~ "with_context(show_address=True, html_format=True).name_get()[0][1] | "
#~ "safe}\n"
#~ " </span>\n"
#~ " % if object.company_id.phone:\n"
#~ " <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; \">\n"
#~ " Phone: ${object.company_id.phone}\n"
#~ " </div>\n"
#~ " % endif\n"
#~ " % if object.company_id.website:\n"
#~ " <div>\n"
#~ " Web: <a href=\"${object.company_id.website}\">${object."
#~ "company_id.website}</a>\n"
#~ " </div>\n"
#~ " %endif\n"
#~ " <p></p>\n"
#~ " </div>\n"
#~ "</div>\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-"
#~ "serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "
#~ "\">\n"
#~ " <p>Hola ${object.partner_id.name or ''},</p>\n"
#~ " <p>Se ha creado un nuevo contrato: </p>\n"
#~ "\n"
#~ " <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;\">\n"
#~ " &nbsp;&nbsp;<strong>REFERENCIAS</strong><br />\n"
#~ " &nbsp;&nbsp;Contrato: <strong>${object.name}</strong><br />\n"
#~ " &nbsp;&nbsp;Fecha de inicio del contrato: ${object.date_start or "
#~ "''}<br />\n"
#~ "\n"
#~ " % if object.user_id:\n"
#~ " % if object.user_id.email:\n"
#~ " &nbsp;&nbsp;Contacto: <a href=\"mailto:${object.user_id.email or "
#~ "''}?subject=Contrato%20${object.name}\">${object.user_id.name}</a>\n"
#~ " % else:\n"
#~ " &nbsp;&nbsp;Contacto: ${object.user_id.name}\n"
#~ " % endif\n"
#~ " % endif\n"
#~ " </p>\n"
#~ "\n"
#~ " <br/>\n"
#~ " <p>Si tiene cualquier pregunta, no dude en contactarnos.</p>\n"
#~ " <p>Gracias por elegir ${object.company_id.name or 'nos'}!</p>\n"
#~ " <br/>\n"
#~ " <br/>\n"
#~ " <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;\">\n"
#~ " <h3 style=\"margin: 0px; padding: 2px 14px; font-size: 12px; "
#~ "color: #DDD;\">\n"
#~ " <strong style=\"text-transform:uppercase;\">${object."
#~ "company_id.name}</strong></h3>\n"
#~ " </div>\n"
#~ " <div style=\"width: 347px; margin: 0px; padding: 5px 14px; line-"
#~ "height: 16px; background-color: #F2F2F2;\">\n"
#~ " <span style=\"color: #222; margin-bottom: 5px; display: block; "
#~ "\">\n"
#~ " ${object.company_id.partner_id.sudo()."
#~ "with_context(show_address=True, html_format=True).name_get()[0][1] | "
#~ "safe}\n"
#~ " </span>\n"
#~ " % if object.company_id.phone:\n"
#~ " <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; \">\n"
#~ " Teléfono: ${object.company_id.phone}\n"
#~ " </div>\n"
#~ " % endif\n"
#~ " % if object.company_id.website:\n"
#~ " <div>\n"
#~ " Web: <a href=\"${object.company_id.website}\">${object."
#~ "company_id.website}</a>\n"
#~ " </div>\n"
#~ " %endif\n"
#~ " <p></p>\n"
#~ " </div>\n"
#~ "</div>\n"
#~ " "
#~ msgid ""
#~ "<strong>#END#</strong>: End date\n"
#~ " of\n"
#~ " the\n"
#~ " invoiced period"
#~ msgstr ""
#~ "<strong>#END#</strong>: Fecha final\n"
#~ " del\n"
#~ " periodo\n"
#~ " facturado"
#~ msgid ""
#~ "<strong>#START#</strong>: Start\n"
#~ " date\n"
#~ " of the\n"
#~ " invoiced period"
#~ msgstr ""
#~ "<strong>#START#</strong>: Fecha\n"
#~ " inicio\n"
#~ " del\n"
#~ " periodo facturado"
#~ msgid "If checked new messages require your attention."
#~ msgstr "Si está marcado los nuevos mensajes requieren su atención."
#~ msgid "Invoice"
#~ msgstr "Factura"
#~ msgid "Invoice Line"
#~ msgstr "Línea de factura"
#~ msgid "Number of error"
#~ msgstr "Número de error"
#~ msgid "Overdue"
#~ msgstr "Vencido"
#~ msgid "Planned"
#~ msgstr "Planificado"
#~ msgid "Today"
#~ msgstr "Hoy"
#~ msgid ""
#~ "<strong>Notes: </strong>\n"
#~ " <br/>"
#~ msgstr ""
#~ "<strong>Notas: </strong>\n"
#~ " <br/>"
#~ msgid "Specify if process date is 'from' or 'to' invoicing date"
#~ msgstr ""
#~ "Especifica si la fecha de proceso es desde o hasta la fecha de facturación"
#~ msgid "Account Analytic Contract"
#~ msgstr "Contratos Cuenta Analítica"
#~ msgid "Account Analytic Lines"
#~ msgstr "Ver líneas contables analíticas"
#~ msgid "Date From"
#~ msgstr "Fecha inicio"
#~ msgid "Date To"
#~ msgstr "Fecha fin"
#~ msgid "Date from invoiced period"
#~ msgstr "Fecha del periodo facturado"
#~ msgid "Date to invoiced period"
#~ msgstr "Fecha del periodo facturado"
#~ msgid "Generate recurring invoices automatically"
#~ msgstr "Generar facturas recurrentes automáticamente"
#~ msgid "Partner and dependents"
#~ msgstr "Empresa y contactos"
#~ msgid "You must first select a Customer for Contract %s!"
#~ msgstr "¡Seleccione un cliente para este contrato %s!"
#~ msgid "You must first select a Supplier for Contract %s!"
#~ msgstr "Tiene que seleccionar un Proveedor para el contrato %s!"
#~ msgid ""
#~ "You must review start and end dates!\n"
#~ "%s"
#~ msgstr ""
#~ "Debe revisar las fechas de inicio y de fin\n"
#~ "%s"
#~ msgid "You must supply a customer for the contract '%s'"
#~ msgstr "Debe especificar un cliente para el contrato '%s'"
#~ msgid "You must supply a start date for contract '%s'"
#~ msgstr "Debe suministrar una fecha de inicio para el contrato '%s'"
#~ msgid "account.analytic.invoice.line"
#~ msgstr "account.analytic.invoice.line"
#~ msgid "⇒ Show recurring invoices"
#~ msgstr "⇒ Mostrar facturas recurrentes"

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,7 @@ from . import contract_template
from . import contract from . import contract
from . import contract_template_line from . import contract_template_line
from . import contract_line from . import contract_line
from . import contract_modification
from . import account_move from . import account_move
from . import res_partner from . import res_partner
from . import contract_tag from . import contract_tag

View File

@@ -113,6 +113,63 @@ class ContractContract(models.Model):
copy=False, copy=False,
track_visibility="onchange", track_visibility="onchange",
) )
modification_ids = fields.One2many(
comodel_name="contract.modification",
inverse_name="contract_id",
string="Modifications",
)
@api.model_create_multi
def create(self, vals_list):
records = super().create(vals_list)
records._set_start_contract_modification()
return records
def write(self, vals):
if "modification_ids" in vals:
res = super(
ContractContract, self.with_context(bypass_modification_send=True)
).write(vals)
self._modification_mail_send()
else:
res = super(ContractContract, self).write(vals)
return res
@api.model
def _set_start_contract_modification(self):
for record in self:
if record.contract_line_ids:
date_start = min(record.contract_line_ids.mapped("date_start"))
else:
date_start = record.create_date
record.write(
{
"modification_ids": [
(0, 0, {"date": date_start, "description": _("Contract start")})
]
}
)
@api.model
def _modification_mail_send(self):
for record in self:
modification_ids_not_sent = record.modification_ids.filtered(
lambda x: not x.sent
)
if modification_ids_not_sent:
contract_modification_subtype = self.env.ref(
"contract.mail_message_subtype_contract_modification"
)
notified_partners = record.message_follower_ids.filtered(
lambda x: contract_modification_subtype in x.subtype_ids
).mapped("partner_id")
if notified_partners:
record.message_post_with_template(
self.env.ref("contract.mail_template_contract_modification").id,
partner_ids=[(4, x.id) for x in notified_partners],
email_layout_xmlid="contract.template_contract_modification",
)
modification_ids_not_sent.write({"sent": True})
def _compute_access_url(self): def _compute_access_url(self):
for record in self: for record in self:

View File

@@ -0,0 +1,38 @@
# Copyright 2020 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class ContractModification(models.Model):
_name = "contract.modification"
_description = "Contract Modification"
_order = "date desc"
date = fields.Date(required=True, string="Date")
description = fields.Text(required=True, string="Description")
contract_id = fields.Many2one(
string="Contract",
comodel_name="contract.contract",
required=True,
ondelete="cascade",
index=True,
)
sent = fields.Boolean(string="Sent", default=False,)
@api.model_create_multi
def create(self, vals_list):
records = super().create(vals_list)
if not self.env.context.get("bypass_modification_send"):
records.check_modification_ids_need_sent()
return records
def write(self, vals):
res = super().write(vals)
if not self.env.context.get("bypass_modification_send"):
self.check_modification_ids_need_sent()
return res
def check_modification_ids_need_sent(self):
self.mapped("contract_id")._modification_mail_send()

View File

@@ -132,6 +132,50 @@
</table> </table>
</div> </div>
</div> </div>
<div
class="row"
id="modification_info"
t-if="o.modification_ids"
>
<div class="col-12">
<p id="modification_info_p">
<strong>Modifications</strong>
</p>
<table class="table table-sm">
<thead>
<tr>
<th name="th_date">Date</th>
<th
name="th_description"
class="text-right"
>Description</th>
</tr>
</thead>
<tbody>
<t
t-foreach="o.modification_ids"
t-as="notification_id"
>
<tr>
<td name="td_date">
<span
t-field="notification_id.date"
/>
</td>
<td
name="td_description"
class="text-right"
>
<div
t-field="notification_id.description"
/>
</td>
</tr>
</t>
</tbody>
</table>
</div>
</div>
<div id="total" class="row" name="total"> <div id="total" class="row" name="total">
<div class="col-4 ml-auto"> <div class="col-4 ml-auto">
<table class="table table-sm"> <table class="table table-sm">

View File

@@ -9,3 +9,5 @@
"contract_line_portal","Recurring portal","model_contract_line","base.group_portal",1,0,0,0 "contract_line_portal","Recurring portal","model_contract_line","base.group_portal",1,0,0,0
"contract_template_line_manager","Recurring manager","model_contract_template_line","account.group_account_manager",1,1,1,1 "contract_template_line_manager","Recurring manager","model_contract_template_line","account.group_account_manager",1,1,1,1
"contract_template_line_user","Recurring user","model_contract_template_line","account.group_account_invoice",1,0,0,0 "contract_template_line_user","Recurring user","model_contract_template_line","account.group_account_invoice",1,0,0,0
"contract_modification_user","Contract modifications - User","model_contract_modification","account.group_account_invoice",1,1,1,1
"contract_modification_portal","Contract modifications - Portal","model_contract_modification","base.group_portal",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
9 contract_line_portal Recurring portal model_contract_line base.group_portal 1 0 0 0
10 contract_template_line_manager Recurring manager model_contract_template_line account.group_account_manager 1 1 1 1
11 contract_template_line_user Recurring user model_contract_template_line account.group_account_invoice 1 0 0 0
12 contract_modification_user Contract modifications - User model_contract_modification account.group_account_invoice 1 1 1 1
13 contract_modification_portal Contract modifications - Portal model_contract_modification base.group_portal 1 0 0 0

View File

@@ -0,0 +1,70 @@
/* https://github.com/odoo/odoo/blob/14.0/addons/website/static/src/snippets/s_timeline/000.scss */
.s_timeline {
.s_timeline_line {
position: relative;
&:before {
content: "";
position: absolute;
width: 1px;
top: 0px;
bottom: 0px;
left: 50%;
background-color: gray("800");
}
}
.s_timeline_row {
align-items: center;
.s_timeline_content {
align-items: center;
justify-content: flex-end;
width: 100%;
~ .s_timeline_content {
justify-content: flex-start;
}
}
&.flex-row-reverse {
.s_timeline_content {
flex-direction: row-reverse;
}
}
@include media-breakpoint-up(md) {
&.flex-row-reverse {
.s_timeline_content {
flex-direction: row-reverse;
&:not(:last-child) {
margin-left: 10%;
}
}
}
&:not(.flex-row-reverse) {
.s_timeline_content:last-child {
margin-left: 10%;
}
}
}
}
.s_timeline_date {
@include media-breakpoint-up(md) {
position: absolute;
left: 0%;
right: 0%;
}
@include media-breakpoint-down(sm) {
position: relative;
margin: 20px 0px;
}
span:not(.fa) {
display: inline-block;
padding: 5px;
}
.fa {
margin: 0 $grid-gutter-width/2;
}
text-align: center;
}
.s_timeline_icon {
flex: 0 0 auto;
margin: $grid-gutter-width/2;
z-index: 1;
}
}

View File

@@ -28,6 +28,7 @@ class TestContractBase(common.SavepointCase):
{ {
"name": "partner test contract", "name": "partner test contract",
"property_product_pricelist": cls.pricelist.id, "property_product_pricelist": cls.pricelist.id,
"email": "demo@demo.com",
} }
) )
cls.product_1 = cls.env.ref("product.product_product_1") cls.product_1 = cls.env.ref("product.product_product_1")
@@ -170,6 +171,29 @@ class TestContract(TestContractBase):
vals.update(overrides) vals.update(overrides)
return self.env["contract.template.line"].create(vals) return self.env["contract.template.line"].create(vals)
def test_add_modifications(self):
self.contract.message_subscribe(
partner_ids=self.contract.partner_id.ids,
subtype_ids=self.env.ref(
"contract.mail_message_subtype_contract_modification"
).ids,
)
# Check initial modification auto-creation
self.assertEqual(len(self.contract.modification_ids), 1)
self.contract.write(
{
"modification_ids": [
(0, 0, {"date": "2020-01-01", "description": "Modification 1"}),
(0, 0, {"date": "2020-02-01", "description": "Modification 2"}),
]
}
)
self.assertGreaterEqual(len(self.contract.message_partner_ids), 1)
mail_messages = self.env["mail.message"].search(
[("model", "=", "contract.contract"), ("res_id", "=", self.contract.id)]
)
self.assertGreaterEqual(len(mail_messages), 2)
def test_check_discount(self): def test_check_discount(self):
with self.assertRaises(ValidationError): with self.assertRaises(ValidationError):
self.acct_line.write({"discount": 120}) self.acct_line.write({"discount": 120})

View File

@@ -16,6 +16,19 @@
/> />
</xpath> </xpath>
</template> </template>
<template
id="assets_frontend"
inherit_id="web.assets_frontend"
name="contract assets"
>
<xpath expr="." position="inside">
<link
rel="stylesheet"
href="/contract/static/src/scss/frontend.scss"
type="text/css"
/>
</xpath>
</template>
<template id="assets_tests" inherit_id="web.assets_tests"> <template id="assets_tests" inherit_id="web.assets_tests">
<xpath expr="." position="inside"> <xpath expr="." position="inside">
<script <script

View File

@@ -406,6 +406,18 @@
</field> </field>
<field name="note" /> <field name="note" />
</page> </page>
<page name="modications" string="Modifications">
<field
name="modification_ids"
attrs="{'readonly': [('is_terminated','=',True)]}"
>
<tree editable="bottom">
<field name="date" />
<field name="description" />
<field name="sent" />
</tree>
</field>
</page>
<page name="info" string="Other Information"> <page name="info" string="Other Information">
<field name="create_invoice_visibility" invisible="1" /> <field name="create_invoice_visibility" invisible="1" />
<group> <group>

View File

@@ -94,7 +94,7 @@
<t t-set="card_header"> <t t-set="card_header">
<h5 class="mb-0"> <h5 class="mb-0">
<span> <span>
Contract Order - <span t-field="contract.name" /> Contract - <span t-field="contract.name" />
</span> </span>
</h5> </h5>
</t> </t>
@@ -259,6 +259,52 @@
</div> </div>
</t> </t>
</t> </t>
<section
t-if="contract.modification_ids"
class="s_timeline pt24 pb48 o_colored_level"
data-snippet="s_timeline"
>
<div class="container s_timeline_line">
<t t-set="last_modification_date" t-value="False" />
<div
class="s_timeline_row d-block d-md-flex flex-row"
t-foreach="contract.modification_ids"
t-as="modification"
>
<div class="s_timeline_date">
<t
t-if="not last_modification_date or last_modification_date!=modification.date"
>
<t
t-set="last_modification_date"
t-value="modification.date"
/>
<span class="bg-white">
<b
class="o_default_snippet_text"
t-esc="last_modification_date"
t-options='{"widget": "date"}'
/>
</span>
</t>
</div>
<div class="s_timeline_content s_timeline_content_left d-flex">
<div
class="s_timeline_card s_card card bg-white w-100"
data-snippet="s_card"
>
<div class="card-body">
<div
class="card-text o_default_snippet_text"
t-field="modification.description"
/>
</div>
</div>
</div>
<div class="s_timeline_content s_timeline_content_right" />
</div>
</div>
</section>
<!-- chatter --> <!-- chatter -->
<div id="contract_communication" class="mt-4"> <div id="contract_communication" class="mt-4">
<h2>Communication</h2> <h2>Communication</h2>