mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
@@ -4,4 +4,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -63,4 +63,42 @@
|
|||||||
]]></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 <%s>' % (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>
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Odoo Server 12.0\n"
|
"Project-Id-Version: Odoo Server 12.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2020-12-24 08:24+0000\n"
|
||||||
|
"PO-Revision-Date: 2020-12-24 08:24+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,14 @@ 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 "\n"
|
msgid "\n"
|
||||||
@@ -72,6 +82,11 @@ 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 "<span attrs=\"{'invisible': [('contract_to_invoice_count', '>', 1)]}\">\n"
|
msgid "<span attrs=\"{'invisible': [('contract_to_invoice_count', '>', 1)]}\">\n"
|
||||||
@@ -143,6 +158,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>"
|
||||||
@@ -404,7 +424,7 @@ msgid "Company"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/models/contract.py:394
|
#: code:addons/contract/models/contract.py:441
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Compose Email"
|
msgid "Compose Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -426,6 +446,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
|
||||||
@@ -470,6 +491,11 @@ msgstr ""
|
|||||||
msgid "Contract Manually Create Invoice Wizard"
|
msgid "Contract Manually Create Invoice Wizard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: contract
|
||||||
|
#: model:ir.model,name:contract.model_contract_modification
|
||||||
|
msgid "Contract Modification"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. 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"
|
||||||
@@ -625,11 +651,22 @@ msgid "Contract lines"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/models/contract.py:550
|
#: code:addons/contract/models/contract.py:597
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Contract manually invoiced: <a href=\"#\" data-oe-model=\"%s\" data-oe-id=\"%s\">Invoice</a>"
|
msgid "Contract manually invoiced: <a href=\"#\" data-oe-model=\"%s\" data-oe-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:147
|
||||||
|
#, 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"
|
||||||
@@ -641,8 +678,6 @@ msgid "Contract: Can Terminate Contracts"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_location__contract_ids
|
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_person__contract_ids
|
|
||||||
#: model:ir.model.fields,field_description:contract.field_res_partner__contract_ids
|
#: model:ir.model.fields,field_description:contract.field_res_partner__contract_ids
|
||||||
#: model:ir.model.fields,field_description:contract.field_res_users__contract_ids
|
#: model:ir.model.fields,field_description:contract.field_res_users__contract_ids
|
||||||
#: model:ir.ui.menu,name:contract.menu_config_contract
|
#: model:ir.ui.menu,name:contract.menu_config_contract
|
||||||
@@ -686,6 +721,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
|
||||||
@@ -699,6 +735,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
|
||||||
@@ -740,7 +777,10 @@ msgstr ""
|
|||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/controllers/main.py:40
|
#: code:addons/contract/controllers/main.py:40
|
||||||
|
#: 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 ""
|
||||||
@@ -806,9 +846,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 ""
|
||||||
|
|
||||||
@@ -840,6 +883,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_tag__display_name
|
#: model:ir.model.fields,field_description:contract.field_contract_tag__display_name
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template__display_name
|
#: model:ir.model.fields,field_description:contract.field_contract_template__display_name
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template_line__display_name
|
#: model:ir.model.fields,field_description:contract.field_contract_template_line__display_name
|
||||||
@@ -904,6 +948,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_tag__id
|
#: model:ir.model.fields,field_description:contract.field_contract_tag__id
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template__id
|
#: model:ir.model.fields,field_description:contract.field_contract_template__id
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template_line__id
|
#: model:ir.model.fields,field_description:contract.field_contract_template_line__id
|
||||||
@@ -1059,6 +1104,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_tag____last_update
|
#: model:ir.model.fields,field_description:contract.field_contract_tag____last_update
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template____last_update
|
#: model:ir.model.fields,field_description:contract.field_contract_template____last_update
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template_line____last_update
|
#: model:ir.model.fields,field_description:contract.field_contract_template_line____last_update
|
||||||
@@ -1072,6 +1118,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
|
||||||
@@ -1085,6 +1132,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
|
||||||
@@ -1141,6 +1189,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
|
||||||
#: selection:contract.abstract.contract.line,auto_renew_rule_type:0
|
#: selection:contract.abstract.contract.line,auto_renew_rule_type:0
|
||||||
#: selection:contract.abstract.contract.line,recurring_rule_type:0
|
#: selection:contract.abstract.contract.line,recurring_rule_type:0
|
||||||
@@ -1312,7 +1366,7 @@ msgid "Planned"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/models/contract.py:352
|
#: code:addons/contract/models/contract.py:399
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please define a %s journal for the company '%s'."
|
msgid "Please define a %s journal for the company '%s'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1362,8 +1416,6 @@ msgid "Product"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_location__purchase_contract_count
|
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_person__purchase_contract_count
|
|
||||||
#: model:ir.model.fields,field_description:contract.field_res_partner__purchase_contract_count
|
#: model:ir.model.fields,field_description:contract.field_res_partner__purchase_contract_count
|
||||||
#: model:ir.model.fields,field_description:contract.field_res_users__purchase_contract_count
|
#: model:ir.model.fields,field_description:contract.field_res_users__purchase_contract_count
|
||||||
#: model_terms:ir.ui.view,arch_db:contract.view_partner_form
|
#: model_terms:ir.ui.view,arch_db:contract.view_partner_form
|
||||||
@@ -1457,8 +1509,6 @@ msgid "Responsible User"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_location__sale_contract_count
|
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_person__sale_contract_count
|
|
||||||
#: 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
|
||||||
#: model:ir.model.fields,field_description:contract.field_res_users__sale_contract_count
|
#: model:ir.model.fields,field_description:contract.field_res_users__sale_contract_count
|
||||||
#: model_terms:ir.ui.view,arch_db:contract.view_partner_form
|
#: model_terms:ir.ui.view,arch_db:contract.view_partner_form
|
||||||
@@ -1491,6 +1541,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
|
||||||
@@ -1645,7 +1700,7 @@ msgid "Technical field for UX purpose."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/models/contract.py:585
|
#: code:addons/contract/models/contract.py:632
|
||||||
#: 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.contract_contract_terminate_form_view
|
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_terminate_form_view
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -1849,7 +1904,7 @@ msgid "Year(s)"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/models/contract.py:599
|
#: code:addons/contract/models/contract.py:646
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You are not allowed to terminate contracts."
|
msgid "You are not allowed to terminate contracts."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Odoo Server 12.0\n"
|
"Project-Id-Version: Odoo Server 12.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-12-09 15:59+0000\n"
|
"POT-Creation-Date: 2020-12-24 08:24+0000\n"
|
||||||
"PO-Revision-Date: 2020-12-09 17:08+0100\n"
|
"PO-Revision-Date: 2020-12-24 09:28+0100\n"
|
||||||
"Last-Translator: <>\n"
|
"Last-Translator: <>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@@ -17,6 +17,21 @@ msgstr ""
|
|||||||
"Plural-Forms: \n"
|
"Plural-Forms: \n"
|
||||||
"X-Generator: Poedit 2.3\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
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -155,6 +170,15 @@ 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 "${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 ""
|
||||||
@@ -245,6 +269,11 @@ msgstr "<strong>Fecha de siguiente factura</strong>"
|
|||||||
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>"
|
||||||
@@ -507,7 +536,7 @@ msgid "Company"
|
|||||||
msgstr "Compañía"
|
msgstr "Compañía"
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/models/contract.py:394
|
#: code:addons/contract/models/contract.py:441
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Compose Email"
|
msgid "Compose Email"
|
||||||
msgstr "Componer correo electrónico"
|
msgstr "Componer correo electrónico"
|
||||||
@@ -529,6 +558,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
|
||||||
@@ -573,6 +603,11 @@ 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 de 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"
|
||||||
@@ -756,7 +791,7 @@ msgid "Contract lines"
|
|||||||
msgstr "Líneas de contrato"
|
msgstr "Líneas de contrato"
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/models/contract.py:550
|
#: code:addons/contract/models/contract.py:597
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Contract manually invoiced: <a href=\"#\" data-oe-model=\"%s\" data-oe-id="
|
"Contract manually invoiced: <a href=\"#\" data-oe-model=\"%s\" data-oe-id="
|
||||||
@@ -765,6 +800,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:147
|
||||||
|
#, 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"
|
||||||
@@ -776,8 +822,6 @@ msgid "Contract: Can Terminate Contracts"
|
|||||||
msgstr "Contrato: Puede terminar contratos"
|
msgstr "Contrato: Puede terminar contratos"
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_location__contract_ids
|
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_person__contract_ids
|
|
||||||
#: model:ir.model.fields,field_description:contract.field_res_partner__contract_ids
|
#: model:ir.model.fields,field_description:contract.field_res_partner__contract_ids
|
||||||
#: model:ir.model.fields,field_description:contract.field_res_users__contract_ids
|
#: model:ir.model.fields,field_description:contract.field_res_users__contract_ids
|
||||||
#: model:ir.ui.menu,name:contract.menu_config_contract
|
#: model:ir.ui.menu,name:contract.menu_config_contract
|
||||||
@@ -821,6 +865,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
|
||||||
@@ -834,6 +879,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
|
||||||
@@ -875,7 +921,10 @@ msgstr "URL para portal"
|
|||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/controllers/main.py:40
|
#: code:addons/contract/controllers/main.py:40
|
||||||
|
#: 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 "Fecha"
|
msgstr "Fecha"
|
||||||
@@ -946,9 +995,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"
|
||||||
|
|
||||||
@@ -984,6 +1036,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_tag__display_name
|
#: model:ir.model.fields,field_description:contract.field_contract_tag__display_name
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template__display_name
|
#: model:ir.model.fields,field_description:contract.field_contract_template__display_name
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template_line__display_name
|
#: model:ir.model.fields,field_description:contract.field_contract_template_line__display_name
|
||||||
@@ -1048,6 +1101,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_tag__id
|
#: model:ir.model.fields,field_description:contract.field_contract_tag__id
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template__id
|
#: model:ir.model.fields,field_description:contract.field_contract_template__id
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template_line__id
|
#: model:ir.model.fields,field_description:contract.field_contract_template_line__id
|
||||||
@@ -1058,7 +1112,7 @@ msgstr "ID"
|
|||||||
#. module: contract
|
#. module: contract
|
||||||
#: model:ir.model.fields,help:contract.field_contract_contract__message_unread
|
#: model:ir.model.fields,help:contract.field_contract_contract__message_unread
|
||||||
msgid "If checked new messages require your attention."
|
msgid "If checked new messages require your attention."
|
||||||
msgstr "Si está marcado, hay nuevos mensajes que requieren su atención"
|
msgstr "Si está marcado, hay nuevos mensajes que requieren su atenció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
|
||||||
@@ -1219,6 +1273,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_tag____last_update
|
#: model:ir.model.fields,field_description:contract.field_contract_tag____last_update
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template____last_update
|
#: model:ir.model.fields,field_description:contract.field_contract_template____last_update
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_template_line____last_update
|
#: model:ir.model.fields,field_description:contract.field_contract_template_line____last_update
|
||||||
@@ -1232,6 +1287,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
|
||||||
@@ -1245,6 +1301,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
|
||||||
@@ -1302,6 +1359,12 @@ msgstr "Error de Envío de Mensaje"
|
|||||||
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
|
||||||
#: selection:contract.abstract.contract.line,auto_renew_rule_type:0
|
#: selection:contract.abstract.contract.line,auto_renew_rule_type:0
|
||||||
#: selection:contract.abstract.contract.line,recurring_rule_type:0
|
#: selection:contract.abstract.contract.line,recurring_rule_type:0
|
||||||
@@ -1477,7 +1540,7 @@ msgid "Planned"
|
|||||||
msgstr "Planificado"
|
msgstr "Planificado"
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/models/contract.py:352
|
#: code:addons/contract/models/contract.py:399
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please define a %s journal for the company '%s'."
|
msgid "Please define a %s journal for the company '%s'."
|
||||||
msgstr "Por favor defina un diario de %s para la compañía '%s'."
|
msgstr "Por favor defina un diario de %s para la compañía '%s'."
|
||||||
@@ -1527,8 +1590,6 @@ msgid "Product"
|
|||||||
msgstr "Producto"
|
msgstr "Producto"
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_location__purchase_contract_count
|
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_person__purchase_contract_count
|
|
||||||
#: model:ir.model.fields,field_description:contract.field_res_partner__purchase_contract_count
|
#: model:ir.model.fields,field_description:contract.field_res_partner__purchase_contract_count
|
||||||
#: model:ir.model.fields,field_description:contract.field_res_users__purchase_contract_count
|
#: model:ir.model.fields,field_description:contract.field_res_users__purchase_contract_count
|
||||||
#: model_terms:ir.ui.view,arch_db:contract.view_partner_form
|
#: model_terms:ir.ui.view,arch_db:contract.view_partner_form
|
||||||
@@ -1622,8 +1683,6 @@ msgid "Responsible User"
|
|||||||
msgstr "Usuario responsable"
|
msgstr "Usuario responsable"
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_location__sale_contract_count
|
|
||||||
#: model:ir.model.fields,field_description:contract.field_fsm_person__sale_contract_count
|
|
||||||
#: 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
|
||||||
#: model:ir.model.fields,field_description:contract.field_res_users__sale_contract_count
|
#: model:ir.model.fields,field_description:contract.field_res_users__sale_contract_count
|
||||||
#: model_terms:ir.ui.view,arch_db:contract.view_partner_form
|
#: model_terms:ir.ui.view,arch_db:contract.view_partner_form
|
||||||
@@ -1656,6 +1715,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
|
||||||
@@ -1715,7 +1779,7 @@ msgstr ""
|
|||||||
#. module: contract
|
#. module: contract
|
||||||
#: model:ir.model.fields,field_description:contract.field_contract_line__state
|
#: model:ir.model.fields,field_description:contract.field_contract_line__state
|
||||||
msgid "State"
|
msgid "State"
|
||||||
msgstr "Provincia"
|
msgstr "Estado"
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: model:ir.model.fields,help:contract.field_contract_contract__activity_state
|
#: model:ir.model.fields,help:contract.field_contract_contract__activity_state
|
||||||
@@ -1816,10 +1880,10 @@ msgstr "Etiquetas"
|
|||||||
#: model:ir.model.fields,help:contract.field_contract_line__display_type
|
#: model:ir.model.fields,help:contract.field_contract_line__display_type
|
||||||
#: model:ir.model.fields,help:contract.field_contract_template_line__display_type
|
#: model:ir.model.fields,help:contract.field_contract_template_line__display_type
|
||||||
msgid "Technical field for UX purpose."
|
msgid "Technical field for UX purpose."
|
||||||
msgstr "Campo técnico para propósitos UX"
|
msgstr "Campo técnico para propósitos UX."
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/models/contract.py:585
|
#: code:addons/contract/models/contract.py:632
|
||||||
#: 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.contract_contract_terminate_form_view
|
#: model_terms:ir.ui.view,arch_db:contract.contract_contract_terminate_form_view
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -2028,7 +2092,7 @@ msgid "Year(s)"
|
|||||||
msgstr "Año(s)"
|
msgstr "Año(s)"
|
||||||
|
|
||||||
#. module: contract
|
#. module: contract
|
||||||
#: code:addons/contract/models/contract.py:599
|
#: code:addons/contract/models/contract.py:646
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You are not allowed to terminate contracts."
|
msgid "You are not allowed to terminate contracts."
|
||||||
msgstr "No tiene permitido rescindir contratos."
|
msgstr "No tiene permitido rescindir contratos."
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -6,6 +6,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_invoice
|
from . import account_invoice
|
||||||
from . import account_invoice_line
|
from . import account_invoice_line
|
||||||
from . import res_partner
|
from . import res_partner
|
||||||
|
|||||||
@@ -123,6 +123,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],
|
||||||
|
notif_layout="contract.template_contract_modification",
|
||||||
|
)
|
||||||
|
modification_ids_not_sent.write({'sent': True})
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def _inverse_partner_id(self):
|
def _inverse_partner_id(self):
|
||||||
|
|||||||
47
contract/models/contract_modification.py
Normal file
47
contract/models/contract_modification.py
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# 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()
|
||||||
@@ -99,6 +99,31 @@
|
|||||||
</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>
|
<div>
|
||||||
<div class="row mt-4" id="note">
|
<div class="row mt-4" id="note">
|
||||||
<div><strong>Notes: </strong></div>
|
<div><strong>Notes: </strong></div>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
|
71
contract/static/src/scss/frontend.scss
Normal file
71
contract/static/src/scss/frontend.scss
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
/* 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -25,6 +25,7 @@ class TestContractBase(common.SavepointCase):
|
|||||||
cls.partner = cls.env['res.partner'].create({
|
cls.partner = cls.env['res.partner'].create({
|
||||||
'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')
|
||||||
cls.product_2 = cls.env.ref('product.product_product_2')
|
cls.product_2 = cls.env.ref('product.product_product_2')
|
||||||
@@ -133,6 +134,42 @@ 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), 2)
|
||||||
|
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})
|
||||||
|
|||||||
@@ -7,4 +7,9 @@
|
|||||||
<script type="text/javascript" src="/contract/static/src/js/section_and_note_fields_backend.js"></script>
|
<script type="text/javascript" src="/contract/static/src/js/section_and_note_fields_backend.js"></script>
|
||||||
</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>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@@ -170,6 +170,15 @@
|
|||||||
</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"
|
<field name="create_invoice_visibility"
|
||||||
invisible="1"/>
|
invisible="1"/>
|
||||||
|
|||||||
@@ -168,6 +168,29 @@
|
|||||||
</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>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
<!-- chatter -->
|
<!-- chatter -->
|
||||||
<div id="contract_communication" class="mt-4">
|
<div id="contract_communication" class="mt-4">
|
||||||
<h2>Communication</h2>
|
<h2>Communication</h2>
|
||||||
|
|||||||
Reference in New Issue
Block a user