Commit Graph
216 Commits
Author SHA1 Message Date
Thanh Dodeur 53c6ceb909 [FIX] mail: prevents video access traceback after ending a call
Before this commit, it was assumed that the call was still active when
the video permission was granted, this assumption was false and this
commit fixes this issue.

closes odoo/odoo#75999

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-09-06 15:47:14 +00:00
Louis Wicket (wil) 401fc7efe9 [IMP] discuss: add 'Start a meeting' feature
- Add a new stand-alone page "WelcomeView"
    - Redirect people who join using an invitation link to the WelcomeView
    - Add microphone/camera preview
    - Allow guests to choose a name from the WelcomeView
- Add "Start a meeting" button to the discuss sidebar
    - Create a new channel on click on the "Start a meeting" button
    - Display ChannelInvitationForm on click on the "Start a meeting"
button
    - Add a new field to `mail.channel` in order to define the display
mode to use for videos (e.g full screen) when joining a meeting

Task 2494829

closes odoo/odoo#75899

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-09-06 08:21:38 +00:00
Thanh Dodeur ac99b09cdc [IMP] mail*: add audio and video conference with webRTC
*test_discuss_full,test_lint

This commit adds the audio and video conference feature to mail channels
and integrate it with the groupDM/guest features.

Adds new mp3 and ogg files (from task-2554674) for sound effects.

- Adds three new tables:
    * `mail.channel.rtc.session` to manage the peerToPeer interactions
      during rtc calls.
    * `mail.ice.server` to provide ICE servers necessary to establish
      peerToPeer connections with webRtc.
    * `res.users.settings.volumes` to hold the partner-to-partner volume
      settings, each partner can create one new setting per other
      partner to configure the volume coming from those partners during
      calls.

- changes res.config.settings:
    * Adds new fields for the Twilio credentials to use their STUN/TURN
      service.

- changes res.user.settings:
    * Adds 4 fields for the push to talk and voice activation.

- changes mail.channel:
    * Adds a new field `rtc_session_ids` that represents the active
      participants in a rtc call on that channel.

- changes mail.channel.partner:
    * Adds a new field `rtc_inviting_session_id` that represents the
      rtcSession of the user that is inviting that channelPartner to a
      call.

task-2366708

closes odoo/odoo#66611

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-09-04 06:23:56 +00:00
Samuel Degueldre 776d1ee08b [IMP] mail: allow user to delete their messages
This commit allows users to "delete" their messages in discuss, as well
as their notes on other records. Admins can delete anyone discuss
messages or notes. Tracking messages such as a change in stage or other
cannot be deleted.

This "delete" is a "soft-delete" in that it only empties the message's
content, so that it is no longer displayed in the UI, but remains in the
database so that people who got notified by email can still reply to the
message, among other things.

task-2365646

closes odoo/odoo#74857

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-09-03 02:03:25 +00:00
Louis Wicket (wil) 80d74e7ee0 [IMP] mail, web, *: add support for guest users
* = crm_livechat, hr, hr_holidays, im_livechat, mail_bot, purchase, sms,
    snailmail, survey, test_discuss_full, test_mail, web_editor, website,
    website_livechat

 - Create new model `mail.guest` for guests.
 - Rewrite some RPCs to target routes rather than model methods so that
   guests are able to use them.
 - Patch JS and python models to support guests.
 - Create a stand-alone page and boot the channel in it.

task-2494829

closes odoo/odoo#75496

Related: odoo/enterprise#20417
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-09-02 00:43:34 +00:00
Qiuyu (QHO) d62f29f824 [FIX] mail: group chat item should not have ThreadIcon
Small fix in discuss_sidebar_category_item. An item with type "group" should not have a ThreadIcon.

closes odoo/odoo#75731

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-08-30 10:59:19 +00:00
Qiuyu (QHO) e8922db3da [IMP] mail: add default avatar for channels
- Channels
    * "hash tag" avatar with different backgroud colors
    * only private channels have lock thread icon
- DM groups
    * "users" avatar with different background colors
    * no thread icon

task-2584994

closes odoo/odoo#75653

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-08-27 20:53:44 +00:00
Julien Giannone 845bb6cc93 [IMP] mail: add group chat feature
task-2360934

closes odoo/odoo#75633

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-08-26 17:25:06 +00:00
Sébastien Theys f71484fdae [IMP] mail: remove thread rename from discuss sidebar
task-2628751

closes odoo/odoo#75659

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-08-26 16:25:15 +00:00
Sébastien Theys b1f3340042 [IMP] mail, hr_holidays: add member list on channels
task-2368906

closes odoo/odoo#75605

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-08-26 11:34:52 +00:00
Qiuyu (QHO) 463af6f61b [IMP] mail, im_livechat: improve Discuss sidebar
The commit is to refactor the discuss sidebar

 - threads are now organized in categories based on the thread type e.g. chat, channel
 - categories can be folded or unfolded by clicking the category title
 - for active thread, even if the category is folded, it remains under the category title
 - for channel category, a new cog button is added to view all channels
 - the active indicator bar is removed. The active item now is highlighted with a different background color
 - thread avatar is used for livechat, chat and channel
 - for livechat and chat, threads are now sorted by last activity time (pin or message exchange)

closes odoo/odoo#70986

Task-id: 2440073
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-08-25 17:00:06 +00:00
Didier (did) 0385199a56 [IMP] mail: move chatter handlers inside the chatter model
Part of task-2579306

closes odoo/odoo#75297

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-08-24 19:27:24 +00:00
Simon Genin (ges) 8ff923fec6 [IMP] mail: Make the channel name / description editable
Before:
Only the channel name was updatable and needed refactoring.
After:
The description can be updated as well and both edition have the same
code flow.

task id 2620687

closes odoo/odoo#74962

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-08-24 18:54:36 +00:00
Sébastien Theys 1a98248155 [IMP] mail, *: access models without env in models
* = hr, im_livechat, website_livechat

Part of task-2582313
2021-08-19 13:34:59 +00:00
Sébastien Theys 07185d4dba [IMP] mail, *: access models without env in tests
* = hr_holidays, im_livechat, sms, snailmail, website_slides

Part of task-2582313
2021-08-19 13:34:59 +00:00
Sébastien Theys bccfb6e5d0 [IMP] mail: remove modelManager and messagingCreatedPromise from env
Part of task-2582313
2021-08-19 13:34:59 +00:00
Samuel Degueldre bd2dbf1aad [REF] mail: make full use of globs in manifest
closes odoo/odoo#75117

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-08-18 18:57:56 +00:00
Sébastien Theys f8a7c8d31d [IMP] mail, *: access messaging without env in most components
* = snailmail

Part of task-2582313

closes odoo/odoo#75268

Related: odoo/enterprise#20333
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-08-18 16:29:49 +00:00
Sébastien Theys 166999e725 [IMP] mail, *: access messaging without env in models
* = hr, hr_holidays, im_livechat, sms, snailmail, website_livechat

Part of task-2582313
2021-08-18 14:56:50 +00:00
Sébastien Theys 876e7ec581 [IMP] mail, *: access messaging without env in tests
* = hr_holidays, im_livechat

Part of task-2582313
2021-08-18 14:56:50 +00:00
Didier (did) af5ed1e5f0 [IMP] mail: move activity_box handler to model
Part of task-2579306

closes odoo/odoo#75199

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-08-18 13:35:02 +00:00
Sébastien Theys 5377376097 [IMP] mail: move fields from env to messaging
Part of task-2582313
2021-08-18 12:26:41 +00:00
Sébastien Theys 5d0b8cdfc9 [IMP] mail: make messaging and models available in models without env
Part of task-2582313
2021-08-18 12:20:51 +00:00
Sébastien Theys 22044ab0ad [FIX] mail: remove the obsolete home menu events
Those are no longer existing.

task-2627699

closes odoo/odoo#75235

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-08-18 09:35:17 +00:00
Sébastien Theys 9772512e7a [IMP] mail, *: batch channels at init messaging
* = im_livechat, test_discuss_full

Less code, less queries.

Part of task-2622462
2021-08-12 15:22:37 +00:00
Sébastien Theys 7582625ba7 [IMP] mail, *: remove magic from channel commands
* = crm_livechat, im_livechat, mail_bot, test_mail_full

Those are hard-coded methods just like any other, remove the magic call and the
need to forward them to the client at init.

Part of task-2622462
2021-08-11 18:02:37 +00:00
Francois (fge) f6f1b1f571 [IMP] mail: access to chat window from the command palette
From this commit, it will be possible to access the chat window
of a partner/thread from the command palette.

In the palette command, if you type :
    - @ then it will display partners
    - # then it will display threads

TaskID-2593197

closes odoo/odoo#74436

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-08-11 08:38:10 +00:00
Sébastien Theys 443b38088b [FIX] mail: ignore unread of unpinned channels in menu counter
Follow up of a795a2f7d8

closes odoo/odoo#74742

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-08-05 09:19:56 +00:00
Sébastien Theys a795a2f7d8 [IMP] mail, *: remove useStore and dependencies
* = hr_holidays, im_livechat, snailmail, website_livechat

Part of task-2338825
Makes task-2261221 and task-2431526 obsolete

closes odoo/odoo#74589

Related: odoo/enterprise#20020
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-08-03 16:44:40 +00:00
Sébastien Theys 810d5fd8aa [IMP] mail, im_livechat: add new UI for inviting members on channels
Opportunity is taken to clean the various follow/join/invite methods into only
one `add_members` method.

Part of task-2360169

closes odoo/odoo#74425

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-07-30 15:52:33 +00:00
Sébastien Theys 719689cb25 [IMP] mail: replace discuss control panel by new top bar
Part of task-2369636

closes odoo/odoo#71959

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-07-27 12:06:58 +00:00
Sébastien Theys 4f07d86026 [IMP] mail: remove search in discuss messages
It is a feature we would like to have, but it currently doesn't work well.

- Search is text based, but messages are HTML based, which means a lot of result
  make no sense because they match HTML tags, attributes, ... Inversely when
  searching for multiple words that do exist together but are separated by tags,
  it will fail to find them.
- Content of messages is actually not indexed, which means the search doesn't
  scale in big channel or with long messages. Indexing it is not trivial and has
  a huge cost in terms of storage and dependencies (trigram index for example).
- The search of the control panel is great for business documents but it does
  not fit the kind of searching UI that we would like inside discussions.

It is therefore decided to remove the feature until we are able to do it well.

Part of task-2369636
More information also on task-2359037

closes odoo/odoo#73903

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-07-23 08:21:14 +00:00
Samuel Degueldre 08afc0af8f [REF] *: remove use of legacy notifications from tests
When writing the new webclient, the notification service was rewritten,
and all of its uses in production code were changed to use the new
services, however, some tests were still reliant on the old notification
service.

This commit removes references to the legacy notification service so
that we can be one step closer to removing it from the code base.

Part of #72675
2021-07-14 07:34:18 +00:00
Sébastien Theys 2bffa11758 [FIX] mail: properly handle undefined in js compute related
The value of the related field should be cleared:
- If the other record no longer exists.
- If the target value is undefined.

This might fix hard to understand bugs, such as task-2410314

closes odoo/odoo#73743

X-original-commit: f1ff90bf48f22a4bed299abeb8e1d415cdfab9e0
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-07-14 19:46:35 +00:00
Sébastien Theys c96a30a8fb [IMP] mail: remove static mention suggestions
Returning all the users at init does not scale. Mention suggestion code is good
enough now that this is no longer necessary.

closes odoo/odoo#73689

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-07-14 10:45:44 +00:00
Sébastien Theys 0a452c528d [IMP] mail: use thread displayName instead of name
More often than not these 2 fields have the same value, but when they are
different it is `displayName` that holds the expected value (eg. for a DM,
`displayName` would be the custom name or the name of the correspondent).

This commit updates them to avoid confusion and having bad examples in the code.

closes odoo/odoo#73659

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-07-13 16:42:26 +00:00
std-odoo 9183a86fde [REM] mail: remove "email_send" field on the mail channel
Purpose
=======

Remove the "email_send" field on the <mail.channel> (mass_mailing named
on the JS side).

This feature will be introduced with a new model (<mail.group>) in a
new module in the next commit.

Remove the email notification support on the channel, so now the mail
channels work only by chat.

Remove the "subject" on the Discuss side because this was used only on
"email" channel.

Technical
=========

In the mail channel model we can drop the usage of the blacklist as well
as the usage of the "email_to" field. Those two features were mainly
used for mailing list and have no utility for "chat like" channel.

Links
=====

Task-2510267
See odoo/odoo/pull/71599
See odoo/enterprise/pull/19296
See odoo/upgrade/pull/2600
2021-07-09 11:16:38 +00:00
std-odoo 59d6bb23d7 [REM] mail: remove mail channel moderation
Rationale
=========

Currently, mail channels have 2 modes
- They can be used like Discuss channel (chat, livechat, group)
- They can be used like a Mailing List (with the "email_send" field)

The mix of both feature in the same model causes some code complexity.
Several fields are not used in both cases (moderation related field)
and the future "Discord like" Discuss will even push the mail channel
further than the usage of the mailing list.

Because of all those reasons, we want to split the 2 mains features of
the mail channels into 2 different modules and models.

Purpose
=======

This commit remove the moderation feature of the mail channel
(email_send=True). This will be re-implemented in a separate module
in the next commit.

Do not be able to check messages in Discuss anymore because this
feature is only used to moderate the message and this feature will be
spitted in a new module "mail_group".

Links
=====

Task-2510267
See odoo/odoo/pull/71599
See odoo/enterprise/pull/19296
See odoo/upgrade/pull/2600
2021-07-09 11:16:38 +00:00
+1 14bffd983e [REF] *: adapt code to new owl webclient
This commit adapts the community codebase to the rewriting of the
/web application in owl.

Co-authored-by: Aaron Bohy <aab@odoo.com>
Co-authored-by: Bruno Boi <boi@odoo.com>
Co-authored-by: Géry Debongnie <ged@odoo.com>
Co-authored-by: Samuel Degueldre <sad@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Simon Genin (ges) <ges@odoo.com>
Co-authored-by: Francois (fge) <fge@odoo.com>
Co-authored-by: Michael Mattiello (mcm) <mcm@odoo.com>
Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Lucas Perais (lpe) <lpe@odoo.com>
Co-authored-by: Jorge Pinna Puissant <jpp@odoo.com>
2021-06-18 21:31:27 +02:00
Didier (did) 40f2c764b0 [IMP] mail, sms, snailmail: remove default date on message
We should not assume that the default date of the message is "now". A message
should only have a date when it's coming from the database that supply it.

closes odoo/odoo#70069

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-06-08 13:25:25 +00:00
Leonardo Pavan Rocha c53724ebc3 [IMP] *: adds generic user avatar
Description of the issue/feature this PR addresses:
It is currently quite difficult to differentiate users. Most of the time, people
don't take the time to upload an actual avatar so everybody looks the same. This
PR generates a custom avatar with the users initials and random color to
differentiate them. For res.users, res.partner and hr.employee, image fields now
hold the binary image and avatar are used to show the image or svg.

Current behavior before PR:
Avatar had only random colors and was being saved in database, being inefficient

Desired behavior after PR is merged:
A new mixin defines image fields and in case no image is set, it generates an
SVG image with the user's initials and random color.

closes odoo/odoo#69819

Task: 2404630
Related: odoo/enterprise#18199
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-06-01 14:36:23 +00:00
Sébastien Theys c6716847aa [IMP] web, *: clean up notification API
task-2476867

closes odoo/odoo#67009

Related: odoo/enterprise#16760
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-05-27 13:47:23 +00:00
std-odoo 1b8c4d98d3 [REV] mail: fix a traceback when sending a message in a "email channel"
Bug
===
Since 4da64b3f3c , if multiple users of
different companies are in the same channel, and if the type of the
channel is "email", a traceback is raised when sending a message.

Technical
=========
"with_user" drop the SU flag and is not enough to bypass the multi
company ACLs. Moreover, we do not want to send a "channel_seen" bus
notifications and we can mark the message as seen on the JS side
directly.

Changes
=======
So now, the traceback is not raised anymore in that case, and the
message is marked as seen if the receiver has the web client open.

But, if the receiver has not the web client open, when he will login,
the message will not be marked as seen. This can be improved but at the
moment we just want to revert the fix that cause the traceback and fix
the issue in most cases.

Task 2427790

closes odoo/odoo#71320

X-original-commit: 8b5de95bea0087c48d17f40847750eb31fe97caf
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2021-05-27 09:26:10 +00:00
Dhruv Patel 885a642a9b [FIX] mail: chat window should remain folded on new message
If the chat window was initially folded and when a new message is received
the chat window automatically unfolds. it is annoying having a window that
pops up each time a new message is coming while having folded it once.
So, It should remain folded when a new message is received if the chat
window is already folded.

Task : 2522141

closes odoo/odoo#71258

X-original-commit: 6e84914a3691735e9c97084cc8d55788babd2ad9
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-05-26 10:56:13 +00:00
nounoubensebia fa0738dd7e [FIX] mail: display default name for followers for "other address" partner
Display the default name (the one displayed in the kanban view) for followers replacing
the False value for "other address" partners, this way the user won't get
confused, furthermore, this fix won't require the name to be mandatory for this
type of contacts.

Task-2514244

closes odoo/odoo#70445

X-original-commit: 338b84bd9d2d675af30ab19c6bb262d2f68546b9
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2021-05-06 08:00:36 +00:00
Sébastien Theys 446e20742c [IMP] mail: add update command and use it on thread viewer
Instead of thread viewer having many dependencies, this allows models "having
the thread viewer feature" to keep their own logic for themselves.

The "create or update" part has to be done manually in this case (as opposed to
using "insert") because thread viewer has no clear identifying data, since it
would depend on which model is using it in the first place.

closes odoo/odoo#70251

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-05-03 15:11:07 +00:00
Sébastien Theys 7de0a02980 [IMP] mail: flag JS "on change" fields as such
There is currently a limitation with required fields because an "on change"
compute might trigger the check for "required" before all the actual computes
have been done, leading to the required field check incorrectly failing.

The main goal is to ensure the "on change" computes are done after all the other
computes and after the check for required fields.

A check has also been added to ensure no "real" compute can trigger update cycle
side-effects anymore.

Opportunity is also taken to prevent from checking for required fields on a
record that was deleted as part of the same update cycle.

Somewhat part of task-2278551

closes odoo/odoo#70204

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-05-03 11:52:26 +00:00
Sébastien Theys 8f6603db45 [IMP] mail: compute messaging menu counter with dependencies
It was the last remaining usage of the deprecated `_updateAfter` which is
therefore removed too.

Part of task-2258617

closes odoo/odoo#70170

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2021-04-30 12:02:20 +00:00
Qiuyu (QHO) bd67479316 [REF] mail, mail_bot, im_livechat, *: convert JS files to ES6 modules
task id: 2487514

closes odoo/odoo#69376

Related: odoo/enterprise#17749
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-04-19 13:33:35 +00:00
Alexandre Kühn 1874d6e827 [IMP] mail: Attachment viewer header UX on mobile
Task-ID 2200168

closes odoo/odoo#66614

Related: odoo/enterprise#16579
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2021-03-31 16:53:24 +00:00