Commit Graph
4294 Commits
Author SHA1 Message Date
Thanh Dodeur 291e99b7f7 [FIX] mail: prevents traceback when downloading rtc call logs
Before this commit, since https://github.com/odoo/odoo/pull/96954 ,
the `CallActionListView` had its `channel` field renamed into `thread`.

A reference to this old field name was missed which caused the
traceback, this commit fixes this issue by using the right field name.

closes odoo/odoo#99447

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-02 12:21:41 +02:00
Sébastien Theys 545d23888b [IMP] mail, im_livechat, *: add typing for guest and clean code
* = bus, hr_holidays, test_discuss_full

- use channel member instead of partner for typing
- use channel member instead of partner for all other return values from server
- remove temporary partner hack in livechat and keep public partner
- remove some obsolete convert data
- adapt format methods accordingly

task-2664853

closes odoo/odoo#98923

Related: odoo/enterprise#30760
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-01 20:21:58 +02:00
Didier (did) f922f51910 [FIX] mail: avoid partner without name in suggestion
task-2884212

closes odoo/odoo#99432

X-original-commit: 385ba1d062abbc73ca3cdb9a27adb4b9cc7803be
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-01 19:17:32 +02:00
Zelong Lin d862ff258a [IMP] mail: remove legacy popover
task-2968421

closes odoo/odoo#99402

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-01 18:11:09 +02:00
Brieuc-brd 48d4b386f2 [FIX] mail: Message space between messages
Prior to this commit, the space between messages where too large and
created inconsistencies.

This commit fixes this issue.

closes odoo/odoo#99396

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-01 18:10:59 +02:00
Thanh Dodeur a90266e393 [FIX] mail: make call participant card colors more consistent
Before this commit, we were using `bg-secondary` which was dependent on
whether we used community or enterprise style, and `bg-black-75` which
is legacy and not available on the discuss guest page.

This commit fixes this issue to make the colors consistent across those
cases.

closes odoo/odoo#99393

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-01 17:11:19 +02:00
Bruno BoiandJulien Mougenot 0f49724436 [IMP] web: simplify format/parse/deserialize date(time) utils
The goal is to improve the dates utility functions (parse/format) by removing the timezone option, which is difficult to understand and has proven to be error prone.

- Rationale
When manipulating DateTime objects on the JS side, associated timezones
must be always coherent.
Until now, there were several code parts that had to check the DateTime
timezone and handle things differently in a case or another.
This sometimes lead to wrong code.
E.g. there was a bug in the DatePicker component because the DateTime
object it receives in props is in local timezone, but once it updates it
through the parse utility, the new object is in UTC.

- After this commit
The DateTime objects you'll get through deserialization or parsing are
always set in the user's local timezone.
The formatted strings you'll get through formatDate and formatDateTime
utils will always be expressed in the user's local timezone.
The formatted strings you'll get through serialization utils will always
be expressed in UTC.

- serializeDate and serializeDateTime
  - expected input: a DateTime object (its timezone does not matter)
  - outputs: a string formatted for the server expressed in UTC

- formatDate and formatDateTime
  - expected input: a DateTime object (its timezone does not matter)
  - outputs: a string formatted for the user, expressed in the user's TZ

- deserializeDate and deserializeDateTime
  - expected input: a date(time) string provided by the server, in UTC
  - outputs: a DateTime object in user's TZ

- parseDate and parseDateTime
  - expected input: a date(time) string provided by the user, in its TZ
  - outputs: a DateTime object in user's TZ

- Other changes in this commit
As the timezone option has been removed from parsing/formatting utils,
all their usage had been adapted in the codebase.
The large diff in dates_tests.js is because some tests were reorganized,
others were removed/adapted/joined.
A test has been removed from daterange_field_tests.js, because it has
no sense: it displays a date field as a datetime, but a date field does
not have any time information.

Part-of: odoo/odoo#98980
Co-authored-by: Julien Mougenot <jum@odoo.com>
2022-09-01 17:10:59 +02:00
Sébastien Theys aad27c38ea [FIX] mail: fix model manager isDebug
Mix of proxy and non-proxy was causing issue in set of records.

closes odoo/odoo#99388

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-01 15:33:36 +02:00
Didier (did) ac5cf64c24 [FIX] mail: remove unexisting fields from condition
closes odoo/odoo#99387

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-09-01 15:33:29 +02:00
Didier (did) 091e54ca17 [FIX] mail: remove unexisting field from template
https://github.com/odoo/odoo/pull/98262 introduce a t-out on a field that
doesn't exist.

closes odoo/odoo#99381

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-01 15:33:19 +02:00
Zelong Lin 14316ddd74 [IMP] mail: group_id explicit in channel_create
follow up https://github.com/odoo/odoo/pull/94510/commits/64d01d43a0f69c29cb9ad900c7aaa6ae00d8b4e4

task-2893661

closes odoo/odoo#98875

Related: odoo/enterprise#30722
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-09-01 13:08:47 +02:00
William Braeckman d325c028db [IMP] mail: change identifyingmode of attachment viewer
Part of the document B2B (see odoo/enterprise#29807 )

The attachment viewer can be opened without being a dialog in the
documents app now.

TaskId-2863861

closes odoo/odoo#98389

Related: odoo/upgrade#3835
Signed-off-by: William Braeckman (wbr) <wbr@odoo.com>
2022-08-31 22:13:04 +02:00
Louis Wicket (wil) fa445f6117 [FIX] mail: make Activity/note field readonly
3c28be1b33ea18be7280d9372ebd53a54140da86 enforced readonly by default on
computed and related fields, but Activity/note was not adapted to be
readonly, leading the application to crash when editing a note.

This commit fixes it by introducing a new field to write on instead of
the computed one.

Follow-up of task-2955927.

closes odoo/odoo#99310

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-31 18:54:04 +02:00
Louis Wicket (wil) c9d810f05f [IMP] mail: replace throw with warn in model manager
closes odoo/odoo#99306

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-31 18:54:00 +02:00
Louis Wicket (wil) 9fded39f48 [IMP] hr, mail: use Channel instead of Thread in getChat
Part of task-2948676.

closes odoo/odoo#99281

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-31 17:54:22 +02:00
Zelong Lin e1e6417604 [IMP] mail: remove legacy popover
task-2968161

closes odoo/odoo#99279

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-31 17:54:19 +02:00
Louis Wicket (wil) d713bf261e [FIX] mail: adapt RTC code to not write on readonly fields
3c28be1b33ea18be7280d9372ebd53a54140da86 enforced readonly by default on
computed and related fields, but some fields were not changed to be
readonly, leading the application to crash when editing them.

This commit fixes that by introducing new fields to write on instead of
the readonly ones.

Follow-up of task-2955927.

closes odoo/odoo#99253

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-31 17:54:13 +02:00
Achraf (abz) 31f389b983 [FIX] *: Adapt old custom-control class of Bootstrap
* = hr_holidays, mail, sale, web, web_editor, website, website_forum,
website_payment, website_sale

https://getbootstrap.com/docs/5.1/migration/

replacing `custom-control` by `form-check` because in bs4 this class had
a use which is not the case in bs5.

closes odoo/odoo#98965

Related: odoo/enterprise#30768
Signed-off-by: Romeo Fragomeli (rfr) <rfr@odoo.com>
2022-08-31 16:05:20 +02:00
Thanh Dodeur a8d7887f34 [FIX] mail: prevents shared rtcSession focus across callViews
After https://github.com/odoo/odoo/pull/78439 and before this commit,
the `activeRtcSession` was a field of `callView` which is the same view
for all channels. Which means that setting an `activeRtcSession` would
display it for any channel instead of only the channel that hosted this
session.

This commit fixes this issue by moving the field to the `Channel` model.

closes odoo/odoo#99270

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-31 12:38:05 +02:00
Brieuc-brd 5459b11015 [FIX] mail: MessageInReplyToView, space after author
Prior to this commit, there was no space between the author's name and
the message.

This commit fixes this issue.

closes odoo/odoo#99235

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-31 12:37:55 +02:00
Didier (did) bec6cefd0c [IMP] mail: differentiate message and notification in channel
This PR changes the way notification are displayed inside the a channel.
Currently, notification look exactly the same as a message send by the user.

task-2918956

closes odoo/odoo#98262

Related: odoo/enterprise#30732
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-30 23:40:24 +02:00
Didier (did) 5c861656b6 [IMP] mail: rename MessageListViewMessageViewItem in MessageListViewItem
part of task-2918956

Part-of: odoo/odoo#98262
2022-08-30 23:40:24 +02:00
std-odoo 93fc52c8e1 [FIX] mail: allow a normal user to view the template body
Followup of odoo/odoo@1a3e713

Bug
===
If the user doesn't have the template editor, he cannot open the template
preview.

Technical
=========
The reason for that is because the web editor moves some CSS properties,
and so when the user tries to open the preview, an access error is raised.

Ideally, the template form view should not be editable if the access
rules do not allow it. But in _postprocess_tag_field, we only check
for access right because we don't have the record. So a user without
write access rules, but having write access right can edit the template
in the UI, and gets an error when saving.

Also, the web editor should not save the HTML value if no change are
made on the field (like all other text / char field).

To mitigate the issue in stable, we add a computed field that check the
access rules and make the body readonly if he can not edit the template.
So the web editor is not loaded, the CSS properties are not moved. Other
possible solutions are way to complex technically speaking (editor internals
to update in frontend, complex comparison of html blobs in backend, cache
usage making fields_view_get override not working in all cases, ... )

As the HTML body look weird in readonly mode, add the same border as the web
editor.

Task-2845877

X-original-commit: dcf3ab5fb41aa9ef6e59b2155bfd192e551b6476
Part-of: odoo/odoo#99256
2022-08-30 21:25:55 +02:00
Aaron Bohy bedce02bb7 [REF] web,mail,account: orm service: move context in kwargs
This commit standardizes the API of orm service functions by adding
a "kwargs" parameter, s.t. one can always use those functions even
if the target model overrides the corresponding method to add the
support of a given kwargs. Furthermore, to simplify those function
API, and to close the gap between the js and python APIs, we moved
the "context" argument inside the kwargs.

closes odoo/odoo#99018

Related: odoo/enterprise#30830
Signed-off-by: Samuel Degueldre <sad@odoo.com>
2022-08-30 20:23:17 +02:00
Aaron Bohy 23101ed69a [FIX] web,mail: orm service: can pass kwargs to read
Before this commit, the "read" function of the ORM service didn't
allow to pass any kwargs. As a consequence, it wasn't possible to
call the "read" method of a model with "load" kwargs specified.
This commit fixes the issue, and adapts existing calls accordingly.

Part-of: odoo/odoo#99018
2022-08-30 20:23:16 +02:00
Alexandre Kühn b3b672a66b [MOV] mail, *: use PopoverView for Message/notificationIcon popover
closes odoo/odoo#98497

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-30 20:22:53 +02:00
Alexandre Kühn 4e697ff6d0 [IMP] mail, *: use PopoverView for Message/notificationIcon popover
*: sms, snailmail

Task-2864563

Part-of: odoo/odoo#98497
2022-08-30 20:22:52 +02:00
Louis Wicket (wil) 6a6e737f61 [IMP] mail, *: move channel concerns in Thread from Thread to Channel
This commit is the continuation of task-2948676 which consists of
lightening the Thread model by moving the channel-specific behaviours to
the Channel model.

The changes revolve around the DiscussSidebarCategoryItem model. The
goal is to use channel instead of thread as identifying field for
DiscussSidebarCategoryItem, and to move channel-specific fields involved
in the computes of this model from Thread to Channel.

Changes in this commit include:
+ move `avatarCacheKey` from Thread to Channel
+ move `correspondent`
+ move `correspondentOfDmChat`
+ move `custom_channel_name`
+ move `localMessageUnreadCounter`
+ move `serverMessageUnreadCounter`
+ introduce `Channel/displayName`
+ use channel instead of thread as identifying field for
DiscussSidebarCategoryItem

Part of task-2948676.

closes odoo/odoo#98149

Related: odoo/enterprise#30457
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-30 20:22:14 +02:00
Brice bib Bartoletti a3c7a06dc3 [REF] mail: remove account.move.line hack
While refactoring the move_line_list_views.js in owl, we provided the
account.move id and model + "generate" a thread in the front-end for
account.move.line instead of only providing account.move.line model and id.

This allows us to get rid of this hacky special case

Task-id: 2857743
Part-of: odoo/odoo#96672
2022-08-27 19:01:13 +02:00
Sébastien Theys 4b2bd7b16f [FIX] mail: fixes various issues introduced by recent changes
- fix typo in model manager: "return" -> "continue" in loop
- fix typo in model field: "models" read from record not from field itself
- fix reading obsolete fields in message view
- move listeners on records directly rather than storing a map on model manager
  (code a bit easier to read, and issues on deleted records easier to debug)
- remove obsolete trigger of listener in _created (not possible to observe a
  record before it exists)

closes odoo/odoo#98892

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-26 03:43:22 +02:00
tsm-odoo 5b5052a774 [IMP] mail: remove follower subtype local id in tests
Using local ids in test is cumbersome: we need to retrieve the mail
record associated with the server record to get it while the message
id is more than enough and available. This PR replaces follower subtype
local id data attribute by its subtype id.

task-2959366

closes odoo/odoo#98776

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-25 04:20:48 +02:00
Thanh Dodeur 3723b222b3 [IMP] mail: Call settings menu as right sidebar
This commit changes layout of call settings menu.

Before this commit, it was available in call action list
while in a call, as a dialog, in More > Settings.

With this commit, it's now available as an button in
thread topbar and chat window header, next to member
list button (`fa-cog`). It can be accessed even while
not in a call.

Task-2929713

closes odoo/odoo#96954

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-25 01:53:50 +02:00
Sarika Shekhada 2be526b295 [FIX] web: fix the traceback on schedule activity view
Before this commit, when we open activity view and click on schedule
activity >> select a record there is a trackback due to the
invalid default_res_id passed in context.

So in this commit, fixes the issue by passing the valid res_id in
instead of object with id and display_name.

task-2927335

closes odoo/odoo#96999

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-24 21:06:55 +02:00
tsm-odoo e91c0728fc [IMP] mail: remove message local id in tests
Using local ids in test is cumbersome: we need to retrieve the mail
record associated with the server record to get it while the message
id is more than enough and available. This PR replaces message local id
data attribute by message id.

task-2959366

closes odoo/odoo#98728

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-24 19:53:54 +02:00
Brieuc-brd 30f520a494 [IMP] mail: Message, remove note style
Prior to this commit, the note had its own style. This created too much
confusion with the other message types.

This commit removes the note style to improve the readability in the
chatter.

closes odoo/odoo#98043

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-24 02:04:58 +02:00
Louis Wicket (wil) 381c0f0228 [IMP] mail: model_field: use this.model instead of record.constructor
Since be0fc43bbd0664340d555f2156630870e3548466, a reference to the model
is passed to ModelField constructor. This commit replaces all occurrences of
record.constructor with this.model (shorter and more straightforward).

closes odoo/odoo#98687

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-23 17:55:31 +02:00
Louis Wicket (wil) a8c73f285f [IMP] mail, rating: turn computes and relateds readonly by default
Automatically add readonly on computed and related fields. This commit
required to rewrite some preexisting fields to make them readonly.
Task-2955927.

closes odoo/odoo#98541

Related: odoo/enterprise#30625
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-23 17:55:22 +02:00
Matthieu Stockbauer fe699a241d [IMP] *: adapt client code to use websocket instead of longpolling
*: bus, calendar, hr_attendance, iap_mail, im_livechat, project, snailmail,
snailmail_account, survey, web, web_editor, website_livechat.

This commit is part of the websocket integration in Odoo.
This bus service now communicates with a shared worker in order to provide
a single websocket connection for multiple tabs. It is designed to
be used as a websocket except that events are slightly different,
re-connection is handled automatically. If the browser does not support shared
worker (Safari), the service fallback on a simple web worker.

Available events are:
   - connect : fired upon a successful connection.
   - disconnect : fired upon reception of the websocket close event.
     The close code and reason are given to the listeners callback.
   - reconnect : fired upon a successful re-connection.
   - reconnecting : triggered when the worker starts to try reconnecting.
   - notification : fired upon the reception of notifications.

Since multiple tabs are now handled by a worker, the cross_tab bus is no longer
required and has been removed.

Part-of: odoo/odoo#75510
2022-08-23 17:55:10 +02:00
Louis Wicket (wil) af7dd7d79d [FIX] mail: get_mention_suggestions returns correct channel data
ac08da0a834631b2a7c39c40b1f36f01a85e8617 moved channel_type from Thread
to Channel, but data returned by get_mention_suggestions have not been
updated accordingly. This commit adapts it.

Follow-up of task-2948676.

closes odoo/odoo#98677

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-23 15:05:56 +02:00
Sébastien Theys 449fd0154f [IMP] mail: slightly improve performance of model manager
closes odoo/odoo#98672

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-23 15:05:53 +02:00
tsm-odoo c218c09119 [IMP] mail, im_livechat: remove thread local id usage from tests
Using local ids in test is cumbersome: we need to retrieve the mail
record associated with the server record to get it while the thread
model/id are more than enough and available. This PR replaces thread
local id data attribute by thread model/id.

task-2959366

closes odoo/odoo#98588

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-23 15:05:36 +02:00
Brieuc-brd 61c32b8578 [IMP] mail: MessageActionList, adapt padding and items order
Since ChatWindow messages can be aligned in both directions, the
MessageActionList must adapt its padding and the order of its items when
the menu is expanded according to the message.

This commit adapts the padding and the order of the items.

closes odoo/odoo#98607

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-23 13:38:28 +02:00
Brieuc-brd 3e67492d8e [IMP] mail: increase messages width in ChatWindow
Space for messages is precious in ChatWindow, so this commit increases
the width of messages as much as possible.

Part-of: odoo/odoo#98607
2022-08-23 13:38:27 +02:00
Louis Wicket (wil) f728216a86 [IMP] mail, *: add validation for OnChange + get rid of OnChange class
In this commit:

+ Add validation for OnChange definitions 💪
+ Fix the errors found thanks to the new validation 🤩
+ Get rid of the `OnChange` class (useless boilerplate code) 😤

* = calendar

closes odoo/odoo#98549

Related: odoo/enterprise#30631
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-22 19:12:47 +02:00
Zelong Lin 02fc44ab55 [IMP] mail: compact message action list
Introduce messag_action and message_action_view

task-2869932

closes odoo/odoo#97738

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-22 19:12:39 +02:00
Louis Wicket (wil) 4c3a483944 [IMP] mail: add validation for model definition section names
closes odoo/odoo#98556

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-22 16:49:04 +02:00
tsm-odoo 6167531d10 [FIX] mail: fix chatter attachment icon spacing
The attachment button on the chatter is way too close from its icon when
it has no attachment. This PR adds spacing between those items.

closes odoo/odoo#98471

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-08-19 19:10:48 +02:00
Sébastien Theys 34d775e873 [IMP] mail, *: remove explicit usage of insert-and-replace
* = calendar, im_livechat, rating, snailmail, test_discuss_full, test_mail,
    website_livechat

Distinction between "replace" and "insert-and-replace" can be guessed based on
the type of the provided data.

task-2957295

closes odoo/odoo#98404

Related: odoo/enterprise#30580
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-19 11:53:05 +02:00
Achraf (abz) cb05925d99 [FIX] mail, website_*,base: Update data-toggle to data-bs-toggle
in bootstrap 5.x the toggle attribute changed from `data-toggle` to
`data-bs-toggle`, so we have to change `data("toggle")` by
`data("bs-toggle")`

https://getbootstrap.com/docs/4.6/components/collapse/
https://getbootstrap.com/docs/5.1/components/collapse/
https://getbootstrap.com/docs/5.1/migration/#javascript

Also using `$el[0].dataset.bsToggle` instead of `$el.data("toggle")` is
better since `data()` can be confusing

```js
const a = document.createElement("a");
> <a></a>
a.setAttribute("data-bs-toggle", "dropdown")
> <a data-bs-toggle="dropdown"></a>
a.dataset
> DOMStringMap {bsToggle: 'dropdown'}
$(a).data()
> {}
```

*/

https://pad.odoo.com/p/wowl_views
[aju] https://watch.screencastify.com/v/XuuQTkKRFX3lJh1vnvt9 project.task
kanban view > schedule an activity > mark it as done > traceback
https://pastebin.com/i96Krxrb

closes odoo/odoo#98339

Enterprise: https://github.com/odoo/enterprise/pull/30558
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2022-08-19 09:12:42 +02:00
Sébastien Theys 5b21f8b346 [IMP] mail: split localId and record indexing
Part of task-2741982

closes odoo/odoo#97026

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-08-18 21:08:56 +02:00