Commit Graph
210 Commits
Author SHA1 Message Date
Pierre Paridans 24f89c6dff [FIX] mail: scroll to bottom assertion in Chrome 94+
Since (at least) Chrome 94+, some element's sizing computation returns a
slightly different value (in the order of a fraction of a pixel). Sadly,
due to rounding, this difference has an impact on exact sizing
assertion.

As the difference is *really* small, introducing a margin of error (i.e.
<= 1px) looks reasonnable ; as implemented in this commit. More
specifically as Element.scrollHeight can have either an int or a decimal
value (cf. fractional-scaling), this commit allows to property handle
both usecases.

Reference:
https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled

closes odoo/odoo#92328

X-original-commit: 93348ae0d0b076fe2dfa094a2d7b3ef74442d390
Related: odoo/enterprise#27790
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
2022-05-26 10:48:41 +02:00
Sébastien Theys f2877f711a [IMP] mail: introduce and clean follower views
Part of task-2810734

closes odoo/odoo#92193

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-05-24 19:11:06 +02:00
tsm-odoo 038e83e7aa [IMP] mail, *: replace target by document
*: hr, hr_holidays, im_livechat, test_mail.

The target returned by the mail's test utils start method is useless since it's
almost the same thing than querying document. Let's remove it and replace it by
document. This will reduce the diff in the PR introducing the new environment in
the discuss app.

task-2582313

closes odoo/odoo#92077

Related: odoo/enterprise#27670
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-24 11:43:57 +02:00
Didier (did) 0b1846bb46 [IMP] mail: display channel invite group restriction
Before this PR, nothing warned the user that the invitation link was restricted to
a user group.

task-2818094

closes odoo/odoo#88562

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-23 17:31:45 +02:00
Zelong Lin 659c61219f [REF] mail: use tracking models rather than fields
Introducing tracking_value and tracking_value_item models for tracking value.

task-2817111

closes odoo/odoo#88547

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-23 17:31:42 +02:00
tsm-odoo e423618dca [IMP] mail, *: prepare activity menu tests to wowl env
*: calendar, note, test_mail.

This PR prepares the ground for the one introducing the new environment in the discuss app.
Indeed, the start helper won't be able to handle widget anymore. To solve this issues,
we're now adding the activityMenu widget to the systrayMenu.Items array, this will be
mapped by the createWebClient helper to component and added to the new systray item
registry.

task-2582313

closes odoo/odoo#91953

Related: odoo/enterprise#27614
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-23 16:27:54 +02:00
Ipsita Borisagar c272573905 [FIX] mail, test_mail_full: remove an obsolete method
Before this commit:

There is an obsolete method 'channel_fetch_listeners' which is not needed now.

After this commit:

Removed this obsolete method.

Task-2827899

closes odoo/odoo#91876

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-20 13:15:49 +02:00
Didier (did) 97dcefc91a [IMP] mail: remove isDisabled props for FollowerListMenu component
closes odoo/odoo#91616

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-20 13:15:21 +02:00
tsm-odoo 3c10fcadee [IMP] mail, web: allow ui size patching during tests
Until now, when we add to patch the ui size, we would have patched one of the following:
	- config.device.{isMobile,size_class}
	- (wowl) env.isSmall / env.services.ui.{isSmall/size}
	- (legacy) env.device.isMobile
	- (legacy/wowl) browser.innerWidth

The issue is that patching one does not affect the others resulting in an incoherent state.
In order to ease ui size patching, the `patchUiSize` method has been introduced. This method
take either a size or a width as parameter (eg. SIZES.SM, 1920) and affect all the properties above.

task-2582313

closes odoo/odoo#91540

Related: odoo/enterprise#27428
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-19 16:40:12 +02:00
tsm-odoo 52d6089e1a [IMP] mail: replace env.browser by wowl browser
This PR prepares the ground for the one introducing the new environment in the discuss app.
Indeed, switching from `env.browser` to the wowl `browser` makes a lot of noise in the main
PR. In order to reduce this noise, this change is done now.

task-2582313

closes odoo/odoo#91622

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-18 13:08:22 +02:00
Sébastien Theys 2825af7623 [IMP] mail, test_discuss_full: only return ids of public partners
Other data are not actually used. This will improve performance a bit (less
queries, less data to return) until the need to return this list goes away (it
requires a bigger refactoring).

task-2847983

closes odoo/odoo#91576

X-original-commit: 61e472aa35ac825553144fd9a80fbf62e3e8b5e1
Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
2022-05-18 12:00:46 +02:00
Ipsita Borisagar c8db947024 [IMP] mail: activity keyboard navigation improvement
PURPOSE

Improve some mail activity issues regarding keyboard navigation.

SPECIFICATIONS

When done an activity using the record list view, allowing user ENTER key
support on "Done" or "Done and Schedule Next" button to post feedback and
mark the activity as done.

Task-2528109

closes odoo/odoo#82879

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-05-18 11:59:48 +02:00
tsm-odoo 2810d789ee [IMP] mail: move discuss widget logic into model part2
This PR prepares the ground for the one introducing the new environment in the discuss
app. Indeed, the discuss widget will be removed since it was used as an action. This widget
basically handle two things: rainbowman on empty inbox/push state. This second part focuses
on the push state aspect.

task-2582313

closes odoo/odoo#91450

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-05-16 18:35:11 +02:00
tsm-odoo 6c8fbd0da1 [IMP] mail, *: add sendmany/sendone to the mock server
*: im_livechat, website_livechat.

In order to reduce the noise in the PR introducing the new environment in
the discuss app, calls to widget.call, env.bus_service.call during tests
have been replaced by a mocked implementation of _sendone/_sendmany. Moreover,
this approach will allow us to mock the longpolling during tests, resulting in
a more realistic behavior.

task-2582313

closes odoo/odoo#90724

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-13 18:10:56 +02:00
tsm-odoo c23f85903a [IMP] mail, *: use pyEnv in the mockServer
Now that pyEnv is available, using it in the mock_server lighten the syntax.

task-2582313

closes odoo/odoo#90783

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-13 11:59:58 +02:00
Alexandre Kühn da40fedde0 [IMP] mail, *: pass record instead of local id in props
*: hr_holidays, im_livechat, snailmail, website_livechat

Task-2847927

closes odoo/odoo#90882

Related: odoo/enterprise#27110
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-09 20:58:31 +02:00
tsm-odoo e0377544ca [IMP] mail: prepare test_utils to new env
This PR helps reducing the noise in the one intorducing the new environment
in the discuss app. Indeed, there won't be widget anymore since createWebClient
will always be used. createXXXComponent methods were relying on widget.el to
mount the components. Let's already replace it by target.

task-2582313

closes odoo/odoo#90526

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-05 15:14:48 +02:00
tsm-odoo 7e5a71ab71 [IMP] mail, *: always mount discuss/chatWindow/dialog during tests
*: hr, im_livechat, snailmail, website_livechat.

This PR prepares the ground for  the one introducing the new environment in the
discuss app. Indeed, tests will now use the mainComponentRegistry in order to mount
those components. Doing so, the parameters has{Discuss/Dialog/ChatWindow} will become
obsolete. Removing those parameters now helps reducing the noise in the main PR.

task-2582313

closes odoo/odoo#90120

Related: odoo/enterprise#26759
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-03 13:31:08 +02:00
tsm-odoo 59d4f45cee [FIX] mail: fix mocked attachment upload
The performFetch method has been rewritten in 14.5. Since then, we're relying
on the is_pending parameter given in the form data. This parameter is used as
if it was a boolean but is in fact a string representation of a boolean. This results
in incorrect  attachments since this parameter is used to determine both the
res_model and the res_id of the created attachment.

closes odoo/odoo#90330

X-original-commit: 743face4357403861423ba242fa2be8ac364c546
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-03 03:57:15 +02:00
Alexandre Kühn 241fa6c2b3 [IMP] mail, *: introduce view models (step 4)
*: sms, snailmail, test_mail

This commit introduces models that define records being 1:1 map with components,
as a step to move further to having essentially all business code in models.

Having code in models is desirable to have very maintainable code, thanks to
robust and declarative code with an ORM-like architecture.

Task-2831082

closes odoo/odoo#90320

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-05-03 03:56:58 +02:00
tsm-odoo c02a27432a [IMP] mail: make start return advanceTime function
This PR prepares the ground for the introduction of the new environment in the discuss
app. For now, the start method adds the advanceTime function to the environment. The issue
is that the new env is not extendable. This change makes a lot of noise hence the prep PR.

task-2582313

closes odoo/odoo#89888

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-04-27 21:28:01 +02:00
tsm-odoo 96288beeb6 [IMP] mail, *: prepare mockServers for wowlEnv
*: calendar, hr_holidays, im_livechat, note, website_livechat.

This PR helps reducing the noise in the discuss new env PR. Indeed,
the new mockServer has the same method except that they are not prefixed
by any underscore. All calls have been changed, and the corresponding
methods created. They will be deleted later.

task-2582313

closes odoo/odoo#89659

Related: odoo/enterprise#26603
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-04-27 10:04:17 +02:00
tsm-odoo 653b030553 [MOV] mail: move advanceTime function
This PR prepares the ground for the new env in discuss. The addTimeControlToEnv
function has been move in its own file, it will not rely on env anymore.

task-2582313

closes odoo/odoo#89673

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-04-27 09:00:24 +02:00
Alexandre Kühn f75b7d19a8 [IMP] mail: turn props into model fields (step 1)
This commit moves some business logic from components to models,
as a step to move further to having essentially all business code in models.

Having code in models is desirable to have very maintainable code, thanks to
robust and declarative code with an ORM-like architecture.

Task-2826823

closes odoo/odoo#89323

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-04-21 19:42:04 +02:00
Sébastien Theys ccdda4450c [IMP] mail: remove uuid from channel_fold
Unnecessary param.

task-2827807

closes odoo/odoo#89115

Related: odoo/enterprise#26388
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-04-21 12:49:58 +02:00
Sébastien Theys 870eb515eb [IMP] mail, *: remove uuid from channel_pin
* = im_livechat, website_livechat

Unnecessary param.

task-2827807

Part-of: odoo/odoo#89115
2022-04-21 12:49:58 +02:00
Alexandre Kühn 03b59ae410 [IMP] mail: move component handlers to models (step 5)
This commit moves some handler methods from components to models,
as a step closer to having most of business code in models.

Having business code in models is desirable so that the code is much more maintainable:
easier to change and more robust code.

Task-2579306

closes odoo/odoo#88878

Related: odoo/enterprise#26277
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-04-15 19:08:35 +02:00
Alexandre KühnandSébastien Theys d81c77234d [IMP] mail, *: tests: use mail.channel.partner for seen indicator
* = hr_holidays, im_livechat, website_livechat

Task-2810539

closes odoo/odoo#87587

Related: odoo/enterprise#25911
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Co-authored-by: Sébastien Theys <seb@odoo.com>
2022-04-15 15:28:49 +02:00
tsm-odoo 95354538c0 [IMP] mail: remove beforeEach from test utils
task-2792108

closes odoo/odoo#88083

Related: odoo/enterprise#25928
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-04-06 16:45:59 +02:00
Ipsita Borisagar c622161c9a [FIX] mail: channel description modification
Before this commit:

For guests and portal users, a separator(differentiates channel name and
description) in the thread view topbar is displayed even if there is no description.
And when portal users are trying to write/edit channel description at that time
access error is generated.

After this commit:

A separator will only be displayed when there is a description and portal users
will not be able to write/edit channel description as they don't have rights.

Task-2664843

closes odoo/odoo#87999

X-original-commit: 84604910af931131fd10ad37787a803c8905d55c
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-04-06 16:45:51 +02:00
Alexandre Kühn 8b918e95f9 [FIX] mail: tests: properly call _mockWrite in mock server
2nd parameter of `_mockWrite` must necessarily be an array.

closes odoo/odoo#88057

X-original-commit: a0b4f77f4abbcd97b433866f7a9078b05e1bcd04
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-04-06 11:15:02 +02:00
tsm-odoo e5a9f77399 [IMP] mail, *: make activity menu tests rely on real behavior
*: calendar, note

In order to prepare the ground for test adaptation using the startServer method,
make the systray_activity_menu more realistic : instead of using a fake model, we
now rely on a  method in the mock server. This method mimics the behavior of the
`systray_get_activities` present on the res.users model.

task-2792108

closes odoo/odoo#87743

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-04-04 14:45:11 +02:00
Alexandre Kühn 9a9cd8a199 [IMP] mail: remove outdated Messaging/isQUnitTest field
closes odoo/odoo#87816

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-04-01 19:53:40 +02:00
Pierre-Yves Dufays eca543ef40 [REM] mail, sms, snailmail: discard notifications without confirmation
Skip the confirmation step when wanting to get rid of a notification
for emails, sms or letters that were not sent.

Technical:
- All 3 wizards to confirm the discarding of the notification have been removed
(the ones for mail, sms and letter) have been removed
- The method to discard notification has been centralized in MailThread
(notify_cancel_by_type in addons/mail/models/mail_thread.py)
- This centralization has been done as well on the client code as the same
server code is called whether it is a mail, a sms or a letter
(in addons/mail/static/src/models/notification_group/notification_group.js)
- Existing front and back test have been adapted
- A test of notify_cancel_by_type for mail has been added
(addons/test_mail/tests/test_mail_management.py)
- add missing author_id in mail_notification demo data

Task-2752190

closes odoo/odoo#84452

Related: odoo/upgrade#3246
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-04-01 17:56:20 +02:00
Alexandre Kühn 593d2ae623 [IMP] mail, *: tests: remove fake mail.channel/members field
*: hr_holidays, im_livechat, website_livechat

Task-2810539

closes odoo/odoo#87599

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-03-31 19:11:40 +02:00
tsm-odoo 33867b9f5c [IMP] mail: remove default values from test model definitions
The get_model_definitions method returns default values for each field. Those default
values are wrong most of the time (dynamic values, reference to non created records on
the client side, ...).

task-2792108

closes odoo/odoo#87641

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-31 13:33:14 +02:00
Alexandre Kühn ccf3ff3043 [IMP] mail: introduce 'insertText' test helper
Task-2806986

closes odoo/odoo#87396

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-30 12:06:29 +02:00
Didier (did) 5151425abc [FIX] mail: follow up send is_main with the attachments
task-2783076

closes odoo/odoo#87508

X-original-commit: 7fcc26adf6c4aff1e89574617cfe79337f703b96
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-30 11:13:34 +02:00
tsm-odoo 97bd67acc5 [IMP] mail: make start method handle hasWebClient parameter properly
startServer method ease data seeding by providing an environment that
can be used to interact with the underlying mock server.The createWebClient
method was not supported well. Indeed, we could either pass serverData or not.
But we could not pass only the views and take the data from the startServer
method. This issue was addressed.

task-2792108

closes odoo/odoo#87432

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-29 17:23:28 +02:00
tsm-odoo 0c847108ac [IMP] mail: register m2x avatar user fake model
In preparation of test adaptation after introducing a new way to
seed test data, the fake model present on the m2x avatar user test
have been registered to the model definitions instead of being
declared on it's test.

task-2792108

closes odoo/odoo#87433

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-29 12:00:04 +02:00
tsm-odoo 2e690b4aa3 [IMP] mail, *: make mockserver autofill relational fields' inverses
*: web, website_slides.

Specifying both side of a relation when seeding test data is cumbersome.
Let startServer method handle it.

task-2792108

closes odoo/odoo#86939

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-03-25 18:38:54 +01:00
dja-odoo 472fac659e [IMP] mail: limit followers edition/removal for users with read access
Before this commit, if the user has read only access to a record:

 - User could see 'Add Followers' button, which raised AccessError
 - User could see edit and remove icons but performing these actions
  for followers other than one related to logged in user, it also
  raised AccessError.

With this commit, we are restricting it based on the user rights, if
the user has read only access to a record:

 - 'Add Followers', subtype edition(pencil icon) and follwer removal
   buttons will be visible only for the follower related to logged in
   user, not for others. This way we can avoid the unexpected
   AccessErrors.

Note that if user is having write access for the record, nothing
changes.

task-id-2447776

closes odoo/odoo#70575

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-03-24 12:56:52 +01:00
Louis Wicket (wil) ee9759a144 [MOV] mail, *: move utils files up
* = calendar, hr, hr_holidays, im_livechat, note, sms, snailmail,
test_mail, website_livechat, website_slides
Task-2759586

closes odoo/odoo#86791

Related: odoo/enterprise#25491
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-03-23 13:39:56 +01:00
tsm-odoo 320323503c [FIX] mail: fix mock server mail channel write
Mock server's mail channel write method is incorrect. It assumes
the id of the channel will always be 20 while it could be anything.

closes odoo/odoo#86860

X-original-commit: 96e732f6bbc7622d50c3a969f5c2bb44c85c2b48
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-22 21:20:51 +01:00
tsm-odoo 6ee2a71d6f [FIX] mail: correct res fake model
The res.fake model has a partner_ids fields which
is a many2one but is used as a one2many.

closes odoo/odoo#86849

X-original-commit: 02b34c6b252c6a1d5a474c6de4e88f714a384286
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-22 20:31:53 +01:00
Didier (did) fc9e67bc6b [IMP] mail: move message unread counter to channel
The field could have been removed from thread since https://github.com/odoo/odoo/commit/88b8cd058713bfad2942f7e7434c34b6c1a6e7da

task-2746109

closes odoo/odoo#83765

Related: odoo/upgrade#3222
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-21 14:59:42 +01:00
tsm-odoo d9ecd32197 [IMP] mail: introduce a new way to seed test data
This PR prepares the ground for the new env one. The objective is to stop
relying on 'this' during tests. In order to do this, a new way to seed data
has been introduced.

task-2792108

closes odoo/odoo#86447

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-18 18:59:40 +01:00
tsm-odoo 1e828a14ec [IMP] mail: get closer from python model definition in test setup
*: hr, hr_holidays, im_livechat, mail, snailmail, test_mail, website_livechat,
website_slides.

This commit will remove the need to duplicate models definition for
test purposes. Indeed, for now, we need to mock the model definitions
on the client side. Those models definitions are often very different
from the ones found on the server.

This approach will allow us :
	- to ease model definitions during tests
	- to get closer from the real models

task-2767820

closes odoo/odoo#84828

Related: odoo/enterprise#24486
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-10 18:19:59 +00:00
tsm-odoo 74f55ac035 [IMP] mail: change relation of partner_id field
This commit helps reducing the noise of the model definition PR. Indeed,
the partner_id field on the mail.follower model was mocked as an integer
field. The /mail/thread/data route returns an integer. But the search
read method returns an array for many2one fields [id, display_name]. Thus,
using the real server field will result in an incorrect behavior.

task-2767820

closes odoo/odoo#86096

Related: odoo/enterprise#25125
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-09 12:15:38 +00:00
tsm-odoo a6bb70c91a [MOV] mail, test_mail: move tracking value tests
task-2767820

This move is done to prepare the use of server side model definitions during tests.
Indeed, a model having all type of tracked fields will be needed to ease tracking
value testing. This model will be added to the test_mail module so the tracking
value tests need to be there as well.

closes odoo/odoo#85819

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-04 14:08:10 +00:00