diff --git a/addons/product/data/product_data.xml b/addons/product/data/product_data.xml
index 32ac3e9c996..48b12ea96e5 100644
--- a/addons/product/data/product_data.xml
+++ b/addons/product/data/product_data.xml
@@ -197,5 +197,12 @@ parameter) will see those record just disappear.
+
+ property_product_pricelist
+
+
+
+
+
diff --git a/addons/website_sale/data/demo.xml b/addons/website_sale/data/demo.xml
index 23e4179d985..b0067cf40ad 100644
--- a/addons/website_sale/data/demo.xml
+++ b/addons/website_sale/data/demo.xml
@@ -747,39 +747,41 @@ Weight: 31 grams
- formula
+ percentage
list_price
- 10
+ 10
10
+
+
Europe Pricelist
3
+
formula
list_price
- 10
10
- US/CA Pricelist
-
-
-
+ US/CA Pricelist
+
+
+
3
+
formula
list_price
- 10
10
diff --git a/addons/website_sale/tests/test_website_sale_pricelist.py b/addons/website_sale/tests/test_website_sale_pricelist.py
index 55400f024f3..1a34a662838 100644
--- a/addons/website_sale/tests/test_website_sale_pricelist.py
+++ b/addons/website_sale/tests/test_website_sale_pricelist.py
@@ -12,6 +12,7 @@ class TestWebsitePriceList(TransactionCase):
def setUp(self):
super(TestWebsitePriceList, self).setUp()
+ self.env.user.partner_id.country_id = False # Remove country to avoid property pricelist computed.
self.website = self.env['website'].browse(1)
self.website.pricelist_id = self.ref('product.list0')
self.patcher = patch('odoo.addons.website_sale.models.sale_order.Website.get_pricelist_available', wraps=self._get_pricelist_available)
@@ -40,7 +41,8 @@ class TestWebsitePriceList(TransactionCase):
}
for country, result in country_list.items():
pls = self.get_pl(show, current_pl, country)
- self.assertEquals(len(pls), result)
+ self.assertEquals(len(pls), result, 'Test failed for %s (%s [%s] vs %s)'
+ % (country, len(pls), pls.mapped('name'), result))
def test_get_pricelist_available_not_show(self):
show = False
@@ -56,7 +58,8 @@ class TestWebsitePriceList(TransactionCase):
for country, result in country_list.items():
pls = self.get_pl(show, current_pl, country)
- self.assertEquals(len(pls), result)
+ self.assertEquals(len(pls), result, 'Test failed for %s (%s [%s] vs %s)'
+ % (country, len(pls), pls.mapped('name'), result))
def test_get_pricelist_available_promocode(self):
christmas_pl = self.ref('website_sale.list_christmas')
@@ -79,9 +82,26 @@ class TestWebsitePriceList(TransactionCase):
# mock patch method could not pass env context
available = self.website.is_pricelist_available(christmas_pl)
if result:
- self.assertTrue(available)
+ self.assertTrue(available, 'AssertTrue failed for %s' % country)
else:
- self.assertFalse(available)
+ self.assertFalse(available, 'AssertFalse failed for %s' % country)
+
+ def test_get_pricelist_available_show_with_auto_property(self):
+ show = True
+ self.env.user.partner_id.country_id = self.env.ref('base.us') # Add US pricelist auto
+ current_pl = False
+
+ country_list = {
+ False: 4, # Benelux, Europe, US, USA
+ 'BE': 3, # Benelux, Europe, USA
+ 'IT': 2, # Europe, USA
+ 'US': 1, # US
+ 'AF': 1 # USA
+ }
+ for country, result in country_list.items():
+ pls = self.get_pl(show, current_pl, country)
+ self.assertEquals(len(pls), result, 'Test failed for %s (%s [%s] vs %s)'
+ % (country, len(pls), pls.mapped('name'), result))
def tearDown(self):
self.patcher.stop()
diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml
index 6b6f61e1202..bf5f48f996f 100644
--- a/addons/website_sale/views/templates.xml
+++ b/addons/website_sale/views/templates.xml
@@ -105,6 +105,7 @@
+
diff --git a/addons/website_sale/views/views.xml b/addons/website_sale/views/views.xml
index 87f550e50da..5798b1defd5 100644
--- a/addons/website_sale/views/views.xml
+++ b/addons/website_sale/views/views.xml
@@ -139,7 +139,6 @@
-
website_sale.pricelist.form