Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 145 additions & 0 deletions pos_customer_display_monitor/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
============================
POS Customer Display Monitor
============================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:c975396a74d4f279100a7d8124b3f7ed17b76e39eaace51d8f3363771de7ef3f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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/17.0/pos_customer_display_monitor
:alt: OCA/pos
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/pos-17-0/pos-17-0-pos_customer_display_monitor
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/pos&target_branch=17.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module allows Point of Sale users to select the monitor where the
local customer display should be opened.

The selected monitor is stored in the browser for each Point of Sale
configuration. When the customer display is opened again, the module
automatically places and resizes the window on the previously selected
monitor.

The module uses the browser Window Management API when available and
keeps the standard Odoo customer display rendering and synchronization.

**Table of contents**

.. contents::
:local:

Configuration
=============

To use this module:

1. Go to ``Point of Sale > Configuration > Settings``.

2. Open the Point of Sale configuration that you want to use.

3. Enable the ``Customer Display`` option and save the configuration.

The monitor selection option is only available for local customer
displays. It is not shown when ``Customer Facing Display via Proxy``
is enabled.

4. Open the Point of Sale using a recent Chromium-based browser.

5. Make sure Odoo is served over HTTPS.

6. Open the Point of Sale menu.

7. Click on ``Select customer display screen``.

8. Grant the browser permission to manage windows and screens.

9. Select the monitor that should be used for the customer display.

The selected monitor is stored locally in the browser and is associated
with the current Point of Sale configuration.

The permission and monitor selection are specific to the browser profile
and device being used. They may need to be configured again if the
browser site data, permissions, or local storage are cleared.

Usage
=====

Once a monitor has been selected, use the standard Odoo customer display
button to open the customer display.

The module will:

- Detect the screens currently connected to the device.
- Find the screen that best matches the saved selection.
- Open the Odoo customer display on that screen.
- Move and resize the window to occupy the available screen area.

If the previously selected monitor cannot be found, the module falls
back to a secondary monitor when available, or to the primary monitor.

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 to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/pos/issues/new?body=module:%20pos_customer_display_monitor%0Aversion:%2017.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
-------

* APSL-Nagarro

Contributors
------------

- [APSL-Nagarro](https://apsl.tech):

- Bernat Obrador <bernat.obrador@nagarro.com>

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.

.. |maintainer-BernatObrador| image:: https://github.com/BernatObrador.png?size=40px
:target: https://github.com/BernatObrador
:alt: BernatObrador

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-BernatObrador|

This module is part of the `OCA/pos <https://github.com/OCA/pos/tree/17.0/pos_customer_display_monitor>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions pos_customer_display_monitor/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Copyright 2026 (APSL - Nagarro) Bernat Obrador
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
27 changes: 27 additions & 0 deletions pos_customer_display_monitor/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Copyright 2026 (APSL - Nagarro) Bernat Obrador
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "POS Customer Display Monitor",
"summary": "Select the monitor used by the POS customer display",
"version": "17.0.1.0.0",
"category": "Point of Sale",
"license": "AGPL-3",
"author": "APSL-Nagarro, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/pos",
"maintainers": ["BernatObrador"],
"depends": [
"point_of_sale",
],
"assets": {
"point_of_sale._assets_pos": [
"pos_customer_display_monitor/static/src/app/*.js",
"pos_customer_display_monitor/static/src/app/*.xml",
],
"point_of_sale.assets_qunit_tests": [
"pos_customer_display_monitor/static/tests/unit/**/*.js",
],
},
"installable": True,
"application": False,
}
80 changes: 80 additions & 0 deletions pos_customer_display_monitor/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_customer_display_monitor
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-17 07:17+0000\n"
"PO-Revision-Date: 2026-07-17 07:17+0000\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "Allow window management permission in the browser and try again."
msgstr "Permita el acceso a la gestión de ventanas en el navegador e inténtelo de nuevo."

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "No screens detected"
msgstr "No se han detectado pantallas"

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "Screen permission required"
msgstr "Se requiere permiso para acceder a las pantallas"

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "Screen selection is not supported"
msgstr "La selección de pantalla no es compatible"

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.xml:0
#, python-format
msgid "Select customer display screen"
msgstr "Seleccionar pantalla del cliente"

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "Select the customer display"
msgstr "Seleccione la pantalla del cliente"

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "The browser did not return any connected screens."
msgstr "El navegador no ha devuelto ninguna pantalla conectada."

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "Use a recent Chromium-based browser and serve Odoo over HTTPS."
msgstr "Utilice un navegador reciente basado en Chromium y acceda a Odoo mediante HTTPS."

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "primary"
msgstr "principal"
79 changes: 79 additions & 0 deletions pos_customer_display_monitor/i18n/pos_customer_display_monitor.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_customer_display_monitor
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-17 07:16+0000\n"
"PO-Revision-Date: 2026-07-17 07:16+0000\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_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "Allow window management permission in the browser and try again."
msgstr ""

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "No screens detected"
msgstr ""

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "Screen permission required"
msgstr ""

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "Screen selection is not supported"
msgstr ""

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.xml:0
#, python-format
msgid "Select customer display screen"
msgstr ""

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "Select the customer display"
msgstr ""

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "The browser did not return any connected screens."
msgstr ""

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "Use a recent Chromium-based browser and serve Odoo over HTTPS."
msgstr ""

#. module: pos_customer_display_monitor
#. odoo-javascript
#: code:addons/pos_customer_display_monitor/static/src/app/navbar.esm.js:0
#, python-format
msgid "primary"
msgstr ""
3 changes: 3 additions & 0 deletions pos_customer_display_monitor/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
30 changes: 30 additions & 0 deletions pos_customer_display_monitor/readme/CONFIGURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
To use this module:

1. Go to `Point of Sale > Configuration > Settings`.

2. Open the Point of Sale configuration that you want to use.

3. Enable the `Customer Display` option and save the configuration.

The monitor selection option is only available for local customer
displays. It is not shown when `Customer Facing Display via Proxy`
is enabled.

4. Open the Point of Sale using a recent Chromium-based browser.

5. Make sure Odoo is served over HTTPS.

6. Open the Point of Sale menu.

7. Click on `Select customer display screen`.

8. Grant the browser permission to manage windows and screens.

9. Select the monitor that should be used for the customer display.

The selected monitor is stored locally in the browser and is associated
with the current Point of Sale configuration.

The permission and monitor selection are specific to the browser profile
and device being used. They may need to be configured again if the
browser site data, permissions, or local storage are cleared.
2 changes: 2 additions & 0 deletions pos_customer_display_monitor/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- \[APSL-Nagarro\](<https://apsl.tech>):
- Bernat Obrador \<<bernat.obrador@nagarro.com>\>
10 changes: 10 additions & 0 deletions pos_customer_display_monitor/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
This module allows Point of Sale users to select the monitor where the
local customer display should be opened.

The selected monitor is stored in the browser for each Point of Sale
configuration. When the customer display is opened again, the module
automatically places and resizes the window on the previously selected
monitor.

The module uses the browser Window Management API when available and
keeps the standard Odoo customer display rendering and synchronization.
12 changes: 12 additions & 0 deletions pos_customer_display_monitor/readme/USAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Once a monitor has been selected, use the standard Odoo customer display
button to open the customer display.

The module will:

- Detect the screens currently connected to the device.
- Find the screen that best matches the saved selection.
- Open the Odoo customer display on that screen.
- Move and resize the window to occupy the available screen area.

If the previously selected monitor cannot be found, the module falls
back to a secondary monitor when available, or to the primary monitor.
Loading
Loading