19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:32:12 +01:00
parent 79f83631d5
commit 73afc09215
6267 changed files with 1534193 additions and 1130106 deletions

View file

@ -1,20 +1,27 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests import HttpCase, tagged
from odoo.tools import mute_logger
from odoo.addons.base.tests.common import BaseUsersCommon, HttpCaseWithUserPortal
from odoo.addons.base.tests.common import HttpCaseWithUserPortal
from odoo.addons.sale.tests.common import SaleCommon
@tagged('post_install', '-at_install')
class TestAccessRightsControllers(BaseUsersCommon, HttpCase, SaleCommon):
class TestAccessRightsControllers(HttpCase, SaleCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.user_portal = cls._create_new_portal_user()
@mute_logger('odoo.addons.base.models.ir_model', 'odoo.addons.base.models.ir_rule')
def test_access_controller(self):
private_so = self.sale_order
portal_so = self.sale_order.copy()
portal_so.message_subscribe(self.user_portal.partner_id.ids)
# set portal as customer to give portal access
portal_so.partner_id = self.user_portal.partner_id.id
portal_so._portal_ensure_token()
token = portal_so.access_token
@ -66,7 +73,14 @@ class TestAccessRightsControllers(BaseUsersCommon, HttpCase, SaleCommon):
@tagged('post_install', '-at_install')
class TestSalesControllers(BaseUsersCommon, HttpCase, SaleCommon):
class TestSalesControllers(HttpCase, SaleCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.user_portal = cls._create_new_portal_user()
def test_sales_portal_report(self):
portal_so = self.sale_order.copy()
portal_so.message_subscribe(self.user_portal.partner_id.ids)
@ -75,14 +89,14 @@ class TestSalesControllers(BaseUsersCommon, HttpCase, SaleCommon):
req = self.url_open(portal_so.get_portal_url(report_type='pdf'), allow_redirects=False)
self.assertEqual(req.status_code, 200)
self.assertEqual(req.headers['content-disposition'], f"inline; filename*=UTF-8''Quotation-{portal_so.name}.pdf")
self.assertEqual(req.headers['content-disposition'], f"inline; filename*=UTF-8''Quotation_{portal_so.name}.pdf")
req = self.url_open(portal_so.get_portal_url(report_type='pdf', download=True), allow_redirects=False)
self.assertEqual(req.status_code, 200)
self.assertEqual(req.headers['content-disposition'], f"attachment; filename*=UTF-8''Quotation-{portal_so.name}.pdf")
self.assertEqual(req.headers['content-disposition'], f"attachment; filename*=UTF-8''Quotation_{portal_so.name}.pdf")
@tagged('post_install', '-at_install')
@tagged('post_install', '-at_install', 'mail_flow')
class TestSaleSignature(HttpCaseWithUserPortal):
def test_01_portal_sale_signature_tour(self):
@ -100,11 +114,17 @@ class TestSaleSignature(HttpCaseWithUserPortal):
'order_id': sales_order.id,
'product_id': self.env['product.product'].create({'name': 'A product'}).id,
})
self.assertFalse(sales_order.message_partner_ids)
# must be sent to the user so he can see it
email_act = sales_order.action_quotation_send()
email_ctx = email_act.get('context', {})
sales_order.with_context(**email_ctx).message_post_with_template(
email_ctx.get('default_template_id'))
sales_order.with_context(**email_ctx).message_post_with_source(
self.env['mail.template'].browse(email_ctx.get('default_template_id')),
subtype_xmlid='mail.mt_comment',
)
self.assertFalse(
sales_order.message_partner_ids,
'Do not automatically set customer as follower, will be suggested recipient')
self.start_tour("/", 'sale_signature', login="portal")