Salve, sto provando ad aggiungere un filtro su alcuni campi aggiunti al modello product.template nella pagina shop (e-commerce) di odoo 16.
Parte del mio codice è il seguente:
class WebsiteSale(WebsiteSale):
def _get_search_domain(self, search, category, attrib_values, search_in_description=True):
domain = super()._get_search_domain(search, category, attrib_values, search_in_description=search_in_description)
if "anno" in request.context:
if request.context["anno"] is not None:
domain = expression.AND(
[domain, [("immatricolazione", "=", request.context["anno"])]]
)
if "assi" in request.context:
if request.context["assi"] is not None:
domain = expression.AND(
[domain, [("assi", "=", request.context["assi"])]]
)
_logger.info("domain:"+str(domain))
return domain
se passo i parametri nella querystring: https://~~~/shop?anno=2014&assi=2 ottengo
domain = ['&', '&', '&', '|', ('rent_ok', '=', True), ('sale_ok', '=', True), ('website_id', 'in', (False, 1)), ('immatricolazione', '=', 2014), ('assi', '=', '2')]
nonostante domain sembri corretto, i prodotti non vengono filtrati e sono visualizzati tutti.
C'è qualche errore nel codice postato o altro?
Rimango in attesa di vostro gentile riscontro.
Grazie.