Commit Graph
8105 Commits
Author SHA1 Message Date
Thibault Delavallée cfbbc229d8 [IMP] test_mail_full: add mass_mailing test, notably for preview / browser view
Purpose of this commit is to add some mass mailing tests in test mail full
(with all community mailing capabilities installed). In this commit we notably
tests unsubscribe and view URLs computation in sent emails, as well as
the invisible preview block for email clients.

Task ID-2239327
Task ID-2239327
PR #49886

Related: odoo/enterprise#10091
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-08-05 13:55:04 +00:00
std-odoo ed4846dd9d [IMP] mass_mailing: add preview block for mailings
PURPOSE

When displaying an email in a list the mail client (gmail, outlook...) computes
a preview based on the content. This preview is generally not well computed as
it contains a lot of garbage and tags while it should contain only relevant
text.

SPECIFICATIONS

To build this preview, all mail clients read the content of the email.
The only way to be able to customize the preview is to add an invisible
HTML element at the beginning of the email with the wanted preview text.

We add at the end of the preview `&zwnj;` (zero-width non-joiner) to
fill the end of the preview in order to not have the beginning of the
mail at the end of the preview. It doesn't work with simple space as
the mail clients trim each HTML element content.

Task ID-2172125
PR #49886
2020-08-05 13:55:04 +00:00
Didier (did) c69f2c9a3d [FIX] mail: tab cycling between chat window
Before this commit, cycling between chat window in LTR language clycled in the
wrong direction.
This commit also handle the RTL language cycling.

task-2279706

closes odoo/odoo#55456

X-original-commit: 638720f9d72616f2e921a475a5fdfd2ad9a2ab8b
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-05 11:04:12 +00:00
Alexandre Kühn 10f231f15e [FIX] mail: disable seen notification for 'channel' channels
This commit fully disables seen notification (vv) on channels with
multiple members.

This feature was already disabled on the UI, but the computation
still happened in the background. This was problematic with some
channels with thousands of members, as it took dozens of seconds
to fully compute seen "notification-related" fields during
`mail/init_messaging`.

Part of task-2308312

closes odoo/odoo#55449

X-original-commit: a03b0f3a0486dc86db1c69363723f71047812053
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-08-05 10:27:15 +00:00
Sébastien Theys ba03b6c697 [FIX] mail: save JS records per model and use exists if possible
This allows get to be simplified to only handle local id.

Part of task-2308312

closes odoo/odoo#55346

X-original-commit: fa013d1d29e64706a08499d0f564327766410f8e
Related: odoo/enterprise#12159
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-08-03 15:49:04 +00:00
Sébastien Theys fe029223a5 [FIX] mail: speed up JS models by better using JS language
- use Map for _toComputeFields
- factorize const access out of loops
- avoid Object.entries
- introduces `exists` method to avoid costly call to `get`
- ensure compute are using update to trigger potential _updateAfter

Part of task-2308312

X-original-commit: e364886c2450872a7e42cef549f253b10e55158d
2020-08-03 15:49:04 +00:00
Sébastien Theys 1d7285dc56 [FIX] mail: speed up JS models x2m link/unlink by keeping prev Set
Part of task-2308312

X-original-commit: 1a06077443582f99f58c8c62ab517e7e527f58ed
2020-08-03 15:49:03 +00:00
Sébastien Theys 505f0e9be9 [FIX] mail: batch insert to speed up _setRelationInsertAndReplace
Part of task-2308312

X-original-commit: ceac1e5c3e200c0617ae6b62227079b47a7623d5
2020-08-03 15:49:03 +00:00
Sébastien Theys 470280b663 [FIX] mail: use Map to speed up _toUpdateAfters
Part of task-2308312

X-original-commit: 225c17ea2c761cf8cd15305796e7da7c5b79353c
2020-08-03 15:49:03 +00:00
Sébastien Theys 24fba9fed7 [FIX] mail: speed up insert by using localId instead of find
Part of task-2308312

X-original-commit: 407dc9796543a27b6695c8d4da922c13dece5b38
2020-08-03 15:49:02 +00:00
Xavier Dubuc 874ce0846c [FIX] mail: fix dialogs titles
task-2282380

closes odoo/odoo#55276

X-original-commit: 1ce481baa2267ce912b5ec8c178af860c663d971
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-31 15:51:32 +00:00
Sébastien Theys 0d4cb52b9d [FIX] mail: batch create/insert of JS model for performance
PR: #55261
Part of task-2308312

closes odoo/odoo#55266

X-original-commit: eded5f6372d4f1cffd1a361bd8fa7fd8f1f8ae9e
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-31 14:43:15 +00:00
Sébastien Theys 7a1bfa793a [FIX] mail: fix performance of JS models update cycle
- wrap all JS model operations in update cycle
- properly delay execution of compute during `_updateAfter`

This allows to delay the execution of computes as long as possible, which
significantly improves performance, especially during init_messaging with plenty
of chat windows (due to compute of "visual").

PR: #55261
Part of task-2308312

X-original-commit: 79f85523ebef6b7ac4c198eec8b1e55e243f49d1
2020-07-31 14:43:15 +00:00
Sébastien Theys 78bef3e08c [FIX] mail: improve performance of JS write, especially for x2m
- store `x2many` values as `Set`. This is conceptually more correct because
  duplicates were already not allowed, and using a `Set` allows for much faster
  operations such as checking the presence of a record in the relation, which is
  done at every write, for every linked record.

- `stringify` in `write` was slow and unnecessary because we can always assume
  that new non-primitive should be provided to `write`

- remove field values from store, in favor of just storing a counter, which is
  enough to trigger renders. This allows to get rid of one Proxy level around
  data, which was slower, but which also prevented from using `Set`.

- write in store exactly once per update cycle, to trigger one `useStore` call
  on each component. Records keep `__state` but as a local counter, to let
  `useStore` know which records have been updated (easier to compare a counter
  than comparing each and every field value).

Results
=======

The worse case test (using a lot of x2m) that was used to benchmark this PR
`form_renderer_tests.js` of `mail_enterprise` went from taking around 4s before
this commit, to around 2.5s after this commit.
And the worse `_setRelationLinkMany2Many` previously took around 250ms, and it
now takes around 50ms.

The whole `mail` QUnit suite took around 55s before, now around 42s.

Part of task-2308312

closes odoo/odoo#55248

X-original-commit: 4db0a10d85534ef896f6bcbf13bca4983a6e2003
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-31 09:43:01 +00:00
Julien Castiaux f1215389e8 [FIX] mail: prevent international char in alias
Create a mail alias with non-ascii characters like 'foß', send an
email from your personal email account to that alias. The delivery fails
because Odoo SA servers don't support the SMTPUTF8 extension which is
required to parse the local-part ("display" <local-part@domain>) part of
a From header.

While external providers may create international, very weird, emails
and we should support receiving/sending emails from/to them. Our policy
is to only create very basic email addresses. That is all ASCII,
letters, digits and a limited set of punctuation characters.

Restricting what aliases can be created, we ensure no advanced extension
should be enabled on SMTP servers.

opw-2293336
Closes #53403

closes odoo/odoo#55166

X-original-commit: 4db3f21f52fa774ec651fc0b6eaa9a8652b2ae4c
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>
2020-07-29 23:44:47 +00:00
Xavier Dubuc e244bfa1c8 [FIX] mail: do not fetch 'user_notification' messages in thread
task-2296856
See odoo/enterprise#12095

closes odoo/odoo#55189

X-original-commit: 5aaff1547d04bccf20ef333f515811570e8b8e22
Related: odoo/enterprise#12100
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-07-30 09:23:02 +00:00
Sébastien Theys 6b06ada2c2 [FIX] mail: fix messaging locale update on translation bundle change
closes odoo/odoo#55167

X-original-commit: c3eb3f04e06cea84dd98323b6d10867dead5b953
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-29 15:41:10 +00:00
Xavier Dubuc a28f24ca3f [FIX] mail: prevent attachment delete from not authored message
task-2299330

closes odoo/odoo#55164

X-original-commit: c331b6761fbc1e8dd4d554109acab142ab02702d
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-29 15:39:56 +00:00
Xavier Dubuc 69d89218f9 [FIX] mail: fix read more/less span insertion
task-2248307

closes odoo/odoo#55163

X-original-commit: a8ea9bc98d114eef056babc0d2639eaddbcf3778
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-29 15:39:31 +00:00
Xavier Morel 6835aeb0de [REM] core, *: deprecate <act_window> and <report>
Convert deprecated tags through the codebase.
2020-07-28 13:03:13 +00:00
vha-odoo 89d5628c9d [FIX] mail: remove unnecessary gap between fields
prior to this commit :
there was a big gap between subject and recipients in mass mailing

with this commit:
the gap has been removed by improving css related to  mail emoji
drop-down (resopnsible for this gap).

task - 2291575

closes odoo/odoo#54940

X-original-commit: ae4c9be4419604affd980ae80b48f738a70b0b2c
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-07-27 07:47:12 +00:00
Julien MougenotandMathieu Duckerts-Antoine bb3bc7c9e4 [IMP] *: adapt modules to Owl search panel
Adaptation of the rest of the environment to the changes regarding the
refactored search panel and model.

This commit includes the following changes:

- Since the control panel model is now part of the search model, the
view widget is responsible of its instantiation with the appropriate
API; creating an ActionModel holding the required model extensions.

- The controller is now importing/exporting the state of the entire
search model as well as the current state of the search panel (given
throught its props). Changes have been made to adapt to this behaviour.

- The multiple components linked to the control panel model have been
adapted to reflect the changes brought to it (they will now listen to
the "searchModel" instead of the "controlPanelModel").

- The `test_utils_create` methods have also been adapted to properly
instantiate a searchModel

Part of task 2228968

Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
2020-07-23 08:21:10 +00:00
Alexandre Kühn 8528f45997 [FIX] mail: no crash on search partner from new message chat window
closes odoo/odoo#54852

X-original-commit: 64824c3a07908f601390646701bef7605f053455
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-07-23 14:48:08 +00:00
Xavier Dubuc c43cdd3f19 [IMP] mail: hide message error notifications if not origin thread
task-2282370

closes odoo/odoo#54768

X-original-commit: 4f693105bcaac7546590302cdc25c2b11b0f42cd
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-22 11:12:35 +00:00
Hiral Bhavsar d8284d84bc [FIX] mail: update and re-render the activity view
Before this commit: when props change, the internal state of the widget not
updated for the activity view. So it creating many issues:
    - The count of the progress bar doesn't go to update while scheduling
      the activity of the same type.
    - Date displayed on cell not getting updated while changing the
      due date by clicking on the cell.

This commit will update legacy widget from owl component, one need to override
renderWidget and updateWidget instead of render and update method as this has
been changed from commit https://github.com/odoo/odoo/commit/f2de55322e4d417815e6757517163dd0cff544cc

After this commit: the acivity view will be updated based on activity changes

Task-2238551
PR https://github.com/odoo/odoo/pull/54734

X-original-commit: 02c7d121935ab1b26d896e31eb0c90bf2b7abff8
2020-07-22 10:40:13 +00:00
Xavier Dubuc eb99a019ed [FIX] mail: fix inbox mark as read on single message
Clicking on mark as read on a given message would move all messages in
inbox to history instead of only selected message(s). This commit fix
that behaviour so that only the selected message(s) move(s) to history.

task-2284543

closes odoo/odoo#54688

X-original-commit: 3304b89fc799b979b028aa4c7efe902b2f5276c1
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-17 14:49:32 +00:00
Didier (did) c1b6c066bc [IMP] mail: focus the next chat window when closed by ESC
This allows user to close multiple windows with ESC key.

task-2283891

closes odoo/odoo#54604

X-original-commit: bac3d7792a48f86a39f92e0fcfc18d522ce00d94
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-16 16:24:25 +00:00
Xavier Dubuc 9ba8eb4a83 [FIX] mail: fix activity template (t-if placements)
odoo/enterprise#11836
task-2296875

closes odoo/odoo#54600

X-original-commit: 687628fa35063db5b44abcc758cae0a597df5ffe
Related: odoo/enterprise#11904
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-16 15:53:29 +00:00
Xavier Dubuc decf5147d1 [FIX] mail: show subject of the message in inbox if set
task-2280146

closes odoo/odoo#54599

X-original-commit: 3114c7dab3c7f0f63e59f01fd06237fdc109203a
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-16 15:53:02 +00:00
Jorge Pinna Puissant 11784de327 [REF] mail: extract the compute of date deadline to be used in hr
opw-2265631

closes odoo/odoo#54548

X-original-commit: c029bfeb3e04b5b314663db34db0a56b6165a6b7
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
2020-07-16 08:55:11 +00:00
Xavier Dubuc 978f8ca4ef [FIX] mail: fix moderation accept multiple messages button
Once global "Accept" button is clicked, the accepted messages were not
unchecked causing the button to stay hidden until next page reload.

task-2285430

closes odoo/odoo#54549

X-original-commit: 5594de16f463507498e852c2d49d1cbe74ed7381
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-16 08:56:31 +00:00
Xavier Dubuc c767df5e97 [FIX] mail: set full composer subject and recipients
task-2291887
task-2291893
task-2291898

closes odoo/odoo#54531

X-original-commit: 26170ad9ab09d75de2e0af98fb7daedc2ed57e50
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-15 16:18:53 +00:00
Xavier Dubuc 67a515ded9 [FIX] mail: introduce "assets_tests" assets bundle
Needed to merge introducing new assets in 13.4

odoo/odoo#54235
task-2291898
task-2291893
task-2291887

closes odoo/odoo#54485

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-07-15 09:27:20 +00:00
Xavier Morel 470fb905a9 [FIX] base, mail: properly annotate Partner.find_or_create
In 6e25a510b3 `find_or_create` was
modified to return a recordset rather than just an id. This made it
incompatible with the RPC protocol and it was not annotated to
downgrade the return value back to an id.

Fixes odoo/odoo#54466

closes odoo/odoo#54476

X-original-commit: a7e3894e20207b714cebefa908be090967866791
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2020-07-15 07:36:23 +00:00
Aaron Bohy af85bb5e13 [IMP] web,*: do not deploy services in tests
*mail,point_of_sale,web_editor,website

In the tests, required services are deployed for each test
independently. There is no need to have, in additon, all services
deployed globally. Worse, it could conflict and lead to unexpected
results.

This commit ensures services are no longer deployed globally in
tests. It turns the module 'web.env' into a declarative module with
no side-effect, by moving the service deployment to main.js, which
isn't added to the tests page.

Task 2287397

closes odoo/odoo#53817

Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2020-07-13 12:55:07 +00:00
Didier (did) 4c4f11580f [FIX] mail: assign correct subtype to "general" demo messages
Some demo messages have a grey background because they have the subtype_id set to
NULL.
The subtype should be `mail.mt_comment`, like other messages inside the general channel.

task-2278438

closes odoo/odoo#54261

X-original-commit: 9be1079cc62699d119b9c2acc6282bd72f71f9af
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-07-09 10:02:42 +00:00
Simon Genin (ges) 8d02a85c1d [IMP] project: fix mail alias
Update mail alias layout, makes email address
clickable (mailto) and fix a couple of typos.

Task ID 2287394

closes odoo/odoo#53960

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-07-03 08:53:36 +00:00
Xavier Dubuc 1ade38923c [FIX] mail: bring back extended composer for mailing channel
task-2171877
task-2282377
task-2282382

closes odoo/odoo#54249

X-original-commit: acf8eb3e2e49c1ade638ff1f2fed4969f9944053
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-07-08 18:04:28 +00:00
Xavier Dubuc f2d1cf9559 [FIX] mail: fix chatter topbar style
- Follow button is now correctly aligned in document app chatter overlay
- Topbar does not move up anymore on select Send Message or Log note

task-2287136

closes odoo/odoo#54247

X-original-commit: 6f05705158a7a197945e6720f5ac231ce6932686
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-07-08 16:42:25 +00:00
Xavier Dubuc 7091ad53e9 [FIX] mail: save scroll position of chat window when folded
- Remove no more used ThreadViewer prop : messageListInitialScrollTop
- Remove no more used ChatWindow prop : threadInitialScrollTop
- Rename ThreadViewer field threadCacheInitialPosition to
  threadCacheInitialScrollPosition
- Use the scroll position to set message list scroll on mounted
- Fix old test which was not simulating correctly home menu show
- Add tests to check that scroll position is correctly saved even if
  ChatWindow is folded
- Fix traceback when showing/hiding home menu with a folded chat window

task-2285691

closes odoo/odoo#54198

X-original-commit: 31123a94c156424b3962fe4aebc3cc60a7a89223
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-07-07 15:57:46 +00:00
Xavier Dubuc 36b1adb413 [FIX] mail: make composer use same subtype as message replied to
Before this commit, when clicking on reply in inbox would send a message
whatever the subtype of message the reply is linked to.
This commit makes sure that if the message which we want to reply to
is a note (resp. comment), then the reply will be a note (resp. comment)

task-2282363

closes odoo/odoo#54158

X-original-commit: 27956951eebc7c068a7d57e8bd21c29522f3ff9e
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-06 16:56:51 +00:00
Xavier Dubuc cdcb4638d9 [FIX] mail: do not let chatter to be rendered if form view is in dialog
task-2280151

closes odoo/odoo#54157

X-original-commit: 83f2a0605ad80cb8b544651b47b7d27e11b332cb
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-06 16:26:38 +00:00
Xavier Dubuc 5afc70faef [FIX] mail: fix open thread in discuss
See also odoo/enterprise#11684
task-2282273

closes odoo/odoo#54141

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-07-06 14:23:17 +00:00
Victor Feyens ad6b5e35f2 [IMP] *: do not translate logs
The logs should all be in the same language, s.t. one does not need to 
understand multiple languages when browsing/reading the server logs.

closes odoo/odoo#53984

Related: odoo/enterprise#11615
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2020-07-02 15:12:56 +00:00
Martin Trigaux 400cc4f14e [FIX] *: correct all or improve code translation lookup
This commit fixes all issues detected by the new pylint
gettext-variable test.
It converts some calls to the new syntax
  _("Foo %s", bar)

to progressively migrate the code to the new syntax.

A few calls were not technically incorrect but still detected by the
linter.

  _("Foo" +
    "Bar")

has been converted to

  _("Foo"
    "Bar")

as it has the same effect and make sure the argument is of type
asteroid.Const instead of BinOp).

closes odoo/odoo#53683

Related: odoo/enterprise#11467
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2020-06-30 10:19:59 +00:00
Xavier Dubuc a6e7833a7d [FIX] mail: fix activity directly mark as done display
task-2280174

closes odoo/odoo#53863

X-original-commit: 2638d32db686ef1906c2b2b45d3e9276fe831e52
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-06-30 11:09:35 +00:00
qho 1424a3839a [IMP] hr_timesheet: Improve the usability of timesheet portal
1. Generic timesheets improvements

    - Portal /my/timesheets
    - Add a group bys task, date, employee
    - Add search in project, name, employee, task
        * The task column should not be visible if none of the timesheets have the Task field set
    - If a group by task, date, employee or project is applied, the corresponding column should not be visible

2. Timesheets from sub-tasks on parent tasks

    - Portal /my/tasks
    - Display the 'Total Hours' spent on a task at the end of the list of timesheets
    - Below the list of timesheets for the task, display another table detailing the respective timesheets (and total hours) of each sub-task linked to this task (= 1 table/list per sub-task)
        * Title should be: 'Timesheets for sub-task: xyz'
        * only visible if there are sub-tasks linked to this task
        * only visible if total hours > 0

3. Timesheets on Invoices

    - Portal /my/invoices
    - Add Project + task fields
        * Task field only visible if set on one of the timesheet entries
        * Project field only visible if there are at least 2 different projects in these timesheet entries

4. Correct visibility for the portal users
    - Portal users is allowed to see timesheets if the users are added in allowed portal users list in the project
    - When a portal user is added as the message follower of the project, the user is added to allowed portal users as well
    - When a portal user is removed from allowed portal users, the user is also removed from message followers

closes odoo/odoo#47248

Taskid: 2201908
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-06-29 11:56:36 +00:00
Sébastien Theys 1c058b72d8 [FIX] mail: fix (inbox reply) composer event handlers (and discard)
task-2092950

closes odoo/odoo#53731

X-original-commit: c29f5776594c4d2278ce163a78d8eb917fb672c0
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-06-26 11:21:35 +00:00
Sébastien Theys dc011d1246 [IMP] mail: MockServer: add get_mention_suggestions on res.partner
Pr: #53449
X-original-commit: 4f21a77703985d085037dc3d0e472970573810ec
2020-06-26 11:21:35 +00:00
Xavier Dubuc e01ad94c4b [FIX] mail: fix composer buttons style
- emoji button was shifting right on click
- log/send button color was not correct

task-2274349

closes odoo/odoo#53724

X-original-commit: 41a7bb6e9b0c674ca3db5638d17e85f1b3b33f79
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-06-26 10:02:16 +00:00