summaryrefslogtreecommitdiff
path: root/addons/mail
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-01-09 19:59:27 +0100
committerChristophe Simonis <chs@odoo.com>2019-01-09 19:59:27 +0100
commitd7c5bc02cc2b27442f0d4c8aca70266762be2a32 (patch)
tree3a675d15b539a4474be38704405b318bebecdce7 /addons/mail
parent37b518f1749aff3d6ffb2246c32f2aa1e67d9067 (diff)
parent8aa8548d8ab68feb13f3bde51c557db84877e809 (diff)
[MERGE] forward port branch saas-12.1 up to 8aa8548d8ab
Diffstat (limited to 'addons/mail')
-rw-r--r--addons/mail/data/mail_data.xml10
-rw-r--r--addons/mail/i18n/cs.po108
-rw-r--r--addons/mail/i18n/it.po27
-rw-r--r--addons/mail/i18n/ja.po2
-rw-r--r--addons/mail/i18n/mail.pot775
-rw-r--r--addons/mail/i18n/nb.po15
-rw-r--r--addons/mail/i18n/nl.po2
-rw-r--r--addons/mail/i18n/pt_BR.po9
-rw-r--r--addons/mail/models/mail_activity.py2
-rw-r--r--addons/mail/models/mail_channel.py7
-rw-r--r--addons/mail/models/mail_thread.py6
-rw-r--r--addons/mail/models/res_partner.py16
-rw-r--r--addons/mail/static/src/js/attachment_box.js91
-rw-r--r--addons/mail/static/src/js/chatter.js141
-rw-r--r--addons/mail/static/src/js/composers/chatter_composer.js3
-rw-r--r--addons/mail/static/src/js/discuss_mobile.js2
-rw-r--r--addons/mail/static/src/js/models/messages/abstract_message.js8
-rw-r--r--addons/mail/static/src/js/models/threads/document_thread.js8
-rw-r--r--addons/mail/static/src/js/thread_field.js6
-rw-r--r--addons/mail/static/src/js/thread_widget.js13
-rw-r--r--addons/mail/static/src/js/tools/debug_manager.js4
-rw-r--r--addons/mail/static/src/js/tour.js25
-rw-r--r--addons/mail/static/src/js/views/activity/activity_view.js2
-rw-r--r--addons/mail/static/src/scss/attachment_box.scss31
-rw-r--r--addons/mail/static/src/scss/chatter.scss14
-rw-r--r--addons/mail/static/src/scss/composer.scss4
-rw-r--r--addons/mail/static/src/xml/chatter.xml14
-rw-r--r--addons/mail/static/src/xml/composer.xml4
-rw-r--r--addons/mail/static/src/xml/thread.xml2
-rw-r--r--addons/mail/static/tests/chatter_tests.js64
-rw-r--r--addons/mail/static/tests/tools/debug_manager_tests.js4
-rw-r--r--addons/mail/wizard/email_template_preview.py1
-rw-r--r--addons/mail/wizard/mail_compose_message.py8
-rw-r--r--addons/mail/wizard/mail_resend_message.py2
34 files changed, 936 insertions, 494 deletions
diff --git a/addons/mail/data/mail_data.xml b/addons/mail/data/mail_data.xml
index 2d2935fafe9..72246b82747 100644
--- a/addons/mail/data/mail_data.xml
+++ b/addons/mail/data/mail_data.xml
@@ -169,7 +169,7 @@
<td align="center" style="min-width: 590px;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color: white; padding: 0; border-collapse:separate;">
<tr><td valign="middle">
- <span style="font-size: 10px;">Your <t t-esc="'%s' % model_description or 'document'"/></span><br/>
+ <span style="font-size: 10px;">Your <t t-esc="model_description or 'document'"/></span><br/>
<span style="font-size: 20px; font-weight: bold;">
<t t-esc="message.record_name and message.record_name.replace('/','-') or ''"/>
</span>
@@ -233,11 +233,11 @@
<t t-set="is_online" t-value="access_action and access_action['type'] == 'ir.actions.act_url'"/>
<t t-set="access_url" t-value="is_online and record._get_share_url(redirect=True, signup_partner=True) or ''"/>
<t t-set="access_name">
- View <t t-esc="record._description.lower()"/>
+ View <t t-esc="model_description or 'document'"/>
</t>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color: white; padding: 0; border-collapse:separate;">
<tr><td valign="middle">
- <span style="font-size: 10px;">Your <t t-esc="'%s' % model_description or 'document'"/></span><br/>
+ <span style="font-size: 10px;">Your <t t-esc="model_description or 'document'"/></span><br/>
<span style="font-size: 20px; font-weight: bold;">
<t t-esc="message.record_name"/>
</span>
@@ -301,11 +301,11 @@
<template id="message_user_assigned">
<p style="margin: 0px;">
<span>Dear <t t-esc="object.user_id.sudo().name"/>,</span><br />
- <span style="margin-top: 8px;">You have been assigned to the <t t-esc="object._description.lower()"/> <t t-esc="object.display_name"/>.</span>
+ <span style="margin-top: 8px;">You have been assigned to the <t t-esc="model_description or 'document'"/> <t t-esc="object.display_name"/>.</span>
</p>
<p style="margin-top: 24px; margin-bottom: 16px;">
<a t-att-href="'/mail/view?model=%s&amp;res_id=%s' % (object._name, object.id)" style="background-color:#875A7B; padding: 10px; text-decoration: none; color: #fff; border-radius: 5px;">
- View <t t-esc="object._description.lower()"/>
+ View <t t-esc="model_description or 'document'"/>
</a>
</p>
</template>
diff --git a/addons/mail/i18n/cs.po b/addons/mail/i18n/cs.po
index 92a815ef29d..a9cd7a68cbe 100644
--- a/addons/mail/i18n/cs.po
+++ b/addons/mail/i18n/cs.po
@@ -43,7 +43,7 @@ msgstr "%d Zprávy"
#: code:addons/mail/static/src/js/activity.js:89
#, python-format
msgid "%d days overdue"
-msgstr ""
+msgstr "%d dnů po splatnosti"
#. module: mail
#: code:addons/mail/models/mail_template.py:249
@@ -129,7 +129,7 @@ msgstr "0 budoucích"
#: code:addons/mail/static/src/xml/systray.xml:95
#, python-format
msgid "0 Late"
-msgstr ""
+msgstr "0 Pozdě"
#. module: mail
#. openerp-web
@@ -357,14 +357,14 @@ msgstr "Přijmout"
#: code:addons/mail/static/src/xml/discuss.xml:185
#, python-format
msgid "Accept selected messages"
-msgstr ""
+msgstr "Přijmout vybrané zprávy"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/thread.xml:412
#, python-format
msgid "Accept |"
-msgstr ""
+msgstr "Přijmout |"
#. module: mail
#: selection:mail.compose.message,moderation_status:0
@@ -393,7 +393,7 @@ msgstr "Akce k provedení"
#. module: mail
#: model:ir.model,name:mail.model_ir_actions_act_window_view
msgid "Action Window View"
-msgstr ""
+msgstr "Zobrazení okna akcí"
#. module: mail
#: model:ir.model.fields,help:mail.field_mail_message_subtype__default
@@ -446,7 +446,7 @@ msgstr "Činnost"
#. module: mail
#: model:ir.model,name:mail.model_mail_activity_mixin
msgid "Activity Mixin"
-msgstr ""
+msgstr "Aktivita Mixin"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_activity_mixin__activity_state
@@ -470,14 +470,14 @@ msgstr "Typy aktivit"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_ir_actions_server__activity_user_type
msgid "Activity User Type"
-msgstr ""
+msgstr "Typ uživatelské aktivity"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:37
#, python-format
msgid "Activity type"
-msgstr ""
+msgstr "Typ aktivity"
#. module: mail
#. openerp-web
@@ -497,7 +497,7 @@ msgstr "Přidat kanály"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_blacklist_view_form
msgid "Add Email Blacklist"
-msgstr ""
+msgstr "Přidat email na Blacklist"
#. module: mail
#. openerp-web
@@ -521,7 +521,7 @@ msgstr ""
#: model:ir.model.fields,field_description:mail.field_mail_mail__add_sign
#: model:ir.model.fields,field_description:mail.field_mail_message__add_sign
msgid "Add Sign"
-msgstr ""
+msgstr "Přidat podpis"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_email_template_preview__user_signature
@@ -553,19 +553,19 @@ msgstr "Přidejte soukromý kanál"
#. module: mail
#: model_terms:ir.actions.act_window,help:mail.mail_blacklist_action
msgid "Add an email address in the blacklist"
-msgstr ""
+msgstr "Přidat e-mailovou adresu do černé listiny "
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/composer.xml:15
#, python-format
msgid "Add attachment"
-msgstr ""
+msgstr "Přidat přílohu"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_wizard_invite_form
msgid "Add channels to notify..."
-msgstr ""
+msgstr "Přidat kanály k oznámení ..."
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.email_compose_message_wizard_form
@@ -578,7 +578,7 @@ msgstr "Přidat kontakt pro upozornění..."
#: code:addons/mail/static/src/xml/thread.xml:418
#, python-format
msgid "Add this email address to white list of people"
-msgstr ""
+msgstr "Přidat tuto e-mailovou adresu na bílý seznam osob"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__partner_ids
@@ -605,7 +605,7 @@ msgstr "Po"
#: code:addons/mail/static/src/xml/followers.xml:26
#, python-format
msgid "Alarm menu"
-msgstr ""
+msgstr "Nabídka výstrahy"
#. module: mail
#: selection:mail.activity.type,decoration_type:0
@@ -674,12 +674,12 @@ msgstr "Vše"
#: code:addons/mail/static/src/xml/thread.xml:46
#, python-format
msgid "All pages:&nbsp;"
-msgstr ""
+msgstr "Všechny stránky:&nbsp;"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_moderation_view_search
msgid "Allowed Emails"
-msgstr ""
+msgstr "Povolené e-maily"
#. module: mail
#: selection:ir.model.fields,track_visibility:0
@@ -696,14 +696,14 @@ msgstr "Vždy povolit"
#: code:addons/mail/static/src/xml/thread.xml:418
#, python-format
msgid "Always Allow |"
-msgstr ""
+msgstr "Vždy povolit |"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/js/models/mail_failure.js:80
#, python-format
msgid "An error occured when sending an email"
-msgstr ""
+msgstr "Při odesílání e-mailu došlo k chybě"
#. module: mail
#. openerp-web
@@ -784,7 +784,7 @@ msgstr "Příloha"
#: model:ir.model.fields,field_description:mail.field_mail_thread__message_attachment_count
#: model:ir.model.fields,field_description:mail.field_res_partner__message_attachment_count
msgid "Attachment Count"
-msgstr ""
+msgstr "Počet příloh"
#. module: mail
#. openerp-web
@@ -867,12 +867,12 @@ msgstr "Automatické vymazání"
#: model:ir.model.fields,field_description:mail.field_mail_activity__force_next
#: model:ir.model.fields,field_description:mail.field_mail_activity_type__force_next
msgid "Auto Schedule Next Activity"
-msgstr ""
+msgstr "Automatické naplánování další aktivity"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_channel_view_form
msgid "Auto Subscribe Groups"
-msgstr ""
+msgstr "Automatický odběr skupin"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_channel__group_ids
@@ -882,17 +882,17 @@ msgstr "Automatický odběr"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.view_mail_message_subtype_form
msgid "Auto subscription"
-msgstr ""
+msgstr "Automatický odběr"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_activity__automated
msgid "Automated activity"
-msgstr ""
+msgstr "Automatizovaná činnost"
#. module: mail
#: model:ir.model,name:mail.model_ir_autovacuum
msgid "Automatic Vacuum"
-msgstr ""
+msgstr "Automatické vysávání"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_channel__moderation_notify
@@ -912,36 +912,36 @@ msgstr "Avatar"
#: code:addons/mail/static/src/xml/thread.xml:420
#, python-format
msgid "Ban"
-msgstr ""
+msgstr "Ban (zákaz)"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_channel_view_form
msgid "Ban List"
-msgstr ""
+msgstr "Seznam banů (zákazů)"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/thread.xml:420
#, python-format
msgid "Ban this email address"
-msgstr ""
+msgstr "Zakázat tuto e-mailovou adresu"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_moderation_view_search
msgid "Banned Emails"
-msgstr ""
+msgstr "Zakázané e-maily"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/followers.xml:90
#, python-format
msgid "Be careful with channels following internal notifications"
-msgstr ""
+msgstr "Buďte opatrní s kanály sledující interní upozornění"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_notification_paynow
msgid "Best regards,"
-msgstr ""
+msgstr "S pozdravem,"
#. module: mail
#: model:ir.actions.act_window,name:mail.mail_blacklist_action
@@ -954,7 +954,7 @@ msgstr "Černá listina"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_blacklist_view_tree
msgid "Blacklist Date"
-msgstr ""
+msgstr "Datum Blacklistu"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_email_template_preview__body_html
@@ -1009,7 +1009,7 @@ msgstr "Zrušit e-mail"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_resend_cancel_view_form
msgid "Cancel notification in failure"
-msgstr ""
+msgstr "Zrušit oznámení v případě selhání"
#. module: mail
#. openerp-web
@@ -1050,6 +1050,8 @@ msgstr ""
#: model:ir.model.fields,help:mail.field_mail_activity_type__category
msgid "Categories may trigger specific behavior like opening calendar view"
msgstr ""
+"Kategorie mohou vyvolat určité chování, například otevření zobrazení "
+"kalendáře"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_activity__activity_category
@@ -1073,7 +1075,7 @@ msgstr "Změnit"
#: model:ir.model.fields,help:mail.field_mail_activity__activity_decoration
#: model:ir.model.fields,help:mail.field_mail_activity_type__decoration_type
msgid "Change the background color of the related activities of this type."
-msgstr ""
+msgstr "Změnit barvu pozadí souvisejících aktivit tohoto typu."
#. module: mail
#. openerp-web
@@ -1283,7 +1285,7 @@ msgstr "Gratulujeme, vaše schránka je prázdná!"
#. module: mail
#: selection:mail.notification,failure_type:0
msgid "Connection failed (outgoing mail server problem)"
-msgstr ""
+msgstr "Připojení se nezdařilo (problém s odesílajícím poštovním serverem)"
#. module: mail
#: model:ir.model,name:mail.model_res_partner
@@ -1318,7 +1320,7 @@ msgstr ""
#: code:addons/mail/static/src/xml/systray.xml:9
#, python-format
msgid "Conversations"
-msgstr ""
+msgstr "Konverzace"
#. module: mail
#: model:ir.model.fields,help:mail.field_res_partner__message_bounce
@@ -1335,7 +1337,7 @@ msgstr ""
#. module: mail
#: selection:ir.actions.server,state:0
msgid "Create Next Activity"
-msgstr ""
+msgstr "Vytvořtit další aktivitu"
#. module: mail
#: code:addons/mail/models/mail_thread.py:400
@@ -1433,7 +1435,7 @@ msgstr ""
#. module: mail
#: model:ir.model.fields,help:mail.field_mail_channel__is_moderator
msgid "Current user is a moderator of the channel"
-msgstr ""
+msgstr "Současný uživatel je moderátorem kanálu"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__date
@@ -1482,7 +1484,7 @@ msgstr "Výchozí"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_activity_type__default_next_type_id
msgid "Default Next Activity"
-msgstr ""
+msgstr "Výchozí další aktivita"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_email_template_preview__null_value
@@ -1515,7 +1517,7 @@ msgstr ""
#. module: mail
#: model_terms:ir.actions.act_window,help:mail.mail_shortcode_action
msgid "Define a new chat shortcode"
-msgstr ""
+msgstr "Definovat nový zkrácený kód chatu"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_activity_type__delay_from
@@ -1543,7 +1545,7 @@ msgstr "Smazat emaily"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__auto_delete_message
msgid "Delete Message Copy"
-msgstr ""
+msgstr "Odstranit kopii zprávy"
#. module: mail
#: model:ir.model.fields,help:mail.field_mail_compose_message__auto_delete
@@ -1603,7 +1605,7 @@ msgstr ""
#. module: mail
#: model:ir.actions.act_window,name:mail.mail_resend_cancel_action
msgid "Discard mail delivery failures"
-msgstr ""
+msgstr "Zrušit selhání doručení pošty"
#. module: mail
#. openerp-web
@@ -1840,7 +1842,7 @@ msgstr ""
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_blacklist_view_tree
msgid "Email Blacklist"
-msgstr ""
+msgstr "Email Blacklist"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.email_template_form
@@ -1885,7 +1887,7 @@ msgstr "Emailové vlákno"
#. module: mail
#: sql_constraint:mail.blacklist:0
msgid "Email address already exists!"
-msgstr ""
+msgstr "Emailová adresa již existuje!"
#. module: mail
#: model:ir.model.fields,help:mail.field_res_users__alias_id
@@ -1904,16 +1906,18 @@ msgid ""
"Email address of the sender. This field is set when no matching partner is "
"found and replaces the author_id field in the chatter."
msgstr ""
+"E-mailová adresa odesílatele. Toto pole je nastaveno, pokud nebyl nalezen "
+"žádný odpovídající partner a nahrazuje pole autor_id v chatu."
#. module: mail
#: selection:mail.notification,failure_type:0
msgid "Email address rejected by destination"
-msgstr ""
+msgstr "E-mailová adresa byla zamítnuta podle cíle"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.email_compose_message_wizard_form
msgid "Email address to redirect replies..."
-msgstr ""
+msgstr "E-mailová adresa pro přesměrování odpovědí ..."
#. module: mail
#: model_terms:ir.actions.act_window,help:mail.mail_blacklist_action
@@ -1921,6 +1925,8 @@ msgid ""
"Email addresses that are blacklisted means that the recipient won't receive "
"any mass mailing anymore."
msgstr ""
+"E-mailové adresy, které jsou na černé listině, znamenají, že příjemce již "
+"nebude přijímat žádné hromadné poštovní zásilky."
#. module: mail
#: model:ir.model,name:mail.model_mail_compose_message
@@ -1955,7 +1961,7 @@ msgstr ""
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_resend_cancel_view_form
msgid "Envelope Example"
-msgstr ""
+msgstr "Příklad obálky"
#. module: mail
#. openerp-web
@@ -1978,6 +1984,8 @@ msgid ""
"Error without exception. Probably due do sending an email without computed "
"recipients."
msgstr ""
+"Chyba bez výjimky. Pravděpodobně kvůli odeslání e-mailu bez vypočtených "
+"příjemců."
#. module: mail
#: sql_constraint:mail.followers:0
@@ -3492,7 +3500,7 @@ msgstr ""
#: code:addons/mail/static/src/xml/discuss.xml:181
#, python-format
msgid "New Message"
-msgstr ""
+msgstr "Nová zpráva"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_tracking_value__new_value_char
@@ -4645,7 +4653,7 @@ msgstr ""
#. module: mail
#: selection:mail.channel,public:0
msgid "Selected group of users"
-msgstr ""
+msgstr "Vybraná skupina uživatelů"
#. module: mail
#. openerp-web
@@ -5627,7 +5635,7 @@ msgstr ""
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_channel_view_form
msgid "Who can follow the group's activities?"
-msgstr ""
+msgstr "Kdo může sledovat aktivity skupiny?"
#. module: mail
#. openerp-web
diff --git a/addons/mail/i18n/it.po b/addons/mail/i18n/it.po
index 65bc64c0722..28ac325cb7f 100644
--- a/addons/mail/i18n/it.po
+++ b/addons/mail/i18n/it.po
@@ -3,7 +3,6 @@
# * mail
#
# Translators:
-# p_amoruso <p.amoruso@elvenstudio.it>, 2018
# Marius Marolla <mariusmarolla@entersys.it>, 2018
# Leonardo Donelli <learts92@gmail.com>, 2018
# Sebastiano Pistore <SebastianoPistore.info@protonmail.ch>, 2018
@@ -12,7 +11,6 @@
# Cesare Cugnasco <cesare.cugnasco@gmail.com>, 2018
# Christian <chris@effeci.info>, 2018
# Fabio Genovese <ing.fabiogenovese@gmail.com>, 2018
-# Sergio Zanchetta <primes2h@gmail.com>, 2018
# Lorenzo Battistini <lorenzo.battistini@agilebg.com>, 2018
# Giacomo Grasso <giacomo.grasso.82@gmail.com>, 2018
# Giovanni Perteghella <giovanni@perteghella.org>, 2018
@@ -27,6 +25,7 @@
# Léonie Bouchat <lbo@odoo.com>, 2018
# Simone Bernini <simone@aperturelabs.it>, 2018
# efraimbiffi <eab@odoo.com>, 2018
+# Sergio Zanchetta <primes2h@gmail.com>, 2018
#
msgid ""
msgstr ""
@@ -34,7 +33,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-08 06:49+0000\n"
"PO-Revision-Date: 2018-08-24 09:20+0000\n"
-"Last-Translator: efraimbiffi <eab@odoo.com>, 2018\n"
+"Last-Translator: Sergio Zanchetta <primes2h@gmail.com>, 2018\n"
"Language-Team: Italian (https://www.transifex.com/odoo/teams/41243/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -468,7 +467,7 @@ msgstr "Azione Da Fare"
#. module: mail
#: model:ir.model,name:mail.model_ir_actions_act_window_view
msgid "Action Window View"
-msgstr ""
+msgstr "Vista finestra azione"
#. module: mail
#: model:ir.model.fields,help:mail.field_mail_message_subtype__default
@@ -567,7 +566,7 @@ msgstr "Aggiungi"
#: model:ir.model.fields,field_description:mail.field_ir_actions_server__channel_ids
#, python-format
msgid "Add Channels"
-msgstr "Aggiungi Canali"
+msgstr "Canali da aggiungere"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_blacklist_view_form
@@ -1414,7 +1413,7 @@ msgstr "Crea %s"
#. module: mail
#: selection:ir.actions.server,state:0
msgid "Create Next Activity"
-msgstr "Crea un'attività"
+msgstr "Creare attività successiva"
#. module: mail
#: code:addons/mail/models/mail_thread.py:400
@@ -1946,17 +1945,17 @@ msgstr "Email Status"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_ir_actions_server__template_id
msgid "Email Template"
-msgstr "Template Email"
+msgstr "Modello email"
#. module: mail
#: model:ir.model,name:mail.model_email_template_preview
msgid "Email Template Preview"
-msgstr "Anteprima Template email"
+msgstr "Anteprima modello email"
#. module: mail
#: model:ir.model,name:mail.model_mail_template
msgid "Email Templates"
-msgstr "Modelli di Email"
+msgstr "Modelli email"
#. module: mail
#: model:ir.model,name:mail.model_mail_thread
@@ -2384,12 +2383,12 @@ msgstr ""
#. module: mail
#: selection:res.users,notification_type:0
msgid "Handle by Emails"
-msgstr "Gestisci per Email"
+msgstr "Gestire con email"
#. module: mail
#: selection:res.users,notification_type:0
msgid "Handle in Odoo"
-msgstr "Gestisci in Odoo"
+msgstr "Gestire in Odoo"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_resend_message__has_cancel
@@ -3125,7 +3124,7 @@ msgstr ""
#: model:ir.cron,cron_name:mail.ir_cron_mail_scheduler_action
#: model:ir.cron,name:mail.ir_cron_mail_scheduler_action
msgid "Mail: Email Queue Manager"
-msgstr "Mail: gestione mail in coda"
+msgstr "Email: gestore coda email"
#. module: mail
#: model:ir.actions.server,name:mail.ir_cron_mail_notify_channel_moderators_ir_actions_server
@@ -3814,7 +3813,7 @@ msgstr "Notifica"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_res_users__notification_type
msgid "Notification Management"
-msgstr "Gestione Notifiche"
+msgstr "Gestione notifiche"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_channel__moderation_notify_msg
@@ -4821,7 +4820,7 @@ msgstr "Invia di nuovo"
#: selection:ir.actions.server,state:0
#: model:ir.model.fields,field_description:mail.field_mail_wizard_invite__send_mail
msgid "Send Email"
-msgstr "Invia Email"
+msgstr "Inviare email"
#. module: mail
#: code:addons/mail/models/mail_template.py:265
diff --git a/addons/mail/i18n/ja.po b/addons/mail/i18n/ja.po
index aa8196f0512..1ec078ff85d 100644
--- a/addons/mail/i18n/ja.po
+++ b/addons/mail/i18n/ja.po
@@ -4206,7 +4206,7 @@ msgstr "プレビュー:"
#: code:addons/mail/static/src/xml/thread.xml:92
#, python-format
msgid "Previous"
-msgstr ""
+msgstr "前"
#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_activity__previous_activity_type_id
diff --git a/addons/mail/i18n/mail.pot b/addons/mail/i18n/mail.pot
index 80b1399e139..92fb09d0448 100644
--- a/addons/mail/i18n/mail.pot
+++ b/addons/mail/i18n/mail.pot
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server saas~12.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-08 06:49+0000\n"
-"PO-Revision-Date: 2018-10-08 06:49+0000\n"
+"POT-Creation-Date: 2018-12-24 10:58+0000\n"
+"PO-Revision-Date: 2018-12-24 10:58+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -16,12 +16,24 @@ msgstr ""
"Plural-Forms: \n"
#. module: mail
-#: code:addons/mail/models/mail_channel.py:921
+#: code:addons/mail/models/mail_channel.py:975
#, python-format
msgid " This channel is private. People must be invited to join it."
msgstr ""
#. module: mail
+#: code:addons/mail/wizard/invite.py:29
+#, python-format
+msgid "%(user_name)s invited you to follow %(document)s document: %(title)s"
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/wizard/invite.py:31
+#, python-format
+msgid "%(user_name)s invited you to follow a new document."
+msgstr ""
+
+#. module: mail
#. openerp-web
#: code:addons/mail/static/src/js/services/mail_manager.js:945
#, python-format
@@ -36,40 +48,40 @@ msgid "%d days overdue"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_template.py:249
+#: code:addons/mail/models/mail_template.py:248
#, python-format
msgid "%s (copy)"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/models/threads/thread_typing_mixin/thread_typing_mixin.js:133
+#: code:addons/mail/static/src/js/models/threads/mixins/thread_typing_mixin.js:133
#, python-format
msgid "%s and %s are typing..."
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:278
+#: code:addons/mail/models/mail_thread.py:279
#, python-format
msgid "%s created"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/models/threads/thread_typing_mixin/thread_typing_mixin.js:131
+#: code:addons/mail/static/src/js/models/threads/mixins/thread_typing_mixin.js:131
#, python-format
msgid "%s is typing..."
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/models/threads/thread_typing_mixin/thread_typing_mixin.js:137
+#: code:addons/mail/static/src/js/models/threads/mixins/thread_typing_mixin.js:137
#, python-format
msgid "%s, %s and more are typing..."
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_activity.py:341
+#: code:addons/mail/models/mail_activity.py:344
#, python-format
msgid "%s: %s assigned to you"
msgstr ""
@@ -81,14 +93,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:285
+#: code:addons/mail/static/src/xml/discuss.xml:312
#, python-format
msgid "&nbsp;("
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:326
+#: code:addons/mail/static/src/xml/thread.xml:307
#, python-format
msgid "(from"
msgstr ""
@@ -102,7 +114,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:547
+#: code:addons/mail/static/src/xml/thread.xml:597
#, python-format
msgid "-------- Show older messages --------"
msgstr ""
@@ -129,7 +141,7 @@ msgid "0 Today"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_channel.py:926
+#: code:addons/mail/models/mail_channel.py:980
#, python-format
msgid "<br><br>\n"
" Type <b>@username</b> to mention someone, and grab his attention.<br>\n"
@@ -139,20 +151,20 @@ msgid "<br><br>\n"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_channel.py:721
+#: code:addons/mail/models/mail_channel.py:767
#, python-format
msgid "<div class=\"o_mail_notification\">%(author)s invited %(new_partner)s to <a href=\"#\" class=\"o_channel_redirect\" data-oe-id=\"%(channel_id)s\">#%(channel_name)s</a></div>"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_channel.py:828
+#: code:addons/mail/models/mail_channel.py:882
#, python-format
msgid "<div class=\"o_mail_notification\">created <a href=\"#\" class=\"o_channel_redirect\" data-oe-id=\"%s\">#%s</a></div>"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_channel.py:728
-#: code:addons/mail/models/mail_channel.py:802
+#: code:addons/mail/models/mail_channel.py:774
+#: code:addons/mail/models/mail_channel.py:856
#, python-format
msgid "<div class=\"o_mail_notification\">joined <a href=\"#\" class=\"o_channel_redirect\" data-oe-id=\"%s\">#%s</a></div>"
msgstr ""
@@ -164,36 +176,38 @@ msgid "<div class=\"o_mail_notification\">left <a href=\"#\" class=\"o_channel_r
msgstr ""
#. module: mail
-#: code:addons/mail/wizard/invite.py:23
+#. openerp-web
+#: code:addons/mail/static/src/js/tour.js:26
#, python-format
-msgid "<div><p>Hello,</p><p>%s invited you to follow %s document: %s.</p></div>"
+msgid "<p> Create a private channel.</p>"
msgstr ""
#. module: mail
-#: code:addons/mail/wizard/invite.py:26
+#. openerp-web
+#: code:addons/mail/static/src/js/tour.js:51
#, python-format
-msgid "<div><p>Hello,</p><p>%s invited you to follow a new document.</p></div>"
+msgid "<p><b>Chat with coworkers</b> in real-time using direct messages.</p><p><i>You might need to invite users from the Settings app first.</i></p>"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/tour.js:28
+#: code:addons/mail/static/src/js/tour.js:30
#, python-format
-msgid "<p><b>Chat with coworkers</b> in real-time using direct messages.</p><p><i>You might need to invite users from the Settings app first.</i></p>"
+msgid "<p><b>Write a message</b> to the members of the channel here.</p> <p>You can notify someone with <i>'@'</i> or link another channel with <i>'#'</i>. Start your message with <i>'/'</i> to get the list of possible commands.</p>"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/tour.js:15
+#: code:addons/mail/static/src/js/tour.js:13
#, python-format
-msgid "<p><b>Write a message</b> to the members of the channel here.</p> <p>You can notify someone with <i>'@'</i> or link another channel with <i>'#'</i>. Start your message with <i>'/'</i> to get the list of possible commands.</p>"
+msgid "<p>Channels make it easy to organize information across different topics and groups.</p> <p>Try to <b>create your first channel</b> (e.g. sales, marketing, product XYZ, after work party, etc).</p>"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/tour.js:11
+#: code:addons/mail/static/src/js/tour.js:17
#, python-format
-msgid "<p>Channels make it easy to organize information across different topics and groups.</p> <p>Try to <b>create your first channel</b> (e.g. sales, marketing, product XYZ, after work party, etc).</p>"
+msgid "<p>Create a channel here.</p>"
msgstr ""
#. module: mail
@@ -240,6 +254,11 @@ msgid "<span class=\"o_stat_text\">Add</span>\n"
msgstr ""
#. module: mail
+#: model_terms:ir.ui.view,arch_db:mail.res_partner_view_form_inherit_mail
+msgid "<span class=\"o_stat_text\">Bounce(s)</span>"
+msgstr ""
+
+#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.email_template_form
msgid "<span class=\"o_stat_text\">Remove</span>\n"
" <span class=\"o_stat_text\">Context Action</span>"
@@ -296,22 +315,22 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:185
-#: code:addons/mail/static/src/xml/thread.xml:412
+#: code:addons/mail/static/src/xml/discuss.xml:210
+#: code:addons/mail/static/src/xml/thread.xml:464
#, python-format
msgid "Accept"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:185
+#: code:addons/mail/static/src/xml/discuss.xml:210
#, python-format
msgid "Accept selected messages"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:412
+#: code:addons/mail/static/src/xml/thread.xml:464
#, python-format
msgid "Accept |"
msgstr ""
@@ -378,7 +397,7 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/js/views/activity/activity_view.js:15
-#: code:addons/mail/static/src/xml/chatter.xml:93
+#: code:addons/mail/static/src/xml/chatter.xml:103
#: code:addons/mail/static/src/xml/systray.xml:74
#: selection:ir.actions.act_window.view,view_mode:0
#: model:ir.model,name:mail.model_mail_activity
@@ -431,13 +450,20 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:111
+#: code:addons/mail/static/src/xml/discuss.xml:131
#, python-format
msgid "Add"
msgstr ""
#. module: mail
#. openerp-web
+#: code:addons/mail/static/src/xml/chatter.xml:30
+#, python-format
+msgid "Add Attachments"
+msgstr ""
+
+#. module: mail
+#. openerp-web
#: code:addons/mail/static/src/xml/followers.xml:63
#: model:ir.model.fields,field_description:mail.field_ir_actions_server__channel_ids
#, python-format
@@ -480,33 +506,26 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:52
-#: code:addons/mail/static/src/xml/discuss.xml:242
+#: code:addons/mail/static/src/xml/discuss.xml:83
+#: code:addons/mail/static/src/xml/discuss.xml:268
#, python-format
msgid "Add a channel"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:383
+#: code:addons/mail/models/mail_thread.py:384
#, python-format
msgid "Add a new %(document)s or send an email to %(email_link)s"
msgstr ""
#. module: mail
-#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:71
-#, python-format
-msgid "Add a private channel"
-msgstr ""
-
-#. module: mail
#: model_terms:ir.actions.act_window,help:mail.mail_blacklist_action
msgid "Add an email address in the blacklist"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/composer.xml:15
+#: code:addons/mail/static/src/xml/composer.xml:21
#, python-format
msgid "Add attachment"
msgstr ""
@@ -524,7 +543,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:418
+#: code:addons/mail/static/src/xml/thread.xml:470
#, python-format
msgid "Add this email address to white list of people"
msgstr ""
@@ -619,13 +638,6 @@ msgid "All"
msgstr ""
#. module: mail
-#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:46
-#, python-format
-msgid "All pages:&nbsp;"
-msgstr ""
-
-#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_moderation_view_search
msgid "Allowed Emails"
msgstr ""
@@ -642,7 +654,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:418
+#: code:addons/mail/static/src/xml/thread.xml:470
#, python-format
msgid "Always Allow |"
msgstr ""
@@ -656,7 +668,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/models/mail_channel.py:925
+#: code:addons/mail/models/mail_channel.py:979
#: code:addons/mail/static/src/js/models/messages/message.js:148
#, python-format
msgid "Anonymous"
@@ -677,7 +689,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/followers.js:357
+#: code:addons/mail/static/src/js/followers.js:359
#, python-format
msgid "Apply"
msgstr ""
@@ -703,8 +715,8 @@ msgid "Assigned to"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_activity.py:258
-#: code:addons/mail/models/mail_activity.py:265
+#: code:addons/mail/models/mail_activity.py:257
+#: code:addons/mail/models/mail_activity.py:264
#, python-format
msgid "Assigned user %s has no access to the document and is not able to handle this activity."
msgstr ""
@@ -834,7 +846,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/composer.xml:6
+#: code:addons/mail/static/src/xml/composer.xml:9
#: code:addons/mail/static/src/xml/followers.xml:44
#, python-format
msgid "Avatar"
@@ -842,7 +854,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:420
+#: code:addons/mail/static/src/xml/thread.xml:472
#, python-format
msgid "Ban"
msgstr ""
@@ -854,7 +866,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:420
+#: code:addons/mail/static/src/xml/thread.xml:472
#, python-format
msgid "Ban this email address"
msgstr ""
@@ -879,7 +891,6 @@ msgstr ""
#. module: mail
#: model:ir.actions.act_window,name:mail.mail_blacklist_action
#: model:ir.model.fields,field_description:mail.field_mail_blacklist_mixin__is_blacklisted
-#: model:ir.model.fields,field_description:mail.field_mail_channel_partner__is_blacklisted
#: model:ir.model.fields,field_description:mail.field_res_partner__is_blacklisted
msgid "Blacklist"
msgstr ""
@@ -904,7 +915,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:398
+#: code:addons/mail/static/src/xml/thread.xml:437
#: selection:mail.notification,email_status:0
#, python-format
msgid "Bounced"
@@ -923,7 +934,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/followers.js:365
+#: code:addons/mail/static/src/js/followers.js:367
#: code:addons/mail/static/src/xml/activity.xml:86
#: model_terms:ir.ui.view,arch_db:mail.email_compose_message_wizard_form
#: model_terms:ir.ui.view,arch_db:mail.mail_resend_cancel_view_form
@@ -946,7 +957,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:401
+#: code:addons/mail/static/src/xml/thread.xml:440
#: selection:mail.notification,email_status:0
#, python-format
msgid "Canceled"
@@ -998,11 +1009,6 @@ msgid "Cc"
msgstr ""
#. module: mail
-#: model_terms:ir.ui.view,arch_db:mail.view_mail_tracking_value_form
-msgid "Change"
-msgstr ""
-
-#. module: mail
#: model:ir.model.fields,help:mail.field_mail_activity__activity_decoration
#: model:ir.model.fields,help:mail.field_mail_activity_type__decoration_type
msgid "Change the background color of the related activities of this type."
@@ -1010,7 +1016,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:443
+#: code:addons/mail/static/src/xml/thread.xml:491
#, python-format
msgid "Changed"
msgstr ""
@@ -1022,7 +1028,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:108
+#: code:addons/mail/static/src/xml/discuss.xml:128
#: model:ir.model.fields,field_description:mail.field_mail_channel_partner__channel_id
#: model:ir.model.fields,field_description:mail.field_mail_moderation__channel_id
#: model_terms:ir.ui.view,arch_db:mail.mail_channel_partner_view_form
@@ -1054,15 +1060,15 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:144
+#: code:addons/mail/static/src/xml/discuss.xml:169
#, python-format
msgid "Channel settings"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:47
-#: code:addons/mail/static/src/xml/discuss.xml:224
+#: code:addons/mail/static/src/xml/discuss.xml:78
+#: code:addons/mail/static/src/xml/discuss.xml:254
#: code:addons/mail/static/src/xml/systray.xml:22
#: code:addons/mail/static/src/xml/systray.xml:39
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__channel_ids
@@ -1084,7 +1090,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:220
+#: code:addons/mail/static/src/xml/discuss.xml:250
#: code:addons/mail/static/src/xml/systray.xml:21
#: code:addons/mail/static/src/xml/systray.xml:35
#, python-format
@@ -1115,14 +1121,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:50
+#: code:addons/mail/static/src/xml/thread.xml:47
#, python-format
msgid "Close"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/abstract_thread_window.xml:67
+#: code:addons/mail/static/src/xml/abstract_thread_window.xml:69
#, python-format
msgid "Close chat window"
msgstr ""
@@ -1197,14 +1203,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:130
+#: code:addons/mail/static/src/xml/thread.xml:127
#, python-format
msgid "Congratulations, your inbox is empty"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:944
+#: code:addons/mail/static/src/js/discuss.js:1059
#, python-format
msgid "Congratulations, your inbox is empty!"
msgstr ""
@@ -1256,9 +1262,16 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:565
+#: code:addons/mail/static/src/js/discuss.js:656
#, python-format
-msgid "Create %s"
+msgid "Create %s (Private)"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/js/discuss.js:649
+#, python-format
+msgid "Create %s (Public)"
msgstr ""
#. module: mail
@@ -1267,13 +1280,13 @@ msgid "Create Next Activity"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:400
+#: code:addons/mail/models/mail_thread.py:401
#, python-format
msgid "Create a new %(document)s"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:392
+#: code:addons/mail/models/mail_thread.py:393
#, python-format
msgid "Create a new %(document)s by sending an email to %(email_link)s"
msgstr ""
@@ -1363,6 +1376,11 @@ msgid "Current user is a moderator of the channel"
msgstr ""
#. module: mail
+#: model:ir.model.fields,field_description:mail.field_mail_channel_partner__custom_channel_name
+msgid "Custom channel name"
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__date
#: model:ir.model.fields,field_description:mail.field_mail_mail__date
#: model:ir.model.fields,field_description:mail.field_mail_message__date
@@ -1372,7 +1390,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:93
+#: code:addons/mail/static/src/xml/chatter.xml:103
#, python-format
msgid "Dates"
msgstr ""
@@ -1455,8 +1473,8 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/composer.xml:87
-#: code:addons/mail/static/src/xml/thread.xml:532
+#: code:addons/mail/static/src/xml/composer.xml:102
+#: code:addons/mail/static/src/xml/thread.xml:582
#, python-format
msgid "Delete"
msgstr ""
@@ -1501,16 +1519,18 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:57
+#: code:addons/mail/static/src/xml/discuss.xml:88
#, python-format
msgid "Direct Messages"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:348
+#: code:addons/mail/static/src/js/discuss.js:135
+#: code:addons/mail/static/src/js/discuss.js:417
#: code:addons/mail/static/src/xml/activity.xml:103
-#: code:addons/mail/static/src/xml/discuss.xml:187
+#: code:addons/mail/static/src/xml/composer.xml:31
+#: code:addons/mail/static/src/xml/discuss.xml:212
#: model_terms:ir.ui.view,arch_db:mail.email_template_preview_form
#: model_terms:ir.ui.view,arch_db:mail.mail_activity_view_form_popup
#, python-format
@@ -1529,14 +1549,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:187
+#: code:addons/mail/static/src/xml/discuss.xml:212
#, python-format
msgid "Discard selected messages"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:416
+#: code:addons/mail/static/src/xml/thread.xml:468
#, python-format
msgid "Discard |"
msgstr ""
@@ -1568,6 +1588,7 @@ msgstr ""
#: model:ir.model.fields,field_description:mail.field_mail_activity__display_name
#: model:ir.model.fields,field_description:mail.field_mail_activity_mixin__display_name
#: model:ir.model.fields,field_description:mail.field_mail_activity_type__display_name
+#: model:ir.model.fields,field_description:mail.field_mail_address_mixin__display_name
#: model:ir.model.fields,field_description:mail.field_mail_alias__display_name
#: model:ir.model.fields,field_description:mail.field_mail_alias_mixin__display_name
#: model:ir.model.fields,field_description:mail.field_mail_blacklist__display_name
@@ -1609,6 +1630,13 @@ msgid "Do not keep a copy of the email in the document communication history (ma
msgstr ""
#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/js/chatter.js:499
+#, python-format
+msgid "Do you really want to delete %s?"
+msgstr ""
+
+#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.view_document_file_kanban
msgid "Document"
msgstr ""
@@ -1653,14 +1681,22 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:43
-#: code:addons/mail/static/src/xml/thread.xml:77
+#: code:addons/mail/static/src/xml/thread.xml:45
+#: code:addons/mail/static/src/xml/thread.xml:74
#, python-format
msgid "Download"
msgstr ""
#. module: mail
#. openerp-web
+#: code:addons/mail/static/src/xml/composer.xml:6
+#: code:addons/mail/static/src/xml/composer.xml:15
+#, python-format
+msgid "Drag Files Here"
+msgstr ""
+
+#. module: mail
+#. openerp-web
#: code:addons/mail/static/src/xml/followers.xml:11
#, python-format
msgid "Dropdown menu - Followers"
@@ -1707,7 +1743,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/followers.js:354
+#: code:addons/mail/static/src/js/followers.js:356
#, python-format
msgid "Edit Subscription of "
msgstr ""
@@ -1807,6 +1843,11 @@ msgid "Email address internally associated with this user. Incoming emails will
msgstr ""
#. module: mail
+#: model:ir.model,name:mail.model_mail_address_mixin
+msgid "Email address mixin"
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,help:mail.field_mail_compose_message__email_from
#: model:ir.model.fields,help:mail.field_mail_mail__email_from
#: model:ir.model.fields,help:mail.field_mail_message__email_from
@@ -1825,7 +1866,7 @@ msgstr ""
#. module: mail
#: model_terms:ir.actions.act_window,help:mail.mail_blacklist_action
-msgid "Email addresses that are blacklisted means that the recipient won't receive any mass mailing anymore."
+msgid "Email addresses that are blacklisted means that the recipient won't receive mass mailing anymore."
msgstr ""
#. module: mail
@@ -1853,7 +1894,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/composer.xml:14
+#: code:addons/mail/static/src/xml/composer.xml:20
#, python-format
msgid "Emojis"
msgstr ""
@@ -1865,7 +1906,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:399
+#: code:addons/mail/static/src/xml/thread.xml:438
#: selection:mail.activity.type,decoration_type:0
#, python-format
msgid "Error"
@@ -1878,7 +1919,13 @@ msgid "Error during communication with the publisher warranty server."
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_mail.py:317
+#: code:addons/mail/models/mail_mail.py:340
+#, python-format
+msgid "Error without exception. Probably due do concurrent access update of notification records. Please see with an administrator."
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/models/mail_mail.py:329
#, python-format
msgid "Error without exception. Probably due do sending an email without computed recipients."
msgstr ""
@@ -1926,13 +1973,6 @@ msgid "Extended Filters..."
msgstr ""
#. module: mail
-#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:45
-#, python-format
-msgid "Extract pages:&nbsp;"
-msgstr ""
-
-#. module: mail
#: model:ir.model.fields,field_description:mail.field_res_config_settings__fail_counter
msgid "Fail Mail"
msgstr ""
@@ -1943,7 +1983,7 @@ msgid "Failed"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_template.py:338
+#: code:addons/mail/models/mail_template.py:337
#, python-format
msgid "Failed to render template %r using values %r"
msgstr ""
@@ -1991,7 +2031,13 @@ msgid "Field"
msgstr ""
#. module: mail
-#: code:addons/mail/models/ir_model.py:30
+#: code:addons/mail/models/ir_model.py:35
+#, python-format
+msgid "Field \"Mail Activity\" cannot be changed to \"False\"."
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/models/ir_model.py:33
#, python-format
msgid "Field \"Mail Thread\" cannot be changed to \"False\"."
msgstr ""
@@ -2007,6 +2053,11 @@ msgid "Field Type"
msgstr ""
#. module: mail
+#: model_terms:ir.ui.view,arch_db:mail.view_mail_tracking_value_form
+msgid "Field details"
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,help:mail.field_mail_message_subtype__relation_field
msgid "Field used to link the related model to the subtype model when using automatic subscription on a related document. The field is used to compute getattr(related_document.relation_field)."
msgstr ""
@@ -2068,7 +2119,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:40
+#: code:addons/mail/static/src/xml/chatter.xml:50
#, python-format
msgid "Followers of"
msgstr ""
@@ -2108,7 +2159,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:73
+#: code:addons/mail/static/src/xml/chatter.xml:83
#, python-format
msgid "Full composer"
msgstr ""
@@ -2231,6 +2282,12 @@ msgid "Hello"
msgstr ""
#. module: mail
+#: code:addons/mail/wizard/invite.py:35
+#, python-format
+msgid "Hello,"
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_resend_cancel__help_message
#: model:ir.model.fields,field_description:mail.field_mail_resend_partner__message
msgid "Help message"
@@ -2251,6 +2308,7 @@ msgstr ""
#: model:ir.model.fields,field_description:mail.field_mail_activity__id
#: model:ir.model.fields,field_description:mail.field_mail_activity_mixin__id
#: model:ir.model.fields,field_description:mail.field_mail_activity_type__id
+#: model:ir.model.fields,field_description:mail.field_mail_address_mixin__id
#: model:ir.model.fields,field_description:mail.field_mail_alias__id
#: model:ir.model.fields,field_description:mail.field_mail_alias_mixin__id
#: model:ir.model.fields,field_description:mail.field_mail_blacklist__id
@@ -2297,8 +2355,8 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:157
-#: code:addons/mail/static/src/xml/discuss.xml:277
+#: code:addons/mail/static/src/xml/discuss.xml:182
+#: code:addons/mail/static/src/xml/discuss.xml:304
#, python-format
msgid "Idle"
msgstr ""
@@ -2351,7 +2409,6 @@ msgstr ""
#. module: mail
#: model:ir.model.fields,help:mail.field_mail_blacklist_mixin__is_blacklisted
-#: model:ir.model.fields,help:mail.field_mail_channel_partner__is_blacklisted
#: model:ir.model.fields,help:mail.field_res_partner__is_blacklisted
msgid "If the email address is on the blacklist, the contact won't receive mass mailing anymore, from any list"
msgstr ""
@@ -2373,7 +2430,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:39
+#: code:addons/mail/static/src/xml/thread.xml:41
#, python-format
msgid "Image"
msgstr ""
@@ -2386,10 +2443,10 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/services/mail_manager.js:1232
-#: code:addons/mail/static/src/xml/discuss.xml:27
-#: code:addons/mail/static/src/xml/discuss.xml:205
-#: code:addons/mail/static/src/xml/discuss.xml:216
+#: code:addons/mail/static/src/js/services/mail_manager.js:1230
+#: code:addons/mail/static/src/xml/discuss.xml:53
+#: code:addons/mail/static/src/xml/discuss.xml:235
+#: code:addons/mail/static/src/xml/discuss.xml:246
#, python-format
msgid "Inbox"
msgstr ""
@@ -2447,64 +2504,64 @@ msgid "Invalid expression, it must be a literal python dictionary definition e.g
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_blacklist.py:126
-#: code:addons/mail/models/mail_blacklist.py:129
+#: code:addons/mail/models/mail_address_mixin.py:37
+#: code:addons/mail/models/mail_address_mixin.py:39
#, python-format
msgid "Invalid primary email field on model %s"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1968
-#: code:addons/mail/models/mail_thread.py:2199
+#: code:addons/mail/models/mail_thread.py:1946
+#: code:addons/mail/models/mail_thread.py:2177
#, python-format
msgid "Invalid record set: should be called as model (without records) or on single-record recordset"
msgstr ""
#. module: mail
-#: code:addons/mail/controllers/main.py:40
+#: code:addons/mail/controllers/main.py:39
#, python-format
msgid "Invalid token in route %s"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/services/mail_notification_manager.js:197
+#: code:addons/mail/static/src/js/services/mail_notification_manager.js:226
#, python-format
msgid "Invitation"
msgstr ""
#. module: mail
-#: code:addons/mail/wizard/invite.py:53
+#: code:addons/mail/wizard/invite.py:65
#, python-format
msgid "Invitation to follow %s: %s"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:45
-#: code:addons/mail/static/src/xml/discuss.xml:178
+#: code:addons/mail/static/src/js/discuss.js:41
+#: code:addons/mail/static/src/xml/discuss.xml:203
#, python-format
msgid "Invite"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/followers.js:171
+#: code:addons/mail/static/src/js/followers.js:173
#, python-format
msgid "Invite Follower"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:30
-#: code:addons/mail/static/src/xml/discuss.xml:178
+#: code:addons/mail/static/src/js/discuss.js:26
+#: code:addons/mail/static/src/xml/discuss.xml:203
#, python-format
msgid "Invite people"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:1188
+#: code:addons/mail/static/src/js/discuss.js:1327
#, python-format
msgid "Invite people to #%s"
msgstr ""
@@ -2590,10 +2647,16 @@ msgid "Language"
msgstr ""
#. module: mail
+#: model:ir.model.fields,field_description:mail.field_mail_channel_partner__fetched_message_id
+msgid "Last Fetched"
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,field_description:mail.field_email_template_preview____last_update
#: model:ir.model.fields,field_description:mail.field_mail_activity____last_update
#: model:ir.model.fields,field_description:mail.field_mail_activity_mixin____last_update
#: model:ir.model.fields,field_description:mail.field_mail_activity_type____last_update
+#: model:ir.model.fields,field_description:mail.field_mail_address_mixin____last_update
#: model:ir.model.fields,field_description:mail.field_mail_alias____last_update
#: model:ir.model.fields,field_description:mail.field_mail_alias_mixin____last_update
#: model:ir.model.fields,field_description:mail.field_mail_blacklist____last_update
@@ -2700,8 +2763,8 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/models/mail_channel.py:935
-#: code:addons/mail/static/src/xml/discuss.xml:147
+#: code:addons/mail/models/mail_channel.py:989
+#: code:addons/mail/static/src/xml/discuss.xml:172
#, python-format
msgid "Leave this channel"
msgstr ""
@@ -2717,7 +2780,7 @@ msgid "List of partners that will be added as follower of the current document."
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_channel.py:946
+#: code:addons/mail/models/mail_channel.py:1000
#, python-format
msgid "List users in the current channel"
msgstr ""
@@ -2744,14 +2807,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:55
+#: code:addons/mail/static/src/xml/thread.xml:52
#, python-format
msgid "Loading"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:544
+#: code:addons/mail/static/src/xml/thread.xml:594
#, python-format
msgid "Loading older messages..."
msgstr ""
@@ -2765,7 +2828,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/composers/chatter_composer.js:34
+#: code:addons/mail/static/src/js/composers/chatter_composer.js:35
#: code:addons/mail/static/src/xml/web_kanban_activity.xml:41
#: model_terms:ir.ui.view,arch_db:mail.email_compose_message_wizard_form
#, python-format
@@ -2774,7 +2837,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:89
+#: code:addons/mail/static/src/xml/chatter.xml:99
#, python-format
msgid "Log a note. Followers will not be notified."
msgstr ""
@@ -2797,14 +2860,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:89
+#: code:addons/mail/static/src/xml/chatter.xml:99
#, python-format
msgid "Log note"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:92
+#: code:addons/mail/static/src/xml/chatter.xml:102
#, python-format
msgid "Log or schedule an activity"
msgstr ""
@@ -2819,6 +2882,12 @@ msgid "Mail"
msgstr ""
#. module: mail
+#: model:ir.model.fields,field_description:mail.field_ir_model__is_mail_activity
+#: model_terms:ir.ui.view,arch_db:mail.model_search_view
+msgid "Mail Activity"
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__mail_activity_type_id
#: model:ir.model.fields,field_description:mail.field_mail_mail__mail_activity_type_id
#: model:ir.model.fields,field_description:mail.field_mail_message__mail_activity_type_id
@@ -2837,7 +2906,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:198
+#: code:addons/mail/static/src/xml/discuss.xml:228
#, python-format
msgid "Mail Body"
msgstr ""
@@ -2848,7 +2917,7 @@ msgid "Mail Channel Form"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_mail.py:385
+#: code:addons/mail/models/mail_mail.py:416
#, python-format
msgid "Mail Delivery Failed"
msgstr ""
@@ -2884,7 +2953,7 @@ msgid "Mail: Notify channel moderators"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:939
+#: code:addons/mail/models/mail_thread.py:938
#, python-format
msgid "Mailbox unavailable - %s"
msgstr ""
@@ -2920,14 +2989,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:179
+#: code:addons/mail/static/src/xml/discuss.xml:204
#, python-format
msgid "Mark all as read"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:179
+#: code:addons/mail/static/src/xml/discuss.xml:204
#, python-format
msgid "Mark all read"
msgstr ""
@@ -2939,16 +3008,16 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:298
-#: code:addons/mail/static/src/xml/thread.xml:346
+#: code:addons/mail/static/src/xml/discuss.xml:327
+#: code:addons/mail/static/src/xml/thread.xml:328
#, python-format
msgid "Mark as Read"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:299
-#: code:addons/mail/static/src/xml/thread.xml:340
+#: code:addons/mail/static/src/xml/thread.xml:279
+#: code:addons/mail/static/src/xml/thread.xml:322
#, python-format
msgid "Mark as Todo"
msgstr ""
@@ -3043,7 +3112,7 @@ msgid "Message Type"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_message.py:1277
+#: code:addons/mail/models/mail_message.py:1297
#, python-format
msgid "Message are pending moderation"
msgstr ""
@@ -3060,7 +3129,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:165
+#: code:addons/mail/static/src/xml/discuss.xml:190
#, python-format
msgid "Message sent in \""
msgstr ""
@@ -3119,7 +3188,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/tour.js:20
+#: code:addons/mail/static/src/js/tour.js:43
#, python-format
msgid "Messages can be <b>starred</b> to remind you to check back later."
msgstr ""
@@ -3131,7 +3200,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/models/threads/mailbox.js:202
+#: code:addons/mail/static/src/js/models/threads/mailbox.js:189
#, python-format
msgid "Missing domain for mailbox with ID '%s'"
msgstr ""
@@ -3167,7 +3236,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/services/mail_manager.js:1244
+#: code:addons/mail/static/src/js/services/mail_manager.js:1242
#: model_terms:ir.ui.view,arch_db:mail.mail_channel_notify_moderation
#, python-format
msgid "Moderate Messages"
@@ -3213,7 +3282,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:39
+#: code:addons/mail/static/src/xml/discuss.xml:65
#, python-format
msgid "Moderation Queue"
msgstr ""
@@ -3310,14 +3379,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:182
+#: code:addons/mail/static/src/xml/discuss.xml:207
#, python-format
msgid "New Channel"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:181
+#: code:addons/mail/static/src/xml/discuss.xml:206
#, python-format
msgid "New Message"
msgstr ""
@@ -3355,7 +3424,7 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/js/services/mail_manager.js:935
-#: code:addons/mail/static/src/js/thread_windows/thread_window.js:112
+#: code:addons/mail/static/src/js/thread_windows/thread_window.js:116
#: code:addons/mail/static/src/xml/systray.xml:15
#: code:addons/mail/static/src/xml/systray.xml:24
#, python-format
@@ -3364,33 +3433,38 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:429
+#: code:addons/mail/static/src/xml/thread.xml:477
#, python-format
msgid "New messages"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:131
+#: code:addons/mail/static/src/xml/thread.xml:128
#, python-format
msgid "New messages appear here."
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:104
+#: code:addons/mail/static/src/js/discuss.js:100
#, python-format
msgid "New people"
msgstr ""
#. module: mail
+#: model_terms:ir.ui.view,arch_db:mail.view_mail_tracking_value_form
+msgid "New values"
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,help:mail.field_mail_channel__moderation_guidelines
msgid "Newcomers on this moderated channel will automatically receive the guidelines."
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:95
+#: code:addons/mail/static/src/xml/thread.xml:92
#, python-format
msgid "Next"
msgstr ""
@@ -3439,6 +3513,14 @@ msgstr ""
#. module: mail
#. openerp-web
+#: code:addons/mail/static/src/xml/activity_view.xml:23
+#, python-format
+msgid "No activity scheduled.\n"
+" Activities can be scheduled from the form view chatter."
+msgstr ""
+
+#. module: mail
+#. openerp-web
#: code:addons/mail/static/src/xml/systray.xml:54
#, python-format
msgid "No conversation yet..."
@@ -3453,14 +3535,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/followers.js:186
+#: code:addons/mail/static/src/js/followers.js:188
#, python-format
msgid "No follower"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:27
+#: code:addons/mail/static/src/xml/thread.xml:28
#, python-format
msgid "No matches found"
msgstr ""
@@ -3474,14 +3556,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:28
+#: code:addons/mail/static/src/xml/thread.xml:29
#, python-format
msgid "No message matches your search. Try to change your search filters."
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:134
+#: code:addons/mail/static/src/xml/thread.xml:131
#, python-format
msgid "No starred message"
msgstr ""
@@ -3494,6 +3576,13 @@ msgid "No threading for answers"
msgstr ""
#. module: mail
+#: model:ir.model.fields,field_description:mail.field_mail_address_mixin__email_normalized
+#: model:ir.model.fields,field_description:mail.field_mail_blacklist_mixin__email_normalized
+#: model:ir.model.fields,field_description:mail.field_res_partner__email_normalized
+msgid "Normalized email address"
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,field_description:mail.field_ir_actions_server__activity_note
#: model:ir.model.fields,field_description:mail.field_mail_activity__note
#: model:mail.message.subtype,name:mail.mt_note
@@ -3502,7 +3591,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:304
+#: code:addons/mail/static/src/xml/thread.xml:285
#, python-format
msgid "Note by"
msgstr ""
@@ -3595,7 +3684,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:158
+#: code:addons/mail/static/src/xml/discuss.xml:183
#, python-format
msgid "Offline"
msgstr ""
@@ -3631,34 +3720,39 @@ msgid "Old Value Text"
msgstr ""
#. module: mail
+#: model_terms:ir.ui.view,arch_db:mail.view_mail_tracking_value_form
+msgid "Old values"
+msgstr ""
+
+#. module: mail
#: selection:ir.model.fields,track_visibility:0
msgid "On Change"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/tour.js:24
+#: code:addons/mail/static/src/js/tour.js:47
#, python-format
msgid "Once a message has been starred, you can come back and review it at any time here."
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/followers.js:188
+#: code:addons/mail/static/src/js/followers.js:190
#, python-format
msgid "One follower"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:156
-#: code:addons/mail/static/src/xml/discuss.xml:276
+#: code:addons/mail/static/src/xml/discuss.xml:181
+#: code:addons/mail/static/src/xml/discuss.xml:303
#, python-format
msgid "Online"
msgstr ""
#. module: mail
-#: code:addons/mail/models/ir_model.py:28
+#: code:addons/mail/models/ir_model.py:31
#, python-format
msgid "Only custom models can be modified."
msgstr ""
@@ -3669,6 +3763,13 @@ msgid "Open"
msgstr ""
#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/thread.xml:455
+#, python-format
+msgid "Open Channel in Discuss to moderate"
+msgstr ""
+
+#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.view_mail_alias_form
msgid "Open Document"
msgstr ""
@@ -3680,21 +3781,21 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:243
+#: code:addons/mail/static/src/xml/discuss.xml:269
#, python-format
msgid "Open chat"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/thread_windows/thread_window.js:190
+#: code:addons/mail/static/src/js/thread_windows/thread_window.js:194
#, python-format
msgid "Open document"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/thread_windows/thread_window.js:192
+#: code:addons/mail/static/src/js/thread_windows/thread_window.js:196
#, python-format
msgid "Open in Discuss"
msgstr ""
@@ -3780,7 +3881,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:40
+#: code:addons/mail/static/src/xml/thread.xml:42
#, python-format
msgid "PDF file"
msgstr ""
@@ -3859,14 +3960,15 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:424
+#: code:addons/mail/static/src/xml/thread.xml:452
+#: code:addons/mail/static/src/xml/thread.xml:455
#, python-format
msgid "Pending moderation"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:139
+#: code:addons/mail/static/src/xml/thread.xml:136
#, python-format
msgid "Pending moderation messages appear here."
msgstr ""
@@ -3926,7 +4028,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/composers/chatter_composer.js:123
+#: code:addons/mail/static/src/js/composers/chatter_composer.js:124
#, python-format
msgid "Please complete customer's informations"
msgstr ""
@@ -3943,14 +4045,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:544
+#: code:addons/mail/static/src/xml/thread.xml:594
#, python-format
msgid "Please wait"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/composers/basic_composer.js:242
+#: code:addons/mail/static/src/js/composers/basic_composer.js:267
#, python-format
msgid "Please, wait while the file is uploading."
msgstr ""
@@ -3975,6 +4077,13 @@ msgid "Policy to post a message on the document using the mailgateway.\n"
msgstr ""
#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/js/tour.js:39
+#, python-format
+msgid "Post your message on the thread"
+msgstr ""
+
+#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_notification_borders
#: model_terms:ir.ui.view,arch_db:mail.mail_notification_light
#: model_terms:ir.ui.view,arch_db:mail.mail_notification_paynow
@@ -4000,7 +4109,7 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:70
-#: code:addons/mail/static/src/xml/discuss.xml:275
+#: code:addons/mail/static/src/xml/discuss.xml:302
#: code:addons/mail/static/src/xml/web_kanban_activity.xml:54
#: model_terms:ir.ui.view,arch_db:mail.email_template_form
#, python-format
@@ -4014,7 +4123,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:92
+#: code:addons/mail/static/src/xml/thread.xml:89
#, python-format
msgid "Previous"
msgstr ""
@@ -4026,7 +4135,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:76
+#: code:addons/mail/static/src/xml/thread.xml:73
#, python-format
msgid "Print"
msgstr ""
@@ -4039,15 +4148,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:67
-#: code:addons/mail/static/src/xml/discuss.xml:228
+#: code:addons/mail/static/src/xml/discuss.xml:160
#, python-format
-msgid "Private Channels"
+msgid "Private channel"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:1348
+#: code:addons/mail/static/src/js/discuss.js:1491
#, python-format
msgid "Public Channels"
msgstr ""
@@ -4070,14 +4178,21 @@ msgid "QWeb"
msgstr ""
#. module: mail
-#: code:addons/mail/wizard/mail_compose_message.py:179
+#. openerp-web
+#: code:addons/mail/static/src/xml/discuss.xml:34
+#, python-format
+msgid "Quick search..."
+msgstr ""
+
+#. module: mail
+#: code:addons/mail/wizard/mail_compose_message.py:178
#, python-format
msgid "Re:"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:400
+#: code:addons/mail/static/src/xml/thread.xml:439
#, python-format
msgid "Ready"
msgstr ""
@@ -4094,6 +4209,20 @@ msgid "Received"
msgstr ""
#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/thread.xml:410
+#, python-format
+msgid "Received by Everyone"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/thread.xml:414
+#, python-format
+msgid "Received by:"
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_channel_partner__partner_id
#: model_terms:ir.ui.view,arch_db:mail.mail_resend_message_view_form
msgid "Recipient"
@@ -4139,21 +4268,21 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:186
+#: code:addons/mail/static/src/xml/discuss.xml:211
#, python-format
msgid "Reject"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:186
+#: code:addons/mail/static/src/xml/discuss.xml:211
#, python-format
msgid "Reject selected messages"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:414
+#: code:addons/mail/static/src/xml/thread.xml:466
#, python-format
msgid "Reject |"
msgstr ""
@@ -4212,14 +4341,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:414
+#: code:addons/mail/static/src/xml/thread.xml:466
#, python-format
msgid "Remove message with explanation"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:416
+#: code:addons/mail/static/src/xml/thread.xml:468
#, python-format
msgid "Remove message without explanation"
msgstr ""
@@ -4238,7 +4367,21 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:343
+#: code:addons/mail/static/src/js/discuss.js:130
+#, python-format
+msgid "Rename"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/js/discuss.js:114
+#, python-format
+msgid "Rename conversation"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/thread.xml:325
#: model_terms:ir.ui.view,arch_db:mail.view_mail_form
#, python-format
msgid "Reply"
@@ -4283,7 +4426,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:69
+#: code:addons/mail/static/src/xml/thread.xml:66
#, python-format
msgid "Reset Zoom"
msgstr ""
@@ -4317,7 +4460,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:73
+#: code:addons/mail/static/src/xml/thread.xml:70
#, python-format
msgid "Rotate"
msgstr ""
@@ -4356,13 +4499,13 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:93
+#: code:addons/mail/static/src/xml/chatter.xml:103
#, python-format
msgid "Schedule activity"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_activity.py:395
+#: code:addons/mail/models/mail_activity.py:398
#, python-format
msgid "Schedule an Activity"
msgstr ""
@@ -4408,14 +4551,28 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:183
+#: code:addons/mail/static/src/xml/thread.xml:396
+#, python-format
+msgid "Seen by Everyone"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/thread.xml:400
+#, python-format
+msgid "Seen by:"
+msgstr ""
+
+#. module: mail
+#. openerp-web
+#: code:addons/mail/static/src/xml/discuss.xml:208
#, python-format
msgid "Select All"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:183
+#: code:addons/mail/static/src/xml/discuss.xml:208
#, python-format
msgid "Select all messages to moderate"
msgstr ""
@@ -4439,9 +4596,9 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/composers/basic_composer.js:49
-#: code:addons/mail/static/src/js/discuss.js:148
-#: code:addons/mail/static/src/xml/composer.xml:16
+#: code:addons/mail/static/src/js/composers/basic_composer.js:51
+#: code:addons/mail/static/src/js/discuss.js:210
+#: code:addons/mail/static/src/xml/composer.xml:22
#: model_terms:ir.ui.view,arch_db:mail.email_compose_message_wizard_form
#, python-format
msgid "Send"
@@ -4460,7 +4617,7 @@ msgid "Send Email"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_template.py:265
+#: code:addons/mail/models/mail_template.py:264
#, python-format
msgid "Send Mail (%s)"
msgstr ""
@@ -4477,14 +4634,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:86
+#: code:addons/mail/static/src/xml/chatter.xml:96
#, python-format
msgid "Send a message"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:145
+#: code:addons/mail/static/src/js/discuss.js:207
#, python-format
msgid "Send explanation to author"
msgstr ""
@@ -4501,7 +4658,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:86
+#: code:addons/mail/static/src/xml/chatter.xml:96
#, python-format
msgid "Send message"
msgstr ""
@@ -4519,21 +4676,21 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/thread_field.js:91
+#: code:addons/mail/static/src/js/thread_field.js:100
#, python-format
msgid "Sending Error"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:141
+#: code:addons/mail/static/src/xml/discuss.xml:162
#, python-format
msgid "Sends messages by email"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:390
+#: code:addons/mail/static/src/xml/thread.xml:436
#: model_terms:ir.ui.view,arch_db:mail.message_notification_email
#: model_terms:ir.ui.view,arch_db:mail.view_mail_search
#: selection:mail.mail,state:0
@@ -4543,11 +4700,6 @@ msgid "Sent"
msgstr ""
#. module: mail
-#: model_terms:ir.ui.view,arch_db:mail.message_notification_email
-msgid "Sent by"
-msgstr ""
-
-#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_notification__is_email
msgid "Sent by Email"
msgstr ""
@@ -4581,7 +4733,7 @@ msgid "Show all records which has next action date is before today"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_channel.py:914
+#: code:addons/mail/models/mail_channel.py:968
#, python-format
msgid "Show an helper message"
msgstr ""
@@ -4627,16 +4779,9 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:47
-#, python-format
-msgid "Split"
-msgstr ""
-
-#. module: mail
-#. openerp-web
-#: code:addons/mail/static/src/js/services/mail_manager.js:1237
-#: code:addons/mail/static/src/xml/discuss.xml:33
-#: code:addons/mail/static/src/xml/discuss.xml:208
+#: code:addons/mail/static/src/js/services/mail_manager.js:1235
+#: code:addons/mail/static/src/xml/discuss.xml:59
+#: code:addons/mail/static/src/xml/discuss.xml:238
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__starred
#: model:ir.model.fields,field_description:mail.field_mail_mail__starred
#: model:ir.model.fields,field_description:mail.field_mail_message__starred
@@ -4680,8 +4825,8 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/composer.xml:8
-#: code:addons/mail/static/src/xml/discuss.xml:197
+#: code:addons/mail/static/src/xml/composer.xml:11
+#: code:addons/mail/static/src/xml/discuss.xml:227
#: model:ir.model.fields,field_description:mail.field_email_template_preview__subject
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__subject
#: model:ir.model.fields,field_description:mail.field_mail_mail__subject
@@ -4705,7 +4850,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:365
+#: code:addons/mail/static/src/xml/thread.xml:343
#, python-format
msgid "Subject:"
msgstr ""
@@ -4830,9 +4975,9 @@ msgid "The owner of records created upon receiving emails on this alias. If this
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_activity.py:243
-#: code:addons/mail/models/mail_message.py:704
-#: code:addons/mail/models/mail_message.py:874
+#: code:addons/mail/models/mail_activity.py:242
+#: code:addons/mail/models/mail_message.py:716
+#: code:addons/mail/models/mail_message.py:886
#, python-format
msgid "The requested operation cannot be completed due to security restrictions. Please contact your system administrator.\n"
"\n"
@@ -4873,6 +5018,14 @@ msgid "This field is case insensitive."
msgstr ""
#. module: mail
+#: model:ir.model.fields,help:mail.field_mail_address_mixin__email_normalized
+#: model:ir.model.fields,help:mail.field_mail_blacklist_mixin__email_normalized
+#: model:ir.model.fields,help:mail.field_res_partner__email_normalized
+msgid "This field is used to search on email address,\n"
+" as the primary email field can contain more than strictly an email address."
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,help:mail.field_mail_channel__public
msgid "This group is visible by non members. Invisible groups can add members through the invite button."
msgstr ""
@@ -4907,7 +5060,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:39
+#: code:addons/mail/static/src/xml/chatter.xml:49
#: code:addons/mail/static/src/xml/thread_window.xml:10
#, python-format
msgid "To:"
@@ -4987,14 +5140,6 @@ msgid "Tree"
msgstr ""
#. module: mail
-#. openerp-web
-#: code:addons/mail/static/src/xml/activity_view.xml:23
-#, python-format
-msgid "Try to add some activity on records, or make sure that\n"
-" there is no active filter in the search bar."
-msgstr ""
-
-#. module: mail
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__message_type
#: model:ir.model.fields,field_description:mail.field_mail_mail__message_type
#: model:ir.model.fields,field_description:mail.field_mail_message__message_type
@@ -5024,19 +5169,19 @@ msgid "UUID"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_mail.py:241
+#: code:addons/mail/models/mail_mail.py:254
#, python-format
msgid "Unable to connect to SMTP Server"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:2207
+#: code:addons/mail/models/mail_thread.py:2185
#, python-format
msgid "Unable to log message, please configure the sender's email address."
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:2172
+#: code:addons/mail/models/mail_thread.py:2150
#, python-format
msgid "Unable to notify message, please configure the sender's email address."
msgstr ""
@@ -5049,7 +5194,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/thread_windows/abstract_thread_window.js:163
+#: code:addons/mail/static/src/js/thread_windows/abstract_thread_window.js:171
#, python-format
msgid "Undefined"
msgstr ""
@@ -5101,7 +5246,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/abstract_thread_window.xml:35
+#: code:addons/mail/static/src/xml/abstract_thread_window.xml:36
#: model_terms:ir.ui.view,arch_db:mail.view_message_search
#, python-format
msgid "Unread messages"
@@ -5109,41 +5254,41 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:184
+#: code:addons/mail/static/src/xml/discuss.xml:209
#, python-format
msgid "Unselect All"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:184
+#: code:addons/mail/static/src/xml/discuss.xml:209
#, python-format
msgid "Unselect all messages to moderate"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:180
+#: code:addons/mail/static/src/xml/discuss.xml:205
#, python-format
msgid "Unstar all"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:180
+#: code:addons/mail/static/src/xml/discuss.xml:205
#, python-format
msgid "Unstar all messages"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:341
+#: code:addons/mail/static/src/js/discuss.js:410
#, python-format
msgid "Unsubscribe"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_template.py:473
+#: code:addons/mail/models/mail_template.py:472
#, python-format
msgid "Unsupported report type %s found."
msgstr ""
@@ -5161,21 +5306,21 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:531
+#: code:addons/mail/static/src/xml/thread.xml:581
#, python-format
msgid "Uploaded"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:523
+#: code:addons/mail/static/src/xml/thread.xml:573
#, python-format
msgid "Uploading"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/composers/basic_composer.js:242
+#: code:addons/mail/static/src/js/composers/basic_composer.js:267
#, python-format
msgid "Uploading error"
msgstr ""
@@ -5222,7 +5367,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:62
+#: code:addons/mail/static/src/xml/discuss.xml:93
#: code:addons/mail/static/src/xml/thread_window.xml:11
#, python-format
msgid "User name"
@@ -5234,7 +5379,7 @@ msgid "Users"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_channel.py:959
+#: code:addons/mail/models/mail_channel.py:1013
#, python-format
msgid "Users in this channel: %s %s and you."
msgstr ""
@@ -5246,13 +5391,13 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:41
+#: code:addons/mail/static/src/xml/thread.xml:43
#, python-format
msgid "Video"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:747
+#: code:addons/mail/models/mail_thread.py:746
#: model:ir.model,name:mail.model_ir_ui_view
#: model_terms:ir.ui.view,arch_db:mail.mail_notification_paynow
#: model_terms:ir.ui.view,arch_db:mail.message_activity_assigned
@@ -5262,7 +5407,7 @@ msgid "View"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:745
+#: code:addons/mail/models/mail_thread.py:744
#, python-format
msgid "View %s"
msgstr ""
@@ -5275,14 +5420,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:99
+#: code:addons/mail/static/src/xml/chatter.xml:109
#, python-format
msgid "View all the attachments of the current record"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:57
+#: code:addons/mail/static/src/xml/thread.xml:54
#, python-format
msgid "Viewer"
msgstr ""
@@ -5296,7 +5441,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/followers.js:243
+#: code:addons/mail/static/src/js/followers.js:245
#, python-format
msgid "Warning! \n"
" If you remove a follower, he won't be notified of any email or discussion on this document.\n"
@@ -5331,6 +5476,11 @@ msgid "Whether the message is an internal note (comment mode only)"
msgstr ""
#. module: mail
+#: model:ir.model.fields,help:mail.field_ir_model__is_mail_activity
+msgid "Whether this model supports activities."
+msgstr ""
+
+#. module: mail
#: model:ir.model.fields,help:mail.field_ir_model__is_mail_thread
msgid "Whether this model supports messages and notifications."
msgstr ""
@@ -5349,7 +5499,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/composer.xml:12
+#: code:addons/mail/static/src/xml/composer.xml:18
#, python-format
msgid "Write something..."
msgstr ""
@@ -5364,34 +5514,34 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:101
+#: code:addons/mail/static/src/js/discuss.js:97
#, python-format
msgid "You added <b>%s</b> to the conversation."
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_channel.py:956
+#: code:addons/mail/models/mail_channel.py:1010
#, python-format
msgid "You are alone in this channel."
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:367
+#: code:addons/mail/static/src/js/discuss.js:436
#, python-format
msgid "You are going to ban: %s. Do you confirm the action?"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:390
+#: code:addons/mail/static/src/js/discuss.js:459
#, python-format
msgid "You are going to discard %s messages. Do you confirm the action?"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:394
+#: code:addons/mail/static/src/js/discuss.js:463
#, python-format
msgid "You are going to discard 1 message. Do you confirm the action?"
msgstr ""
@@ -5402,27 +5552,27 @@ msgid "You are going to send the guidelines to all the subscribers. Do you confi
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_channel.py:925
+#: code:addons/mail/models/mail_channel.py:979
#, python-format
msgid "You are in a private conversation with <b>@%s</b>."
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_channel.py:919
+#: code:addons/mail/models/mail_channel.py:973
#, python-format
msgid "You are in channel <b>#%s</b>."
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/discuss.js:338
+#: code:addons/mail/static/src/js/discuss.js:407
#, python-format
msgid "You are the administrator of this channel. Are you sure you want to unsubscribe?"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:135
+#: code:addons/mail/static/src/xml/thread.xml:132
#, python-format
msgid "You can mark any message as 'starred', and it shows up in this mailbox."
msgstr ""
@@ -5441,13 +5591,19 @@ msgid "You cannot delete those groups, as the Whole Company group is required by
msgstr ""
#. module: mail
+#: code:addons/mail/models/mail_thread.py:2351
+#, python-format
+msgid "You have been assigned to %s"
+msgstr ""
+
+#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.message_user_assigned
msgid "You have been assigned to the"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/services/mail_notification_manager.js:198
+#: code:addons/mail/static/src/js/services/mail_notification_manager.js:227
#, python-format
msgid "You have been invited to: "
msgstr ""
@@ -5459,7 +5615,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:138
+#: code:addons/mail/static/src/xml/thread.xml:135
#, python-format
msgid "You have no message to moderate"
msgstr ""
@@ -5472,21 +5628,21 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/services/mail_notification_manager.js:444
+#: code:addons/mail/static/src/js/services/mail_notification_manager.js:471
#, python-format
msgid "You unpinned your conversation with <b>%s</b>."
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/services/mail_notification_manager.js:439
+#: code:addons/mail/static/src/js/services/mail_notification_manager.js:466
#, python-format
msgid "You unsubscribed from <b>%s</b>."
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:291
+#: code:addons/mail/static/src/xml/discuss.xml:319
#, python-format
msgid "You:"
msgstr ""
@@ -5499,21 +5655,21 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/thread_field.js:91
+#: code:addons/mail/static/src/js/thread_field.js:100
#, python-format
msgid "Your message has not been sent."
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:424
+#: code:addons/mail/static/src/xml/thread.xml:452
#, python-format
msgid "Your message is pending moderation"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/discuss.xml:198
+#: code:addons/mail/static/src/xml/discuss.xml:228
#, python-format
msgid "Your message was rejected by moderator."
msgstr ""
@@ -5526,14 +5682,14 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:68
+#: code:addons/mail/static/src/xml/thread.xml:65
#, python-format
msgid "Zoom In"
msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:70
+#: code:addons/mail/static/src/xml/thread.xml:67
#, python-format
msgid "Zoom Out"
msgstr ""
@@ -5549,7 +5705,7 @@ msgid "after validation date"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1074
+#: code:addons/mail/models/mail_thread.py:1073
#, python-format
msgid "alias %s: %s"
msgstr ""
@@ -5595,7 +5751,7 @@ msgid "days"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:357
+#: code:addons/mail/models/mail_thread.py:358
#, python-format
msgid "document"
msgstr ""
@@ -5607,13 +5763,6 @@ msgid "done\n"
msgstr ""
#. module: mail
-#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:45
-#, python-format
-msgid "e.g. 1-5, 7, 8-9"
-msgstr ""
-
-#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_activity_view_form_popup
#: model_terms:ir.ui.view,arch_db:mail.view_server_action_form_template
msgid "e.g. Discuss proposal"
@@ -5621,7 +5770,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/js/followers.js:190
+#: code:addons/mail/static/src/js/followers.js:192
#, python-format
msgid "followers"
msgstr ""
@@ -5661,19 +5810,19 @@ msgid "incorrectly configured alias (unknown reference record)"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1051
+#: code:addons/mail/models/mail_thread.py:1050
#, python-format
msgid "model %s does not accept document creation"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1046
+#: code:addons/mail/models/mail_thread.py:1045
#, python-format
msgid "model %s does not accept document update"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1039
+#: code:addons/mail/models/mail_thread.py:1038
#, python-format
msgid "model %s does not accept document update, fall back on document creation"
msgstr ""
@@ -5702,7 +5851,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:323
+#: code:addons/mail/static/src/xml/thread.xml:304
#: model_terms:ir.ui.view,arch_db:mail.message_activity_assigned
#: model_terms:ir.ui.view,arch_db:mail.view_mail_form
#, python-format
@@ -5718,13 +5867,13 @@ msgid "or"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1021
+#: code:addons/mail/models/mail_thread.py:1020
#, python-format
msgid "posting a message without model should be with a null res_id (private message), received %s"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1025
+#: code:addons/mail/models/mail_thread.py:1024
#, python-format
msgid "posting a message without model should be with a parent_id (private message)"
msgstr ""
@@ -5754,19 +5903,19 @@ msgid "record:"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1043
+#: code:addons/mail/models/mail_thread.py:1042
#, python-format
msgid "reply to missing document (%s,%s)"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1036
+#: code:addons/mail/models/mail_thread.py:1035
#, python-format
msgid "reply to missing document (%s,%s), fall back on new document creation"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1021
+#: code:addons/mail/models/mail_thread.py:1020
#, python-format
msgid "resetting thread_id"
msgstr ""
@@ -5795,11 +5944,11 @@ msgid "sales"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1025
-#: code:addons/mail/models/mail_thread.py:1043
-#: code:addons/mail/models/mail_thread.py:1046
-#: code:addons/mail/models/mail_thread.py:1051
-#: code:addons/mail/models/mail_thread.py:1074
+#: code:addons/mail/models/mail_thread.py:1024
+#: code:addons/mail/models/mail_thread.py:1042
+#: code:addons/mail/models/mail_thread.py:1045
+#: code:addons/mail/models/mail_thread.py:1050
+#: code:addons/mail/models/mail_thread.py:1073
#, python-format
msgid "skipping"
msgstr ""
@@ -5811,7 +5960,7 @@ msgstr ""
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/chatter.xml:45
+#: code:addons/mail/static/src/xml/chatter.xml:55
#, python-format
msgid "this document"
msgstr ""
@@ -5822,13 +5971,13 @@ msgid "to close for"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1074
+#: code:addons/mail/models/mail_thread.py:1073
#, python-format
msgid "unknown error"
msgstr ""
#. module: mail
-#: code:addons/mail/models/mail_thread.py:1014
+#: code:addons/mail/models/mail_thread.py:1013
#, python-format
msgid "unknown target model %s"
msgstr ""
diff --git a/addons/mail/i18n/nb.po b/addons/mail/i18n/nb.po
index cd6136b6643..8c037adcd72 100644
--- a/addons/mail/i18n/nb.po
+++ b/addons/mail/i18n/nb.po
@@ -5,6 +5,7 @@
# Translators:
# Martin Trigaux, 2018
# Jorunn D. Newth, 2018
+# Marius Stedjan <marius@stedjan.com>, 2018
#
msgid ""
msgstr ""
@@ -12,7 +13,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-08 06:49+0000\n"
"PO-Revision-Date: 2018-08-24 09:20+0000\n"
-"Last-Translator: Jorunn D. Newth, 2018\n"
+"Last-Translator: Marius Stedjan <marius@stedjan.com>, 2018\n"
"Language-Team: Norwegian Bokmål (https://www.transifex.com/odoo/teams/41243/nb/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1258,7 +1259,7 @@ msgstr "Skrivemodus"
#. module: mail
#: model:ir.model,name:mail.model_res_config_settings
msgid "Config Settings"
-msgstr ""
+msgstr "Konfigurasjonsinnstillinger"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.res_config_settings_view_form
@@ -2817,7 +2818,7 @@ msgstr "Forsinkede aktiviteter"
#: model:ir.model.fields,field_description:mail.field_mail_mail__layout
#: model:ir.model.fields,field_description:mail.field_mail_message__layout
msgid "Layout"
-msgstr ""
+msgstr "Layout"
#. module: mail
#: model_terms:ir.ui.view,arch_db:mail.mail_channel_view_kanban
@@ -4729,7 +4730,8 @@ msgstr "Sender meldinger som epost"
#. module: mail
#. openerp-web
-#: code:addons/mail/static/src/xml/thread.xml:397
+#: code:addons/mail/static/src/xml/thread.xml:390
+#: model_terms:ir.ui.view,arch_db:mail.message_notification_email
#: model_terms:ir.ui.view,arch_db:mail.view_mail_search
#: selection:mail.mail,state:0 selection:mail.notification,email_status:0
#, python-format
@@ -5798,14 +5800,14 @@ msgstr "Malen din må definere email_from"
#: code:addons/mail/static/src/xml/thread.xml:68
#, python-format
msgid "Zoom In"
-msgstr ""
+msgstr "Zoom inn"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/thread.xml:70
#, python-format
msgid "Zoom Out"
-msgstr ""
+msgstr "Zoom ut"
#. module: mail
#: selection:mail.activity.type,delay_from:0
@@ -5836,6 +5838,7 @@ msgstr "styremøter"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:43
+#: model_terms:ir.ui.view,arch_db:mail.message_notification_email
#: model_terms:ir.ui.view,arch_db:mail.view_mail_form
#, python-format
msgid "by"
diff --git a/addons/mail/i18n/nl.po b/addons/mail/i18n/nl.po
index b336900b6c2..07c2f1ebe8c 100644
--- a/addons/mail/i18n/nl.po
+++ b/addons/mail/i18n/nl.po
@@ -4180,7 +4180,7 @@ msgstr "Relatie met aanvullende informatie voor e-mail opnieuw verzenden"
#: model:ir.model.fields,field_description:mail.field_mail_mail__needaction_partner_ids
#: model:ir.model.fields,field_description:mail.field_mail_message__needaction_partner_ids
msgid "Partners with Need Action"
-msgstr "Relaties met Nodige Actie"
+msgstr "Relaties met benodigde actie"
#. module: mail
#: selection:mail.compose.message,moderation_status:0
diff --git a/addons/mail/i18n/pt_BR.po b/addons/mail/i18n/pt_BR.po
index c3cf930f640..201605ddfcd 100644
--- a/addons/mail/i18n/pt_BR.po
+++ b/addons/mail/i18n/pt_BR.po
@@ -22,6 +22,7 @@
# Yannick Belot <yannickbh@gmail.com>, 2018
# Marcel Savegnago <marcel.savegnago@gmail.com>, 2018
# Marcelo Costa <marcelo@comdesk.com.br>, 2018
+# Rafael H L Moretti <rafael.moretti@gmail.com>, 2018
#
msgid ""
msgstr ""
@@ -29,7 +30,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-08 06:49+0000\n"
"PO-Revision-Date: 2018-08-24 09:20+0000\n"
-"Last-Translator: Marcelo Costa <marcelo@comdesk.com.br>, 2018\n"
+"Last-Translator: Rafael H L Moretti <rafael.moretti@gmail.com>, 2018\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/odoo/teams/41243/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -574,7 +575,7 @@ msgstr ""
#: code:addons/mail/static/src/xml/discuss.xml:71
#, python-format
msgid "Add a private channel"
-msgstr ""
+msgstr "Adicionar um canal privado"
#. module: mail
#: model_terms:ir.actions.act_window,help:mail.mail_blacklist_action
@@ -1950,6 +1951,8 @@ msgid ""
"Email addresses that are blacklisted means that the recipient won't receive "
"any mass mailing anymore."
msgstr ""
+"Endereços de e-mail na lista negra significa que o destinatário não irá mais"
+" receber nenhuma correspondência em massa."
#. module: mail
#: model:ir.model,name:mail.model_mail_compose_message
@@ -5573,7 +5576,7 @@ msgstr ""
#: code:addons/mail/static/src/xml/thread_window.xml:11
#, python-format
msgid "User name"
-msgstr ""
+msgstr "Nome de usuário"
#. module: mail
#: model:ir.model,name:mail.model_res_users
diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py
index 6e14d01adba..7304bc64d74 100644
--- a/addons/mail/models/mail_activity.py
+++ b/addons/mail/models/mail_activity.py
@@ -352,7 +352,7 @@ class MailActivity(models.Model):
def action_notify(self):
body_template = self.env.ref('mail.message_activity_assigned')
for activity in self:
- model_description = self.env[activity.res_model]._description.lower()
+ model_description = self.env['ir.model']._get(activity.res_model).display_name
body = body_template.render(
dict(activity=activity, model_description=model_description),
engine='ir.qweb',
diff --git a/addons/mail/models/mail_channel.py b/addons/mail/models/mail_channel.py
index 71e42eee3ff..0e3f525b006 100644
--- a/addons/mail/models/mail_channel.py
+++ b/addons/mail/models/mail_channel.py
@@ -280,6 +280,7 @@ class Channel(models.Model):
channel_partner = self.mapped('channel_last_seen_partner_ids').filtered(lambda cp: cp.partner_id == self.env.user.partner_id)
if not channel_partner:
return self.write({'channel_last_seen_partner_ids': [(0, 0, {'partner_id': self.env.user.partner_id.id})]})
+ return False
@api.multi
def action_unfollow(self):
@@ -852,12 +853,12 @@ class Channel(models.Model):
@api.multi
def channel_join_and_get_info(self):
self.ensure_one()
- if self.channel_type == 'channel' and not self.email_send:
+ added = self.action_follow()
+ if added and self.channel_type == 'channel' and not self.email_send:
notification = _('<div class="o_mail_notification">joined <a href="#" class="o_channel_redirect" data-oe-id="%s">#%s</a></div>') % (self.id, self.name,)
self.message_post(body=notification, message_type="notification", subtype="mail.mt_comment")
- self.action_follow()
- if self.moderation_guidelines:
+ if added and self.moderation_guidelines:
self._send_guidelines(self.env.user.partner_id)
channel_info = self.channel_info('join')[0]
diff --git a/addons/mail/models/mail_thread.py b/addons/mail/models/mail_thread.py
index 69cc17ead4c..8e7ee7a8c14 100644
--- a/addons/mail/models/mail_thread.py
+++ b/addons/mail/models/mail_thread.py
@@ -2344,18 +2344,20 @@ class MailThread(models.AbstractModel):
view = self.env['ir.ui.view'].browse(self.env['ir.model.data'].xmlid_to_res_id(template))
for record in self:
+ model_description = self.env['ir.model']._get(record._name).display_name
values = {
'object': record,
+ 'model_description': model_description,
}
assignation_msg = view.render(values, engine='ir.qweb', minimal_qcontext=True)
assignation_msg = self.env['mail.thread']._replace_local_links(assignation_msg)
record.message_notify(
- subject='You have been assigned to %s' % record.display_name,
+ subject=_('You have been assigned to %s') % record.display_name,
body=assignation_msg,
partner_ids=[(4, pid) for pid in partner_ids],
record_name=record.display_name,
notif_layout='mail.mail_notification_light',
- model_description=record._description.lower()
+ model_description=model_description,
)
@api.multi
diff --git a/addons/mail/models/res_partner.py b/addons/mail/models/res_partner.py
index 32a2f4014bd..7ce819f799d 100644
--- a/addons/mail/models/res_partner.py
+++ b/addons/mail/models/res_partner.py
@@ -52,8 +52,16 @@ class Partner(models.Model):
else:
website_url = False
+ # Retrieve the language in which the template was rendered, in order to render the custom
+ # layout in the same language.
+ lang = self.env.context.get('lang')
+ if {'default_template_id', 'default_model', 'default_res_id'} <= self.env.context.keys():
+ template = self.env['mail.template'].browse(self.env.context['default_template_id'])
+ if template and template.lang:
+ lang = template._render_template(template.lang, self.env.context['default_model'], self.env.context['default_res_id'])
+
if not model_description and message.model:
- model_description = self.env['ir.model']._get(message.model).display_name
+ model_description = self.env['ir.model'].with_context(lang=lang)._get(message.model).display_name
tracking = []
for tracking_value in self.env['mail.tracking.value'].sudo().search([('mail_message_id', '=', message.id)]):
@@ -74,6 +82,7 @@ class Partner(models.Model):
'tracking_values': tracking,
'is_discussion': is_discussion,
'subtype': message.subtype_id,
+ 'lang': lang,
}
@api.model
@@ -95,15 +104,14 @@ class Partner(models.Model):
if not rdata:
return True
+ base_template_ctx = self._notify_prepare_template_context(message, record, model_description=model_description)
template_xmlid = message.layout if message.layout else 'mail.message_notification_email'
try:
- base_template = self.env.ref(template_xmlid, raise_if_not_found=True)
+ base_template = self.env.ref(template_xmlid, raise_if_not_found=True).with_context(lang=base_template_ctx['lang'])
except ValueError:
_logger.warning('QWeb template %s not found when sending notification emails. Sending without layouting.' % (template_xmlid))
base_template = False
- base_template_ctx = self._notify_prepare_template_context(message, record, model_description=model_description)
-
# prepare notification mail values
base_mail_values = {
'mail_message_id': message.id,
diff --git a/addons/mail/static/src/js/attachment_box.js b/addons/mail/static/src/js/attachment_box.js
index b42e8aeca95..f58c64f26e7 100644
--- a/addons/mail/static/src/js/attachment_box.js
+++ b/addons/mail/static/src/js/attachment_box.js
@@ -13,46 +13,43 @@ var AttachmentBox = Widget.extend({
events: {
"click .o_attachment_download": "_onAttachmentDownload",
"click .o_attachment_view": "_onAttachmentView",
+ "click .o_attachment_delete_cross": "_onDeleteAttachment",
+ "click .o_upload_attachments_button": "_onUploadAttachments",
+ "change .o_chatter_attachment_form .o_form_binary_form": "_onAddAttachment",
},
/**
* @override
* @param {string} record.model
* @param {Number} record.res_id
+ * @param {Object[]} attachments
*/
- init: function (parent, record) {
+ init: function (parent, record, attachments) {
this._super.apply(this, arguments);
+ this.fileuploadId = _.uniqueId('oe_fileupload');
+ $(window).on(this.fileuploadId, this._onUploaded.bind(this));
this.currentResID = record.res_id;
this.currentResModel = record.model;
- this.attachmentIDs = {};
+ this.attachmentIDs = attachments;
this.imageList = {};
this.otherList = {};
+
+ _.each(attachments, function (attachment) {
+ // required for compatibility with the chatter templates.
+ attachment.url = '/web/content/' + attachment.id + '?download=true';
+ attachment.filename = attachment.datas_fname || 'unnamed';
+ });
+ var sortedAttachments = _.partition(attachments, function (att) {
+ return att.mimetype && att.mimetype.split('/')[0] === 'image';
+ });
+ this.imageList = sortedAttachments[0];
+ this.otherList = sortedAttachments[1];
},
/**
* @override
*/
- willStart: function () {
- var self = this;
- var domain = [
- ['res_id', '=', this.currentResID],
- ['res_model', '=', this.currentResModel],
- ];
- return $.when(this._super.apply(this, arguments), this._rpc({
- model: 'ir.attachment',
- method: 'search_read',
- domain: domain,
- }).then(function (result) {
- self.attachmentIDs = result;
- _.each(result, function (attachment) {
- attachment.url = '/web/content/' + attachment.id + '?download=true';
- // required for compatibility with the chatter templates.
- attachment.filename = attachment.datas_fname || 'unnamed';
- });
- var sortedAttachments = _.partition(result, function (att) {
- return att.mimetype && att.mimetype.split('/')[0] === 'image';
- });
- self.imageList = sortedAttachments[0];
- self.otherList = sortedAttachments[1];
- }));
+ destroy: function () {
+ $(window).off(this.fileuploadId);
+ this._super.apply(this, arguments);
},
//--------------------------------------------------------------------------
@@ -60,8 +57,8 @@ var AttachmentBox = Widget.extend({
//--------------------------------------------------------------------------
/**
- * @param {Object} record
- */
+ * @param {Object} record
+ */
update: function (record) {
this.currentResID = record.res_id;
this.currentResModel = record.model;
@@ -72,6 +69,19 @@ var AttachmentBox = Widget.extend({
//--------------------------------------------------------------------------
/**
+ * Method triggered when user click on 'add attachment' and select a file
+ *
+ * @private
+ * @param {MouseEvent} ev
+ */
+ _onAddAttachment: function (ev) {
+ var $input = $(ev.currentTarget).find('input.o_input_file');
+ if ($input.val() !== '') {
+ var $binaryForm = this.$('form.o_form_binary_form');
+ $binaryForm.submit();
+ }
+ },
+ /**
* @private
* @param {MouseEvent} ev
* used to prevent the click from opening the document viewer.
@@ -92,6 +102,33 @@ var AttachmentBox = Widget.extend({
attachmentViewer.appendTo($('body'));
}
},
+ /**
+ * Opens File Explorer dialog if all fields are valid and record is saved
+ *
+ * @private
+ * @param {MouseEvent} ev
+ */
+ _onUploadAttachments: function (ev) {
+ this.$('input.o_input_file').click();
+ },
+ /**
+ * @private
+ * @param {MouseEvent} ev
+ */
+ _onDeleteAttachment: function (ev) {
+ ev.stopPropagation();
+ var $target = $(ev.currentTarget);
+ this.trigger_up('delete_attachment', {
+ attachmentId: $target.data('id'),
+ attachmentName: $target.data('name')
+ });
+ },
+ /**
+ * @private
+ */
+ _onUploaded: function() {
+ this.trigger_up('reload_attachment_box');
+ },
});
return AttachmentBox;
diff --git a/addons/mail/static/src/js/chatter.js b/addons/mail/static/src/js/chatter.js
index 000353d1219..da23521f65f 100644
--- a/addons/mail/static/src/js/chatter.js
+++ b/addons/mail/static/src/js/chatter.js
@@ -4,6 +4,7 @@ odoo.define('mail.Chatter', function (require) {
var Activity = require('mail.Activity');
var AttachmentBox = require('mail.AttachmentBox');
var ChatterComposer = require('mail.composer.Chatter');
+var Dialog = require('web.Dialog');
var Followers = require('mail.Followers');
var ThreadField = require('mail.ThreadField');
var mailUtils = require('mail.utils');
@@ -13,25 +14,28 @@ var config = require('web.config');
var core = require('web.core');
var Widget = require('web.Widget');
+var _t = core._t;
var QWeb = core.qweb;
// The purpose of this widget is to display the chatter area below the form view
//
-// It instanciates the optional mail_thread, mail_activity and mail_followers widgets.
+// It instantiates the optional mail_thread, mail_activity and mail_followers widgets.
// It Ensures that those widgets are appended at the right place, and allows them to communicate
// with each other.
-// It synchronizes the rendering of those widgets (as they may be asynchronous), to limitate
+// It synchronizes the rendering of those widgets (as they may be asynchronous), to mitigate
// the flickering when switching between records
var Chatter = Widget.extend({
template: 'mail.Chatter',
custom_events: {
+ delete_attachment: '_onDeleteAttachment',
discard_record_changes: '_onDiscardRecordChanges',
+ reload_attachment_box: '_onReloadAttachmentBox',
reload_mail_fields: '_onReloadMailFields',
},
events: {
'click .o_chatter_button_new_message': '_onOpenComposerMessage',
'click .o_chatter_button_log_note': '_onOpenComposerNote',
- 'click .o_chatter_button_attachment': '_onOpenAttachments',
+ 'click .o_chatter_button_attachment': '_onClickAttachmentButton',
'click .o_chatter_button_schedule_activity': '_onScheduleActivity',
},
supportedFieldTypes: ['one2many'],
@@ -52,15 +56,19 @@ var Chatter = Widget.extend({
this._super.apply(this, arguments);
this._setState(record);
- this._dp = new concurrency.DropPrevious();
+ this.attachments = {};
+ this.fields = {};
+ this._areAttachmentsLoaded = false;
+ this._disableAttachmentBox = !!options.disable_attachment_box;
+ this._dp = new concurrency.DropPrevious();
+ this._isAttachmentBoxOpen = false;
// mention: get the prefetched partners and use them as mention suggestions
// if there is a follower widget, the followers will be added to the
// suggestions as well once fetched
this._mentionPartnerSuggestions = this.call('mail_service', 'getMentionPartnerSuggestions');
this._mentionSuggestions = this._mentionPartnerSuggestions;
- this.fields = {};
if (mailFields.mail_activity) {
this.fields.activity = new Activity(this, mailFields.mail_activity, record, options);
}
@@ -74,16 +82,17 @@ var Chatter = Widget.extend({
this.hasLogButton = options.display_log_button || nodeOptions.display_log_button;
this.postRefresh = nodeOptions.post_refresh || 'never';
}
- this.attachmentBoxOpened = false;
},
/**
* @override
*/
start: function () {
this._$topbar = this.$('.o_chatter_topbar');
- this.$('.o_topbar_right_area').append(QWeb.render('mail.chatter.Attachment.Button', {
- count: this.record.data.message_attachment_count || 0,
- }));
+ if(!this._disableAttachmentBox) {
+ this.$('.o_topbar_right_area').append(QWeb.render('mail.chatter.Attachment.Button', {
+ count: this.record.data.message_attachment_count || 0,
+ }));
+ }
// render and append the buttons
this._$topbar.prepend(QWeb.render('mail.chatter.Buttons', {
newMessageButton: !!this.fields.thread,
@@ -115,6 +124,8 @@ var Chatter = Widget.extend({
if (this.record.res_id !== record.res_id) {
this._closeComposer(true);
this._closeAttachments();
+ this._areAttachmentsLoaded = false;
+ this.attachments = {};
}
// update the state
@@ -155,13 +166,12 @@ var Chatter = Widget.extend({
/**
* @private
- * @param {boolean} force
*/
_closeAttachments: function () {
if (this.fields.attachments) {
this.$('.o_chatter_button_attachment').removeClass('o_active_attach');
this.fields.attachments.destroy();
- this.attachmentBoxOpened = false;
+ this._isAttachmentBoxOpen = false;
}
},
/**
@@ -231,22 +241,46 @@ var Chatter = Widget.extend({
_enableComposer: function () {
this.$(".o_composer_button_send").prop('disabled', false);
},
+ /*
+ * @private
+ * @return {Deferred}
+ */
+ _fetchAttachments: function () {
+ var self = this;
+ var domain = [
+ ['res_id', '=', this.record.res_id],
+ ['res_model', '=', this.record.model],
+ ];
+ return this._rpc({
+ model: 'ir.attachment',
+ method: 'search_read',
+ domain: domain,
+ fields: ['id', 'name', 'datas_fname', 'mimetype'],
+ }).then(function (result) {
+ self._areAttachmentsLoaded = true;
+ self.attachments = result;
+ });
+
+ },
/**
* @private
*/
- _openAttachments: function () {
- var self = this;
- this.fields.attachments = new AttachmentBox(this, this.record);
-
+ _openAttachmentBox: function () {
+ if (this.fields.attachments) {
+ this._closeAttachments();
+ }
+ this.fields.attachments = new AttachmentBox(this, this.record, this.attachments);
var $anchor = this.$('.o_chatter_topbar');
if (this._composer) {
- $anchor = this.$('.o_thread_composer');
+ var $anchor = this.$('.o_thread_composer');
+ } else {
+ var $anchor = this.$('.o_chatter_topbar');
}
- this.fields.attachments.insertAfter($anchor).then(function () {
- self.$el.addClass('o_chatter_composer_active');
- self.$('.o_chatter_button_attachment').addClass('o_active_attach');
- });
- this.attachmentBoxOpened = true;
+ this.fields.attachments.insertAfter($anchor);
+ this.$el.addClass('o_chatter_composer_active');
+ this.$('.o_chatter_button_attachment').addClass('o_active_attach');
+
+ this._isAttachmentBoxOpen = true;
},
/**
* @private
@@ -286,6 +320,7 @@ var Chatter = Widget.extend({
if (self._reloadAfterPost(messageData)) {
self.trigger_up('reload');
} else if (messageData.attachment_ids.length) {
+ self._reloadAttachmentBox();
self.trigger_up('reload', {fieldNames: ['message_attachment_count']});
}
}).fail(function () {
@@ -322,6 +357,16 @@ var Chatter = Widget.extend({
},
/**
* @private
+ */
+ _reloadAttachmentBox: function () {
+ this._areAttachmentsLoaded = false;
+ if (this._isAttachmentBoxOpen) {
+ this._fetchAttachments().then(this._openAttachmentBox.bind(this));
+ }
+ this.trigger_up('reload', { fieldNames: ['message_attachment_count'] });
+ },
+ /**
+ * @private
* @param {Deferred} def
* @returns {Deferred}
*/
@@ -344,7 +389,11 @@ var Chatter = Widget.extend({
self.fields.activity.$el.appendTo(self.$el);
}
if (self.fields.followers) {
- self.fields.followers.$el.insertBefore(self.$('.o_chatter_button_attachment'));
+ if (self._disableAttachmentBox) {
+ self.fields.followers.$el.appendTo(self.$('.o_topbar_right_area'));
+ } else {
+ self.fields.followers.$el.insertBefore(self.$('.o_chatter_button_attachment'));
+ }
}
if (self.fields.thread) {
self.fields.thread.$el.appendTo(self.$el);
@@ -383,8 +432,7 @@ var Chatter = Widget.extend({
*/
_updateAttachmentCounter: function () {
var count = this.record.data.message_attachment_count || 0;
- this.$('.o_chatter_attachment_button_count').html(' ('+ count +')');
- this.$('.o_chatter_button_attachment').toggleClass('o_hidden', !count);
+ this.$('.o_chatter_attachment_button_count').html(count);
},
/**
* @private
@@ -427,12 +475,45 @@ var Chatter = Widget.extend({
/**
* @private
+ * @param {OdooEvent} ev
+ * @param {integer} ev.data.attachmentId
+ * @param {String} ev.data.attachmentName
+ */
+ _onDeleteAttachment: function (ev) {
+ ev.stopPropagation();
+ var self = this;
+ var options = {
+ confirm_callback: function () {
+ self._rpc({
+ model: 'ir.attachment',
+ method: 'unlink',
+ args: [parseInt(ev.data.attachmentId, 10)],
+ })
+ .then(function () {
+ self._reloadAttachmentBox();
+ self.fields.thread.removeAttachments([ev.data.attachmentId]);
+ self.trigger_up('reload');
+ });
+ }
+ };
+ var promptText = _.str.sprintf(_t("Do you really want to delete %s?"), _.escape(ev.data.attachmentName));
+ Dialog.confirm(this, promptText, options);
+ },
+ /**
+ * @private
*/
- _onOpenAttachments: function () {
- if (this.attachmentBoxOpened) {
+ _onClickAttachmentButton: function () {
+ if(this._disableAttachmentBox) {
+ return;
+ }
+ if (this._isAttachmentBoxOpen) {
this._closeAttachments();
} else {
- this._openAttachments();
+ var def;
+ if (!this._areAttachmentsLoaded) {
+ def = this._fetchAttachments();
+ }
+ $.when(def).then(this._openAttachmentBox.bind(this));
}
},
/**
@@ -485,6 +566,12 @@ var Chatter = Widget.extend({
},
/**
* @private
+ */
+ _onReloadAttachmentBox: function () {
+ this._reloadAttachmentBox();
+ },
+ /**
+ * @private
* @param {OdooEvent} event
* @param {string} event.name
* @param {Object} event.data
diff --git a/addons/mail/static/src/js/composers/chatter_composer.js b/addons/mail/static/src/js/composers/chatter_composer.js
index cda91eab205..777467e6eb8 100644
--- a/addons/mail/static/src/js/composers/chatter_composer.js
+++ b/addons/mail/static/src/js/composers/chatter_composer.js
@@ -3,6 +3,7 @@ odoo.define('mail.composer.Chatter', function (require) {
var BasicComposer = require('mail.composer.Basic');
var mailUtils = require('mail.utils');
+var session = require('web.session');
var core = require('web.core');
var viewDialogs = require('web.view_dialogs');
@@ -195,7 +196,7 @@ var ChatterComposer = BasicComposer.extend({
message = _.extend(message, {
subtype: 'mail.mt_comment',
message_type: 'comment',
- context: self.context,
+ context: _.defaults({}, self.context, session.user_context),
});
// Subtype
diff --git a/addons/mail/static/src/js/discuss_mobile.js b/addons/mail/static/src/js/discuss_mobile.js
index 30136fee798..549e05b78fd 100644
--- a/addons/mail/static/src/js/discuss_mobile.js
+++ b/addons/mail/static/src/js/discuss_mobile.js
@@ -16,7 +16,7 @@ if (!config.device.isMobile) {
* Overrides Discuss module in mobile
*/
Discuss.include({
- template: 'mail.discuss_mobile',
+ contentTemplate: 'mail.discuss_mobile',
events: _.extend(Discuss.prototype.events, {
'click .o_mail_mobile_tab': '_onMobileTabClicked',
'click .o_mailbox_inbox_item': '_onMobileInboxButtonClicked',
diff --git a/addons/mail/static/src/js/models/messages/abstract_message.js b/addons/mail/static/src/js/models/messages/abstract_message.js
index f5cf55f0ef1..c1ae22b9708 100644
--- a/addons/mail/static/src/js/models/messages/abstract_message.js
+++ b/addons/mail/static/src/js/models/messages/abstract_message.js
@@ -336,6 +336,14 @@ var AbstractMessage = Class.extend({
return false;
},
/**
+ * @params {integer[]} attachmentIDs
+ */
+ removeAttachments: function (attachmentIDs) {
+ this._attachmentIDs = _.reject(this._attachmentIDs, function (attachment) {
+ return _.contains(attachmentIDs, attachment.id);
+ });
+ },
+ /**
* State whether this message should redirect to the author
* when clicking on the author of this message.
*
diff --git a/addons/mail/static/src/js/models/threads/document_thread.js b/addons/mail/static/src/js/models/threads/document_thread.js
index d902d69765c..6c15b39d25e 100644
--- a/addons/mail/static/src/js/models/threads/document_thread.js
+++ b/addons/mail/static/src/js/models/threads/document_thread.js
@@ -157,6 +157,14 @@ var DocumentThread = Thread.extend({
return true;
},
/**
+ * @param {integer[]} attachmentIDs
+ */
+ removeAttachmentsFromMessages: function (attachmentIDs) {
+ _.each(this.getMessages(), function (message) {
+ message.removeAttachments(attachmentIDs);
+ });
+ },
+ /**
* Set list of message IDs of this document thread
*
* Useful in order to handle message history of the document thread,
diff --git a/addons/mail/static/src/js/thread_field.js b/addons/mail/static/src/js/thread_field.js
index 5c85a2adb37..a3807802ad7 100644
--- a/addons/mail/static/src/js/thread_field.js
+++ b/addons/mail/static/src/js/thread_field.js
@@ -71,6 +71,12 @@ var ThreadField = AbstractField.extend({
//--------------------------------------------------------------------------
/**
+ * @param {integer[]} attachmentIDs
+ */
+ removeAttachments: function (attachmentIDs) {
+ this._documentThread.removeAttachmentsFromMessages(attachmentIDs);
+ },
+ /**
* @override
* @return {boolean}
*/
diff --git a/addons/mail/static/src/js/thread_widget.js b/addons/mail/static/src/js/thread_widget.js
index d812d403007..2e2b7e222c6 100644
--- a/addons/mail/static/src/js/thread_widget.js
+++ b/addons/mail/static/src/js/thread_widget.js
@@ -34,6 +34,7 @@ var ThreadWidget = Widget.extend({
'click .o_thread_show_more': '_onClickShowMore',
'click .o_attachment_download': '_onAttachmentDownload',
'click .o_attachment_view': '_onAttachmentView',
+ 'click .o_attachment_delete_cross': '_onDeleteAttachment',
'click .o_thread_message_needaction': '_onClickMessageNeedaction',
'click .o_thread_message_star': '_onClickMessageStar',
'click .o_thread_message_reply': '_onClickMessageReply',
@@ -411,6 +412,18 @@ var ThreadWidget = Widget.extend({
});
},
/**
+ * @private
+ * @param {MouseEvent} ev
+ */
+ _onDeleteAttachment: function (ev) {
+ ev.stopPropagation();
+ var $target = $(ev.currentTarget);
+ this.trigger_up('delete_attachment', {
+ attachmentId: $target.data('id'),
+ attachmentName: $target.data('name')
+ });
+ },
+ /**
* @private
* @param {Object} options
* @param {integer} [options.channelID]
diff --git a/addons/mail/static/src/js/tools/debug_manager.js b/addons/mail/static/src/js/tools/debug_manager.js
index 4c768e8bb2d..452a062806f 100644
--- a/addons/mail/static/src/js/tools/debug_manager.js
+++ b/addons/mail/static/src/js/tools/debug_manager.js
@@ -23,6 +23,10 @@ DebugManager.include({
views: [[false, 'list'], [false, 'form']],
type: 'ir.actions.act_window',
domain: [['res_id', '=', selectedIDs[0]], ['model', '=', this._controller.modelName]],
+ context: {
+ default_res_model: this._controller.modelName,
+ default_res_id: selectedIDs[0],
+ },
});
},
});
diff --git a/addons/mail/static/src/js/tour.js b/addons/mail/static/src/js/tour.js
index 6b7160f2aa6..c345f2cd8a4 100644
--- a/addons/mail/static/src/js/tour.js
+++ b/addons/mail/static/src/js/tour.js
@@ -7,33 +7,24 @@ var tour = require('web_tour.tour');
var _t = core._t;
tour.register('mail_tour', {
- url: "/web",
-}, [tour.STEPS.SHOW_APPS_MENU_ITEM, {
- trigger: '.o_app[data-menu-xmlid="mail.menu_root_discuss"]',
- content: _t('Want to <b>get in touch</b> with your contacts? <i>Discuss with them here.</i>'),
- position: 'right',
- edition: 'community',
-}, {
- trigger: '.o_app[data-menu-xmlid="mail.menu_root_discuss"]',
- content: _t('Want to <b>get in touch</b> with your contacts? <i>Discuss with them here.</i>'),
- position: 'bottom',
- edition: 'enterprise',
-}, {
- trigger: '.o_mail_discuss .o_mail_discuss_sidebar .o_add[data-type="public"]',
+ url: "/web#action=mail.discuss",
+}, [{
+ trigger: '.o_mail_discuss .o_mail_discuss_sidebar .o_add[data-type="multi_user_channel"]',
content: _t("<p>Channels make it easy to organize information across different topics and groups.</p> <p>Try to <b>create your first channel</b> (e.g. sales, marketing, product XYZ, after work party, etc).</p>"),
position: 'bottom',
}, {
- trigger: '.o_mail_discuss .o_mail_discuss_sidebar .o_mail_add_thread[data-type="public"]',
+ trigger: '.o_mail_discuss .o_mail_discuss_sidebar .o_mail_add_thread[data-type="multi_user_channel"]',
content: _t("<p>Create a channel here.</p>"),
position: 'right',
+ auto: true,
run: function (actions) {
var t = new Date().getTime();
actions.text("SomeChannel_" + t, this.$anchor.find("input"));
},
}, {
- trigger: ".ui-menu-item > a",
- auto: true,
- in_modal: false,
+ trigger: ".ui-autocomplete .ui-menu-item > a:contains(Private)",
+ content: _t("<p> Create a private channel.</p>"),
+ position: 'right',
}, {
trigger: '.o_mail_discuss .o_composer_text_field',
content: _t("<p><b>Write a message</b> to the members of the channel here.</p> <p>You can notify someone with <i>'@'</i> or link another channel with <i>'#'</i>. Start your message with <i>'/'</i> to get the list of possible commands.</p>"),
diff --git a/addons/mail/static/src/js/views/activity/activity_view.js b/addons/mail/static/src/js/views/activity/activity_view.js
index b2c707f9d2d..9f0cec6b761 100644
--- a/addons/mail/static/src/js/views/activity/activity_view.js
+++ b/addons/mail/static/src/js/views/activity/activity_view.js
@@ -13,7 +13,7 @@ var _lt = core._lt;
var ActivityView = AbstractView.extend({
accesskey: "a",
display_name: _lt('Activity'),
- icon: 'fa-th',
+ icon: 'fa-clock-o',
config: _.extend({}, AbstractView.prototype.config, {
Controller: ActivityController,
Model: ActivityModel,
diff --git a/addons/mail/static/src/scss/attachment_box.scss b/addons/mail/static/src/scss/attachment_box.scss
index ab412bf52fe..a9aa6aec260 100644
--- a/addons/mail/static/src/scss/attachment_box.scss
+++ b/addons/mail/static/src/scss/attachment_box.scss
@@ -1,25 +1,36 @@
.oe_chatter {
+
.btn.o_active_attach {
- color: #875A7B;
height: 300px;
}
- .o_chatter_attachment {
- padding: 3px;
+ .o_mail_chatter_attachments {
+ min-height: 50px;
+
+ .o_chatter_attachment {
+ padding: 3px;
+
+ input.o_input_file {
+ position: absolute;
+ top: 1px;
+ opacity: 0;
+ pointer-events: none;
+ }
- .o_border_dashed {
- position: relative;
- margin-top: 15px;
- margin-bottom: 30px;
- border-bottom: 1px dashed gray('300');
- text-align: center;
+ .o_border_dashed {
+ position: relative;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ border-bottom: 1px dashed gray('300');
+ text-align: center;
- .o_attach_title {
+ .o_attach_title {
position: relative;
top: 10px;
margin: 0 auto;
padding: 0 10px;
font-weight: bold;
background: white;
+ }
}
}
}
diff --git a/addons/mail/static/src/scss/chatter.scss b/addons/mail/static/src/scss/chatter.scss
index 261552c2b23..599802382a1 100644
--- a/addons/mail/static/src/scss/chatter.scss
+++ b/addons/mail/static/src/scss/chatter.scss
@@ -4,6 +4,11 @@
width: 100%;
padding-top: 0!important;
+ .o_attachment_delete_cross {
+ @include o-position-absolute($right: 6px, $top:7px);
+ cursor: pointer;
+ }
+
.o_spinner {
text-align: center;
font-size: large;
@@ -21,9 +26,16 @@
position: relative;
float: right;
flex: 1 1 auto;
+
.o_chatter_button_attachment {
- height: 2.3em;
+ height: $o-statusbar-height - 2px;
float: right;
+ padding: 0px;
+ margin-right: 25px;
+
+ .fa-paperclip, .o_chatter_attachment_button_count {
+ font-weight: bold;
+ }
}
.o_followers {
height: $o-statusbar-height + 1;
diff --git a/addons/mail/static/src/scss/composer.scss b/addons/mail/static/src/scss/composer.scss
index aa5131b0de5..096c527aa16 100644
--- a/addons/mail/static/src/scss/composer.scss
+++ b/addons/mail/static/src/scss/composer.scss
@@ -434,6 +434,10 @@ $o-mail-attachment-margin: 5px;
font-size: $font-size-sm;
}
+ .o_attachment_delete_cross {
+ color: white;
+ }
+
.o_attachment_download {
@include o-position-absolute($right: 7px, $bottom:7px);
}
diff --git a/addons/mail/static/src/xml/chatter.xml b/addons/mail/static/src/xml/chatter.xml
index 7461f4b9055..7f8629f1bae 100644
--- a/addons/mail/static/src/xml/chatter.xml
+++ b/addons/mail/static/src/xml/chatter.xml
@@ -20,6 +20,16 @@
<t t-call="mail.Attachment"/>
</t>
</div>
+ <div class="o_chatter_attachment_form">
+ <t t-call="HiddenInputFile">
+ <t t-set="fileupload_id" t-value="widget.fileuploadId"/>
+ <t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
+ <t t-set="multi_upload" t-value="true"/>
+ <input type="hidden" name="model" t-att-value="widget.currentResModel"/>
+ <input type="hidden" name="id" t-att-value="widget.currentResID"/>
+ <center><span class="btn btn-link o_upload_attachments_button"><span class="fa fa-plus-square"/> Add Attachments</span></center>
+ </t>
+ </div>
</div>
</div>
@@ -96,11 +106,11 @@
</t>
<t t-name="mail.chatter.Attachment.Button">
- <button t-attf-class="btn btn-sm btn-link o_chatter_button_attachment #{!count and 'o_hidden' or ''}" title="View all the attachments of the current record">
+ <button class="btn btn-link o_chatter_button_attachment" title="View all the attachments of the current record">
<span>
<i class="fa fa-paperclip"/>
<span class="o_chatter_attachment_button_count">
- <t t-esc="' ('+count+')'"/>
+ <t t-esc="count"/>
</span>
</span>
</button>
diff --git a/addons/mail/static/src/xml/composer.xml b/addons/mail/static/src/xml/composer.xml
index ec95a6d5b61..ff4680d7851 100644
--- a/addons/mail/static/src/xml/composer.xml
+++ b/addons/mail/static/src/xml/composer.xml
@@ -51,9 +51,9 @@
<div t-name="mail.Composer.emojis" class="o_mail_emoji_container">
<t t-foreach="emojis" t-as="emoji">
- <button t-att-data-emoji="emoji.sources[0]" class="btn btn-link o_mail_emoji" t-att-title="emoji.description" t-att-aria-label="emoji.description">
+ <span t-att-data-emoji="emoji.sources[0]" class="o_mail_emoji" t-att-title="emoji.description" t-att-aria-label="emoji.description">
<t t-raw="emoji.unicode"/>
- </button>
+ </span>
</t>
</div>
diff --git a/addons/mail/static/src/xml/thread.xml b/addons/mail/static/src/xml/thread.xml
index 914168306b8..be73917a1b5 100644
--- a/addons/mail/static/src/xml/thread.xml
+++ b/addons/mail/static/src/xml/thread.xml
@@ -523,6 +523,7 @@
<div class="o_image_box">
<div class="o_attachment_image" t-attf-style="background-image:url('/web/image/#{attachment.id}/160x160/?crop=true')"/>
<div t-attf-class="o_image_overlay o_attachment_view" t-att-data-id="attachment.id">
+ <span class="fa fa-times o_attachment_delete_cross" t-att-title="'Delete ' + attachment.name" t-att-data-id="attachment.id" t-att-data-name="attachment.name"/>
<span class="o_attachment_title text-white"><t t-esc="attachment.name"/></span>
<a class="o_attachment_download" t-att-href='attachment.url'>
<i t-attf-class="fa fa-download text-white" t-att-title="'Download ' + attachment.name" role="img" aria-label="Download"></i>
@@ -546,6 +547,7 @@
<t t-set="type" t-value="attachment.mimetype and attachment.mimetype.split('/').shift()"/>
<div t-attf-class="o_attachment #{ editable ? 'o_attachment_editable' : '' } #{attachment.upload ? 'o_attachment_uploading' : ''}" t-att-title="attachment.name">
<div class="o_attachment_wrap">
+ <span t-if="!editable" class="fa fa-times o_attachment_delete_cross" t-att-title="'Delete ' + attachment.name" t-att-data-id="attachment.id" t-att-data-name="attachment.name"/>
<t t-set="has_preview" t-value="type == 'image' or type == 'video' or attachment.mimetype == 'application/pdf'"/>
<t t-set="ext" t-value="attachment.filename.split('.').pop()"/>
diff --git a/addons/mail/static/tests/chatter_tests.js b/addons/mail/static/tests/chatter_tests.js
index b6eec0cd5e4..ca6c6877b7c 100644
--- a/addons/mail/static/tests/chatter_tests.js
+++ b/addons/mail/static/tests/chatter_tests.js
@@ -292,7 +292,7 @@ QUnit.test('Activity Done keep feedback on blur', function (assert) {
});
QUnit.test('attachmentBox basic rendering', function (assert) {
- assert.expect(11);
+ assert.expect(19);
this.data.partner.records.push({
id: 7,
display_name: "attachment_test",
@@ -334,6 +334,19 @@ QUnit.test('attachmentBox basic rendering', function (assert) {
assert.containsOnce(form, '.o_attachment_image', "there should be an image preview");
assert.containsOnce(form, '.o_attachments_previews', "there should be a list of previews");
assert.containsOnce(form, '.o_attachments_list', "there should be a list of non previewable attachments");
+ assert.containsOnce(form, '.o_upload_attachments_button', "there should be an 'Add Attachments' button");
+ assert.containsOnce(form, '.o_form_binary_form', "there should be a binary form");
+
+ assert.containsOnce(form, 'input[name="model"]', "there should be an model input");
+ var $modelInput = form.$('input[name="model"]');
+ assert.hasAttrValue($modelInput, 'value', 'partner');
+ assert.hasAttrValue($modelInput, 'type', 'hidden');
+
+ assert.containsOnce(form, 'input[name="model"]', "there should be an id input");
+ var $resIdInput = form.$('input[name="id"]');
+ assert.hasAttrValue($resIdInput, 'value', '7');
+ assert.hasAttrValue($resIdInput, 'type', 'hidden');
+
assert.strictEqual(form.$('.o_attachment_title').text(), 'name1',
"the image name should be correct");
// since there are two elements "Download name2"; one "name" and the other "txt" as text content, the following test
@@ -1466,6 +1479,55 @@ QUnit.test('chatter: Attachment viewer', function (assert) {
form.destroy();
});
+QUnit.test('chatter: keep context when sending a message', function(assert) {
+ assert.expect(1);
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ services: this.services,
+ arch: '<form string="Partners">' +
+ '<sheet>' +
+ '<field name="foo"/>' +
+ '</sheet>' +
+ '<div class="oe_chatter">' +
+ '<field name="message_ids" widget="mail_thread"/>' +
+ '</div>' +
+ '</form>',
+ res_id: 2,
+ session: {
+ user_context: {lang: 'en_US'},
+ },
+ mockRPC: function (route, args) {
+ if (args.method === 'message_get_suggested_recipients') {
+ return $.when({2: []});
+ }
+ if (args.method === 'message_post') {
+ assert.deepEqual(args.kwargs.context, {
+ default_model: "partner",
+ default_res_id: 2,
+ lang: "en_US",
+ mail_post_autofollow: true,
+ },
+ "the context is incorrect");
+ return $.when(57923);
+ }
+ if (args.method === 'message_format') {
+ return $.when([{
+ author_id: [42, "Me"],
+ model: 'partner',
+ }]);
+ }
+ return this._super(route, args);
+ },
+ });
+
+ testUtils.dom.click(form.$('.o_chatter_button_new_message'));
+ testUtils.fields.editInput(form.$('.oe_chatter .o_composer_text_field:first()'), 'Pouet');
+ testUtils.dom.click(form.$('.oe_chatter .o_composer_button_send'));
+ form.destroy();
+});
+
QUnit.test('form activity widget: read RPCs', function (assert) {
// Records of model 'mail.activity' may be updated in business flows (e.g.
// the date of a 'Meeting' activity is updated when the associated meeting
diff --git a/addons/mail/static/tests/tools/debug_manager_tests.js b/addons/mail/static/tests/tools/debug_manager_tests.js
index fa7aecd40d1..8b9312ca733 100644
--- a/addons/mail/static/tests/tools/debug_manager_tests.js
+++ b/addons/mail/static/tests/tools/debug_manager_tests.js
@@ -14,6 +14,10 @@ QUnit.module('Mail DebugManager', {}, function () {
intercepts: {
do_action: function (event) {
assert.deepEqual(event.data.action, {
+ context: {
+ default_res_model: "testModel",
+ default_res_id: 5,
+ },
res_model: 'mail.message',
name: "Manage Messages",
views: [[false, 'list'], [false, 'form']],
diff --git a/addons/mail/wizard/email_template_preview.py b/addons/mail/wizard/email_template_preview.py
index 89808b0b6d1..eb02b082b4e 100644
--- a/addons/mail/wizard/email_template_preview.py
+++ b/addons/mail/wizard/email_template_preview.py
@@ -34,6 +34,7 @@ class TemplatePreview(models.TransientModel):
res_id = fields.Selection(_get_records, 'Sample Document')
partner_ids = fields.Many2many('res.partner', string='Recipients')
+ attachment_ids = fields.Many2many(string='Attachments', store=False)
@api.onchange('res_id')
@api.multi
diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py
index c2ef637d299..46ec87060cf 100644
--- a/addons/mail/wizard/mail_compose_message.py
+++ b/addons/mail/wizard/mail_compose_message.py
@@ -198,6 +198,13 @@ class MailComposer(models.TransientModel):
""" Process the wizard content and proceed with sending the related
email(s), rendering any template patterns on the fly if needed. """
notif_layout = self._context.get('custom_layout')
+ # Several custom layouts make use of the model description at rendering, e.g. in the
+ # 'View <document>' button. Some models are used for different business concepts, such as
+ # 'purchase.order' which is used for a RFQ and and PO. To avoid confusion, we must use a
+ # different wording depending on the state of the object.
+ # Therefore, we can set the description in the context from the beginning to avoid falling
+ # back on the regular display_name retrieved in '_notify_prepare_template_context'.
+ model_description = self._context.get('model_description')
for wizard in self:
# Duplicate attachments linked to the email.template.
# Indeed, basic mail.compose.message wizard duplicates attachments in mass
@@ -252,6 +259,7 @@ class MailComposer(models.TransientModel):
notif_layout=notif_layout,
add_sign=not bool(wizard.template_id),
mail_auto_delete=wizard.template_id.auto_delete if wizard.template_id else False,
+ model_description=model_description,
**mail_values)
if ActiveModel._name == 'mail.thread' and wizard.model:
post_params['model'] = wizard.model
diff --git a/addons/mail/wizard/mail_resend_message.py b/addons/mail/wizard/mail_resend_message.py
index c8ea6bb73c3..12255735871 100644
--- a/addons/mail/wizard/mail_resend_message.py
+++ b/addons/mail/wizard/mail_resend_message.py
@@ -68,7 +68,7 @@ class MailResendMessage(models.TransientModel):
rdata = []
for pid, cid, active, pshare, ctype, notif, groups in self.env['mail.followers']._get_recipient_data(None, False, pids=to_send.ids):
if pid and notif == 'email' or not notif:
- pdata = {'id': pid, 'share': pshare, 'active': active, 'notif': 'email', 'groups': groups}
+ pdata = {'id': pid, 'share': pshare, 'active': active, 'notif': 'email', 'groups': groups or []}
if not pshare and notif: # has an user and is not shared, is therefore user
rdata.append(dict(pdata, type='user'))
elif pshare and notif: # has an user and is shared, is therefore portal