Commit Graph
85 Commits
Author SHA1 Message Date
Thibault Delavallée f4481ff74e [IMP] mail: gateway: CIDs
Finally add support of CIDs in incoming emails. Inline images are recognized
and added as attachments. Image links are updated from src=cid: to src=link
using the /web/image controller.

It has been decided to keep the image in atttachments instead of putting them
in base64, like proposed in various PRs. Indeed we prefer to store this data
into the attachments instead of directly putting it in the mail_message table.
Moreover this enable the display of attachments in the chatter and record views.
2016-03-03 15:56:09 +01:00
Thibault Delavallée ba74e9ffec [CLEAN] tools, mail: remove html_email_clean
Remove html_email_clean in tools. Remove shorten in mail.
2016-03-03 15:44:57 +01:00
Christophe Simonis 60c9cac46b [MERGE] forward port of branch saas-9 up to 87a01c7 2016-02-17 18:07:21 +01:00
Christophe Simonis 87a01c75ef [MERGE] forward port of branch saas-7 up to 5be43b8 2016-02-17 18:01:11 +01:00
Denis Ledoux 26d6e83881 [FIX] mail: specific message subscribe
`write` expects a `dict` for the `values` argument,
`part[record.id]` is a list of commands to add new
followers.

See the returned variable `specific` of the method
`_add_follower_command` in `mail_followers.py`.

Surrounding `part[record.id]` with a `dict` with
`message_follower_ids` has probably been
forgotten by oversight.

`gen` and `part[record.id]` have actualy the same
syntax, and the `write` done with these variables
should therefore be called the same way.

opw-669376
2016-02-12 13:54:05 +01:00
Christophe Simonis 9a805c90ed [MERGE] forward port of branch saas-9 up to d70fde0 2016-02-10 18:40:56 +01:00
Christophe Simonis d70fde0330 [MERGE] forward port of branch saas-7 up to cab5c48 2016-02-10 18:37:01 +01:00
Yannick Tivisse 0b7990cbce [FIX] mail: put only employees into the group_data 'user'
Before, every user was set into this group. It means that a portal
user received elements in his mail context, like the buttons to
open a document or to follow it. Now, only the employees will
receive this kind of information
2016-02-08 15:40:24 +01:00
Thibault Delavallée 82e60a9648 [FIX] mail: automatic subscription of responsible
Do not erase existing subscription with void subtypes.
2016-02-08 12:16:58 +01:00
Aaron Bohy bc2d86e00f [FIX] mail: correctly compute unread messages
Two problems occured:
 - when the user hadn't seen any messages of a channel, the seen_message_id
   was null and doing seen_message_id < msg.id to retrieve all messages
   received after the last one seen didn't return any message (null < x is
   always false)

 - messages sent by visitor on the livechat doesn't have any author_id, so,
   again, doing msg.author_id != partner_id is always false, and as a
   consequence, server-side, the messages sent by visitors were always
   considered as read
2016-02-08 08:29:52 +01:00
Christophe Simonis 04416a5a6f [MERGE] forward port of branch saas-9 up to 469e04e 2016-02-02 14:55:52 +01:00
Christophe Simonis 2611a8198e [MERGE] forward port of branch saas-7 up to e765569 2016-02-02 14:48:31 +01:00
Thibault Delavallée 9b43a8c8f6 [ADD] mail: send email based on templates
When performing automatic tracking it is now possible to automatically send
emails based on a template. This template can either be a qweb template
using its xml_id or a MailTemplate using its record.

This is simply implementing directly in the mixing a feature already present
in recruitment and soon to be added in task, issues or helpdek.
2016-02-01 12:13:53 +01:00
Aaron Bohy 4bab99bdaf [FIX] mail: don't notify 'join/left' messages
Messages of type 'notification' and whose model is 'mail.channel' are
considered as 'system notifications'. This is the case of 'join/left' messages.
They aren't taken into account when computing unread messages anymore.

Also use the same heuristic to decide whether or not to display the message's
star, so from now on pure notifications (not system notifications), like status
change on a document, can be starred.
2016-02-01 11:31:09 +01:00
Christophe Simonis 1231585df1 [MERGE] forward port of branch saas-9 up to 78d20b5 2016-01-27 12:27:01 +01:00
Christophe Simonis 7e44ddcda3 [MERGE] forward port of branch saas-7 up to 6f923cb 2016-01-27 12:23:09 +01:00
Aaron Bohy 6cc8d32d60 [FIX] mail: automatically consider messages sent as read
Problem was that since rev. 617968c61, we consider sent messages as read client
side. This has been done to avoid to indicate that a channel has unread
messages e.g. when this channel is a follower of a chatter in which we wrote
a message.

This change has as consequence that we don't perform the 'channel_seen' RPC for
messages sent. At each refresh, the server sends information about pinned
channels, especially the unread counter, which was thus sometimes incorrect.

This rev. simply doesn't take messages we wrote into account when computing
the message_unread_counter field.

Also correctly display the 'New messages' separator in threads, by automatically
skipping messages we wrote (i.e. it is now displayed above the first message m
with m.id > last_message_seen_id and such that we aren't the author of m).
2016-01-25 15:46:55 +01:00
Martin Trigaux 4dd7187a7a [FIX] mail: translated mailing_model
_mail_mass_mailing attribute is evaluated at server launch (with no context) so
the attribute is never translated.
Create a new method in mail_thread to translate again the term at evaluation but
with a correct context.
Thanks to the _(...) in the attribute definition, the proper term is exported
and present in .pot file.
2016-01-15 12:00:42 +01:00
Thibault Delavallée c61dc5cb36 [IMP] mail: encapsulate _message_track in batch
_message_track is encapsulated in a method that calls it in batch. The purpose
is to ease the tracking to work in batch. Moreover future improvements in mail
will use this method and will be able to work in batch.
2016-01-14 15:54:01 +01:00
Christophe Simonis 5f997bc4ef [MERGE] forward port of branch saas-7 up to 7fa6f73 2016-01-12 16:11:28 +01:00
Thibault Delavallée a69c2bab0a [FIX] mail, mail_channel: recipients of channels
Mailing lists (mail.channel) should not send specific notification emails.
Indeed there can be a lot of recipients and customizing each email can
take time to compute. This leads to posting a message on a mail.channel
being very slow.

It is now possible for a model to customize the notification email
recipients computation. The first use is to ensure that mail.channel
encodes recipients using email_to instead of recipients_ids. This way
less processing is performed on notification emails.

This is a manual cherry-pick of commit d4a1eb4435
that was not forard ported. Mail has indeed evolved since 8.0 and its
forward port was not an easy task.

This commit also includes the fix of mail.channel recipients. All are now
considered as equal and receive a simple notification email. No distinction
is done between partners and users. The notification emails for channels
should be as simple as possible.
2016-01-08 16:40:40 +01:00
Géry Debongnie 739301be09 [FIX] mail: add link to urls clientside, not serverside
the server should avoid as much as possible modifying emails.  Adding
links is a presentation concern, so this commit moves this logic client
side.
2016-01-08 15:02:22 +01:00
Martin Trigaux e4bf03aeaf [MERGE] Forward port of branch saas-7 up to c298cf3 2015-12-21 11:37:53 +01:00
Martin Trigaux c298cf3250 [MERGE] Forward port of 9.0 up to 7892d99f 2015-12-18 16:15:08 +01:00
Aaron Bohy 17896a92da [FIX] mail: various ui improvements/fixes
* chat windows:
  - input was kicked out of the window on chrome 43
  - don't animate if folded by default (e.g. after a refresh)
  - width and height 100% like in the frontend
  - z-index to make sure that they are over bootstrap active btn,
    but below notifications, and modals

* chatter:
  - internal note: send button renammed to 'Log'
  - send button is the first button again
  - remove annoying form view widget's tooltip

* client action: focus on composer on channel change
2015-12-15 10:01:21 +01:00
Olivier Dony 3d32e99665 [FIX] mail.thread: optimize lookup of res.users by email
Searching on res.partners with domain [('user_ids' , '!=', False)]
will currently be translated into a huge "ID IN <...>"  query,
with the IDs of all existing users.
On a database with a lot of users, this can be measured
in seconds (e.g. 3-4 seconds with 500k+ users),
leading to significant delays in email delivery.

Using a direct lookup in res.users is more direct and faster.
2015-12-10 18:43:17 +01:00
Christophe Simonis 82a495eed5 [MERGE] forward port of branch saas-7 up to 4022493 2015-12-10 13:05:58 +01:00
Christophe Simonis 4022493c0b [MERGE] forward port of branch 9.0 up to da2b88b 2015-12-09 16:44:05 +01:00
Thibault Delavallée f7c0480dc1 [FIX] mail: fix 504227cca9
Do not restrict followers-based alias to members of non public channels.
Otherwise you may have issues defining a public mailing list with a
subscription step. People still wouldn't be able to post on a public
channel using a restricted alias.
2015-12-09 09:59:04 +01:00
Thibault Delavallée e7f842948f [FIX] website_mail_channel: wrong override
message_get_email_values is declared as receiving cr, uid, id. However this method
is an override of a multi method. A decorator has been added to tell that id is
actually a list of ids and avoid list encapsulation issues with the result. This
way the method parameters are not changed.

[CLEAN] mail: removed some unused imports, by the way
2015-12-08 16:33:54 +01:00
Thibault Delavallée 504227cca9 [FIX] mail: followers restricted alias
Now that channels can follow documents, restricted aliases are a bit too
restricted. We consider that followers-based aliases accept emails from
the direct followers (message_partner_ids) or member of non public
channels (message_channel_ids, filetered public field). This way we avoid
having public channels added by mistake, leading to information leak.
2015-12-08 16:33:49 +01:00
Jamin Shah 3560cf04ee [IMP] mail: headers to notification emails
>
> This merge adds some basic data to notification emails headers. It contains the related
> record of the notification. This allows users to classify / perform action based on
> headers.
>
> Headers :
> - X-Odoo-Objects: list of records
> - X-Odoo-db-uuid: database uid

In task and issue, we had the parent project and the tags in the headers.
2015-11-26 11:26:46 +01:00
Christophe Simonis d490630745 [MERGE] forward port of branch 9.0 up to b293953 2015-11-25 16:18:10 +01:00
Thibault Delavallée 870c822ac5 [FIX] mail: incoming email parsing
Correctly flag and remove nodes to remove containing odoo buttons.

Backport of revision aece706603 of saas7.
2015-11-18 17:23:26 +01:00
Denis Ledoux 49a0eae805 [FIX] mail: mails fetch
`node.get('class', '')` returns a `Nonetype`
in some cases, and, therefore,
`'o_mail_notification' in node.get('class', '')`
throws a
`TypeError: argument of type 'NoneType' is not iterable`.

Replacing by `(node.get('class') or '')` keep the behavior
that was expected, but will prevent to have a `Nonetype`

opw-656508
opw-656753
opw-653965
2015-11-18 17:02:13 +01:00
Thibault Delavallée aece706603 [FIX] mail: incoming email parsing
Correctly flag and remove nodes to remove containing odoo buttons.
2015-11-17 10:51:03 +01:00
Denis Ledoux c2a6aeb244 [FIX] mail: internal subtypes with special characters
The fields options in the form are evaluated with
a `py_eval`, see:
https://github.com/odoo/odoo/blob/3c2e48423b4f9706216cada549d0a725f2dd07d2/addons/web/static/src/js/views/form_common.js#L664,
not as a JSON.

This was changed in October 2012, with rev.
c538db258a

Therefore, the field options must not be passed as a JSON, but
as a Python dict.

This had as side-effect to uncorrectly load the internal
subtypes for the "log a note" feature. For instance,
French translations with accents were displayed incorrectly.

opw-656409
2015-11-16 16:38:54 +01:00
Thibault Delavallée fa0bdec3ea [TMP] mail: temporarily deactivate keep_url
This makes every template holding images crash. As this feature will shortly be
fixed in 9, let us temporarily comment its use and wait for the forward port of
the fix.
2015-11-02 11:49:40 +01:00
Olivier Dony cc552c008b [MERGE] Forward 9.0 up to 2ec9a9c 2015-10-27 15:58:47 +01:00
Thibault Delavallée 9b385078b2 [DOC] mail: add some docstrings for mail context keys
Too much keys kills keys. Difficult to say.
2015-10-26 10:54:19 +01:00
Thibault Delavallée a36de1efad [FIX] mail: notification email cleaning
- remove / udpate some paddings. Indeed some part of the notification emails
  are badly aligned.
- postprocess the notification email to remove the content coming from odoo.
  This ensure that action buttons present in some emails are not forwarded to
  other people, notably customers. This is done by adding a div holding the
  whole notification emails, with a summary = o_mail_notification. A summary
  is used instead of a class or id because some html clients (like gmail)
  strip classes, ids, ... summary seems to be kept in several clients.
2015-10-26 10:28:46 +01:00
qdp-odoo 63e72649da Merge branch '9.0' into master up to revision 57d0903154 2015-10-21 16:55:40 +02:00
Géry Debongnie 1a4b24586d [FIX] mail: disable message_last_post to prevent race conditions
The message_last_post mechanism was introduced to have a trigger for
automated actions, but for some reason we do not use it.  Moreover, it
interacts badly with the bus.

Because of the message_last_post update, concurrent transactions can
fail and be rollbacked.  This is an issue because the bus commit the
transaction after writing the messages.  This means that some messages
can be duplicated, and the more users are chatting, the more frequent
this will happen.

Since we don't use this field, it could be removed from the models, but
we are in a stable release, so we need to keep it for now.
2015-10-14 09:17:04 +02:00
Nicolas Martinelli db68f9c4be [FIX] mail, project: define search method for message_is_follower
In order to be able to search on a non-stored computed field, a search
method must be defined.

This also reverts commit fd38fc0a02.

Fixes #8920
2015-10-13 10:15:21 +02:00
Olivier Dony 8bdd15b5b6 [MERGE] Forward-port 9.0 up to ff9b997736 2015-10-11 20:55:43 +02:00
Martin Trigaux e256262b0e [MERGE] Forward-port 9.0 up to 422f3b5d 2015-10-07 16:42:33 +02:00
Jérome Maes b1849f532e [FIX] mail : posting message with mention and clickable url
Posting message is done in 'html' since mention add html tag in body. Clickable url is done server to allow link in mail and chat message. Plaintext are transform into html, and html message are simply parsed to transform url into clickable link.
2015-10-07 16:37:11 +02:00
Thibault Delavallée 17e562ecef [FIX][TESTS] mail: auto subscription, needaction
- fixed computation of needaction flag (typo)
- fixed order of auto subscription and message tracking: first subscribe then
  track. This way messages are send to newly added followers.
- added tests in CRM to ensure this behavior works by updating the already
  existing test and using the mail test class
2015-10-05 11:56:05 +02:00
Thibault Delavallée 803bf8f75d [IMP] mail: invite email, notification style
Use the notification template when sending invite emails (add a follower
with send a message checked).
2015-10-05 11:56:05 +02:00
Christophe Simonis d750206c49 [MERGE] forward port of branch saas-6 up to e9f1ee4 2015-10-01 15:16:59 +02:00