hparfr
7 years ago
committed by
Wolfgang Pichler
5 changed files with 156 additions and 0 deletions
-
77pos_fix_search_limit/README.rst
-
0pos_fix_search_limit/__init__.py
-
19pos_fix_search_limit/__manifest__.py
-
49pos_fix_search_limit/static/src/js/pos_fix_search_limit.js
-
11pos_fix_search_limit/views/pos_fix_limit.xml
@ -0,0 +1,77 @@ |
|||
.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png |
|||
:target: https://www.gnu.org/licenses/agpl |
|||
:alt: License: AGPL-3 |
|||
|
|||
==================== |
|||
Pos Fix Search Limit |
|||
==================== |
|||
|
|||
This module makes the distinction between the limit of search results |
|||
and the limit of product displayed. |
|||
|
|||
Without this module, if you have many products, all the searches are limited |
|||
to 100 firsts results. |
|||
|
|||
This module increase the limit of search results to a high number |
|||
and keep the number of product displayed to 100. |
|||
|
|||
|
|||
Usage |
|||
===== |
|||
|
|||
This module is a dependecy of other modules like pos_product_template. |
|||
|
|||
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas |
|||
:alt: Try me on Runbot |
|||
:target: https://runbot.odoo-community.org/runbot/184/10.0 |
|||
|
|||
Known issues / Roadmap |
|||
====================== |
|||
|
|||
* Display a last element like "More products" to let the user know his search has been truncated. |
|||
* Truncate the list of partners with the display limit. |
|||
|
|||
Bug Tracker |
|||
=========== |
|||
|
|||
Bugs are tracked on `GitHub Issues |
|||
<https://github.com/OCA/{project_repo}/issues>`_. In case of trouble, please |
|||
check there if your issue has already been reported. If you spotted it first, |
|||
help us smash it by providing detailed and welcomed feedback. |
|||
|
|||
Credits |
|||
======= |
|||
|
|||
Images |
|||
------ |
|||
|
|||
* Odoo Community Association: `Icon <https://odoo-community.org/logo.png>`_. |
|||
|
|||
Contributors |
|||
------------ |
|||
|
|||
* Raphaël Reverdy <raphael.reverdy@akretion.com> (https://www.akretion.com) |
|||
|
|||
Do not contact contributors directly about support or help with technical issues. |
|||
|
|||
Funders |
|||
------- |
|||
|
|||
The development of this module has been financially supported by: |
|||
|
|||
* Akretion |
|||
|
|||
Maintainer |
|||
---------- |
|||
|
|||
.. image:: https://odoo-community.org/logo.png |
|||
:alt: Odoo Community Association |
|||
:target: https://odoo-community.org |
|||
|
|||
This module is maintained by the OCA. |
|||
|
|||
OCA, or the Odoo Community Association, is a nonprofit organization whose |
|||
mission is to support the collaborative development of Odoo features and |
|||
promote its widespread use. |
|||
|
|||
To contribute to this module, please visit https://odoo-community.org. |
@ -0,0 +1,19 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Copyright 2018 Akretion |
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). |
|||
{ |
|||
"name": "Pos Fix Search Limit", |
|||
"summary": "Increase search in the PoS", |
|||
"version": "10.0.1.0.0", |
|||
"category": "Point of Sale", |
|||
"author": "Akretion, Odoo Community Association (OCA)", |
|||
"license": "AGPL-3", |
|||
"application": False, |
|||
"installable": True, |
|||
"depends": [ |
|||
"point_of_sale", |
|||
], |
|||
"data": [ |
|||
"views/pos_fix_limit.xml", |
|||
] |
|||
} |
@ -0,0 +1,49 @@ |
|||
/* Copyright 2018 Akretion - Raphaël Reverdy |
|||
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). */
|
|||
odoo.define("pos_fix_search_limit.db", function (require) { |
|||
"use strict"; |
|||
var PosDB = require("point_of_sale.DB"); |
|||
PosDB.include({ |
|||
limit: 314159265, // the maximum number of results returned by a search
|
|||
}); |
|||
}); |
|||
|
|||
odoo.define('pos_fix_search_limit.product_list', function(require) { |
|||
"use strict"; |
|||
var screens = require('point_of_sale.screens'); |
|||
var core = require('web.core'); |
|||
var qweb = core.qweb; |
|||
|
|||
screens.ProductListWidget.include({ |
|||
displayLimit: 100, //number of elements displayed
|
|||
renderElement: function() { |
|||
//Limit the number of elements to displayLimit (instead of db.limit)
|
|||
// (db.limit has been increased to return more results)
|
|||
// (but we still want to limit the display)
|
|||
//And make use of document fragment, because better perfs
|
|||
var self = this; |
|||
var i = 0; |
|||
var len = Math.min(this.product_list.length, this.displayLimit); |
|||
var frag = document.createDocumentFragment(); |
|||
var product_node = null; |
|||
|
|||
var el_str = qweb.render(this.template, {widget: this}); |
|||
var el_node = document.createElement('div'); |
|||
el_node.innerHTML = el_str; |
|||
el_node = el_node.childNodes[1]; |
|||
|
|||
if(this.el && this.el.parentNode){ |
|||
this.el.parentNode.replaceChild(el_node,this.el); |
|||
} |
|||
this.el = el_node; |
|||
|
|||
var list_container = el_node.querySelector('.product-list'); |
|||
for(i=0; i < len; i++){ |
|||
product_node = this.render_product(this.product_list[i]); |
|||
product_node.addEventListener('click',this.click_product_handler); |
|||
frag.appendChild(product_node); |
|||
} |
|||
list_container.appendChild(frag); |
|||
} |
|||
}); |
|||
}); |
@ -0,0 +1,11 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<odoo> |
|||
|
|||
<template id="assets" name="pos_fix_search_limit assets" inherit_id="point_of_sale.assets"> |
|||
<xpath expr="." position="inside"> |
|||
<script type="text/javascript" src="/pos_fix_search_limit/static/src/js/pos_fix_search_limit.js"></script> |
|||
</xpath> |
|||
</template> |
|||
|
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue