Commit Graph
413 Commits
Author SHA1 Message Date
Thibault Delavallée 80d26e26bb [IMP] mail: notify author of internal notes when replied through gateway
Currently if an user mentions someone in an internal note he is not
notified of any reply as replies create internal notes. This commit
ensure the author of the first note is notified of the reply even
if it is still an internal note.

Tests have been updated accordingly.
2017-02-21 10:39:43 +01:00
Christophe Simonis a282d4ae7f [MERGE] forward port branch saas-14 up to be9dfb331f 2017-02-10 18:41:06 +01:00
Nicolas Martinelli d2b9e8aa03 [REF] base, mail: use new format_date method 2017-02-09 15:15:59 +01:00
Christophe Simonis 6a942a9e96 [MERGE] forward port branch 10.0 up to 8a0151b4bc 2017-02-02 12:42:51 +01:00
Olivier Dony aca34baba8 [FIX] mail: fix cardinality issues in bounce processing
A couple of places in the processing of bounces only
accepted a single matching partner. But there could
be multiple partners matching an email address, and
we should handle them all.

There might also be no matching `bounced_thread_id`
matched by the regex, so we should guard against a
bounced_thread_id == None.
2017-01-31 19:21:56 +01:00
Christophe Simonis 7b2924253b [MERGE] forward port branch 10.0 up to 7427825790 2017-01-25 16:27:38 +01:00
Christophe Simonis 6a7db30508 [MERGE] forward port branch saas-11 up to f23394b83a 2017-01-25 15:01:29 +01:00
Christophe Simonis 74c6e895f6 [MERGE] forward port branch 9.0 up to 3e31dc0ba4 2017-01-25 13:14:38 +01:00
Christophe Simonis 3e31dc0ba4 [MERGE] forward port branch saas-6 up to 09f7916f48 2017-01-25 13:04:50 +01:00
Christophe Simonis d87ab049e2 [FIX] mail: require res_model_id on followers
The flag has been forgotten with 94d2b97da4
2017-01-24 16:55:51 +01:00
Christophe Simonis 6c4389df41 [MERGE] forward port branch 10.0 up to 6804085b8c 2017-01-23 14:33:53 +01:00
Raphael Collet 4a18d5744e [FIX] base: restrict read access to ir.model and ir.model.fields to employees 2017-01-20 10:05:10 +01:00
Thibault Delavallée 3efc16e9a0 [FIX] mail: fix typo introduced at last forward port
Format all the dae
2017-01-18 11:36:27 +01:00
Christophe Simonis 44276dfdc3 [MERGE] forward port branch saas-11 up to a0aca47fef 2017-01-17 19:12:20 +01:00
Christophe Simonis 70f86ce4e8 [MERGE] forward port branch 9.0 up to 16fa61b34f 2017-01-17 18:04:57 +01:00
Raphael Collet 3649b7f359 [FIX] base: access rights of ir.model and ir.model.fields
This partially reverts commits 5d746d0ac6 and
73de86c768.

The tightening of access rights was too strong: regular users need to be able
to read models and fields (to create an email templace, for instance.)

[FIX] ir_values: in `get_actions`, exclude field `code`
2017-01-17 16:15:26 +01:00
Christophe Simonis 16fa61b34f [MERGE] forward port branch saas-6 up to 7cb977fc3c 2017-01-17 16:11:05 +01:00
Denis Ledoux 94da369231 [FIX] mail: template, format date to customer language
Up to now, there was no possibility to format a date
within a specific language, such as the customer
language. The date was always displayed with the format
YYYY-mm-dd.
(There was for the datetime, thanks to format_tz, but
not for a simple date without time)

This revision adds this possibility, but doesn't change
the according email templates
(such as the invoice date on the invoice email template)
as it would require to update all translations, in
the .po files and on transifex.

If a user absolutely want this, he has to add
the call to `format_date` himself, manually.

opw-704260
2017-01-12 18:48:02 +01:00
Thibault Delavallée 3bc580f9f9 [IMP] mail: uniformize deadline naming in activities, let us use deadline everywhere 2017-01-12 12:53:11 +01:00
Thibault Delavallée 870974effe [IMP] ir_actions, mail: add add_followers server action
Add a server action allowing to add followers, either partners or
channels, to documents.
2017-01-03 19:11:07 +01:00
Yannick Tivisse 8fa9f7d6d4 [REF] ir_actions: refactor and simplify ir.actions.server
Main idea of this commit is to simplify the various options of
ir.actions.server model. Purpose is to make it a simple tool to
execute some actions or python code. This has two main consequences

 * create and update server actions are simplified to update only the
   current record. Complex options can always be achieved by python code
   instead of error-prone option building mechanism;
 * condition of server actions is removed. If a condition is necessary it
   can either be included in a code server action, or integrated in an
   automated action;

This commit features :

 * remove 'client_action' server action type. Indeed this can be achieved
   with a code server action returning an action;
 * remove 'condition' on ir_actions_server model. From now on conditions
   and triggers are managed in server action code or using automated
   or scheduled action;
 * clean 'create and copy a record'. Create and link are the proposed
   options. Copy of the record or of a selected record is removed. Link
   is simplified by removing the parsed expression that allowed complex
   path update. It is simpler to write code than write python-like
   expression in char fields;
 * remove 'use_write' options. It now simply updates a record;
 * remove 'write_expression' as it is replaced by code actions;
 * remove 'ref_object' not used anymore with the removal of "choose
   a record";
 * remove helper to build an expression not used anymore with the removal
   of "write expression";
 * remove object ID finder;
 * removed template display when choosing an email template; just go
   on the template if you want more details;
 * refactor server action form view to reflect changes. It will be used
   in future commits as base view for automated and scheduled actions;
 * add 'sequence' in list view;
 * add new 'usage' selection field allowing to distinguish which model
   uses the server action. Indeed as server action will soon be used
   in scheduled or automated actions having a clue about the usage
   is always helpful;

Thanks to @fpodoo for the original idea and preliminary work. Thanks to
@jpr-odoo for first developments. Thanks to @jem-odoo and @rco-odoo
for reviewing.
2017-01-03 19:11:06 +01:00
Thibault Delavallée bcc0212bfb [IMP] ir_actions: perform small code cleaning
* use selection and selection_add to replace old indirection for state
   field and ease code understanding
 * update various strings and helps
 * update Python code helper to match new API changes, notably model,
   record and records being recordsets
2017-01-03 19:10:28 +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
Raphael Collet d0ca2d115e [REF] ir_config_parameter: remove group_ids and simplify
Add `sudo()` to call `get_param` where necessary, and make the web client use a
controller instead of directly accessing parameters.
2017-01-03 16:52:49 +01:00
Raphael Collet 7543afb070 [IMP] base, *: tighten ir.config_parameter access rights
Add `base.group_system` on existing parameters:
 - `auth_signup.allow_uninvited`,
 - `auth_signup.reset_password`,
 - `auth_signup.template_user_id`,
 - `google_redirect_uri`,
 - `mail.bounce.alias`,
 - `mail.catchall.alias`,
 - `mail.catchall.domain`.
2017-01-03 16:52:49 +01:00
Christophe Simonis b844d93889 [MERGE] forward port branch 9.0 up to 3805eb620a 2017-01-02 12:49:55 +01:00
qdp-odoo 4f29b77e3d [MERGE] foward port of 10.0 up to revision 84a650e33a 2016-12-30 17:21:25 +01:00
Thibault Delavallée 64ea747824 [FIX] mail: fix record model and ids management when posting using a template
Posting on a document not inheriting from mail_thread was impossible
due to several crashes or wrongly set variables. Some cleaning is planned
in those methods as there are a lot of unnecessary computation. This will
be done in another commit. Probably.
2016-12-30 10:45:39 +01:00
Thibault Delavallée 72d988cba5 [FIX] mail: fix message creation for models not inheriting from mail_thread
You may want to send emails related to a document not inheriting from
mail.thread. In that case we have to use the default computation of
reply_to and not call a method defined only if the model inherits
from mail.thread.
2016-12-30 10:44:39 +01:00
Thibault Delavallée 655c70319d [IMP] mail: hide Unsubscribe button in channels using group-based subscription
Group-based channels automatically add people belonging to user groups to the
channel. If a member leaves the channel he will be automatically added back
by the channel automatic subscription. This generates unnecessary changes and
messages in the channel.

We now prevent people from leaving group-based channels. All group members
have to be channel members. Unsubscribe buttons are therefore removed for
those channels.
2016-12-30 10:28:42 +01:00
Nicolas Martinelli 3d777ad262 [FIX] mail: escape canned responses
Create a canned response containing the character "<". It is
automatically converted into "&lt;".

The substitution field is systematically escaped, for security reason.
This causes the substitution observed. However, the canned responses are
only used in text-only messages. The escaping is therefore not
necessary, since the HTML is not interpreted.

opw-693970
2016-12-22 17:46:59 +01:00
Ravi Gadhia 0811c20d9c [IMP] mail: partner: add support of activities support on res.partner model 2016-12-21 11:00:16 +01:00
Ravi Gadhia 60bacefd01 [IMP] mail: add activities allowing to define next actions on various models
This commit introduces generic activities to use in your addons. Activities are
actions user have to take on a document like making a phonecall or organizing
a meeting. Activities come with the mail module as they are integrated in the
Chatter but are not bundled with mail.thread.

New models are

 * mail.activity.type: used to categorize activities. Each type is a different
   kind of activity e.g. call, mail, meeting. An activity can be generic i.e.
   available for all models using activities; or specific to a model in which
   case res_model_id field should be used.
 * mail.activity: an actual activity to perform. Activities are linked to
   documents using res_id and res_model_id fields. Activities have a deadline
   that can be used in kanban view to display a status. Once done activities
   are unlinked and a message is posted. This message has a new activity_type_id
   field that indicates the activity linked to the message.

This commit introduces a mail.activity mixin to use in various addons that
enables the activities feature. It works like the mail.thread mixin. It defines
a activity_ids one2many field toward activities using res_id and res_model_id.
Various related / computed fields are also added to have a global status of
activities on documents.

Activities come with a new JS widget for the form view. It is integrated in the
Chatter widget although it is a separate widget. It displays activities linked
to the current record and allow to schedule, edit and mark done activities.
Use widget="mail_activity" on activity_ids field in form view to use it.

There is also a kanban widget defined. It defines a small widget to integrate
in kanban vignettes. It allow to manage activities directly from the kanban
view. Use widget="kanban_activity" on activitiy_ids field in kanban view to
use it.

Next commits will aim at integrating activities inside main Odoo addons.

Thanks to R&D India for their work and testing on this task. Thanks to belgian
Usabiliteam for reviewing and testing it. Thanks to @jem-odoo for the final
review. May his soul lie in peace with the trumpets of paradise.
2016-12-21 10:56:15 +01:00
Thibault Delavallée 4f54f13074 [FIX] mail: customers should not follow default internal subtypes
This is a manual forward-port of commit 03ac47b9d7

Currently when someone is added as follow to a document default subtypes
are computed if no specific subtypes are given to the subscription. However
if internal subtypes are set as default those are added to all new
followers. It should take into account customers and shared users and avoid
adding them internal subtypes.

Customers and shared users are not notified of messages using an internal
subtype. So currently there is no information leak. However with this fix
we ensure internal subtypes are not followed by external people even if
no notification is created.

Compared to original commit tests are slightly updated because there are now
default internal subtypes in data. Not in 10.0 and previous versions.
2016-12-21 10:53:39 +01:00
Pedro M. Baeza 88a9ee2565 [FIX] mail: customers should not follow default internal subtypes
Currently when someone is added as follow to a document default subtypes
are computed if no specific subtypes are given to the subscription. However
if internal subtypes are set as default those are added to all new
followers. It should take into account customers and shared users and avoid
adding them internal subtypes.

Customers and shared users are not notified of messages using an internal
subtype. So currently there is no information leak. However with this fix
we ensure internal subtypes are not followed by external people even if
no notification is created.

From #14704, backport of 03ac47b9
2016-12-21 10:42:49 +01:00
Jeremy Kersten 3f267a5951 [FIX] mail: avoid to send email about assignation to active_domain.
Before this commit, 'select all' into a list view, and use an action that assign
a user_id to all the records will send n² email, because the function send_mail
use active_domain instead of the current record.

Now, we keep mass_mail mode, but simulate the case where we have clicked on
each record one by one and not all the records matching the active_domain.
So we send only one email by record.

How to reproduce:
   create a action server "record.write(dict(user_id=env.user_id))"
   add this action in context menu
   select all records in a list and apply the action server
2016-12-20 17:58:03 +01:00
Thibault Delavallée 03ac47b9d7 [FIX] mail: customers should not follow default internal subtypes
Currently when someone is added as follow to a document default subtypes
are computed if no specific subtypes are given to the subscription. However
if internal subtypes are set as default those are added to all new
followers. It should take into account customers and shared users and avoid
adding them internal subtypes.

Customers and shared users are not notified of messages using an internal
subtype. So currently there is no information leak. However with this fix
we ensure internal subtypes are not followed by external people even if
no notification is created.
2016-12-13 12:57:58 +01:00
Christophe Simonis c292202a47 [MERGE] forward port branch 10.0 up to 18456b9 2016-12-09 15:58:39 +01:00
Jeremy Kersten 2b243e3650 [IMP] mail: allow to pass ´mail_auto_subscribe_no_notify´ in context to avoid spam
When you write on user_id in a model, that will automatically send an email
to the new user_id assigned.

In case where it is write in batch, that can be considered as spam.

In some case, the user will be aware from another way that with this email.
2016-12-07 11:08:31 +01:00
Christophe Simonis b33f919e3d [MERGE] forward port branch 10.0 up to aec8e25 2016-12-06 17:38:40 +01:00
Thibault Delavallée db72451607 [FIX] mail: avoid notifying a message by email when it is already an email
When creating a mail.mail without giving a mail_message_id, a new mail.message
is created. It does then through _notify that notifies people of the message
creation. This leads to mail being sent two times, one when sending the
mail.mail, one when sending the notification.

This commits fixes that behavior. When creating directly a mail.mail without
giving a mail.message, call to _notify is bypassed. This way either an email
is created, either a message that has to be notified is created, but not both.
2016-12-06 15:15:48 +01:00
Thibault Delavallée df037e2959 [FIX] mail: correctly handle replies to thread containing external emails
When Odoo sends emails their Message-Ids are either generated by Odoo or
use the original Message-Id in the case of an incoming email going through
the mail gateway.

When the mailgateway handles replies to those emails it checks their
References or In-Reply-To in order to find matching Message-Ids and find
the reply's parent. Currently it is limited to Message-Ids matching the Odoo
pattern. However if an external email began a discussion thread, references
will not hold any odoo-like pattern.

Previously to commit 0028c42136 this was hidden due to a bug when
managing private messages. This code was also managing replies to external
emails due to a probably undesired side effect.

Correct way of checking if an incoming email is a reply to a thread is to
check that References or In-Reply-To Message-Ids match some stored Message-Ids
of mail.message. They don't have to match Odoo patterN
2016-12-06 15:15:48 +01:00
Thibault Delavallée 588b6020a6 [CLEAN] mail: remove unused import 2016-12-06 15:15:48 +01:00
Jérome Maes 13f84b9aca [REM] *: remove ir.needaction mixin
ir.needaction_mixin is not used anymore by the webclient.
From 9.0, the concept has changed: this feature is now
available in mail module, with the mail.thread mixin,
and message_neeadction field.

Remove all code handeling needaction bullet and
counter on ir.ui.menu, knowing that since 9.0
webclient does not display the counter anymore.

This code was, thus, useless and some RPC calls
were done for nothing, and adapt accounting
reconcialiation widget.
2016-12-05 11:30:03 +01:00
Thibault Delavallée 94d2b97da4 [IMP] mail: make res_model of followers model a related on m2o towards ir.model
When uninstalling a module followers stay in the database because there is no
real link between ir.model and followers. Adding a m2o ensure followers are
correctly removed when uninstalling a module.

res_model fields is kept as a stored related field. This allows to keep
compatibility with almost all code using / searching on followers. Only
followers creation is changed a bit. As follower creation is done mainly
through a dedicated method few changes are required. Yey. Mat should be
happier now.

fix test
2016-11-23 11:13:18 +01:00
Christophe Simonis e348330b57 [MERGE] forward port branch 10.0 up to 6a18e31 2016-11-22 17:59:41 +01:00
Christophe Simonis be00718645 [FIX] mail: do not notify inactive partners 2016-11-21 17:55:00 +01:00
Jeremy Kersten 8ea3464231 [IMP] mail, website: remove deprecated code 2016-11-21 13:46:18 +01:00
Jeremy Kersten 651976521b [IMP] base, mail: action server: remove deprecated code 2016-11-21 12:56:59 +01:00
Thibault Delavallée df01742fc0 [REF] mail, note, project, project_issue: remove 'new' button in notification emails
As this button leads to a void form view without context it is not
really usefull. As creating new records is achieved using aliases
there is no real need for a New Task/Issue/Note button.

mail/new controller is kept for compatibility but should be removed
before v11.
2016-11-04 10:50:29 +01:00