Commit Graph
56 Commits
Author SHA1 Message Date
Thibault Delavallée 8a026e26c6 [IMP] mail: update _notify API
Purpose of this commit is to allow to give additional values when rendering
notification emails and to make some parameters explicit.

This commit updates the _notify API. It allow to propagate a dictionary
containing values given to the rendering of the notification template.
This allow to have more complex templates and/or to control the rendering
depending on some parameters. Indeed currently only some fixed values and
values coming form the message to notify are given to the rendering
context.

First use will be soon when pushing notification emails not necessarily
linked to documents. In this process some values will be given by the caller
and not only by the message context anymore.

This commit also moves some context key used to control the notification
process directly in values given to the _notify method. It allows to make
those parameters explicit and rely less on context.

The _notify method now takes a values dictionary that may contain

 * add_sign: add user signature to notification email, default is True.
   It replaces the ``mail_notify_user_signature`` context key;
 * mail_auto_delete: auto delete send emails, default is True. It
   replaces the ``mail_auto_delete`` context key;
 * other values are given to the context used to render the notification
   template, allowing customization.

It allows to remove some context switch notably in the composer. A values
dictionary is computed and given to message_post and then propagated to
the notification mechanism.
2018-02-20 14:32:09 +01:00
Raphael Collet 5d746d0ac6 [IMP] base, *: tighten ir.model access rights
Remove unrestricted "read" access.  To make code internally using `ir.model`
work, add a private method `_get` on `ir.model` to retrieve the record
corresponding to a model name, without access rights issue.

Change signature of method `get_authorized_fields` to make it use a model name
instead of a model id.  This removes the necessity of a search on `ir.model`.
2017-01-03 16:52:49 +01: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
Christophe Simonis 235ed4b2c1 [MERGE] forward port branch saas-12 up to 9ad5f26 2016-08-20 18:08:19 +02:00
Raphael Collet 38e7a1318a [REM] most uses of self.pool 2016-08-16 09:55:46 +02:00
Thibault Delavallée c8a313d51e [IMP] various: use odoo for imports instead of openerp and update class names 2016-08-10 15:48:07 +02:00
Thibault Delavallée 90a5079d01 [FIX] various: fix fields index parameter in new API still called select 2016-08-09 10:26:53 +02:00
Christophe Simonis 33299fd689 [MERGE] forward port of branch saas-6 up to 5eee559 2016-01-12 18:46:23 +01:00
Thibault Delavallée 148c1ed51c [FIX] mail: html issue in invite email
Thanks Vitor Fernandes <vmlf01@gmail.com> for pointing it out.
2016-01-11 12:48:09 +01:00
Thibault Delavallée b44f9b001b [FIX] mail: invite only channel channel
It is not interesting to be able to add chat channels to document.
2015-12-08 16:33:48 +01: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
Jérome Maes 4bdfa3b6ca [IMP] mail : invite follower wizard have 2 appearances
The wizard is the same object, but to add channel as follower, some fields was not required. Via the 'mail_invite_follower_channel_only' context key, the unrelevant fields are hidden.
2015-09-04 15:55:46 +02:00
Jérome Maes 95b97d1010 [REF] im_livechat : refactoring, make it compatbile with the nw mail module, change reporting sql view (split them in 2), adapt view, ... 2015-09-01 20:16:09 +02:00
Jérome Maes 449f254638 [REF] mail : include real time, and replace Timeline features
This commit add instant messaging features in mail module to make it a real team collaboration tool. Lots of these new features will replace Timeleine view (which is not removed in this commit). Many files have been moved, split or created for a better structure.

- My Channels : A user can be member of channel (mail.channel). These are discussion group, but also an aggregate of notification. Setting a channel as document follower, it will receive all the message (of the chatter) in real time, as information stream.

- A new Inbox : this aims to replace the timeline view. The user will see its channels grouped by 'slot', and receive the message in real time. Jump to the form view, invite people, create private discussion group, talk directly to another employee, ... are the main features. Your message can still be starred. The 'Inbox' will only contain your needaction.

- Needaction concept : a needaction is a message calling you to do something. If you follow a document as a person, the posted message will be 'needaction' for you. It can also be a message where you are mention with a '@my_name' (this feature is not added in this commit).

- The chatter doesn't change so much. It still allow you to see the discussion about the document, to star some message, and treat your needaction.

- Chat : the only way to have a minified conversation is from the Inbox Client Action. It allow you to keep an eye on a channel when working on document.

- Compose Message : it is now common to the Inbox, and the chatter. It offers shortcode substitution, attachments management, and optional subtype.

- UI : the chat window has been clean, they have a new look now.

To do so,
- Chatter code have been completely rewrite, independently of timeline view
- Add 'bus' as mail dependency, to insure real time
- A mail.message is broadcasted on the bus channel (db, mail.channel, channel_id), and a channel header on (db, res.partner, partner_id)
- Extracting mail_thread mixin used for Chatter and ChatMailThread (Inbox client action). This uniformize the programming structure with the server side
- Clean CSS style and use LESS instead of CSS
- Define a new messafe format (message_format method in mail_message.py), compatible with fetching and broadcasting
- Apply guideline coding conventions

This commit also break the module im_livechat, since im_chat models don't exists anymore and will be fixed in the next commit.

Thanks to Thibault Delavallee (tde) for the long debates and precious advices, Richard Mathot (rim) for the support, Simon Lejeune (sle) for the client action layout, and the Usability Team (apr, lle, bst yti) for the long testing.

Conflicts:
	addons/mail/models/mail_thread.py
2015-09-01 20:16:09 +02:00
Thibault Delavallée 01ab75f597 [IMP] mail: notification emails with button
Notification emails have been redesigned. They notably include buttons
allowing to perform some action directly from the email.

The notification creation and sending has been partially rewritten
and improved. The purpose is to lessen the number of rendering to perform
when sending emails to recipients. Recipients are first categorized into
groups. Basic groups are partners and users. The notification template
is then rendered twice, one for followers and one for not-followers. In most
cases there will be few rendering to perform. Through inheritance it
is possible to further categorize users. For example HR users / officers
that have approve / refuse buttons in their email.

A custom data structure is used to store data about buttons and actions.
URLs, follow / unfollow are added in the structure and used in the
template to render the email for a given group.

New routes are added in mail. Those allow to perform some action, like
going to a form in create mode, following / unfollowing, executing a method,
sending a signal for a workflow. Those routes are for users only and rely
on classic access rights.

A generic route for viewing records is added. It replaces the old redirect
action. According to some specific action given by the already-existing
get_access_action, the record will be visible for everybody (forum, blog)
or restricted (going on the Inbox / login / form view, according to access
rights).

The next commit will add the various inherits necessary to add the actions
in the main addons.
2015-08-28 17:30:42 +02:00
Thibault Delavallée e6f038a821 [REF] mail: mail_thread: followers update
Followers can now be partners or channels. Partners following a document
will receive needaction, as previously. However people can follow documents
through channels. Members of a channel are able to listen to a stream
of messages using the channel. Those messages do not create needaction
messages. It is therefore possible to follow documents without receiving
too much notifications. For interesting documents subscribing with its
partner will create notification.

message_follower_ids fields is udpated. It is now a many2many to
mail.followers, not to res.partner anymore. A subscription can be either
a partner (partner_id) or a channel (channel_id).

Some access rules have been updated accordingly.
2015-08-21 12:11:56 +02:00
Thibault Delavallée 098fcb7e4e [MOV] mail: move code for email notification
Move the notification management from mail.notification to res.partner model.
Those methods belong more to the partner model, as they work on partners.
Moreover with the upcoming new model for NewChatter notification will be
heavily refactored.
2015-08-21 12:11:55 +02:00
Thibault Delavallée 4b122ad41d [MIGR] mail: migration to the new API 2015-04-27 10:36:15 +02:00
Thibault Delavallée c51c908e85 [FIX] mail: invite: name of the document was missing in the link to access the document, leading to 'Access False'. 2014-08-29 13:08:10 +02:00
Thibault Delavallée c64b077362 [FIX] mail: fixed bounce email recognition + invite email headers + mass mailing statistics not lost anymore
- [FIX] bounce regex: too many emails were considered as bounce and therefore
not displayed in the chatter and lost for the communication history. The regex
was not correctly looking for the bounce alias in the email_to.
- [FIX] invite email: replying to the invitation email (invitation as new
follower) now replies to the user sending the invitation.
- [FIX] mass_mailing: added a column to store the id of the original email
in addition to the many2one column. The many2one is set to null when deleting
the original email. As the information is necessary, it is saved on another
field. The many2one is necessary for indexes purpose as the inverse of
a one2many.
2014-08-11 15:39:26 +02:00
Jaydeep Barot 026e38b48f [REM] Unnecessary size parameters on char fields 2014-06-25 17:13:43 +02:00
ajay javiya (OpenERP) 748253929f [IMP]: set default 'sendmail' check box true
bzr revid: aja@tinyerp.com-20131125092349-jpgsilprpag4a2bq
2013-11-25 14:53:49 +05:30
Olivier Dony 9c08e12962 [MERGE] Forward-port of latest 7.0 bugfixes, up to rev. 9085
revision-id: odo@openerp.com-20130429105458-r89mnkx8okdxsdld

bzr revid: odo@openerp.com-20130429151410-54y94063gijyk16o
2013-04-29 17:14:10 +02:00
Thibault Delavallée ca4ccafb37 [FIX] mail: invite: avoid sendign a void invite message; but cleditor produces <br> instead of a void message when deleting the widget content.
bzr revid: tde@openerp.com-20130425085256-6jpfesyhbo7qgis3
2013-04-25 10:52:56 +02:00
Raphael Collet 96ad608854 [IMP] general: use registry[X] instead registry.get(X) when X is dynamic
bzr revid: rco@openerp.com-20130329143720-80pkd4csemlk1aqz
2013-03-29 15:37:20 +01:00
Thibault Delavallée 7e696dfdcb [MERGE] Sync with trunk and latest mail changes.
bzr revid: tde@openerp.com-20130318122027-l570iyzlljshz4ne
2013-03-18 13:20:27 +01:00
Thibault Delavallée 4484a3197c [MERGE] Sync with trunk, resolved conflicts due to forward port of 7.0
bzr revid: tde@openerp.com-20130315114338-54scb00rkp7zwr30
2013-03-15 12:43:38 +01:00
Thibault Delavallée 4387187b8b [IMP] mail: invite: slighty updated invite message. Updated tests accordingly.
bzr revid: tde@openerp.com-20130315110554-rszi5u1c9dybzq46
2013-03-15 12:05:54 +01:00
Quentin (OpenERP) be05b374a1 [MERGE] forwardport of bugfixes made in v7 up to revision 8854.
bzr revid: qdp-launchpad@openerp.com-20130314112740-s01t51p4m7mxcumz
2013-03-14 12:27:40 +01:00
Thibault Delavallée aa054ebb74 [REV] mail: reverted commit 8802. Reason: opt-out will be used only for marketing campaigns; notification_email_send for emails.
bzr revid: tde@openerp.com-20130306142741-ghazensh58xw3rvu
2013-03-06 15:27:41 +01:00
Christophe Matthieu a6f2191dc6 [FIX] mail_followers: invite tests
bzr revid: chm@openerp.com-20130305102644-3goqo24diirjoq0z
2013-03-05 11:26:44 +01:00
Christophe Matthieu a57c079700 [IMP] mail_followers: invite tests
bzr revid: chm@openerp.com-20130305101143-6mcydxw60y18kw20
2013-03-05 11:11:43 +01:00
Christophe Matthieu 2c73e51a54 [IMP] mail_followers: invite message '<user_name> invited you to follow <model_name> document: <document_name>'
bzr revid: chm@openerp.com-20130305094956-93lf0ttjw02a9omb
2013-03-05 10:49:56 +01:00
Thibault Delavallée 916bde1c3a [IMP] invite: only opt_out is taken into account when sending invite emails; added some comments to clean the code in 8.0
bzr revid: tde@openerp.com-20130306082445-hg2flvidtgso30dq
2013-03-06 09:24:45 +01:00
Thibault Delavallée ade7c33f18 [FIX] invite: do not send invite notification emails to partners having 'none' or opt_out.
bzr revid: tde@openerp.com-20130306080306-86k0pmzqiqilknzw
2013-03-06 09:03:06 +01:00
Christophe Matthieu 905984f687 [IMP] mail: invite with send email option false by default
bzr revid: chm@openerp.com-20130226124117-9uryhnemglbjh1jd
2013-02-26 13:41:17 +01:00
Christophe Matthieu c81f9536a5 [MERGE] from trunk
bzr revid: chm@openerp.com-20130226105528-oc73iis3eyuft4f9
2013-02-26 11:55:28 +01:00
Thibault Delavallée 0aaca4daa9 [IMP] mail: improved mass mailing. Correctly take into account email_to, email_cc, partner_to even if no template. Mass mailing is a no-subtype post with additional recipients manually notified. Added option (in technical features) to send to followers, or to directly create a mail_mail. Added some default values in mail_message. Added explicit management of email_from and reply_to. Having a reply_to bypasses the 'model-res_id' in message_id behavior allowing to construct threads. Added explicit recipient_ids field on mail_mail that replaces the recipient_ids parameter in mail_mail.send(). Updated tests accordingly.
bzr revid: tde@openerp.com-20130225164857-i635atksj7riq9nd
2013-02-25 17:48:57 +01:00
Raphael Collet 55d652e778 [FIX] mail: test 'id not in record_list'
bzr revid: rco@openerp.com-20130221142249-a8go4wtcbi6v1ymb
2013-02-21 15:22:49 +01:00
Christophe Matthieu 468fed66be [IMP] mail: add a method get_signature_footer to add a good signature on bottom of messages sent with the chatter and invite followers
bzr revid: chm@openerp.com-20130124094241-k9ophrwqhne611il
2013-01-24 10:42:41 +01:00
Thibault Delavallée df7eb6120c [MERGE] Sync with 7.0
bzr revid: tde@openerp.com-20130104105657-s8hif4p63oem8ddz
2013-01-04 11:56:57 +01:00
Thibault Delavallée f881997d60 [IMP] Invite wizard: emails send when invinting someone now contains sur user signature.
bzr revid: tde@openerp.com-20130104091045-74dn4lj9yyxdfdf6
2013-01-04 10:10:45 +01:00
Christophe Matthieu b0c55ff530 [IMP] mail invite: change browse into read for add signature
bzr revid: chm@openerp.com-20130103152610-mvb6b03u6bbfs3i6
2013-01-03 16:26:10 +01:00
Christophe Matthieu 992dbb2fbf [IMP] mail invite: add signature in invite and not in mail_mail
bzr revid: chm@openerp.com-20130103085732-p329g28wrslplfq3
2013-01-03 09:57:32 +01:00
Thibault Delavallée 92b9d12222 [FIX] Invite wizard: model and res_id were overrided with False by default, not necessary.
bzr revid: tde@openerp.com-20121227164336-22ejph1imvl6hl65
2012-12-27 17:43:36 +01:00
Thibault Delavallée 63d993e45d [CLEAN] invite wizard: removed unused method onchange_partner_ids. Cleaned a bit code in invite_view.
bzr revid: tde@openerp.com-20121221133928-lytc76vbs0bdnhuz
2012-12-21 14:39:28 +01:00
Cecile Tonglet 15fe515601 [MERGE] From trunk
bzr revid: cto@openerp.com-20121217144306-tkodwpox30cuvb28
2012-12-17 15:43:06 +01:00
Thibault Delavallée 45e1682327 [FIX] [CLEAN] mail: fixed some access rules issues; removed now unused files.
bzr revid: tde@openerp.com-20121211143301-b52ji02vynvgo3m9
2012-12-11 15:33:01 +01:00
Vo Minh Thu 6072fd11af [MERGE] merged trunk.
bzr revid: vmt@openerp.com-20121210111654-0pm3pupnqqeip52n
2012-12-10 12:16:54 +01:00
Vo Minh Thu e7f4891d46 [IMP] use the openerp namespace.
bzr revid: vmt@openerp.com-20121206145632-0h1coh5aaem65wsy
2012-12-06 15:56:32 +01:00