-
-
Notifications
You must be signed in to change notification settings - Fork 597
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[MIG] pos_default_empty_image: Migrate to 10.0
- Loading branch information
Invitu
committed
Mar 3, 2017
1 parent
5e4feef
commit a52d9d0
Showing
7 changed files
with
152 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg | ||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html | ||
:alt: License: AGPL-3 | ||
|
||
======================= | ||
POS Default Empty Image | ||
======================= | ||
|
||
In the point of sale, trying to load known inexistant images | ||
is a waste of time. | ||
|
||
|
||
When you have 8000 products in your Point of Sale and most of them | ||
don't have images, you are happy to save thousands of useless requests: | ||
the POS load way faster. | ||
|
||
Technical information | ||
===================== | ||
|
||
Each time the pos instantiate a product, it will add an | ||
|
||
<img src="'/web/binary/image?model=product.product&field=image_medium&id='+product.id;" /> | ||
|
||
The browser will trigger as many requests than there is different url. | ||
|
||
|
||
If you have many products, the browser will soon reach his limit of | ||
network connections to Odoo server and will wait for free slots instead of | ||
loading other valuable contents. Then the POS is then very slow to work with. | ||
|
||
|
||
This module adds a field _has_image_ in product.template and will | ||
change the product image url to his default placeholder directly in the POS. | ||
|
||
Because there is only one url for this placeholder, | ||
you will have only one request for all the products with no images. | ||
|
||
|
||
Indeed, if the product has an image, it will load normally. | ||
|
||
|
||
Known issues | ||
============ | ||
|
||
|
||
Updates | ||
======= | ||
|
||
* Feb 2016 : First version | ||
|
||
Bug Tracker | ||
=========== | ||
|
||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_. | ||
In case of trouble, please check there if your issue has already been reported. | ||
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback `here <https://github.com/OCA/web/issues/new?body=module:%20pos_default_empty_image%0Aversion:%200.1%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. | ||
|
||
|
||
Credits | ||
======= | ||
|
||
Contributors | ||
------------ | ||
|
||
* Hparfr <https://github.com/hparfr> `Akretion <https://akretion.com>`_ | ||
* Sylvain LE GAL <https://twitter.com/legalsylvain> | ||
|
||
See also this module `pos_improve_images from GRAP | ||
<https://github.com/grap/odoo-addons-grap/tree/7.0/pos_improve_images>`_ for OpenERP 7. | ||
|
||
|
||
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 http://odoo-community.org. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# -*- coding: utf-8 -*- | ||
# © <2015> <Akretion, GRAP, OCA> | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). | ||
{ | ||
'name': 'POS Default empty image', | ||
'version': '10.0.0.1.0', | ||
'category': 'Point Of Sale', | ||
'summary': 'Optimise load time for products with no image', | ||
'author': "Akretion, GRAP, Odoo Community Association (OCA)", | ||
'website': "https://akretion.com", | ||
'license': 'AGPL-3', | ||
'depends': ['point_of_sale'], | ||
'data': ['view/view.xml'], | ||
'qweb': [], | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import product |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# -*- coding: utf-8 -*- | ||
# © <2015> <Akretion, GRAP, OCA> | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). | ||
|
||
from odoo import models, fields, api | ||
|
||
|
||
class ProductTemplate(models.Model): | ||
_inherit = 'product.template' | ||
|
||
@api.multi | ||
def _get_has_image(self): | ||
self.ensure_one() | ||
self.has_image = self.image is not False | ||
|
||
has_image = fields.Boolean(compute='_get_has_image', string='Has Image') |
26 changes: 26 additions & 0 deletions
26
pos_default_empty_image/static/src/js/pos_default_empty_image.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
odoo.define('pos_default_empty_image', function (require) { | ||
"use strict"; | ||
|
||
var models = require('point_of_sale.models'); | ||
var screens = require('point_of_sale.screens'); | ||
|
||
//don't try to get an image if we know the product ain't one | ||
var ProductListImageWidget = screens.ProductListWidget.include({ | ||
get_product_image_url: function(product){ | ||
if (product.has_image) | ||
return this._super(product); | ||
|
||
return '/web/static/src/img/placeholder.png'; | ||
} | ||
}); | ||
|
||
var _super_posmodel = models.PosModel.prototype; | ||
models.PosModel = models.PosModel.extend({ | ||
initialize: function (session, attributes) { | ||
var product_model = _.find(this.models, function(model){ return model.model === 'product.product'; }); | ||
product_model.fields.push('has_image'); | ||
|
||
return _super_posmodel.initialize.call(this, session, attributes); | ||
}, | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<odoo> | ||
<template id="assets_backend" name="pos_default_empty_image assets" inherit_id="point_of_sale.assets"> | ||
<xpath expr="." position="inside"> | ||
<script type="text/javascript" src="/pos_default_empty_image/static/src/js/pos_default_empty_image.js"></script> | ||
</xpath> | ||
</template> | ||
</odoo> |