Browse Source

Merge PR #528 into 13.0

Signed-off-by legalsylvain
13.0
OCA-git-bot 4 years ago
parent
commit
ff948db919
  1. 107
      pos_timeout/README.rst
  2. 1
      pos_timeout/__init__.py
  3. 19
      pos_timeout/__manifest__.py
  4. 43
      pos_timeout/i18n/es.po
  5. 52
      pos_timeout/i18n/fr.po
  6. 44
      pos_timeout/i18n/hr_HR.po
  7. 43
      pos_timeout/i18n/it.po
  8. 43
      pos_timeout/i18n/nl_NL.po
  9. 35
      pos_timeout/i18n/pos_timeout.pot
  10. 1
      pos_timeout/models/__init__.py
  11. 23
      pos_timeout/models/pos_config.py
  12. 10
      pos_timeout/readme/CONFIGURE.rst
  13. 2
      pos_timeout/readme/CONTRIBUTORS.rst
  14. 3
      pos_timeout/readme/CREDITS.rst
  15. 13
      pos_timeout/readme/DESCRIPTION.rst
  16. BIN
      pos_timeout/static/description/icon.png
  17. 450
      pos_timeout/static/description/index.html
  18. BIN
      pos_timeout/static/description/pos_config.png
  19. 27
      pos_timeout/static/src/js/pos_timeout.js
  20. 11
      pos_timeout/views/templates.xml
  21. 23
      pos_timeout/views/view_pos_config.xml
  22. 2
      setup/.setuptools-odoo-make-default-ignore
  23. 2
      setup/README
  24. 1
      setup/pos_timeout/odoo/addons/pos_timeout
  25. 6
      setup/pos_timeout/setup.py

107
pos_timeout/README.rst

@ -0,0 +1,107 @@
=======================
Point of Sale - timeout
=======================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github
:target: https://github.com/OCA/pos/tree/10.0/pos_timeout
:alt: OCA/pos
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/pos-10-0/pos-10-0-pos_timeout
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/184/10.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
This module extends the functionality of Point of Sale module.
By default, in Odoo a timeout is set to 7.5 seconds for the creation of
a PoS order. This threshold is usually sufficient, but in some cases it is not,
mainly if the connection is bad, or if some custom modules add extra
long treatments.
This module allows to change this default value.
If the call contains more than one order (after a long disconnection period
for example, or if the previous call raised the timeout) the effective timeout
value applied will be equal to the defined timeout value multiplied by the
number of orders.
**Table of contents**
.. contents::
:local:
Configuration
=============
To configure this module, you need to:
* Go to 'Point Of Sale' / 'Configuration' / 'Point of Sale' and edit your
PoS Config, setting a timeout
.. figure:: https://raw.githubusercontent.com/OCA/pos/10.0/pos_timeout/static/description/pos_config.png
:alt: PoS Configuration
:width: 800 px
If not set, the default Odoo timeout will be used. (7.5 seconds in V10.0)
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/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 <https://github.com/OCA/pos/issues/new?body=module:%20pos_timeout%0Aversion:%2010.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
~~~~~~~
* GRAP
Contributors
~~~~~~~~~~~~
* Sylvain LE GAL (https://twitter.com/legalsylvain)
* Nils Hamerlinck (Trobz)
Other credits
~~~~~~~~~~~~~
The development of this module has been financially supported by:
* GRAP, Groupement Régional Alimentaire de Proximité (http://www.grap.coop)
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
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.
This module is part of the `OCA/pos <https://github.com/OCA/pos/tree/10.0/pos_timeout>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

1
pos_timeout/__init__.py

@ -0,0 +1 @@
from . import models

19
pos_timeout/__manifest__.py

@ -0,0 +1,19 @@
# Copyright (C) 2017 - Today: GRAP (http://www.grap.coop)
# Copyright (C) 2017 - Today: Akretion (http://www.akretion.com)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Point of Sale - timeout",
"summary": "Set the timeout of the point of sale",
"version": "13.0.1.0.0",
"category": "Sales/Point Of Sale",
"website": "https://odoo-community.org/",
"author": "GRAP, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": ["point_of_sale"],
"images": ["static/description/pos_config.png"],
"data": ["views/view_pos_config.xml", "views/templates.xml"],
"qweb": ["static/src/xml/pos_timeout.xml"],
"installable": True,
}

43
pos_timeout/i18n/es.po

@ -0,0 +1,43 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_timeout
#
# Translators:
# enjolras <yo@miguelrevilla.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-01 02:01+0000\n"
"PO-Revision-Date: 2018-03-01 02:01+0000\n"
"Last-Translator: enjolras <yo@miguelrevilla.com>, 2018\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: pos_timeout
#: model:ir.model.fields,help:pos_timeout.field_pos_config_pos_order_timeout
msgid ""
"Defines the value of the client-side timeout for the creation of PoS "
"Order(s) from the POS UI.\n"
" The value is expressed in seconds, for a single order.\n"
" If not defined, the default Odoo value will be used: 30 seconds.\n"
" If the call contains more than one order (after a long disconnection period "
"for example, or if the previous call raised the timeout),\n"
" the effective timeout value applied will be equal to the defined timeout "
"value multiplied by the number of orders.\n"
msgstr ""
#. module: pos_timeout
#: model:ir.model.fields,field_description:pos_timeout.field_pos_config_pos_order_timeout
#, fuzzy
msgid "PoS Order(s) Timeout"
msgstr "Caducidad del pedido en el TPV"
#. module: pos_timeout
#: model:ir.model,name:pos_timeout.model_pos_config
msgid "pos.config"
msgstr "pos.config"

52
pos_timeout/i18n/fr.po

@ -0,0 +1,52 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_timeout
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-20 00:43+0000\n"
"PO-Revision-Date: 2018-01-20 00:43+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: pos_timeout
#: model:ir.model.fields,help:pos_timeout.field_pos_config_pos_order_timeout
msgid ""
"Defines the value of the client-side timeout for the creation of PoS "
"Order(s) from the POS UI.\n"
" The value is expressed in seconds, for a single order.\n"
" If not defined, the default Odoo value will be used: 30 seconds.\n"
" If the call contains more than one order (after a long disconnection period "
"for example, or if the previous call raised the timeout),\n"
" the effective timeout value applied will be equal to the defined timeout "
"value multiplied by the number of orders.\n"
msgstr ""
#. module: pos_timeout
#: model:ir.model.fields,field_description:pos_timeout.field_pos_config_pos_order_timeout
#, fuzzy
msgid "PoS Order(s) Timeout"
msgstr "Timeout des commandes"
#. module: pos_timeout
#: model:ir.model,name:pos_timeout.model_pos_config
msgid "pos.config"
msgstr "pos.config"
#~ msgid ""
#~ "Define the timeout for the creation of PoS Order in the Front Office UI.\n"
#~ " The value is expressed in seconds.\n"
#~ " If not defined, the default Odoo value will be used (30 seconds)."
#~ msgstr ""
#~ "Définit le timeout pour la création des commandes de vente dans la partie "
#~ "front office du point de vente.\n"
#~ " La valeur est exprimée en secondes.\n"
#~ " Si elle n'est pas définie, la valeur par défaut de Odoo sera utilisée. "
#~ "(30 secondes)."

44
pos_timeout/i18n/hr_HR.po

@ -0,0 +1,44 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_timeout
#
# Translators:
# Bole <bole@dajmi5.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-01 02:01+0000\n"
"PO-Revision-Date: 2018-03-01 02:01+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>, 2018\n"
"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/"
"hr_HR/)\n"
"Language: hr_HR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: pos_timeout
#: model:ir.model.fields,help:pos_timeout.field_pos_config_pos_order_timeout
msgid ""
"Defines the value of the client-side timeout for the creation of PoS "
"Order(s) from the POS UI.\n"
" The value is expressed in seconds, for a single order.\n"
" If not defined, the default Odoo value will be used: 30 seconds.\n"
" If the call contains more than one order (after a long disconnection period "
"for example, or if the previous call raised the timeout),\n"
" the effective timeout value applied will be equal to the defined timeout "
"value multiplied by the number of orders.\n"
msgstr ""
#. module: pos_timeout
#: model:ir.model.fields,field_description:pos_timeout.field_pos_config_pos_order_timeout
msgid "PoS Order(s) Timeout"
msgstr ""
#. module: pos_timeout
#: model:ir.model,name:pos_timeout.model_pos_config
msgid "pos.config"
msgstr "pos.config"

43
pos_timeout/i18n/it.po

@ -0,0 +1,43 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_timeout
#
# Translators:
# Francesco Fresta <franco.fresta@gmail.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-01 02:01+0000\n"
"PO-Revision-Date: 2018-03-01 02:01+0000\n"
"Last-Translator: Francesco Fresta <franco.fresta@gmail.com>, 2018\n"
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: pos_timeout
#: model:ir.model.fields,help:pos_timeout.field_pos_config_pos_order_timeout
msgid ""
"Defines the value of the client-side timeout for the creation of PoS "
"Order(s) from the POS UI.\n"
" The value is expressed in seconds, for a single order.\n"
" If not defined, the default Odoo value will be used: 30 seconds.\n"
" If the call contains more than one order (after a long disconnection period "
"for example, or if the previous call raised the timeout),\n"
" the effective timeout value applied will be equal to the defined timeout "
"value multiplied by the number of orders.\n"
msgstr ""
#. module: pos_timeout
#: model:ir.model.fields,field_description:pos_timeout.field_pos_config_pos_order_timeout
#, fuzzy
msgid "PoS Order(s) Timeout"
msgstr "PoS Order Timeout"
#. module: pos_timeout
#: model:ir.model,name:pos_timeout.model_pos_config
msgid "pos.config"
msgstr "pos.config"

43
pos_timeout/i18n/nl_NL.po

@ -0,0 +1,43 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_timeout
#
# Translators:
# Peter Hageman <hageman.p@gmail.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-01 02:01+0000\n"
"PO-Revision-Date: 2018-03-01 02:01+0000\n"
"Last-Translator: Peter Hageman <hageman.p@gmail.com>, 2018\n"
"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/"
"teams/23907/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: pos_timeout
#: model:ir.model.fields,help:pos_timeout.field_pos_config_pos_order_timeout
msgid ""
"Defines the value of the client-side timeout for the creation of PoS "
"Order(s) from the POS UI.\n"
" The value is expressed in seconds, for a single order.\n"
" If not defined, the default Odoo value will be used: 30 seconds.\n"
" If the call contains more than one order (after a long disconnection period "
"for example, or if the previous call raised the timeout),\n"
" the effective timeout value applied will be equal to the defined timeout "
"value multiplied by the number of orders.\n"
msgstr ""
#. module: pos_timeout
#: model:ir.model.fields,field_description:pos_timeout.field_pos_config_pos_order_timeout
msgid "PoS Order(s) Timeout"
msgstr ""
#. module: pos_timeout
#: model:ir.model,name:pos_timeout.model_pos_config
msgid "pos.config"
msgstr "pos.config"

35
pos_timeout/i18n/pos_timeout.pot

@ -0,0 +1,35 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_timeout
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: pos_timeout
#: model:ir.model.fields,help:pos_timeout.field_pos_config_pos_order_timeout
msgid "Defines the value of the client-side timeout for the creation of PoS Order(s) from the POS UI.\n"
" The value is expressed in seconds, for a single order.\n"
" If not defined, the default Odoo value will be used: 30 seconds.\n"
" If the call contains more than one order (after a long disconnection period for example, or if the previous call raised the timeout),\n"
" the effective timeout value applied will be equal to the defined timeout value multiplied by the number of orders.\n"
""
msgstr ""
#. module: pos_timeout
#: model:ir.model.fields,field_description:pos_timeout.field_pos_config_pos_order_timeout
msgid "PoS Order(s) Timeout"
msgstr ""
#. module: pos_timeout
#: model:ir.model,name:pos_timeout.model_pos_config
msgid "pos.config"
msgstr ""

1
pos_timeout/models/__init__.py

@ -0,0 +1 @@
from . import pos_config

23
pos_timeout/models/pos_config.py

@ -0,0 +1,23 @@
# Copyright (C) 2018 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class PosConfig(models.Model):
_inherit = "pos.config"
pos_order_timeout = fields.Integer(
string="PoS Order(s) Timeout",
help="Defines the value of the"
" client-side timeout for the creation of PoS Order(s)"
" from the POS UI.\n"
" The value is expressed in seconds, for a single order.\n"
" If not defined, the default Odoo value will be used: 30 seconds.\n"
" If the call contains more than one order"
" (after a long disconnection period for example, or if the previous"
" call raised the timeout),\n the effective timeout value applied will"
" be equal to the defined timeout value multiplied by the number of"
" orders.\n",
)

10
pos_timeout/readme/CONFIGURE.rst

@ -0,0 +1,10 @@
To configure this module, you need to:
* Go to 'Point Of Sale' / 'Configuration' / 'Point of Sale' and edit your
PoS Config, setting a timeout
.. figure:: ../static/description/pos_config.png
:alt: PoS Configuration
:width: 800 px
If not set, the default Odoo timeout will be used. (7.5 seconds in V10.0)

2
pos_timeout/readme/CONTRIBUTORS.rst

@ -0,0 +1,2 @@
* Sylvain LE GAL (https://twitter.com/legalsylvain)
* Nils Hamerlinck (Trobz)

3
pos_timeout/readme/CREDITS.rst

@ -0,0 +1,3 @@
The development of this module has been financially supported by:
* GRAP, Groupement Régional Alimentaire de Proximité (http://www.grap.coop)

13
pos_timeout/readme/DESCRIPTION.rst

@ -0,0 +1,13 @@
This module extends the functionality of Point of Sale module.
By default, in Odoo a timeout is set to 30 seconds for the creation of
a PoS order. This threshold is usually sufficient, but in some cases it is not,
mainly if the connection is bad, or if some custom modules add extra
long treatments.
This module allows to change this default value.
If the call contains more than one order (after a long disconnection period
for example, or if the previous call raised the timeout) the effective timeout
value applied will be equal to the defined timeout value multiplied by the
number of orders.

BIN
pos_timeout/static/description/icon.png

After

Width: 160  |  Height: 160  |  Size: 2.4 KiB

450
pos_timeout/static/description/index.html

@ -0,0 +1,450 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
<title>Point of Sale - timeout</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="point-of-sale-timeout">
<h1 class="title">Point of Sale - timeout</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/pos/tree/10.0/pos_timeout"><img alt="OCA/pos" src="https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/pos-10-0/pos-10-0-pos_timeout"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/184/10.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>This module extends the functionality of Point of Sale module.</p>
<p>By default, in Odoo a timeout is set to 7.5 seconds for the creation of
a PoS order. This threshold is usually sufficient, but in some cases it is not,
mainly if the connection is bad, or if some custom modules add extra
long treatments.</p>
<p>This module allows to change this default value.</p>
<p>If the call contains more than one order (after a long disconnection period
for example, or if the previous call raised the timeout) the effective timeout
value applied will be equal to the defined timeout value multiplied by the
number of orders.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#configuration" id="id1">Configuration</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id5">Contributors</a></li>
<li><a class="reference internal" href="#other-credits" id="id6">Other credits</a></li>
<li><a class="reference internal" href="#maintainers" id="id7">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#id1">Configuration</a></h1>
<p>To configure this module, you need to:</p>
<ul class="simple">
<li>Go to ‘Point Of Sale’ / ‘Configuration’ / ‘Point of Sale’ and edit your
PoS Config, setting a timeout</li>
</ul>
<div class="figure">
<img alt="PoS Configuration" src="https://raw.githubusercontent.com/OCA/pos/10.0/pos_timeout/static/description/pos_config.png" style="width: 800px;" />
</div>
<p>If not set, the default Odoo timeout will be used. (7.5 seconds in V10.0)</p>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/pos/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/pos/issues/new?body=module:%20pos_timeout%0Aversion:%2010.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#id3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id4">Authors</a></h2>
<ul class="simple">
<li>GRAP</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id5">Contributors</a></h2>
<ul class="simple">
<li>Sylvain LE GAL (<a class="reference external" href="https://twitter.com/legalsylvain">https://twitter.com/legalsylvain</a>)</li>
<li>Nils Hamerlinck (Trobz)</li>
</ul>
</div>
<div class="section" id="other-credits">
<h2><a class="toc-backref" href="#id6">Other credits</a></h2>
<p>The development of this module has been financially supported by:</p>
<ul class="simple">
<li>GRAP, Groupement Régional Alimentaire de Proximité (<a class="reference external" href="http://www.grap.coop">http://www.grap.coop</a>)</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id7">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>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.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/pos/tree/10.0/pos_timeout">OCA/pos</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

BIN
pos_timeout/static/description/pos_config.png

After

Width: 820  |  Height: 205  |  Size: 21 KiB

27
pos_timeout/static/src/js/pos_timeout.js

@ -0,0 +1,27 @@
/** ****************************************************************************
Copyright (C) 2018 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
*****************************************************************************/
odoo.define("pos_timeout.models", function(require) {
"use strict";
var models = require("point_of_sale.models");
/** ***********************************************************************
Extend module.PosModel:
Overload _save_to_server to alter the timeout
*/
var PosModelParent = models.PosModel.prototype;
models.PosModel = models.PosModel.extend({
// eslint-disable-next-line no-unused-vars
_save_to_server: function(orders, options) {
// Get PoS Config Settings
var timeout = this.config.pos_order_timeout;
if (timeout > 0 && orders && orders.length) {
arguments[1].timeout = timeout * 1000 * orders.length;
}
return PosModelParent._save_to_server.apply(this, arguments);
},
});
});

11
pos_timeout/views/templates.xml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="assets" name="pos_timeout assets" inherit_id="point_of_sale.assets">
<xpath expr="." position="inside">
<script
type="text/javascript"
src="/pos_timeout/static/src/js/pos_timeout.js"
/>
</xpath>
</template>
</odoo>

23
pos_timeout/views/view_pos_config.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_pos_config_form" model="ir.ui.view">
<field name="model">pos.config</field>
<field name="inherit_id" ref="point_of_sale.pos_config_view_form" />
<field name="arch" type="xml">
<div id="accounting_section" position="after">
<h2>Technical settings</h2>
<div class="row mt16 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Timeout</span>
<div class="text-muted">
<label for="pos_order_timeout" />
</div>
<field name="pos_order_timeout" />
</div>
</div>
</div>
</div>
</field>
</record>
</odoo>

2
setup/.setuptools-odoo-make-default-ignore

@ -0,0 +1,2 @@
# addons listed in this file are ignored by
# setuptools-odoo-make-default (one addon per line)

2
setup/README

@ -0,0 +1,2 @@
To learn more about this directory, please visit
https://pypi.python.org/pypi/setuptools-odoo

1
setup/pos_timeout/odoo/addons/pos_timeout

@ -0,0 +1 @@
../../../../pos_timeout

6
setup/pos_timeout/setup.py

@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
Loading…
Cancel
Save