From 88857a397ea5beccc9d6338a7fc004ececcb1348 Mon Sep 17 00:00:00 2001 From: Mohammed Shekha Date: Mon, 7 Jun 2021 10:32:30 +0000 Subject: [PATCH] [IMP] crm,mail,project: support many2one_avatar_user on activity view Currently, activity view does not support many2one_avatar_user widget due to which clicking on image do not open chat window, with this commit, we add support of many2one_avatar_user widget in activity_view so that user can click on avatar image and open chat window. task-2554466 closes odoo/odoo#71804 Related: odoo/enterprise#18803 Signed-off-by: Simon Genin (ges@odoo) --- addons/crm/views/crm_lead_views.xml | 2 +- addons/mail/static/src/js/m2x_avatar_user.js | 1 + .../mail/static/src/scss/activity_view.scss | 3 +- addons/mail/static/tests/activity_tests.js | 53 +++++++++++++++++++ addons/project/views/project_views.xml | 2 +- 5 files changed, 58 insertions(+), 3 deletions(-) diff --git a/addons/crm/views/crm_lead_views.xml b/addons/crm/views/crm_lead_views.xml index 25984a1de57..08463bd3613 100644 --- a/addons/crm/views/crm_lead_views.xml +++ b/addons/crm/views/crm_lead_views.xml @@ -498,7 +498,7 @@
- +
diff --git a/addons/mail/static/src/js/m2x_avatar_user.js b/addons/mail/static/src/js/m2x_avatar_user.js index 0d3d4fa4496..c8f90b2feab 100644 --- a/addons/mail/static/src/js/m2x_avatar_user.js +++ b/addons/mail/static/src/js/m2x_avatar_user.js @@ -97,4 +97,5 @@ export const Many2ManyAvatarUser = FieldMany2ManyTagsAvatar.extend(M2XAvatarMixi fieldRegistry.add('many2one_avatar_user', Many2OneAvatarUser); fieldRegistry.add('kanban.many2one_avatar_user', KanbanMany2OneAvatarUser); +fieldRegistry.add('activity.many2one_avatar_user', KanbanMany2OneAvatarUser); fieldRegistry.add('many2many_avatar_user', Many2ManyAvatarUser); diff --git a/addons/mail/static/src/scss/activity_view.scss b/addons/mail/static/src/scss/activity_view.scss index 276c78cc928..817227f1202 100644 --- a/addons/mail/static/src/scss/activity_view.scss +++ b/addons/mail/static/src/scss/activity_view.scss @@ -69,8 +69,9 @@ padding: 8px 8px; cursor: pointer; - > img { + .o_m2o_avatar > img, > img { width: 32px; + height: 32px; max-height: 32px; margin-right: 16px; } diff --git a/addons/mail/static/tests/activity_tests.js b/addons/mail/static/tests/activity_tests.js index 70d02c37b79..2e37e8f4123 100644 --- a/addons/mail/static/tests/activity_tests.js +++ b/addons/mail/static/tests/activity_tests.js @@ -528,4 +528,57 @@ QUnit.test("Activity view: discard an activity creation dialog", async function assert.containsNone($, ".modal.o_technical_modal", "Activity Modal should be closed"); }); +QUnit.test('Activity view: many2one_avatar_user widget in activity view', async function (assert) { + assert.expect(3); + + const taskModel = serverData.models.task; + + serverData.models['res.users'] = { + fields: { + display_name: { string: "Displayed name", type: "char" }, + avatar_128: { string: "Image 128", type: 'image' }, + }, + records: [{ + id: 1, + display_name: "first user", + avatar_128: "Atmaram Bhide", + }], + }; + taskModel.fields.user_id = { string: "Related User", type: "many2one", relation: 'res.users' }; + taskModel.records[0].user_id = 1; + + serverData.actions = { + 1: { + id: 1, + name: 'Task Action', + res_model: 'task', + type: 'ir.actions.act_window', + views: [[false, 'activity']], + } + }; + + serverData.views = { + 'task,false,activity': ` + + +
+ + +
+
+
`, + 'task,false,search': '' + }; + + const webClient = await createWebClient({ serverData, legacyParams: { withLegacyMockServer: true } }); + await doAction(webClient, 1); + + await legacyExtraNextTick(); + assert.containsN(webClient, '.o_m2o_avatar', 2); + assert.containsOnce(webClient, 'tr[data-res-id=13] .o_m2o_avatar > img[src="/web/image/res.users/1/avatar_128"]', + "should have m2o avatar image"); + assert.containsNone(webClient, '.o_m2o_avatar > span', + "should not have text on many2one_avatar_user if onlyImage node option is passed"); +}); + }); diff --git a/addons/project/views/project_views.xml b/addons/project/views/project_views.xml index dc20b6bd6eb..a2027ecf442 100644 --- a/addons/project/views/project_views.xml +++ b/addons/project/views/project_views.xml @@ -1082,7 +1082,7 @@
- +