Commit Graph
227 Commits
Author SHA1 Message Date
Raphael Collet 6037f3a56d [REF] fields: change API and semantics of converter methods
The cache data format has been split between a cache format and a record format
(returned by accessing a field on a record).  We have the following converters:

                                   ANY FORMAT
                                       |
                                       | convert_to_cache
                                       v
                                  CACHE FORMAT
                                       |
                                       | convert_to_record
                                       v
                                 RECORD FORMAT
                                       |
                                       | convert_to_read
                                       | convert_to_write
                                       | convert_to_onchange
                                       | convert_to_export
                                       | convert_to_display_name
                                       v
                                 OTHER FORMATS

Modify the API of the converter methods to make them uniform (pass value and
record), and adapt their documentation.
2016-04-25 13:37:11 +02:00
Christophe Simonis ddb0fb2739 [MERGE] forward port of branch saas-9 up to 59d3f63 2016-03-24 16:53:45 +01:00
Denis Ledoux 002722b967 [FIX] mail: Discuss > Send mail sends a private message
For a message to be considered as a private message,
the message must have:
 - `no_auto_thread` set to `False`
   in other words, it must not be attached to a thread
 - no `model` or `res_id` must be set on the message
   meaning the message is not attached to a specific
   record thread.

See `_get_message_id` in `mail/models/mail_message.py`.

Before this revision, the mails sent from
`Discuss` > `Send mail` were not regarded
as private messages,
but as a kind of mass mailing messages,
with a `reply-to` wrongly set.
Any attempt to reply to these mails
failed with a delivery failure notification.

This was because the `message-id` of these messages
contained `reply-to`, and such message-ids are
treated as a special case in the messages routing
(basically, the match on the mail references is disabled
for these messages containing `reply-to` in
their message-id).

opw-669241
2016-03-08 15:38:10 +01:00
Nicolas Martinelli 88e7122020 [FIX] mail: mail_server_id
When a specific SMTP server is set on a mail template, it is never used
when the mail is sent. There are two reasons:
- `mail_server_id` is a read-only field set by an onchange. However, a
  read-only field is not sent to the server, so the information is lost.
- The information is stored in the context of the object `Mail`, but it
  is never used. Moreover, when the method `message_post` is called, the
  `Mail` object is not used to post the message, so the information is
  lost again.

The fix includes two parts:
- the `mail_server_id` field is not read-only anymore. Actually, there
  is no reason to make it read-only.
- the information is stored directly in the mail values and used at the
  appropriate moment.

Fixes #6554 (from v9.0)
opw-669958
2016-03-03 13:24:41 +01:00
Thibault Delavallée 0408f7931f [IMP] mail: compose options for mass mailing
Composer in mass mailing mode currently keeps a copy of the emails in the
document communication history (chatter). It is done by keeping the
mail_message that is used to create the mail_mail record. It is now possible
to customize this behavior. Using auto_delete_message one can choose to not
keep a copy of the sent emails.

Note that the notification field on the mail_mail is used to know if the
associated mail_message has to be unlinked when unlinking the mail_mail.

Auto deletion of sent emails is based on the option on the template used
to generate the emails. It is now possible to bypass the template behavior
if requested, using the auto_delete field in the composer. If this field
is not set, the previous behavior applies.

It is now also possible to tune the message_type and subtype_id of the
posted message. Previously all messages posted through the composer
were comments with a computed subtype being either a comment or a note.
Those values are now default values but can be changed in the wizard
and correctly taken into account when posting the message.

Those modification do not change anything in the default behavior of the
composer and templates. They are mainly introduced for use in future
improvements in various addons, like sending reminder emails that are
not stored.
2016-02-01 12:03:17 +01:00
Goffin Simon dc02f773ce [FIX] mail: onchange_template_id
When using context action for a template, the report was not shown in
the compose message as an attachment.

opw:657152
2016-01-21 14:36:20 +01:00
Thibault Delavallée 2bfb880503 [FIX] mail: auto delete
Correctly set the auto delete property coming from the template in the composer.
Set the mail_auto_delete context key for message_post, and directly set the
auto_delete field value in mass mailing mode.
2016-01-13 10:34:09 +01:00
Thibault Delavallée b783e25a1d [FIX] mail: template signature duplicated
When using a template adding the signature, do not re-add it when posting
the message on a document. For example the Sale Order - Send by Email
templates generated two signature in the email.

This issue has been introduced when migrating mail to the new API.
2015-12-09 09:59:03 +01:00
Christophe Matthieu 0300e0b7ba [FIX] mail: onchange_template_id return a valid command of commands
Use convert_to_cache and convert_to_read to format onchange values.
Fix: default value can be a command list, the onchange convert the comand list into a wrong comand list of command list.
2015-09-11 11:07:07 +02:00
Jérome Maes 7674536713 [IMP] mail : message_post_with_template helper
Create `message_post_with_template` helper method to factorize the simulation of a mail.compose.message wizard.

Also, fix the generated attachments of mail.compose.message wizard by returning ORM command (6, 0, ids) instead of the list of attachments ids. In order to standardize the behavior of the wizard, and since the ORM support command assignation in onchange api.v8, all the x2many fields of the wizard return a command.

FYI, that was tde's idea !
2015-09-04 15:55:38 +02:00
Thibault Delavallée c56c5cf1e2 [CLEAN] mail: removed duplicated code 2015-06-09 12:19:07 +02:00
Christophe Simonis fe2b5f35a4 [MERGE] forward port of branch saas-6 up to bf1e999 2015-05-28 14:27:38 +02:00
Christophe Matthieu 19a42a694e [FIX] mail: partner_ids default value for mail_compose_message must send a valid command list 2015-05-22 12:29:12 +02:00
Christophe Simonis 14a7d52307 [MERGE] forward port of branch 8.0 up to 327e471 2015-05-21 14:50:39 +02:00
Christophe Simonis 327e471c9b [MERGE] forward port of branch saas-3 up to b62ee07 2015-05-21 14:19:24 +02:00
Christophe Simonis b62ee0734c [MERGE] forward port of branch 7.0 up to eaaca65 2015-05-21 14:11:39 +02:00
Nicolas Martinelli eaaca65594 [FIX] mail: does not write "False" if mail body is empty
opw-640309
2015-05-21 12:22:50 +02:00
Thibault Delavallée 4b122ad41d [MIGR] mail: migration to the new API 2015-04-27 10:36:15 +02:00
Christophe Simonis 9750c1eae3 [MERGE] forward port of branch 8.0 up to 44059bc 2015-04-20 12:33:31 +02:00
Christophe Simonis 7f2de62378 [MERGE] forward port of branch 8.0 up to 33a8989 2015-02-11 17:25:33 +01:00
Christophe Simonis 18e22be138 [MERGE] forward port of branch 8.0 up to 0aab81c 2015-01-19 17:15:56 +01:00
David Monjoie 8be3cabf8a [FIX] mail: fixed notes logging using mail wizard
Seems like the wizard was still looking for the old js context hack from before d5a8905 instead of testing against the new field
2015-01-19 10:43:31 +01:00
Damien Bouvy 573cc737dd [FIX] mail: action buttons passed arguments positionnally, which caused the context to be passed as another argument. An intermediary function screens the arguments before calling send_mail. 2015-01-13 10:36:47 +01:00
Julien De Coster d88c34d11e [IMP] Mass mailings send in cron
1. The merge of the "email_template" module into the "mail" module.
2. The send action of the mass mailing has been moved from the frontend to a cron, because it was too slow to send over 10,000 mails (the user's browser was blocked for 15 - 20 minutes). Mass mailings have now their own process in the kanban view.
3. Mails sent from the mail form are sent immediatly instead of from the mail queue (for instance, when you go to sales > customers > list view > select 2 -3 customers > More > Partner Mass Mailing).
4. Users have now the choice from which mailing list they want to unsubscribe when they click on the unsubscribe link at the bottom of the mail.
5. Mass mailings inherit from their campaign UTMs and mass mailing campaigns are linked to an UTM campaign.
6. Many little improvements
2015-01-07 18:01:58 +01:00
Denis Ledoux 2592f149a0 [FIX] mail: model can be None or uninstalled
This is related to rev. 83b28737e9
2014-12-02 16:50:45 +01:00
Denis Ledoux 83b28737e9 [FIX] mail: no_auto_thread default True if the model has no mail.thread 2014-12-02 16:06:51 +01:00
Denis Ledoux 6061ccda54 [FIX] mail: batch_size expects an integer 2014-11-24 16:42:26 +01:00
Denis Ledoux bbd20dbbc5 [FIX] mail: allow to set own batch size for mass mailing 2014-11-24 16:38:12 +01: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
Thibault Delavallée 0c462a12b9 [FIX] mail: compose wizard: fixed default_get overrides not correctly managing the received field_list + improved custom call to default_get to correctly manage its in and out values. 2014-08-07 08:54:10 +02:00
Thibault Delavallée 7f0353974d [REF] mail: same_thread field changed into no_auto_thread, its contrary, to avoid migration issues (adding a 'always False' column is easier than an 'always True'). 2014-08-04 14:46:47 +02:00
Raphael Collet cbe2dbb672 [MERGE] new v8 api by rco
A squashed merge is required as the conversion of the apiculture branch from
bzr to git was not correctly done. The git history contains irrelevant blobs
and commits. This branch brings a lot of changes and fixes, too many to list
exhaustively.

- New orm api, objects are now used instead of ids
- Environements to encapsulates cr uid context while maintaining backward compatibility
- Field compute attribute is a new object oriented way to define function fields
- Shared browse record cache
- New onchange protocol
- Optional copy flag on fields
- Documentation update
- Dead code cleanup
- Lots of fixes
2014-07-06 17:05:41 +02:00
Thibault Delavallée 719a4f02c9 [REF] mail, crm, hr_recruitment, project, project_issue: simplified reply-to of notification emails (now displaying 'YourCompany -docname- <email>' instead of 'Followers of ...'; added same_thread directly on the mail.message model to ease the reply_to and message-id computation; factorized a bit the reply-to generation for a batch of records; udpated tests accordingly. 2014-06-23 10:47:47 +02:00
Thibault Delavallée 0ce1ecd6db [FIX] mass_mailing: various fixes 2014-06-18 11:10:31 +02:00
Denis Ledoux da231e909a [FIX] mail: commited pudb ... its late and it has been a while since the last time : ). 2014-06-01 22:10:54 +02:00
Denis Ledoux dd36a0e509 [FIX] mass_mailing: on mass mailing sending, set same_thread for message composer
same_thread boolean field of mail.compose.message model define wether or not replies should be posted in the thread or not
On composer creation, this boolean should be passed according to the reply_to_mode of the mass_mailing
Otherwise, all replies would be posted in the thread, and the reply_to will be ignored (if same_thread id True, reply_to is poped from the mails values, mail/wizard/mail_compose_message.py:284)
2014-06-01 22:08:56 +02:00
Denis Ledoux 97c0dbcd0a [FIX] mail: do not link email to a model/res_id if this model doesn't support new message 2014-06-01 21:27:55 +02:00
Martin Trigaux 1ab962d338 [FIX] mail: convert attachments to binary as it is the expected format of message_post opw 604205
The double convertion (render_message and send_mail) is done to keep the API but should be changed in next version.

bzr revid: mat@openerp.com-20140415161441-q6pfueetvv0namgw
2014-04-15 18:14:41 +02:00
Thibault Delavallée 3eaeae55a0 [IMP] mail, mass_mailing: better recipientsz computation
for mass mailing, composer and template. This allows to have one method computing recipints
and avoid repetiting myself.

bzr revid: tde@openerp.com-20140415154700-zu2izvxfjq1k4h4a
2014-04-15 17:47:00 +02:00
Thibault Delavallée 98472d8253 [CLEAN] Removed commented print
bzr revid: tde@openerp.com-20140415144943-ov6g4n9tzjxtwlk9
2014-04-15 16:49:43 +02:00
Thibault Delavallée 55fc583f36 [REM] mail: compose message: removed unnecessary code
bzr revid: tde@openerp.com-20140415143343-on2d3j92o6zifq59
2014-04-15 16:33:43 +02:00
Thibault Delavallée 73bebb6563 [IMP] mail: default recipients management
- mail.compose.message: in render_message_batch, compute defaults recipients
for the composer (method called for mass mailing only). This way values are
available for inheriting models.

bzr revid: tde@openerp.com-20140325135347-9v7u4uokffy7ud43
2014-03-25 14:53:47 +01:00
Thibault Delavallée 79cb083a62 [IMP] mail: mail_compose_message: some code
cleaning in get_record_data + code cleaning in get_mail_values + management
of the previously introduced method get_default_recipients, to be sure that
in mass mailing an email is effectively sent to a customer / lead / applicant
/ ... because with an ill-configured template, you could have mass amiling
mailing nobody.

bzr revid: tde@openerp.com-20140321171723-7e3lk64knojf09at
2014-03-21 18:17:23 +01:00
Thibault Delavallée 43cc054048 [FIX] mail_compose_message: create Re subject only when having a parent
bzr revid: tde@openerp.com-20140317132227-mcey6ywjr1g6pe9g
2014-03-17 14:22:27 +01:00
Thibault Delavallée d5a8905941 [IMP] mail_compose_message: added is_log boolean field for internal notes; + removed context hack that
did the same thing. Fixed composer form view: internal note, only subject + body is
displayed.

bzr revid: tde@openerp.com-20140317122409-5fd5d5uwc35oq0hb
2014-03-17 13:24:09 +01:00
Thibault Delavallée 48deceb6c6 [IMP] [REF] mail_compose_message: slightly cleaned wizard code to lessen the number of corner cases and
to remove unnecessary code.
post and filter_id fields have been removed as they are not necessary.
Updated tests accordingly to new mass mailing tests: mass mailing create
emails, no message_post anymore using followers.

bzr revid: tde@openerp.com-20140317115315-ws8dvjbiv5rspk43
2014-03-17 12:53:15 +01:00
Thibault Delavallée 48098b5df1 [IMP] mail.compose.message: removed unnecessary code, email_from is already corretly managed
bzr revid: tde@openerp.com-20140314174827-nent5v02s2v2y2n0
2014-03-14 18:48:27 +01:00
Thibault Delavallée e6f6960d17 [MERGE] Sync with trunk
bzr revid: tde@openerp.com-20140314162124-fn8f9ne80skha19h
2014-03-14 17:21:24 +01:00
Thibault Delavallée db2bdee343 MERGE] [FIX] email_template: fix relative -> absolute url conversion
Local URLs are converted into absolute URLs, notably because when using the
email designer, images are added using local URLs. Previously to this fix
the template was analyzed to find local URLs and make them absolute.
However this causes 2 issues :
- mako-based URLs are broken because a scheme is added before the mako that
generated the image src
- when changing the base url, the templates are not updated
The URLs are now converted dynamically when generating the content of the
html. This is done by passing a new parameter that enable the post processing
of the generated content.
Also fixed double body generation when using templates; fields parameter
was not propagated correctly.

bzr revid: tde@openerp.com-20140304112957-l9b10gyjqphs5fgc
2014-03-04 12:29:57 +01:00
Thibault Delavallée dd99c96ca2 [CLEAN] mail: some code cleaning in the modifications
bzr revid: tde@openerp.com-20140224142236-l61eqddc4vq9y861
2014-02-24 15:22:36 +01:00