Commit Graph
388 Commits
Author SHA1 Message Date
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
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
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
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
Thibault Delavallée 6b7e901352 [IMP] mail: clean a bit code generating links and correctly manage kwargs in controllers 2016-11-04 10:50:29 +01:00
Olivier Dony 715860ea29 [FIX] mail, product: remove deprecated m2m params
`id1`, `id2`, `rel` are deprecated now that we switched to the
new API, and are simply ignored.
Keeping them is confusing because the default names are being
used instead.

@rco-odoo: We should add a warning in the m2m constructor if these
unsupported parameters are still passed.
2016-10-27 10:20:17 +02:00
Thibault Delavallée 323dab7653 [REF] mail: remove compatibility for support of model-res_id message-id in mail gateway
Old versions of Odoo did not correctly manage message_id of mail messages.
Thread formation was based on information present in References and/or in
In-Reply-To of replies to emails. Message-Ids could contain model and
res_id of a record. Thread formation was done using this information.

However commit 8253453d64 fixed that behavior
by correctly checking in existing mail_messages to find matching message-ids.
Message found was set as parent and thread formation was correctly done without
collision or possible issues with badly formatted Message-Ids.

A compatibility mode was introduced at the same time to handle previous versions
of Odoo.  This commit removes this compatibility as it was done long enough
to ensure compatibility is not required anymore.

[TESTS] mail: tests updated, compat mode should raise in all cases now
2016-10-14 12:22:46 +02:00
Damien Bouvy a3509d282d [FIX] mail: use explicit 'active' domain for user count in ping
Before the migration to the new API of this code, the context was
not propagated to the update_notification call.

This is now the case, which is unfortunate since the context of the
cron action has an 'active_test'=False key, which causes the ping
to count user differently when the cron is triggered from the form
view.

This commit adds explicit ('active','=',True) domain to ensure we
only count active users when pinging.
2016-10-12 11:23:34 +02:00
Christophe Simonis f3532a6da6 [MERGE] forward port branch saas-12 up to 54ebe31 2016-10-11 19:07:42 +02:00
Christophe Simonis 54ebe31f51 [MERGE] forward port branch saas-11 up to 685e310 2016-10-11 18:33:18 +02:00
Christophe Simonis 685e3104ec [MERGE] forward port branch 9.0 up to 7bdb6f9 2016-10-11 18:23:27 +02:00
Christophe Simonis 7bdb6f9c8d [MERGE] forward port branch saas-6 up to adead97 2016-10-11 18:00:27 +02:00
Christophe Simonis 341bea8f88 [MERGE] forward port branch saas-12 up to 43cb4ac 2016-10-10 13:00:05 +02:00
Olivier Dony f9da4970ab [MERGE] Forward-port saas-11 up to eb6b256f99 2016-10-04 01:20:17 +02:00
Olivier Dony eb6b256f99 [MERGE] Forward-port 9.0 up to b64b9619f8 2016-10-04 00:16:09 +02:00
Thibault Delavallée 0b87f76628 [IMP] mail: separate management of mail routes from redirection
Move code related to redirection in its own class method. This way all
controllers perform their own actions and checks before calling the
redirection itself. Moreover it is necessary for some controllers to be
able to call the redirection independently outside of the mail/view
controller scope.

This commit also fixes some links generated for mail notification email
buttons. Assign and (un)follow buttons now effectively use the link helper
when generating the associated URL instead of manually crafting it.

Custom routes for notification buttons used in HR and CRM are added.
Indeed in order to be able to fine-tune the behavior called by those
buttons, using dedicated controllers is simpler than trying to use
a generic one. As there are few custom buttons in notification emails
using dedicated controllers does not lead to a code overhead.
2016-10-03 19:03:50 +02:00
Christophe Simonis 1bb51b5536 [MERGE] forward port branch saas-12 up to 9dc383e 2016-10-03 11:22:40 +02:00
Christophe Simonis 9dc383e84b [MERGE] forward port branch saas-11 up to 415f1af 2016-10-03 11:16:11 +02:00
Christophe Simonis 415f1af939 [MERGE] forward port branch 9.0 up to 2c5ef3b 2016-10-03 11:14:47 +02:00
Christophe Simonis d2d1233429 [MERGE] forward port branch saas-6 up to ba790d1 2016-10-03 10:47:55 +02:00
Thibault Delavallée 8acd298a56 [FIX][IMP] mail: make tracking great again
When changing tracking mecanism in v9 'always' tracked fields lost their meaning.
They were managed like 'onchange' fields. This commit sets the old behavior back.

 * 'onchange' fields are displayed in tracking every time they change
 * 'always' fields are displayed in tracking every time they change or whenever
   other tracking exist; those are used to display some contextual
   information
2016-09-30 14:39:31 +02:00
Christophe Simonis a7ba6cde9c [MERGE] forward port branch saas-12 up to 7134aff 2016-09-28 16:28:31 +02:00
Christophe Simonis 2c6d32ca7d [MERGE] forward port branch saas-11 up to 34186fd 2016-09-28 14:46:29 +02:00
Christophe Simonis 12548d3e73 [MERGE] forward port branch saas-10 up to e8b8784 2016-09-28 13:17:37 +02:00
Christophe Simonis e8b8784d5c [MERGE] forward port branch 9.0 up to 9ba5698 2016-09-28 12:59:25 +02:00
Olivier Dony 40bce50ddb Revert "[FIX] mail: onchange_template_id"
This reverts commit dc02f773ce.

This commit caused a side-effect that is worse than the issue
it tried to fix, which was purely cosmetic.
Now in mass-mail mode the template is only rendered once
and all recipients receive the same PDF, which completely
defeats the goal of a dynamic report. We have static
attachments for that.

Original fix related to opw-657152
Reverts PR #10568
2016-09-27 19:39:30 +02:00
Christophe Simonis a22d206ac4 [MERGE] forward port branch saas-10 up to faaacab 2016-09-26 14:24:50 +02:00
Thibault Delavallée 599bd5092b [FIX] mail: fix inline attachments having the same name always taking first found attachment 2016-09-26 11:43:14 +02:00