diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-01-09 19:59:27 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-01-09 19:59:27 +0100 |
| commit | d7c5bc02cc2b27442f0d4c8aca70266762be2a32 (patch) | |
| tree | 3a675d15b539a4474be38704405b318bebecdce7 /addons/mail | |
| parent | 37b518f1749aff3d6ffb2246c32f2aa1e67d9067 (diff) | |
| parent | 8aa8548d8ab68feb13f3bde51c557db84877e809 (diff) | |
[MERGE] forward port branch saas-12.1 up to 8aa8548d8ab
Diffstat (limited to 'addons/mail')
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&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: " -msgstr "" +msgstr "Všechny stránky: " #. 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 " (" 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: " -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: " -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 |
