first commit
This commit is contained in:
2
modules/sale_product_recommendation/__init__.py
Normal file
2
modules/sale_product_recommendation/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
45
modules/sale_product_recommendation/locale/bg.po
Normal file
45
modules/sale_product_recommendation/locale/bg.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/ca.po
Normal file
45
modules/sale_product_recommendation/locale/ca.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Recomanable"
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Recomanable"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr "Mètode"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Mida"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr "Métode de recomanació de productes"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Mida"
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Productes recomanats"
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Productes recomanats"
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr "Configuració recomanació de producte"
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr "Recomanació de producte"
|
||||
45
modules/sale_product_recommendation/locale/cs.po
Normal file
45
modules/sale_product_recommendation/locale/cs.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/de.po
Normal file
45
modules/sale_product_recommendation/locale/de.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Empfehlenswert"
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Empfehlenswert"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr "Methode"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Größe"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr "Artikelempfehlungsmethode"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Größe"
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Empfohlene Artikel"
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Empfohlene Artikel"
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr "Verkauf Einstellungen Artikelempfehlung"
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr "Artikelempfehlung"
|
||||
45
modules/sale_product_recommendation/locale/es.po
Normal file
45
modules/sale_product_recommendation/locale/es.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Recomendable"
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Recomendable"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr "Método"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Tamaño"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr "Método de recomendación de producto"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Tamaño"
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Productos recomendados"
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Productos recomendados"
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr "Configuración recomendación de producto"
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr "Recomendación de producto"
|
||||
45
modules/sale_product_recommendation/locale/es_419.po
Normal file
45
modules/sale_product_recommendation/locale/es_419.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/et.po
Normal file
45
modules/sale_product_recommendation/locale/et.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/fa.po
Normal file
45
modules/sale_product_recommendation/locale/fa.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/fi.po
Normal file
45
modules/sale_product_recommendation/locale/fi.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/fr.po
Normal file
45
modules/sale_product_recommendation/locale/fr.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Recommandable"
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Recommandable"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr "Méthode"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Taille"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr "Méthode de recommandation de produit"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Taille"
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Produits Recommandés"
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Produits Recommandés"
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr "Configuration de vente de recommandation de produit"
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr "Recommandation de produit"
|
||||
45
modules/sale_product_recommendation/locale/hu.po
Normal file
45
modules/sale_product_recommendation/locale/hu.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/id.po
Normal file
45
modules/sale_product_recommendation/locale/id.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
46
modules/sale_product_recommendation/locale/it.po
Normal file
46
modules/sale_product_recommendation/locale/it.po
Normal file
@@ -0,0 +1,46 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Raccomandabile"
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Raccomandabile"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr "Metodo"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Dimensione"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr "Metodo di raccomandazione del prodotto"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Dimensione"
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Prodotti consigliati"
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Prodotti consigliati"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr "Raccomandazione del prodotto"
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr "Raccomandazione del prodotto"
|
||||
45
modules/sale_product_recommendation/locale/lo.po
Normal file
45
modules/sale_product_recommendation/locale/lo.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/lt.po
Normal file
45
modules/sale_product_recommendation/locale/lt.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/nl.po
Normal file
45
modules/sale_product_recommendation/locale/nl.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Aanbevelen"
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr "Aanbevelen"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr "Methode"
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Grootte"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr "Aanbevelingsmethode Product"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Grootte"
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Aanbevolen producten"
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr "Aanbevolen producten"
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr "Verkoop configuratie product aanbeveling"
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr "Productaanbeveling"
|
||||
45
modules/sale_product_recommendation/locale/pl.po
Normal file
45
modules/sale_product_recommendation/locale/pl.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/pt.po
Normal file
45
modules/sale_product_recommendation/locale/pt.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/ro.po
Normal file
45
modules/sale_product_recommendation/locale/ro.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/ru.po
Normal file
45
modules/sale_product_recommendation/locale/ru.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
46
modules/sale_product_recommendation/locale/sl.po
Normal file
46
modules/sale_product_recommendation/locale/sl.po
Normal file
@@ -0,0 +1,46 @@
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Velikost"
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr "Velikost"
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/tr.po
Normal file
45
modules/sale_product_recommendation/locale/tr.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/uk.po
Normal file
45
modules/sale_product_recommendation/locale/uk.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
45
modules/sale_product_recommendation/locale/zh_CN.po
Normal file
45
modules/sale_product_recommendation/locale/zh_CN.po
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:product.product,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.template,recommendable:"
|
||||
msgid "Recommendable"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_method:"
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.configuration,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_method:"
|
||||
msgid "Product Recommendation Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"field:sale.configuration.product_recommendation,product_recommendation_size:"
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.point.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.sale,recommended_products:"
|
||||
msgid "Recommended Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.configuration.product_recommendation,string:"
|
||||
msgid "Sale Configuration Product Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:sale.configuration:"
|
||||
msgid "Product Recommendation"
|
||||
msgstr ""
|
||||
24
modules/sale_product_recommendation/product.py
Normal file
24
modules/sale_product_recommendation/product.py
Normal file
@@ -0,0 +1,24 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
from trytond.model import fields
|
||||
from trytond.pool import PoolMeta
|
||||
from trytond.pyson import Eval
|
||||
|
||||
|
||||
class Template(metaclass=PoolMeta):
|
||||
__name__ = 'product.template'
|
||||
|
||||
recommendable = fields.Boolean(
|
||||
"Recommendable",
|
||||
states={
|
||||
'invisible': ~Eval('salable'),
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def default_recommendable(cls):
|
||||
return True
|
||||
|
||||
|
||||
class Product(metaclass=PoolMeta):
|
||||
__name__ = 'product.product'
|
||||
17
modules/sale_product_recommendation/product.xml
Normal file
17
modules/sale_product_recommendation/product.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="product_template_view_form">
|
||||
<field name="model">product.template</field>
|
||||
<field name="inherit" ref="product.template_view_form"/>
|
||||
<field name="name">product_template_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="product_template_view_list">
|
||||
<field name="model">product.template</field>
|
||||
<field name="inherit" ref="product.template_view_tree"/>
|
||||
<field name="name">product_template_list</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
103
modules/sale_product_recommendation/sale.py
Normal file
103
modules/sale_product_recommendation/sale.py
Normal file
@@ -0,0 +1,103 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
from trytond.model import ModelSQL, ValueMixin, fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Eval
|
||||
|
||||
product_recommendation_method = fields.Selection([
|
||||
(None, ""),
|
||||
], "Method")
|
||||
product_recommendation_size = fields.Integer(
|
||||
"Size", required=True,
|
||||
domain=[
|
||||
('product_recommendation_size', '>=', 0),
|
||||
])
|
||||
|
||||
|
||||
class Configuration(metaclass=PoolMeta):
|
||||
__name__ = 'sale.configuration'
|
||||
|
||||
product_recommendation_method = fields.MultiValue(
|
||||
product_recommendation_method)
|
||||
product_recommendation_size = fields.MultiValue(
|
||||
product_recommendation_size)
|
||||
|
||||
@classmethod
|
||||
def default_product_recommendation_size(cls, **pattern):
|
||||
return (
|
||||
cls.multivalue_model('product_recommendation_size')
|
||||
.default_product_recommendation_size())
|
||||
|
||||
@classmethod
|
||||
def multivalue_model(cls, field):
|
||||
pool = Pool()
|
||||
if field in {
|
||||
'product_recommendation_method',
|
||||
'product_recommendation_size',
|
||||
}:
|
||||
return pool.get('sale.configuration.product_recommendation')
|
||||
return super().multivalue_model(field)
|
||||
|
||||
|
||||
class ConfigurationProductRecommendation(ModelSQL, ValueMixin):
|
||||
__name__ = 'sale.configuration.product_recommendation'
|
||||
|
||||
product_recommendation_method = fields.Selection(
|
||||
'get_product_recommendation_methods', "Product Recommendation Method")
|
||||
product_recommendation_size = product_recommendation_size
|
||||
|
||||
@classmethod
|
||||
def get_product_recommendation_methods(cls):
|
||||
pool = Pool()
|
||||
Configuration = pool.get('sale.configuration')
|
||||
field_name = 'product_recommendation_method'
|
||||
return Configuration.fields_get(
|
||||
[field_name])[field_name]['selection']
|
||||
|
||||
@classmethod
|
||||
def default_product_recommendation_size(cls):
|
||||
return 5
|
||||
|
||||
|
||||
class SaleMixin:
|
||||
__slots__ = ()
|
||||
|
||||
recommended_products = fields.Function(fields.Many2Many(
|
||||
'product.product', None, None, "Recommended Products",
|
||||
states={
|
||||
'invisible': (
|
||||
(Eval('state') != 'draft')
|
||||
| ~Eval('recommended_products')),
|
||||
}),
|
||||
'on_change_with_recommended_products')
|
||||
|
||||
@fields.depends('state')
|
||||
def on_change_with_recommended_products(self, name=None):
|
||||
pool = Pool()
|
||||
Configuration = pool.get('sale.configuration')
|
||||
if self.state != 'draft':
|
||||
return []
|
||||
config = Configuration(1)
|
||||
method = config.get_multivalue('product_recommendation_method')
|
||||
size = config.get_multivalue('product_recommendation_size')
|
||||
products = []
|
||||
if method:
|
||||
generator = getattr(self, '_recommended_products_%s' % method)()
|
||||
for product in filter(self._is_recommendable_product, generator):
|
||||
products.append(product)
|
||||
if len(products) >= size:
|
||||
break
|
||||
return products
|
||||
|
||||
@classmethod
|
||||
def _is_recommendable_product(cls, product):
|
||||
return product.active and product.salable and product.recommendable
|
||||
|
||||
|
||||
class Sale(SaleMixin, metaclass=PoolMeta):
|
||||
__name__ = 'sale.sale'
|
||||
|
||||
|
||||
class POSSale(SaleMixin, metaclass=PoolMeta):
|
||||
__name__ = 'sale.point.sale'
|
||||
25
modules/sale_product_recommendation/sale.xml
Normal file
25
modules/sale_product_recommendation/sale.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="configuration_view_form">
|
||||
<field name="model">sale.configuration</field>
|
||||
<field name="inherit" ref="sale.sale_configuration_view_form"/>
|
||||
<field name="name">configuration_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_view_form">
|
||||
<field name="model">sale.sale</field>
|
||||
<field name="inherit" ref="sale.sale_view_form"/>
|
||||
<field name="name">sale_form</field>
|
||||
</record>
|
||||
</data>
|
||||
<data depends="sale_point">
|
||||
<record model="ir.ui.view" id="sale_point_sale_view_form">
|
||||
<field name="model">sale.point.sale</field>
|
||||
<field name="inherit" ref="sale_point.sale_view_form"/>
|
||||
<field name="name">sale_form</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
2
modules/sale_product_recommendation/tests/__init__.py
Normal file
2
modules/sale_product_recommendation/tests/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
Binary file not shown.
Binary file not shown.
12
modules/sale_product_recommendation/tests/test_module.py
Normal file
12
modules/sale_product_recommendation/tests/test_module.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from trytond.tests.test_tryton import ModuleTestCase
|
||||
|
||||
|
||||
class SaleProductRecommendationTestCase(ModuleTestCase):
|
||||
"Test Sale Product Recommendation module"
|
||||
module = 'sale_product_recommendation'
|
||||
extras = ['sale_point']
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
23
modules/sale_product_recommendation/tryton.cfg
Normal file
23
modules/sale_product_recommendation/tryton.cfg
Normal file
@@ -0,0 +1,23 @@
|
||||
[tryton]
|
||||
version=7.8.0
|
||||
depends:
|
||||
ir
|
||||
product
|
||||
sale
|
||||
extras_depend:
|
||||
sale_point
|
||||
xml:
|
||||
product.xml
|
||||
sale.xml
|
||||
|
||||
[register]
|
||||
model:
|
||||
product.Template
|
||||
product.Product
|
||||
sale.Configuration
|
||||
sale.ConfigurationProductRecommendation
|
||||
sale.Sale
|
||||
|
||||
[register sale_point]
|
||||
model:
|
||||
sale.POSSale
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/form" position="inside">
|
||||
<separator string="Product Recommendation" id="product_recommendation" colspan="4"/>
|
||||
<label name="product_recommendation_method"/>
|
||||
<field name="product_recommendation_method"/>
|
||||
<label name="product_recommendation_size"/>
|
||||
<field name="product_recommendation_size"/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="//group[@id='checkboxes']" position="inside">
|
||||
<label name="recommendable"/>
|
||||
<field name="recommendable" xexpand="0" width="25"/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="//field[@name='salable']" position="after">
|
||||
<field name="recommendable" optional="1"/>
|
||||
</xpath>
|
||||
</data>
|
||||
8
modules/sale_product_recommendation/view/sale_form.xml
Normal file
8
modules/sale_product_recommendation/view/sale_form.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="//field[@name='lines']" position="after">
|
||||
<field name="recommended_products" colspan="4" view_ids="product.product_view_tree_simple"/>
|
||||
</xpath>
|
||||
</data>
|
||||
Reference in New Issue
Block a user