From 60e97e4ffbcd20d4c2aee6fbfce5ce4bac10c5a5 Mon Sep 17 00:00:00 2001 From: "Xavier BOL (xbo)" Date: Mon, 12 Jul 2021 11:31:56 +0200 Subject: [PATCH] [IMP] project: add chatter in project sharing form view Before this commit, the chatter is not available in form view of project sharing even for portal user. Since the portal views, we have a chatter for the portal users, we need a chatter for those users in project sharing. This commit integrates the portal chatter in the form view for only the portal users. task-2379518 closes #73341 --- addons/project/__manifest__.py | 6 ++- .../project_sharing/views/form/renderer.js | 32 ++++++++++++++ .../src/project_sharing/views/form/view.js | 2 + .../src/scss/project_sharing/chatter.scss | 44 +++++++++++++++++++ .../project/views/project_sharing_views.xml | 1 + 5 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 addons/project/static/src/project_sharing/views/form/renderer.js create mode 100644 addons/project/static/src/scss/project_sharing/chatter.scss diff --git a/addons/project/__manifest__.py b/addons/project/__manifest__.py index a20d1a6d86c..869f59caee8 100644 --- a/addons/project/__manifest__.py +++ b/addons/project/__manifest__.py @@ -100,13 +100,17 @@ # Remove Longpolling bus and packages needed this bus ('remove', 'bus/static/src/js/services/assets_watchdog_service.js'), ('remove', 'mail/static/src/services/messaging/messaging.js'), - ('remove', 'mail/static/src/components/notification_request/notification_request.js'), ('remove', 'mail/static/src/components/dialog_manager/dialog_manager.js'), ('remove', 'mail/static/src/services/dialog_service/dialog_service.js'), ('remove', 'mail/static/src/components/chat_window_manager/chat_window_manager.js'), ('remove', 'mail/static/src/services/chat_window_service/chat_window_service.js'), + + 'web/static/src/legacy/js/public/public_widget.js', + 'portal/static/src/js/portal_chatter.js', + 'portal/static/src/js/portal_composer.js', 'project/static/src/project_sharing/**/*.js', + 'project/static/src/scss/project_sharing/*', 'web/static/src/start.js', 'web/static/src/legacy/legacy_setup.js', ], diff --git a/addons/project/static/src/project_sharing/views/form/renderer.js b/addons/project/static/src/project_sharing/views/form/renderer.js new file mode 100644 index 00000000000..5ef0ddc3470 --- /dev/null +++ b/addons/project/static/src/project_sharing/views/form/renderer.js @@ -0,0 +1,32 @@ +/** @odoo-module **/ + +import FormRenderer from 'web.FormRenderer'; +import { PortalChatter } from 'portal.chatter'; + +export default FormRenderer.extend({ + _makeChatterContainerComponent() { + const props = this._makeChatterContainerProps(); + this._chatterContainerComponent = new PortalChatter(this, props); + }, + _makeChatterContainerProps() { + return { + token: '', + res_model: 'project.task', + pid: '', + hash: '', + res_id: this.state.res_id, + pager_step: 10, + allow_composer: true, + two_columns: false, + }; + }, + _makeChatterContainerTarget() { + const $el = $('
'); + this._chatterContainerTarget = $el[0]; + return $el; + }, + _mountChatterContainerComponent() { + this._chatterContainerComponent.appendTo(this._chatterContainerTarget); + }, + _updateChatterContainerComponent() {}, +}); diff --git a/addons/project/static/src/project_sharing/views/form/view.js b/addons/project/static/src/project_sharing/views/form/view.js index 6513e12d32d..36f7904679b 100644 --- a/addons/project/static/src/project_sharing/views/form/view.js +++ b/addons/project/static/src/project_sharing/views/form/view.js @@ -2,9 +2,11 @@ import FormView from 'web.FormView'; import Controller from './controller'; +import Renderer from './renderer'; export default FormView.extend({ config: _.extend({}, FormView.prototype.config, { Controller, + Renderer, }), }); diff --git a/addons/project/static/src/scss/project_sharing/chatter.scss b/addons/project/static/src/scss/project_sharing/chatter.scss new file mode 100644 index 00000000000..ab108ff1d22 --- /dev/null +++ b/addons/project/static/src/scss/project_sharing/chatter.scss @@ -0,0 +1,44 @@ +.o_FormRenderer_chatterContainer { + display: flex; + background-color: $white; + border-color: $border-color; + height: fit-content; + + .o_portal_chatter { + width: 100%; + + .o_portal_chatter_header { + text-align: center; + vertical-align: middle; + } + + div.o_portal_chatter_composer, + div.o_portal_chatter_messages { + div.media { + gap: 10px; + + .o_portal_chatter_attachments { + margin-bottom: 1rem; + } + } + } + + } + + &.o-aside { + flex-direction: column; + + .o_portal_chatter { + .o_portal_chatter_header { + padding-top: 1rem; + padding-bottom: 2px; + } + + .o_portal_chatter_composer, .o_portal_chatter_messages { + margin-left: 1rem; + margin-right: 1rem; + } + } + } +} + diff --git a/addons/project/views/project_sharing_views.xml b/addons/project/views/project_sharing_views.xml index 6b39b0ffdaa..db325793e41 100644 --- a/addons/project/views/project_sharing_views.xml +++ b/addons/project/views/project_sharing_views.xml @@ -194,6 +194,7 @@ +