diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index e0cab93db9a..8601eb9e03b 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -276,6 +276,13 @@ class Website(Home):
)
return dynamic_filter and dynamic_filter.render(template_key, limit, search_domain) or ''
+ @http.route('/website/snippet/options_filters', type='json', auth='user', website=True)
+ def get_dynamic_snippet_filters(self):
+ dynamic_filter = request.env['website.snippet.filter'].sudo().search_read(
+ request.website.website_domain(), ['id', 'name', 'limit']
+ )
+ return dynamic_filter
+
@http.route('/website/snippet/filter_templates', type='json', auth='public', website=True)
def get_dynamic_snippet_templates(self, filter_id=False):
# todo: if filter_id.model -> filter template
diff --git a/addons/website/data/website_data.xml b/addons/website/data/website_data.xml
index dc477e723f6..5bcbc10e10f 100644
--- a/addons/website/data/website_data.xml
+++ b/addons/website/data/website_data.xml
@@ -769,7 +769,6 @@
Countries
-
Multi-website
diff --git a/addons/website/models/website_snippet_filter.py b/addons/website/models/website_snippet_filter.py
index 6613a80ff45..f9dc876338f 100644
--- a/addons/website/models/website_snippet_filter.py
+++ b/addons/website/models/website_snippet_filter.py
@@ -20,7 +20,7 @@ class WebsiteSnippetFilter(models.Model):
field_names = fields.Char(help="A list of comma-separated field names", required=True)
filter_id = fields.Many2one('ir.filters', 'Filter', ondelete='cascade')
limit = fields.Integer(help='The limit is the maximum number of records retrieved', required=True)
- website_id = fields.Many2one('website', string='Website', ondelete='cascade', required=True)
+ website_id = fields.Many2one('website', string='Website', ondelete='cascade')
@api.model
def escape_falsy_as_empty(self, s):
@@ -51,7 +51,7 @@ class WebsiteSnippetFilter(models.Model):
self.ensure_one()
assert '.dynamic_filter_template_' in template_key, _("You can only use template prefixed by dynamic_filter_template_ ")
- if self.env['website'].get_current_website() != self.website_id:
+ if self.website_id and self.env['website'].get_current_website() != self.website_id:
return ''
records = self._prepare_values(limit, search_domain)
diff --git a/addons/website/static/src/snippets/s_dynamic_snippet/options.js b/addons/website/static/src/snippets/s_dynamic_snippet/options.js
index 4c713703eb9..eb80fba1b42 100644
--- a/addons/website/static/src/snippets/s_dynamic_snippet/options.js
+++ b/addons/website/static/src/snippets/s_dynamic_snippet/options.js
@@ -47,14 +47,7 @@ const dynamicSnippetOptions = options.Class.extend({
* @returns {Promise}
*/
_fetchDynamicFilters: function () {
- return this._rpc({
- model: 'website.snippet.filter',
- method: 'search_read',
- kwargs: {
- domain: [],
- fields: ['id', 'name', 'limit'],
- }
- });
+ return this._rpc({route: '/website/snippet/options_filters'});
},
/**
* Fetch dynamic filters templates.
diff --git a/addons/website_sale/data/data.xml b/addons/website_sale/data/data.xml
index c3e23f32161..dcc14f49ecd 100644
--- a/addons/website_sale/data/data.xml
+++ b/addons/website_sale/data/data.xml
@@ -102,7 +102,6 @@ response = res_products
display_name,description_sale,image_512,list_price
Products
-
sale.order