Commit Graph
73 Commits
Author SHA1 Message Date
XavierDo 05749032b3 [FIX] mail: order columns in activity view
The columns should be sorted by sequence in activity view
2018-09-21 11:27:28 +02:00
XavierDo 932ac0e42a [FIX] mail: clean context before default activity creation
When trying to mark an activity as done & launch next from the crm
kanban view, an default_type "opportunity" was present in the context,
and kept untill trying to create a voip phonecall if the default
next activity type had a category "Phonecall". Removing the default
from the context in this case will avoid this kind of error.

PR: #27128
2018-09-20 12:42:33 +02:00
XavierDo 47496b9fe5 [IMP] mail: add force_next on activity type
A new field on activity type allow to change the behaviour of mark done & schedule next:
-marking as done will automatically schedule the next activity, based on the default_next_activity.
-It should also be impossible to edit an activity when this flag is on.

task: #1884521
2018-09-18 13:44:00 +02:00
Thibault Delavallée a75b7cd517 [IMP] mail: sort activity summary view by deadline ascending
Purpose of this commit is to have first activities to perform displayed
first in the activities summary view.

This commit is linked to task ID 1882545 and PR #26797.
2018-09-07 15:29:57 +02:00
XavierDo 7f47dcae5b [FIX] mail: improve activity view and fix activity feedback
-Improve no content helper on activity view

-Update chatter after editing an activity un form view

-Avoid context to appear as feedback
When using call_button the context is set as an arg and will be catched by
the kwargs of the called action.

As for action_feedback, we can create a wrapper without kwargs
used when calling this method from a button to avoid this problem.

Another solution would be to change the call_button in order to give
the context as a kwargs. Maybe a possible improvement for master.

-Remove groupby from activity view
group by has no effect on activity

-Change cursor to pointer on record name in activity view

Task: #1878184
PR: #26668
2018-09-07 14:59:05 +02:00
Thibault Delavallée 94d7c48185 [MOV] mail: move activity code
This recent code should not have been placed at this point.
2018-08-27 14:25:32 +02:00
XavierDoandRomainLibert 0be33db68a [IMP] mail: refactor activity.js and add some test
activity.js was a little dirty with a lot of copy paste.
Most of the common logic is now in a BasicModel.

This commit also add some tests on activity view

Co-authored-by: RomainLibert <rli@odoo.com>
2018-08-20 16:00:09 +02:00
XavierDo 830f31e433 [FIX] mail: correct computation of date_deadline
The indentation of the computation of date_deadline was incorect
leading to a deadline only getting compute when the base date was
depending on a previous activity.
2018-08-17 16:22:48 +02:00
Martin Trigaux d97e69ff02 [FIX] mail: schedule activity with user's today
The activity was incorrectly scheduled with a deadline as the now in UTC while
the state was computed using "today" in the user's timezone.
This made the nightly test fail (run at 23:30 UTC with the user in UTC+2).

Use context_today instead of today for all activity_schedule calls
To make it easier, use on the context_today default value instead of setting
context_today everywhere (which is more error prone in the future)

Never use datetime, only date objects
add a warning to detect potential errors when passing a datetime

Closes #26411
2018-08-17 13:46:39 +02:00
Christophe Simonis 0ac7f8fbe6 [MERGE] forward port branch saas-11.4 up to dabe59df9c 2018-08-14 20:16:03 +02:00
Christophe Simonis dabe59df9c [MERGE] forward port branch saas-11.3 up to 27d8daf8a7 2018-08-14 19:43:32 +02:00
Christophe Simonis 13f55a5a89 [FIX] mail: correct search for records without next activity date
`date_deadline` being required, search for records without deadline is
actually searching for records without next activities.
2018-08-13 16:28:45 +02:00
jem-odoo fa5a50e86c [IMP] mail: activity schedule with view
This commit extends the activity API to allow scheduling
activity with a Qweb template to format the activity message.

Task #39340
2018-08-10 16:30:19 +02:00
Prakash Prajapati 36854d3bda [IMP] mail: allow to reschedule assigned user on automated activities
Purpose of this commit is to add possibility of rescheduling the assigned
user on automated activities. Currently rescheduling is limited to updating
the deadline. In some cases we want to be able to update the assigned
user of an automated activity.

Tests are added to avoid regression.

This commit is linked to task ID 1838956 and PR #25899.
2018-08-10 15:36:04 +02:00
XavierDo 1de9496f14 [IMP] mail: add activity view
A simple new view to easily display all activity on a model grouped
by res_id and activity_type_id. Some action are possible like sending
a mail template for all record having an activity with this activity type
and present in the view (depends on the filter).

The view use the Kanban activity view on cells. It could be a good idea
to rename this widget to something like "DropdownActivityView" (maybe
after the freeze)

Task: #1870662
PR: #26272
2018-08-10 15:20:37 +02:00
XavierDo 83fc5dc03c [IMP] mail: add more powerfull delays on activity.
It was possible to define a delay in days on activity type
to reschedule next activity. It is now possible to specify a unit
(days, weeks, months) and a starting point for the delay
(as before, from the moment when the new activity is scheduled,
but also after the deadline of the previous activity).

We realy need to have all javascript action triggering a done
and schedule next to call the python corresponding method on
activities. A part of the work have been there but some
cleaning could still be done in activity.js.

Task: #1870662
PR: #26272
2018-08-10 15:20:37 +02:00
Thibault Delavallée 027b3a35d7 [IMP] mail: improve use of templates linked to activities
Purpose: Give the ability to people to directly sign (sic) an email template
without opening the mail composer.

Specifications
 * do not display 'email' in activity view: either there are emails and new
   display applies, either there aren't any and do not dispaly anything;
 * update display of template choice: https://www.awesomescreenshot.com/image/3531694/7f6ac0250009599089ec62b6951a88b4;
 * add an "mt 16" between activity and first mail template;

Tests have been updated to new specifications.

This commit is linked to task ID 1872169 and PR #26185.
2018-08-06 16:24:43 +02:00
Thibault Delavallée 92dcbfe8d0 [IMP] mail: add method to send an email on activity mixin
Purpose of this commit is to have a shortcut allowing to send an email based
on an email template in the activity mixin. Its use will be to integrate
the sending of emails directly in chatter-activity widget.

This commit is linked to task ID 1872169 and PR #26185.
2018-08-06 16:24:43 +02:00
Raphael Collet 960360afe4 [REF] *: use native date/datetime for Date/Datetime fields
From this commit onwards, Date fields will return datetime.date objects and Datetime fields will return datetime.datetime objects, this implies a number of things that are clearly explained both in the ORM API for master.

This commit also introduces a number of helper functions for dates and datetimes that are exposed in tools.date_utils and fields.Date[time], explained in the documentation as well.

Task-ID: 47189
2018-08-06 14:37:19 +02:00
XavierDo abbba35598 [IMP] mail: add mail templates on activity
This commit allows the user to link some mail template to activity type
with res_model.

When a activity has template, buttons appears in activity, allowing the user
to send mail based on templates.

Task: #1844563
PR: #25620
2018-08-01 15:26:30 +02:00
Thibault Delavallée 618c42575e [IMP] mail: remove activities when archiving records
When archiving records through the generic toggle_active methods we now
remove ongoing activities.

Purpose of this commit is to avoid having ongoing activities in the systray
linked to archived records. As archiving records means we won't work on
them anymore it makes no sense to keep related activities.
2018-08-01 10:24:36 +02:00
Thibault Delavallée 792efc8615 [IMP] mail: notify people when another user assigns them on an activity
When someone assigns an activity to another user it is a good idea to
notify this user a new activity has been assigned to him. This is done
using the message_notify method that sends a notification either in the
Inbox either by email depending on the user preferences.

This commits is linked to task ID 1854820. Closes PR #25265.
2018-07-27 17:22:31 +02:00
Thibault Delavallée 5d795d16f9 [IMP] mail: remove unused imports 2018-07-27 17:22:03 +02:00
Thibault Delavallée 17e0d52319 [IMP] mail: limit next / previous activities to same kind
When creating an activity type flow using recommended next activities we
should limit the available activity types by model. They should be either
generic either of the same kind. Otherwise you could have inconsistent
results.

This commit is linked to task ID 1844644 and PR #25843.
2018-07-26 17:16:03 +02:00
Thibault Delavallée 624d75ca94 [IMP] mail: store activity creator on activity record
Currently due to technical reasons all activities are created using the
superuser. It means we have no idea who created an activity. This
commit fixes that by adding a field used to store the activity creator.
It is also displayed in the vignette displayed in chatter giving details
on the activity.

This commit is related to task ID 1865557. Closes PR #25842.
2018-07-19 17:22:18 +02:00
jem-odoo c30155c13c [IMP] mail: allow to decorate background of activity notes
In some case, we want to have a different style for activities that
require attention for users. Sometimes activities should attract the
user attention with actions to perform that are important.

This commit introduces a decoration option on the activity type. By default
no decoration is done. However decoration type can be set to warning or
error. This triggers the related bootstrap alert classes.

This commit is related to task ID #1860833. Closes #25479.
2018-07-18 14:40:56 +02:00
Christophe Simonis 8db9865c2d [MERGE] forward port branch saas-11.3 up to 2214bffefb 2018-07-05 19:33:14 +02:00
Christophe Simonis 2214bffefb [MERGE] forward port branch saas-11.2 up to 45329c0cf2 2018-07-05 18:53:17 +02:00
Christophe Simonis 45329c0cf2 [MERGE] forward port branch 11.0 up to 84210074e5 2018-07-05 17:21:01 +02:00
Martin Trigaux a978a3647a [FIX] mail: multi-company access to TZ
- Create 2 Companies A & B
- Set User B in Company B
- Record some `mail.activity` for User B on a lead belonging to Company
  B.
- With a manager user in Company A, go to Kanban view of leads and
  remove filters => all leads, including leads in Company B, are
  displayed

An access error occurs.

`read_progress_bar` method, tries to access the field `activity_state`
which is: `states = record.activity_ids.mapped('state')`. The state of
a `mail.activity` is using the tz of the partner. To read the
`activity_state` of a lead, one needs to access
`record.activity_ids.user_id.partner_id.tz`
=> multi-company security rules raised

opw: 1850984, 1859470
2018-07-05 15:29:34 +02:00
Siddarth GajjarandMohammed Shekha 517f6d7246 [IMP] mail: improve recommended activities usability
When scheduling an activity after closing one, do not force a default
activity. Having the proposed activities is sufficient.

This commit also uses the newly-introduced selection badge widget to display
proposed activities as badges.

Co-authored-by: Siddarth Gajjar <sga@odoo.com>
Co-authored-by: Mohammed Shekha <msh@openerp.com>
2018-05-30 15:39:20 +02:00
Christophe Simonis f36e6917bd [MERGE] forward port branch saas-11.3 up to 37eed7c509 2018-05-29 17:34:43 +02:00
Thibault Delavallée 96a223a5f0 [IMP] mail: prevent creation of activities to users that have no access to document
This commit is related to task ID 58968 . Closes #24176.
2018-05-15 15:42:54 +02:00
Christophe Simonis 5a751fa200 [MERGE] forward port branch saas-11.2 up to aae54ecc15 2018-05-09 15:45:20 +02:00
Christophe Simonis ac63dfc8f4 [MERGE] forward port branch 11.0 up to 8dade01e2c 2018-05-04 16:10:50 +02:00
Nicolas Lempereur 2b0d68bc41 [FIX] mail: activity in date tz but counts are not
When creating an activity, the date saved will be the choosen one in the
tought in the client timezone.

But when displaying the counts of activities Late/Today/Future, the date
is tought out as the one in the server timezone.

Thus we would have activity today/future/late not corresponding with the
date in the current timezone.

This is solved in this change and follow what was done in 72254129.

A second change is made so the default "Due date" is today in the
timezone and not today in UTC date.

opw-1837894
closes #24554
2018-05-05 00:38:35 +13:00
Christophe Simonis 87e21ccdc5 [MERGE] forward port branch 11.0 up to 521414b1c1 2018-05-02 19:36:16 +02:00
Nicolas Martinelli 33b6edfd2f [FIX] mail: onchange activity
- Set a default value for the field 'Activity Type'
- Schedule an activity

The default value doesn't appear.

The default value is taken into account, but the onchange override the
value.

opw-1838066
2018-04-26 12:53:30 +02:00
Christophe Simonis 74033eb007 [MERGE] forward port branch saas-11.2 up to 90f8f17fb4 2018-04-16 19:50:50 +02:00
Dharmang Soni 807c4c3f5e [REF] mail, note: move reminder feature from mail to note
This commit refactors f488dc58c3 that added reminder feature in activities.
After merging it was suggested specifications were not correct and it has
been decided to move the whole reminder feature in note.

Reminders are now notes instead of activities. Now when having note appµ
systray proposes to create a note / reminder. A note.note record is created
with info given by the user. If a date is given in the systray quick create
then an activity is scheduled on this note.

This means user can create records in activity systray that are not
activities but notes used as reminders. Those will use the first availableµ
note column for the user.

As reminders are now notes the support of activities not linked to any
document is removed, as well as archiving activities and tests linked to
that behavior.

This commit has been not carefully tested nor in-depth reviewied. It is
considered as too important for the upcoming freeze. This closes task ID
1833628. Closes #24129 . Many thanks to @dpr-odoo for its quick development
and good work on this task.
2018-04-09 14:35:06 +02:00
Christophe Simonis 860dfb5586 [MERGE] forward port branch 11.0 up to d277adf4d5 2018-04-06 15:36:10 +02:00
Lucas Perais (lpe) 72254129db [FIX] mail_activity: state of activity is TZ dependent
Have your user and your system in timezone Sao Paolo
When it is 2200 TZ time, UTC is the day after 0100

Have a activity schedule for today

Before this commit the activity was flagged as overdue.
This was because we compared the date deadline of the activity (no TZ)
to the date.today() in Python
While date do not have TZ legitimately, the moment (and place) you create them matters
Thus, we compared the date of the server (UTC -- day +1) to a date set by the user (TZ -- day -1)

After this commit we make up a date according to the user's tz
And the activity is not overdue, but in state 'today' as it should

OPW 1827920
closes #23969
2018-04-04 09:49:46 +02:00
Thibault Delavallée 4451e505cd [IMP] mail: use xmlid_to_res_id instead of ref in remaining places of mail
As explained in previous commit we can use xmlid_to_res_id instead of ref()
which leads to some query gain. This commit update some other less important
places: when setting activities as done and in the composer. This lead to
a gain in tests involving activities and composer, including tracking
triggering a template. On community runbot this leads to a gain of about 1K
queries.
2018-03-28 16:57:05 +02:00
Thibault Delavallée 60b81e00b2 [IMP] mail: add tool methods to manage activities directly from the mixin
This commit adds tools methods related to activities in the mail.activity
mixin. It gives to models inheriting from the activity mixin an easy-to-use
API to schedule, unlink or mark activities as done. Purpose of those methods
is to avoid having people manually managing activities in the code to hide
the technical details of the activities model, notably access rights
or activity types.

A field is added on activity model to indicate they have been generated
automatically. This way when rescheduling or unlinking based on some
specific activity types we do not change user-created activities.

Those methods include scheduling activities, changing their dates, marking
them as done or unlinking them. Future commits will use those methods
in various addons to automatically generate activities based on workflow
we want to implement.

This commit also adds tests for the newly added code. Future commits should
probably have a look at activity security and add some tests cases to check
it is correctly taken into account. It is considered a bit out of scope for
this task.

Thanks to @jem-odoo for its in-depth review of this commit. Well thanks for
other commits also.
2018-03-27 15:00:46 +02:00
f488dc58c3 [IMP] mail: allow to use stand alone activities as reminders
This commit allows to create personal reminders and to manage them using
activities. It is done using activities not necessarily linked to a record
but only to a user. Reminders can be used for example as a personal todo
list.

Technically we choose to model a reminder as an activity related to no
record. This means having a void res_id and model. An activity type is
added to classify reminders in it.

Settings reminder as done is not done like classic activities. Indeed classic
activities are unlinked and a message is logged on the related document.
As there is no document for reminders those are archived instead. It means
an active field is added as well as an override of toggle_archive to update
systray counter.

Activities systray widget is improved to display reminders in activities
list. This entry leads to a kanban view of activities allowing their
management. It is also possible to create them directly from the systray
allowing a quick creation of reminders.

This commit is related to task ID 41745. Closes #22143 .

Co-authored-by: Dharmang Soni <dpr@odoo.com>
Co-authored-by: Xavier Dollé <xdo@odoo.com>
2018-03-27 13:26:41 +02:00
Christophe Simonis 0f57bdba72 [MERGE] forward port branch saas-11.2 up to 42659dc70c 2018-03-09 16:25:58 +01:00
Christophe Simonis 4aa5ec3fa5 [MERGE] forward port branch 11.0 up to d67b410dfc 2018-03-07 18:46:38 +01:00
Nicolas Martinelli f7307d64b8 [FIX] mail: activities of archived records
- Create an activity for a crm lead
- Set the lead as lost

The activity still appears in the list.

A proper fix would be to have an `active` field on `mail.activity`. In
the meantime, simply delete activites when archiving.

opw-1817703
2018-03-05 11:49:42 +01:00
Thibault Delavallée adea9fa6cb [IMP] mail: remove commented code
Leftover of last commit due to wrong push. My bad.
2018-02-09 16:48:08 +01:00
Thibault Delavallée e899812315 [REF] mail: reduce query count to create activities by making activity_date_deadline not stored
Activity mixin adds an activity_date_deadline field that is a related on
activity_ids. This one is a o2m using a domain based on the current record
model. Indeed activities are cross-model, like mail.message.

However as it is stored it generates are a lot of unnecessary computation
when activities are updated. Indeed when activities change the related
computation is triggered for every model inheriting from the activity
mixin. It then applies the domain in order to find record to update. This
generates a lot of void queries because only one will match the activity
model.

This commit makes the field not stored anymore. Indeed it is used mainly
in filters. Same functional result can be achieved using a computed and
searchable field.

We gain a lot of queries when creating activities as indicated by the
counter update in this commit. Creating a record inheriting from activity
mixin is a bit improved since there is less computed field to compute.
Creating an activity costs a lot less queries and we gain about 40%
in term of query required to create an activity when a lot of models are
using the mixin.

On community runbot it makes a gain of 2% when installing all modules.
This commit allows to save 13K queries on 587K (current) which is quite
good.
2018-02-09 16:45:36 +01:00