diff --git a/addons/portal/models/mail_message.py b/addons/portal/models/mail_message.py index 75410edb149..48da2188231 100644 --- a/addons/portal/models/mail_message.py +++ b/addons/portal/models/mail_message.py @@ -99,7 +99,7 @@ class MailMessage(models.Model): elif options and options.keys() >= {"hash", "pid"}: values['author_avatar_url'] = f'/mail/avatar/mail.message/{message.id}/author_avatar/50x50?_hash={options["hash"]}&pid={options["pid"]}' else: - values['author_avatar_url'] = f'/mail/avatar/mail.message/{message.id}/author_avatar/50x50' + values['author_avatar_url'] = f'/web/image/mail.message/{message.id}/author_avatar/50x50' if 'is_message_subtype_note' in properties_names: values['is_message_subtype_note'] = (values.get('subtype_id') or [False, ''])[0] == note_id if 'published_date_str' in properties_names: diff --git a/addons/test_mail_full/tests/test_mail_performance.py b/addons/test_mail_full/tests/test_mail_performance.py index 3220d968199..1384820025a 100644 --- a/addons/test_mail_full/tests/test_mail_performance.py +++ b/addons/test_mail_full/tests/test_mail_performance.py @@ -272,7 +272,7 @@ class TestPortalFormatPerformance(FullBaseMailPerformance): ] ) self.assertEqual(format_res['author_id'], (record.customer_id.id, record.customer_id.display_name)) - self.assertEqual(format_res['author_avatar_url'], f'/mail/avatar/mail.message/{message.id}/author_avatar/50x50') + self.assertEqual(format_res['author_avatar_url'], f'/web/image/mail.message/{message.id}/author_avatar/50x50') self.assertEqual(format_res['date'], datetime(2023, 5, 15, 10, 30, 5)) self.assertEqual(format_res['published_date_str'], 'May 15, 2023, 10:30:05 AM') self.assertEqual(format_res['id'], message.id) diff --git a/addons/website_blog/static/tests/tours/blog_tags_tour.js b/addons/website_blog/static/tests/tours/blog_tags_tour.js index 70d2cf8dfd4..075c73ff5ad 100644 --- a/addons/website_blog/static/tests/tours/blog_tags_tour.js +++ b/addons/website_blog/static/tests/tours/blog_tags_tour.js @@ -10,8 +10,8 @@ wTourUtils.registerWebsitePreviewTour('blog_tags', { test: true, url: '/blog', }, () => [{ - content: "Go to first blog", - trigger: "iframe article[name=blog_post] a", + content: "Go to the 'Post Test' blog", + trigger: "iframe article[name=blog_post] a:contains('Post Test')", }, ...wTourUtils.clickOnEditAndWaitEditMode(), wTourUtils.clickOnSnippet('#o_wblog_post_top .o_wblog_post_page_cover'), diff --git a/addons/website_blog/tests/test_ui.py b/addons/website_blog/tests/test_ui.py index fccce820d35..3ac5a0ab627 100644 --- a/addons/website_blog/tests/test_ui.py +++ b/addons/website_blog/tests/test_ui.py @@ -2,10 +2,11 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. import odoo.tests +from odoo.addons.website_blog.tests.common import TestWebsiteBlogCommon @odoo.tests.tagged('post_install', '-at_install') -class TestWebsiteBlogUi(odoo.tests.HttpCase): +class TestWebsiteBlogUi(odoo.tests.HttpCase, TestWebsiteBlogCommon): @classmethod def setUpClass(cls): super().setUpClass() @@ -50,3 +51,17 @@ class TestWebsiteBlogUi(odoo.tests.HttpCase): self.env.ref('website_blog.opt_blog_sidebar_show').active = True self.env.ref('website_blog.opt_sidebar_blog_index_follow_us').active = False self.start_tour("/blog", 'blog_autocomplete_with_date') + + def test_avatar_comment(self): + mail_message = self.env['mail.message'].create({ + 'author_id': self.user_public.partner_id.id, + 'model': self.test_blog_post._name, + 'res_id': self.test_blog_post.id, + 'subtype_id': self.ref('mail.mt_comment'), + }) + portal_message = mail_message.portal_message_format() + response = self.url_open(portal_message[0]['author_avatar_url']) + # Ensure that the avatar is visible + self.assertEqual(response.status_code, 200) + self.assertEqual(response.headers.get('Content-Type'), 'image/png') + self.assertRegex(response.headers.get('Content-Disposition', ''), r'mail_message-\d+-author_avatar\.png')