Commit Graph
5163 Commits
Author SHA1 Message Date
Thibault Delavallée 6404d50c89 [IMP] mail: unsubscribe partners that bounce on channels
If a partner bounces more than 10 times on a channel, unsubscribe him from the
channel.
2016-09-01 13:30:09 +02:00
Thibault Delavallée af703b8275 [IMP] mail, website_forum, website_blog: avoid storing message needaction partners
Forum and blog are public models that could have a lot of followers. After
notifying followers of a new comment, discard the needaction information.
For those models email is considered as sufficient. This way we avoid storing
a lot of unnecessary entries in the m2m table between message and partner.
2016-09-01 13:28:36 +02:00
Thibault Delavallée 2ae09150a5 [REM] mail, forum: remove hack to add buttons in forum notifications
It has been solved using the standard way of managing buttons in notification
emails. At least we hope it.
2016-09-01 13:27:49 +02:00
Thibault Delavallée cfc91c06d6 [IMP] mail: avoid adding alias-partner as followers
Having followers having an email address being an alias is rarely a good idea.
2016-09-01 13:27:20 +02:00
Thibault Delavallée 4f9105a4ef [IMP] mail: handle forwarded emails in mailgateway
If the 'To' of an incoming email is an alias on another model we now consider
this emails as a forward to a new alias. A use case for this is an email on
a task that should be considered as an issue and forwarded to another alias.
2016-09-01 13:25:26 +02:00
Thibault Delavallée 0bedc14c12 [IMP] mail, various: send email to assigned people
When a user is assigned to a model on a user_id field an email is sent to him
containing a link to the document. This way the user is warned he is now
responsible of the task / issue / lead / ...
2016-09-01 13:24:27 +02:00
Thibault Delavallée 38e181ee2c [IMP] mail: send email notifications after transaction commit
Using after commit event notifications emails are now send once the current
transaction is finished. This allows having issues with emails being sent
while the transaction failed sometimes after email sending, but still in the
same transaction.

A small hook is done to allow invitation emails to be sent directly as some
data related to mail.message is unlinked directly in the wizard.
2016-09-01 13:22:59 +02:00
Thibault Delavallée 029d1baf35 [REF] mail: remove required alias on users
This commit remove required alias on res.users model. It also removes the
inheritance of mail.alias.mixin. The field alias_id is kept and allow people
to use aliases on users if they want. However there is no default void alias
created for each user anymore.

Default from of mail.message does not use user alias anymore. Indeed this
creates issues with aliases not being correctly configured and can be
confusing compared to private channels. Using user aliases is therefore
now done manually instead of being a default behavior.
2016-09-01 13:19:24 +02:00
Thibault Delavallée 9c1af690d5 [IMP] mail: bounce management
Handle bounces using bounce alias directly in mailgateway. Previously bounces
were used only in mass mailing to update campaign statistics. Now the
mailgateway tries to find data from standard delivery status emails. This
data is used to update state of emails sent to customers, to display it in
the Chatter. It is also used to increment the message_bounce counter on the
bounced partner and bounced record, if any and if the field exists.

Previous more generic code that detect bounces is kept. This code is more specific
to standard delivery failure notifications by parsing its content.
2016-09-01 13:11:49 +02:00
Thibault Delavallée 72dfcae2a4 [IMP] mail: improve notification management for customers
Currently it is impossible in Discuss to know whether an email has been sent
to a customer and whether it failed or bounced. A notified partner has an
entry in the needaction m2m table. In this commit we decorate this table to
add fields about the email notification: is an email sent, did it failed, did
it bounce.

This information is kept only for customers. Internal users does not use this
information. Moreover their notification is deleted once the message is read
in the Chatter. This avoids having a notification table that grows quickly.

Chatter now holds a new icon for email details. It allows to know on a thread
status of emails sent to customers.
2016-09-01 12:57:56 +02:00
Thibault Delavallée 2194993763 [REM] mail: remove support of [ID] matching in subject in mail gateway
This is an old compatibility code. It is time to remove it as it is not used
sinces ages.
2016-09-01 12:57:32 +02:00
Thibault Delavallée 0843df213c [FIX][IMP] mail, mass_mailing: improve making of Return-Path alias
Previously Return-Path were composed using bounce_alias-<mail_id>-<model>-
<thread_id> . However this may lead to return adresses not supported by
the incoming mail server. We now form the bounce alias using bounce_alis+
<mail_id>-<model>-<thread_id>. Using a + indicates that the right part of
the address is for information and used to manage the bounce. Only the
left part is used for the email routing, allowing the return email to
effectively land in the alias mailbox.
2016-09-01 12:57:05 +02:00
Thibault Delavallée 6aebdc2ab6 [FIX][IMP] mail: check for rcptto when finding destination aliases
When a new answer comes in a thread the mailgateway finds if the recipients
are linked to existing aliases. This allows notably to check if the author
can effectively contact this alias. Previously only the To was checked.
However we cannot ensure the recipient is contained in To as it could be
in Delivered-To for example. We now check for all possible recipients.
2016-09-01 12:50:14 +02:00
Thibault Delavallée 0028c42136 [CLEAN] mail: clean mail gateway code
The purpose of this commit is to clean a bit the code related to email
routing in the mailgateway: message_route and message_route_verify.

message_route is now clearly separeted into two categories. First one
handles emails considered as answers to existing threads. Second one
handles emails that have to create new threads, either through alias or
default behavior of the mailgateway.

message_route_verify has been a bit facotrized to simplify the various
overrides that appeared lately in the codebase.

This commit only contains code cleaning. No functional change should occur
due to this commit.
2016-09-01 12:23:14 +02:00
Thibault Delavallée b259eb69d2 [CLEAN] mail, tools: factorize decode email tools
mail.mail and mail.thread have methods to decode headers. This commit
move them in mail tools. It is indeed simplier to have all email tools
in the same file. Moreover they have been renamed to avoid confusion
with standard library methods: decode and decode_header already exist.

 * decode in mail_message is now decode_smtp_header
 * decode_header in mail_thread is now decode_message_header

A method to data from references is also moved into tools. A regex was
already defined in tools. Now the method using it is already put in tools.
Mailgateway will now simply call this method.
2016-09-01 10:41:04 +02:00
Thibault Delavallée ea4c4a22c4 [IMP] mail: clean test about forwarded emails and parent_id
Previous version of the test was actually not correct. Mailgateway was not
considering references as in-reply-to when trying to find answers that have
to be considered as a new thread instead of an answer to an existing thread.

Purpose of the test is actually to be sure that answers considered as a new
thread have no parent_id set. Otherwise you may have threads linked to
messages belonging to other records, leading to access right issues. Moreover
if this email begins a new discussion thread it makes no sense to have a
parent message set.

A new test is written to better simulate the test case. It sets a message_id
containing reply_to which is the way odoo uses to indicated that answers
to a message have to be considered as new threads. This is used notably in
mass mailing for example.
2016-09-01 10:20:32 +02:00
Raphael Collet ff5e44d2de [REM] models: remove _all_columns 2016-08-31 17:21:45 +02:00
Thibault Delavallée 02c748be59 [IMP] tools: sanitizer: add and clean sanitize options
Now having

 * sanitize: run the sanitizer to clean the html (removing javascripts,
   unwanted tags, ...)
 * sanitize_tags: only a subset of tags is allowed in html content.
   Unwelcomed tags are remove dand their content stripped.
 * sanitize_attributes: only a subset of attributes is allowed.
 * sanitize_style: only a subset of style attributes is allowed. Style
   attributes are parsed to keep only a white list.
 * strip_style: all style is removed. It bypasses sanitize_style as there
   is no need to sanitize something that is removed.
 * strip_classes: remove class attributes

Fields parameters have also been updated to match the sanitize options. Html
fields by default are sanitized with sanitize_tags activated but without any
further options. All addons have been updated to match the new options
according to their previous behavior.
2016-08-30 15:54:56 +02:00
Thibault Delavallée 97425bfe3f [REF] various: make mako mail templates more xml compliant
As we will soon improve the sanitizer we will be able to sanitize email
templates body. However this implies some cleaning in the templates to
be sure mako is not considered as invalid html / xml and therefore removed
from the template body.
2016-08-30 15:54:55 +02:00
Christophe Simonis f4738e7bb5 [MERGE] forward port branch saas-12 up to 78e9c7f 2016-08-26 18:06:17 +02:00
Christophe Simonis de0d503421 [MERGE] forward port branch saas-11 up to f0c8224 2016-08-26 16:59:45 +02:00
Martin Trigaux f0c8224175 [FIX] update saas-11 translations by merging 9.0 and master
using the --uses-first parameter on msgmerge this time
2016-08-26 15:19:04 +02:00
Christophe Simonis 717a4a51a5 [MERGE] forward port branch saas-10 up to 7a4116c 2016-08-26 14:57:43 +02:00
Martin Trigaux a120803843 [I18N] export master source terms 2016-08-26 12:46:48 +02:00
Christophe Simonis 5c2025a3af [MERGE] forward port branch 9.0 up to c578fb7 2016-08-25 18:23:47 +02:00
Nicolas Martinelli f30ec3022e [FIX] mail: link in livechat
When a user sends a link thanks to the livechat, the link is not
clickable is the recipient is on the frontend (e.g. visitor of the
website). On the other hand, a link sent from the frontend to the
backend works.

This is because the message is sent as "html" from the backend,
therefore no link conversion is done during the post-process of the
massege (method `message_post`).

Note that a link sent and received in the backend works because
additional formatting is done (convert emojis, add links...).

opw-686063
2016-08-24 11:25:34 +02:00
Jeremy Kersten 1b2dab3f50 [FIX] mail: preprocess tracking fields of type date/datetime only once
Before this commit, if a message thread was loaded 2 times, the first time
the date was well formatted, the second time that fail because momentjs cannot
parse the localized date from some locale.

Luckily, it was not bugged by default in english, because moment was able to
reparse a localized US date. But in some local as french, momentjs cannot parse
the localized date and return 'Invalid date'

Now, we move the code, to be processed only once by the chat manager, and not
in each process of the thread.

This commit closes issue #13258

Courtesy of @aab-odoo
2016-08-23 15:23:20 +02:00
Yannick Tivisse 78c215a923 [IMP] mail: Don't display '(no email address)' for suggested partners
remove the '(no email address)' when no address email. Because when you send
the message, a popup appears with the email field required.
2016-08-23 10:34:43 +02:00
Martin Trigaux 133da17faa [I18N] update saas-12 translations by merging 9.0 and master
1. export saas-12 sources terms into .pot files
2. msgcat odoo-9 .po & odoo-master .po into saas-12 .po files
3. msgmerge saas-12 .po with saas-12 .pot files to keep relevant terms
2016-08-22 14:16:52 +02:00
Simon Lejeune 7abed3b996 [IMP] all: remove unreachable code
This commits adds the check W0101 to test_pylint and fixes the errors.

The index in sequence.py was added in rev 1381ac139e and cancelled a day later in 83fdc271e6
so i guess it is safe to remove it.
2016-08-22 13:51:37 +02:00
Martin Trigaux a35e9bdb88 [I18N] fetch new master terms from Transifex 2016-08-22 11:52:03 +02:00
Odoo Translation Bot 43aee6db75 [I18N] Update translation terms from Transifex 2016-08-21 00:40:51 +02:00
Christophe Simonis 235ed4b2c1 [MERGE] forward port branch saas-12 up to 9ad5f26 2016-08-20 18:08:19 +02:00
Christophe Simonis 9ad5f26b3f [MERGE] forward port branch saas-11 up to 3a2147d 2016-08-20 17:18:31 +02:00
Christophe Simonis 3a2147d95c [MERGE] forward port branch saas-10 up to bc1a0a3 2016-08-20 16:57:36 +02:00
Christophe Simonis bc1a0a32ca [MERGE] forward port branch 9.0 up to 58cbcba 2016-08-19 16:59:29 +02:00
Martin Trigaux 99215a02c6 [I18N] update saas-11 translations by merging 9.0 and master
1. export saas-11 sources terms into .pot files
2. msgcat odoo-9 .po & odoo-master .po into saas-11 .po files
3. msgmerge saas-11 .po with saas-11 .pot files to keep relevant terms
2016-08-19 13:54:31 +02:00
Yannick Tivisse 8c91d690f0 [FIX] mail: Don't display follower settings (fa-cog) if not follower on the record
Y
2016-08-18 17:53:22 +02:00
Martin Trigaux 2331bbf4b0 [I18N] update saas-10 translations by merging 9.0 and master
1. export saas-10 sources terms into .pot files
2. msgcat odoo-9 .po & odoo-master .po into saas-10 .po files
3. msgmerge saas-10 .po with saas-10 .pot files to keep relevant terms
2016-08-18 16:47:23 +02:00
Martin Trigaux c73b2bd079 [I18N] export master source terms 2016-08-18 11:01:50 +02:00
Raphael Collet 38e7a1318a [REM] most uses of self.pool 2016-08-16 09:55:46 +02:00
Raphael Collet ffdafd3f8a [REM] most uses of _model (useless in most cases) 2016-08-16 09:55:46 +02:00
Odoo Translation Bot 842bf793f5 [I18N] Update translation terms from Transifex 2016-08-14 00:38:20 +02:00
Christophe Simonis d7b7b07f9e [FIX] mail: avoid errors in /longpolling/poll requests
When a request fail due to a database concurrency error, the request is
replayed. However, the `mail` overwrite of /longpolling/poll requests
modified its arguments inplace, which lead to a sanity check to failed
in case of retry.

Fixes #13121
2016-08-12 10:45:43 +02:00
Fabien Pinckaers 52a0cdacce [IMP] typo: collegues --> coworkers (colleagues would have been good but coworkers is more american) 2016-08-11 18:03:24 -07:00
Fabien Pinckaers 45ac84cb0e [IMP] mail: improving chatter CSS, font was too small, icon not perfectly aligned 2016-08-11 11:31:39 -07:00
Raphael Collet bf668b64c1 [IMP] all: clean usage of safe_eval
Specifically: do not import `safe_eval` as `eval`, keep it explicit instead.
2016-08-11 15:36:56 +02:00
Raphael Collet 305ff7a31e [MIG] complete migration of special methods like init 2016-08-11 12:09:57 +02:00
Thibault Delavallée efd55ab8a5 [REF] various: rename openerp node to odoo in xml files 2016-08-10 15:48:10 +02:00
Thibault Delavallée e33435daa9 [MIG] mail: migrate remaining code in old API 2016-08-10 15:48:07 +02:00