From 78d5fca7de4407a266d78bd5ec5a217d0f3a4eb1 Mon Sep 17 00:00:00 2001 From: snt Date: Sat, 14 Sep 2024 18:37:53 +0200 Subject: [PATCH] fix busqueda por autor y editorial. --- pos_product_library/__manifest__.py | 39 ++++++++++---------- pos_product_library/models/pos_session.py | 14 ++++--- pos_product_library/static/src/js/db.js | 21 +++++++++++ pos_product_library/static/src/js/screens.js | 33 ----------------- pos_product_library/static/src/xml/pos.xml | 17 ++++++--- 5 files changed, 60 insertions(+), 64 deletions(-) create mode 100644 pos_product_library/static/src/js/db.js delete mode 100644 pos_product_library/static/src/js/screens.js diff --git a/pos_product_library/__manifest__.py b/pos_product_library/__manifest__.py index 0d9a6ed..f7fbc6f 100644 --- a/pos_product_library/__manifest__.py +++ b/pos_product_library/__manifest__.py @@ -1,30 +1,31 @@ { - 'name': 'PoS Product Library', - 'category': 'Product', - 'summary': 'Add product_library fields to point of sale', - 'version': "16.0.1.0.0", - 'description': """ - -Añade los campos de product_library al TPV + "name": "PoS Product Library", + "category": "Point of Sale", + "summary": "Add product_library fields to point of sale", + "version": "16.0.1.0.0", + "license": "AGPL-3", + "description": """ +Añade campos de product_library al TPV ================================================== -* Hace búsquedas en el TPV de los campos autor y género. +* Hace búsquedas en el TPV de los campos autor y editorial. * Muestra el campo formato en el PoS en los productos y en las líneas de la orden. * Muestra los campos de product_library en el popup de info del producto. -* Impide la búsqueda en el TPV en las descripciones. +* Quita la descriptición de los productos de la búsqueda en el TPV. """, - 'author': 'Criptomart', - 'depends': [ - 'product_library', - 'point_of_sale', + "author": "Criptomart", + "depends": [ + "product_library", + "point_of_sale", ], "assets": { "point_of_sale.assets": [ - "pos_product_library/static/src/js/**/*.js", + "pos_product_library/static/src/js/db.js", "pos_product_library/static/src/xml/**/*.xml", - ], + ], }, - 'demo': [], - 'installable': True, - 'auto_install': False, - 'application': True, + "data": [], + "demo": [], + "installable": True, + "auto_install": False, + "application": True, } diff --git a/pos_product_library/models/pos_session.py b/pos_product_library/models/pos_session.py index 6c39268..87934be 100644 --- a/pos_product_library/models/pos_session.py +++ b/pos_product_library/models/pos_session.py @@ -6,10 +6,12 @@ class PosSession(models.Model): def _loader_params_product_product(self): result = super()._loader_params_product_product() - result['search_params']['fields'].append('formato') - result['search_params']['fields'].append('autor'); - result['search_params']['fields'].append('editorial'); - result['search_params']['fields'].append('genero'); - result['search_params']['fields'].append('subtitle'); - result['search_params']['fields'].append('fecha_entrada'); + result['search_params']['fields'].remove("description") + result['search_params']['fields'].append("autor") + result['search_params']['fields'].append("editorial"); + result['search_params']['fields'].append("formato"); + result['search_params']['fields'].append("genero"); + result['search_params']['fields'].append("subtitle"); + result['search_params']['fields'].append("fecha_entrada"); + return result diff --git a/pos_product_library/static/src/js/db.js b/pos_product_library/static/src/js/db.js new file mode 100644 index 0000000..cd3596d --- /dev/null +++ b/pos_product_library/static/src/js/db.js @@ -0,0 +1,21 @@ +odoo.define("pos_supplierinfo_search.db", function (require) { + "use strict"; + + var PosDB = require("point_of_sale.DB"); + + PosDB.include({ + _product_search_string: function (product) { + var res = this._super(product).replace("\n", ""); + console.log("res", res); + if (product.autor) { + res += "|" + product.autor.replace(/:/g, ""); + } + if (product.editorial) { + res += "|" + product.editorial.replace(/:/g, ""); + } + res += "\n"; + console.log("res", res); + return res; + } + }); +}); \ No newline at end of file diff --git a/pos_product_library/static/src/js/screens.js b/pos_product_library/static/src/js/screens.js deleted file mode 100644 index b90804b..0000000 --- a/pos_product_library/static/src/js/screens.js +++ /dev/null @@ -1,33 +0,0 @@ -odoo.define('product_library.screens', function (require) { - "use strict"; - - var ProductScreen = require('point_of_sale.ProductScreen'); - var Registries = require('point_of_sale.Registries'); - - const LibraryProductScreen = (ProductScreen) => - class extends ProductScreen { - _searchProduct(event) { - const query = event.target.value.trim().toLowerCase(); - if (query) { - const products = this.env.pos.db.get_product_by_category(0).filter(product => { - return product.display_name.toLowerCase().includes(query) || - product.autor.toLowerCase().includes(query) || - product.editorial.toLowerCase().includes(query); - }); - this.env.pos.db.add_products(products); - } else { - this.env.pos.db.add_products(this.env.pos.db.get_product_by_category(0)); - } - this.render(); - } - - mounted() { - super.mounted(); - this.el.querySelector('.searchbox input').addEventListener('input', this._searchProduct.bind(this)); - } - }; - - Registries.Component.extend(ProductScreen, LibraryProductScreen); - - return LibraryProductScreen; -}); \ No newline at end of file diff --git a/pos_product_library/static/src/xml/pos.xml b/pos_product_library/static/src/xml/pos.xml index 3716dda..720ae64 100644 --- a/pos_product_library/static/src/xml/pos.xml +++ b/pos_product_library/static/src/xml/pos.xml @@ -9,7 +9,7 @@

- +
@@ -31,17 +31,17 @@

- - - - - + + + + + @@ -55,6 +55,11 @@ +
Formato:
Subtitulo:
Autor:
Formato:
Editorial:Género: