odoo-addon-web-widget-remote-measure 15.0.1.0.0.4__py3-none-any.whl → 15.0.1.0.0.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/web_widget_remote_measure/README.rst +9 -9
- odoo/addons/web_widget_remote_measure/__init__.py +1 -0
- odoo/addons/web_widget_remote_measure/__manifest__.py +1 -1
- odoo/addons/web_widget_remote_measure/controllers/__init__.py +1 -0
- odoo/addons/web_widget_remote_measure/controllers/main.py +44 -0
- odoo/addons/web_widget_remote_measure/i18n/es.po +7 -0
- odoo/addons/web_widget_remote_measure/i18n/web_widget_remote_measure.pot +50 -0
- odoo/addons/web_widget_remote_measure/models/remote_measure_device.py +8 -0
- odoo/addons/web_widget_remote_measure/static/description/index.html +5 -6
- odoo/addons/web_widget_remote_measure/static/src/js/remote_measure_widget.esm.js +108 -7
- odoo/addons/web_widget_remote_measure/views/remote_measure_device_views.xml +7 -0
- odoo/addons/web_widget_remote_measure/views/res_users_views.xml +14 -0
- {odoo_addon_web_widget_remote_measure-15.0.1.0.0.4.dist-info → odoo_addon_web_widget_remote_measure-15.0.1.0.0.7.dist-info}/METADATA +11 -11
- {odoo_addon_web_widget_remote_measure-15.0.1.0.0.4.dist-info → odoo_addon_web_widget_remote_measure-15.0.1.0.0.7.dist-info}/RECORD +16 -14
- {odoo_addon_web_widget_remote_measure-15.0.1.0.0.4.dist-info → odoo_addon_web_widget_remote_measure-15.0.1.0.0.7.dist-info}/WHEEL +1 -1
- {odoo_addon_web_widget_remote_measure-15.0.1.0.0.4.dist-info → odoo_addon_web_widget_remote_measure-15.0.1.0.0.7.dist-info}/top_level.txt +0 -0
@@ -7,7 +7,7 @@ Remote Measure Devices Input
|
|
7
7
|
!! This file is generated by oca-gen-addon-readme !!
|
8
8
|
!! changes will be overwritten. !!
|
9
9
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
10
|
-
!! source digest: sha256:
|
10
|
+
!! source digest: sha256:044f11b0ae08030a422670bc0684b5bb977f5f91298ed1c79fdd184ec2f59bf5
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
12
12
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
@@ -16,14 +16,14 @@ Remote Measure Devices Input
|
|
16
16
|
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
17
17
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
18
18
|
:alt: License: AGPL-3
|
19
|
-
.. |badge3| image:: https://img.shields.io/badge/github-OCA%
|
20
|
-
:target: https://github.com/OCA/
|
21
|
-
:alt: OCA/
|
19
|
+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--weighing-lightgray.png?logo=github
|
20
|
+
:target: https://github.com/OCA/stock-weighing/tree/15.0/web_widget_remote_measure
|
21
|
+
:alt: OCA/stock-weighing
|
22
22
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
23
|
-
:target: https://translation.odoo-community.org/projects/
|
23
|
+
:target: https://translation.odoo-community.org/projects/stock-weighing-15-0/stock-weighing-15-0-web_widget_remote_measure
|
24
24
|
:alt: Translate me on Weblate
|
25
25
|
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
26
|
-
:target: https://runboat.odoo-community.org/builds?repo=OCA/
|
26
|
+
:target: https://runboat.odoo-community.org/builds?repo=OCA/stock-weighing&target_branch=15.0
|
27
27
|
:alt: Try me on Runboat
|
28
28
|
|
29
29
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
@@ -85,10 +85,10 @@ But this is a commonground to add:
|
|
85
85
|
Bug Tracker
|
86
86
|
===========
|
87
87
|
|
88
|
-
Bugs are tracked on `GitHub Issues <https://github.com/OCA/
|
88
|
+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-weighing/issues>`_.
|
89
89
|
In case of trouble, please check there if your issue has already been reported.
|
90
90
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
91
|
-
`feedback <https://github.com/OCA/
|
91
|
+
`feedback <https://github.com/OCA/stock-weighing/issues/new?body=module:%20web_widget_remote_measure%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
92
92
|
|
93
93
|
Do not contact contributors directly about support or help with technical issues.
|
94
94
|
|
@@ -128,6 +128,6 @@ Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|
|
128
128
|
|
129
129
|
|maintainer-chienandalu|
|
130
130
|
|
131
|
-
This module is part of the `OCA/
|
131
|
+
This module is part of the `OCA/stock-weighing <https://github.com/OCA/stock-weighing/tree/15.0/web_widget_remote_measure>`_ project on GitHub.
|
132
132
|
|
133
133
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
@@ -5,7 +5,7 @@
|
|
5
5
|
"summary": "Allows to connect to remote devices to record measures",
|
6
6
|
"version": "15.0.1.0.0",
|
7
7
|
"author": "Tecnativa, Odoo Community Association (OCA)",
|
8
|
-
"website": "https://github.com/OCA/
|
8
|
+
"website": "https://github.com/OCA/stock-weighing",
|
9
9
|
"maintainers": ["chienandalu"],
|
10
10
|
"license": "AGPL-3",
|
11
11
|
"category": "Stock",
|
@@ -0,0 +1 @@
|
|
1
|
+
from . import main
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Copyright 2023 Tecnativa - David Vidal
|
2
|
+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
3
|
+
import socket
|
4
|
+
|
5
|
+
from odoo.http import Controller, request, route
|
6
|
+
|
7
|
+
|
8
|
+
class RemoteDeviceTcpConnection(Controller):
|
9
|
+
"""Connect directly to a remote device"""
|
10
|
+
|
11
|
+
def _get_weight(self, data, host, port, time_out=1):
|
12
|
+
"""Direct tcp connection to the remote device"""
|
13
|
+
response = None
|
14
|
+
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as device:
|
15
|
+
device.settimeout(time_out)
|
16
|
+
device.connect((host, port))
|
17
|
+
try:
|
18
|
+
if data:
|
19
|
+
if isinstance(data, str):
|
20
|
+
data = data.encode("utf-8")
|
21
|
+
device.sendall(data)
|
22
|
+
# Get in one shot. The info won't be longer than a few bytes
|
23
|
+
response = device.recv(64)
|
24
|
+
except Exception as e:
|
25
|
+
raise (e)
|
26
|
+
finally:
|
27
|
+
device.close()
|
28
|
+
return response
|
29
|
+
|
30
|
+
@route(
|
31
|
+
"/remote_measure_device/<int:device>", type="json", auth="user", sitemap=False
|
32
|
+
)
|
33
|
+
def request_weight(self, device=None, command=None, **kw):
|
34
|
+
"""Meant be called from the remote scale widget js code"""
|
35
|
+
device = request.env["remote.measure.device"].browse(device)
|
36
|
+
command = command or b""
|
37
|
+
kw.get("timeout", 1)
|
38
|
+
response = b""
|
39
|
+
host, port = device.host.split(":")
|
40
|
+
try:
|
41
|
+
response = self._get_weight(command, host, int(port))
|
42
|
+
except socket.timeout:
|
43
|
+
response = b"timeout"
|
44
|
+
return response
|
@@ -201,3 +201,10 @@ msgstr "Zócalos web"
|
|
201
201
|
#: model_terms:ir.ui.view,arch_db:web_widget_remote_measure.measure_device_form
|
202
202
|
msgid "e.g. Dock 1 Scale"
|
203
203
|
msgstr "p. ej. Muelle 1 Escala"
|
204
|
+
|
205
|
+
#. module: web_widget_remote_measure
|
206
|
+
#. openerp-web
|
207
|
+
#: code:addons/web_widget_remote_measure/static/src/xml/measure_device_status.xml:0
|
208
|
+
#, python-format
|
209
|
+
msgid "{{widget.title}}"
|
210
|
+
msgstr ""
|
@@ -13,6 +13,12 @@ msgstr ""
|
|
13
13
|
"Content-Transfer-Encoding: \n"
|
14
14
|
"Plural-Forms: \n"
|
15
15
|
|
16
|
+
#. module: web_widget_remote_measure
|
17
|
+
#: model:ir.model.fields,help:web_widget_remote_measure.field_remote_measure_device__read_interval
|
18
|
+
msgid ""
|
19
|
+
"(0 for no sleep between reads) Miliseconds to wait between device reads"
|
20
|
+
msgstr ""
|
21
|
+
|
16
22
|
#. module: web_widget_remote_measure
|
17
23
|
#: model:ir.model.fields,field_description:web_widget_remote_measure.field_remote_measure_device__active
|
18
24
|
msgid "Active"
|
@@ -62,15 +68,26 @@ msgstr ""
|
|
62
68
|
|
63
69
|
#. module: web_widget_remote_measure
|
64
70
|
#: model:ir.ui.menu,name:web_widget_remote_measure.menu_device_config
|
71
|
+
#: model_terms:ir.ui.view,arch_db:web_widget_remote_measure.res_users_form_view
|
65
72
|
#: model_terms:ir.ui.view,arch_db:web_widget_remote_measure.view_users_form
|
66
73
|
msgid "Devices"
|
67
74
|
msgstr ""
|
68
75
|
|
76
|
+
#. module: web_widget_remote_measure
|
77
|
+
#: model:ir.model.fields.selection,name:web_widget_remote_measure.selection__remote_measure_device__connection_mode__tcp
|
78
|
+
msgid "Direct connection"
|
79
|
+
msgstr ""
|
80
|
+
|
69
81
|
#. module: web_widget_remote_measure
|
70
82
|
#: model:ir.model.fields,field_description:web_widget_remote_measure.field_remote_measure_device__display_name
|
71
83
|
msgid "Display Name"
|
72
84
|
msgstr ""
|
73
85
|
|
86
|
+
#. module: web_widget_remote_measure
|
87
|
+
#: model:ir.model.fields,help:web_widget_remote_measure.field_remote_measure_device__non_stop_read
|
88
|
+
msgid "Don't stop reading until the widget is disposed"
|
89
|
+
msgstr ""
|
90
|
+
|
74
91
|
#. module: web_widget_remote_measure
|
75
92
|
#: model:ir.model.fields,field_description:web_widget_remote_measure.field_remote_measure_device__host
|
76
93
|
msgid "Host"
|
@@ -95,6 +112,11 @@ msgstr ""
|
|
95
112
|
msgid "ID"
|
96
113
|
msgstr ""
|
97
114
|
|
115
|
+
#. module: web_widget_remote_measure
|
116
|
+
#: model:ir.model.fields,field_description:web_widget_remote_measure.field_remote_measure_device__instant_read
|
117
|
+
msgid "Instant Read"
|
118
|
+
msgstr ""
|
119
|
+
|
98
120
|
#. module: web_widget_remote_measure
|
99
121
|
#: model:ir.model.fields,field_description:web_widget_remote_measure.field_remote_measure_device____last_update
|
100
122
|
msgid "Last Modified on"
|
@@ -115,12 +137,18 @@ msgstr ""
|
|
115
137
|
msgid "Name"
|
116
138
|
msgstr ""
|
117
139
|
|
140
|
+
#. module: web_widget_remote_measure
|
141
|
+
#: model:ir.model.fields,field_description:web_widget_remote_measure.field_remote_measure_device__non_stop_read
|
142
|
+
msgid "Non Stop Read"
|
143
|
+
msgstr ""
|
144
|
+
|
118
145
|
#. module: web_widget_remote_measure
|
119
146
|
#: model:ir.model.fields,help:web_widget_remote_measure.field_remote_measure_device__protocol
|
120
147
|
msgid "Operating protocol"
|
121
148
|
msgstr ""
|
122
149
|
|
123
150
|
#. module: web_widget_remote_measure
|
151
|
+
#: model_terms:ir.ui.view,arch_db:web_widget_remote_measure.res_users_form_view
|
124
152
|
#: model_terms:ir.ui.view,arch_db:web_widget_remote_measure.view_users_form
|
125
153
|
msgid "Preferred remote device"
|
126
154
|
msgstr ""
|
@@ -135,6 +163,21 @@ msgstr ""
|
|
135
163
|
msgid "Ratio"
|
136
164
|
msgstr ""
|
137
165
|
|
166
|
+
#. module: web_widget_remote_measure
|
167
|
+
#: model:ir.model.fields,field_description:web_widget_remote_measure.field_remote_measure_device__read_interval
|
168
|
+
msgid "Read Interval"
|
169
|
+
msgstr ""
|
170
|
+
|
171
|
+
#. module: web_widget_remote_measure
|
172
|
+
#: model_terms:ir.ui.view,arch_db:web_widget_remote_measure.measure_device_form
|
173
|
+
msgid "Read behavior"
|
174
|
+
msgstr ""
|
175
|
+
|
176
|
+
#. module: web_widget_remote_measure
|
177
|
+
#: model:ir.model.fields,help:web_widget_remote_measure.field_remote_measure_device__instant_read
|
178
|
+
msgid "Read right on as the widget gets rendered"
|
179
|
+
msgstr ""
|
180
|
+
|
138
181
|
#. module: web_widget_remote_measure
|
139
182
|
#: model:ir.actions.act_window,name:web_widget_remote_measure.action_measure_device
|
140
183
|
#: model:ir.ui.menu,name:web_widget_remote_measure.menu_measure_device
|
@@ -192,3 +235,10 @@ msgstr ""
|
|
192
235
|
#: model_terms:ir.ui.view,arch_db:web_widget_remote_measure.measure_device_form
|
193
236
|
msgid "e.g. Dock 1 Scale"
|
194
237
|
msgstr ""
|
238
|
+
|
239
|
+
#. module: web_widget_remote_measure
|
240
|
+
#. openerp-web
|
241
|
+
#: code:addons/web_widget_remote_measure/static/src/xml/measure_device_status.xml:0
|
242
|
+
#, python-format
|
243
|
+
msgid "{{widget.title}}"
|
244
|
+
msgstr ""
|
@@ -25,8 +25,16 @@ class RemoteMeasureDevice(models.Model):
|
|
25
25
|
selection=[
|
26
26
|
("websockets", "Web Sockets"),
|
27
27
|
("webservices", "Web Services"),
|
28
|
+
("tcp", "Direct connection"),
|
28
29
|
],
|
29
30
|
required=True,
|
30
31
|
)
|
31
32
|
host = fields.Char(required=True)
|
33
|
+
instant_read = fields.Boolean(help="Read right on as the widget gets rendered")
|
34
|
+
non_stop_read = fields.Boolean(
|
35
|
+
help="Don't stop reading until the widget is disposed"
|
36
|
+
)
|
37
|
+
read_interval = fields.Integer(
|
38
|
+
help="(0 for no sleep between reads) Miliseconds to wait between device reads"
|
39
|
+
)
|
32
40
|
test_measure = fields.Float(default=0.0)
|
@@ -1,4 +1,3 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
1
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
2
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
3
|
<head>
|
@@ -367,9 +366,9 @@ ul.auto-toc {
|
|
367
366
|
!! This file is generated by oca-gen-addon-readme !!
|
368
367
|
!! changes will be overwritten. !!
|
369
368
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
370
|
-
!! source digest: sha256:
|
369
|
+
!! source digest: sha256:044f11b0ae08030a422670bc0684b5bb977f5f91298ed1c79fdd184ec2f59bf5
|
371
370
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
372
|
-
<p><a class="reference external image-reference" 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 image-reference" 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 image-reference" href="https://github.com/OCA/
|
371
|
+
<p><a class="reference external image-reference" 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 image-reference" 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 image-reference" href="https://github.com/OCA/stock-weighing/tree/15.0/web_widget_remote_measure"><img alt="OCA/stock-weighing" src="https://img.shields.io/badge/github-OCA%2Fstock--weighing-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/stock-weighing-15-0/stock-weighing-15-0-web_widget_remote_measure"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/stock-weighing&target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
373
372
|
<p>This module allows to input data from remote devices in your network. Currently, only
|
374
373
|
websockets devices are supported, but it can be extended for any protocol like
|
375
374
|
Webservices.</p>
|
@@ -431,10 +430,10 @@ provide an uom field so records that aren’t in that UoM don’t measure from t
|
|
431
430
|
</div>
|
432
431
|
<div class="section" id="bug-tracker">
|
433
432
|
<h1><a class="toc-backref" href="#toc-entry-4">Bug Tracker</a></h1>
|
434
|
-
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/
|
433
|
+
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/stock-weighing/issues">GitHub Issues</a>.
|
435
434
|
In case of trouble, please check there if your issue has already been reported.
|
436
435
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
437
|
-
<a class="reference external" href="https://github.com/OCA/
|
436
|
+
<a class="reference external" href="https://github.com/OCA/stock-weighing/issues/new?body=module:%20web_widget_remote_measure%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
438
437
|
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
439
438
|
</div>
|
440
439
|
<div class="section" id="credits">
|
@@ -463,7 +462,7 @@ mission is to support the collaborative development of Odoo features and
|
|
463
462
|
promote its widespread use.</p>
|
464
463
|
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
|
465
464
|
<p><a class="reference external image-reference" href="https://github.com/chienandalu"><img alt="chienandalu" src="https://github.com/chienandalu.png?size=40px" /></a></p>
|
466
|
-
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/
|
465
|
+
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/stock-weighing/tree/15.0/web_widget_remote_measure">OCA/stock-weighing</a> project on GitHub.</p>
|
467
466
|
<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>
|
468
467
|
</div>
|
469
468
|
</div>
|
@@ -81,6 +81,82 @@ export const RemoteMeasureMixin = {
|
|
81
81
|
_connect_to_webservices() {
|
82
82
|
return;
|
83
83
|
},
|
84
|
+
/**
|
85
|
+
* Send read params to the remote device
|
86
|
+
* @returns {Object}
|
87
|
+
*/
|
88
|
+
_read_from_device_tcp_params() {
|
89
|
+
return {command: false};
|
90
|
+
},
|
91
|
+
/**
|
92
|
+
* Process call
|
93
|
+
* @returns {Number}
|
94
|
+
*/
|
95
|
+
async _read_from_device_tcp() {
|
96
|
+
const data = await this._rpc({
|
97
|
+
route: `/remote_measure_device/${this.remote_device_data.id}` || [],
|
98
|
+
params: this._read_from_device_tcp_params(),
|
99
|
+
});
|
100
|
+
if (!data) {
|
101
|
+
return null;
|
102
|
+
}
|
103
|
+
const processed_data = this[`_proccess_msg_${this.protocol}`](data);
|
104
|
+
if (isNaN(processed_data.value)) {
|
105
|
+
processed_data.value = 0;
|
106
|
+
}
|
107
|
+
return processed_data;
|
108
|
+
},
|
109
|
+
/**
|
110
|
+
* Connect to the local controller, which makes the direct connection to the
|
111
|
+
* scale.
|
112
|
+
*/
|
113
|
+
async _connect_to_tcp() {
|
114
|
+
var icon = "fa-thermometer-empty";
|
115
|
+
var stream_success_counter = 20;
|
116
|
+
this._unstableMeasure();
|
117
|
+
// Used to set the read interval if any
|
118
|
+
const timer = (ms) => new Promise((res) => setTimeout(res, ms));
|
119
|
+
// Don't keep going forever unless non stop reading
|
120
|
+
for (
|
121
|
+
let attemps_left = this.remote_device_data.non_stop_read ? Infinity : 1000;
|
122
|
+
attemps_left > 0;
|
123
|
+
attemps_left--
|
124
|
+
) {
|
125
|
+
// Allow to break the loop manually
|
126
|
+
if (this.stop) {
|
127
|
+
break;
|
128
|
+
}
|
129
|
+
const processed_data = await this._read_from_device_tcp();
|
130
|
+
if (!processed_data) {
|
131
|
+
continue;
|
132
|
+
}
|
133
|
+
if (processed_data.stable) {
|
134
|
+
this._stableMeasure();
|
135
|
+
} else {
|
136
|
+
this._unstableMeasure();
|
137
|
+
stream_success_counter = 20;
|
138
|
+
}
|
139
|
+
if (processed_data.stable && stream_success_counter <= 0) {
|
140
|
+
this._stableMeasure();
|
141
|
+
this._awaitingMeasure();
|
142
|
+
this._recordMeasure();
|
143
|
+
break;
|
144
|
+
} else if (this.remote_device_data.non_stop_read) {
|
145
|
+
stream_success_counter = 20;
|
146
|
+
this._recordMeasure();
|
147
|
+
}
|
148
|
+
if (stream_success_counter) {
|
149
|
+
--stream_success_counter;
|
150
|
+
}
|
151
|
+
icon = this._nextStateIcon(icon);
|
152
|
+
this.amount = processed_data.value;
|
153
|
+
this._setMeasure();
|
154
|
+
// Set sleep interval
|
155
|
+
if (this.remote_device_data.read_interval) {
|
156
|
+
await timer(this.remote_device_data.read_interval);
|
157
|
+
}
|
158
|
+
}
|
159
|
+
},
|
84
160
|
/**
|
85
161
|
* Convert the measured units to the units expecte by the record if different
|
86
162
|
* @param {Number} amount
|
@@ -162,16 +238,32 @@ export const RemoteMeasureMixin = {
|
|
162
238
|
this.start_add = false;
|
163
239
|
},
|
164
240
|
/**
|
165
|
-
*
|
166
|
-
* @param {MouseEvent} ev
|
241
|
+
* Request measure to remote device
|
167
242
|
*/
|
168
|
-
|
169
|
-
|
243
|
+
measure() {
|
244
|
+
this.stop = false;
|
170
245
|
this.$start_measure.addClass("d-none");
|
171
246
|
this.$stop_measure.removeClass("d-none");
|
172
247
|
this.$icon = this.$stop_measure.find("i");
|
173
248
|
this[`_connect_to_${this.connection_mode}`]();
|
174
249
|
},
|
250
|
+
/**
|
251
|
+
* Stop requesting measures from device
|
252
|
+
*/
|
253
|
+
measure_stop() {
|
254
|
+
this._closeSocket();
|
255
|
+
this.stop = true;
|
256
|
+
this._awaitingMeasure();
|
257
|
+
this._recordMeasure();
|
258
|
+
},
|
259
|
+
/**
|
260
|
+
* Start requesting measures from the remote device
|
261
|
+
* @param {MouseEvent} ev
|
262
|
+
*/
|
263
|
+
_onMeasure(ev) {
|
264
|
+
ev.preventDefault();
|
265
|
+
this.measure();
|
266
|
+
},
|
175
267
|
_onMeasureAdd(ev) {
|
176
268
|
ev.preventDefault();
|
177
269
|
this.start_add = true;
|
@@ -187,9 +279,7 @@ export const RemoteMeasureMixin = {
|
|
187
279
|
*/
|
188
280
|
_onValidateMeasure(ev) {
|
189
281
|
ev.preventDefault();
|
190
|
-
this.
|
191
|
-
this._awaitingMeasure();
|
192
|
-
this._recordMeasure();
|
282
|
+
this.measure_stop();
|
193
283
|
},
|
194
284
|
/**
|
195
285
|
* Remote measure handle to start measuring
|
@@ -339,6 +429,17 @@ export const RemoteMeasure = FieldFloat.extend(RemoteMeasureMixin, {
|
|
339
429
|
this.$el.prepend(this.$start_measure, this.$stop_measure);
|
340
430
|
return def;
|
341
431
|
},
|
432
|
+
/**
|
433
|
+
* Read right on if configured
|
434
|
+
* @override
|
435
|
+
*/
|
436
|
+
start() {
|
437
|
+
this._super(...arguments).then(() => {
|
438
|
+
if (this.remote_device_data.instant_read) {
|
439
|
+
this.measure();
|
440
|
+
}
|
441
|
+
});
|
442
|
+
},
|
342
443
|
/**
|
343
444
|
* Ensure that the socket is allways closed
|
344
445
|
*/
|
@@ -25,6 +25,13 @@
|
|
25
25
|
<field name="connection_mode" />
|
26
26
|
</group>
|
27
27
|
</group>
|
28
|
+
<group>
|
29
|
+
<group string="Read behavior">
|
30
|
+
<field name="instant_read" />
|
31
|
+
<field name="non_stop_read" />
|
32
|
+
<field name="read_interval" />
|
33
|
+
</group>
|
34
|
+
</group>
|
28
35
|
</sheet>
|
29
36
|
</form>
|
30
37
|
</field>
|
@@ -14,4 +14,18 @@
|
|
14
14
|
</page>
|
15
15
|
</field>
|
16
16
|
</record>
|
17
|
+
<record id="res_users_form_view" model="ir.ui.view">
|
18
|
+
<field name="model">res.users</field>
|
19
|
+
<field name="inherit_id" ref="base.view_users_form_simple_modif" />
|
20
|
+
<field name="arch" type="xml">
|
21
|
+
<group name="preferences" position="inside">
|
22
|
+
<group name="devices" string="Devices">
|
23
|
+
<field
|
24
|
+
name="remote_measure_device_id"
|
25
|
+
string="Preferred remote device"
|
26
|
+
/>
|
27
|
+
</group>
|
28
|
+
</group>
|
29
|
+
</field>
|
30
|
+
</record>
|
17
31
|
</odoo>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odoo-addon-web-widget-remote-measure
|
3
|
-
Version: 15.0.1.0.0.
|
3
|
+
Version: 15.0.1.0.0.7
|
4
4
|
Summary: Allows to connect to remote devices to record measures
|
5
|
-
Home-page: https://github.com/OCA/
|
5
|
+
Home-page: https://github.com/OCA/stock-weighing
|
6
6
|
Author: Tecnativa, Odoo Community Association (OCA)
|
7
7
|
Author-email: support@odoo-community.org
|
8
8
|
License: AGPL-3
|
@@ -23,7 +23,7 @@ Remote Measure Devices Input
|
|
23
23
|
!! This file is generated by oca-gen-addon-readme !!
|
24
24
|
!! changes will be overwritten. !!
|
25
25
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
26
|
-
!! source digest: sha256:
|
26
|
+
!! source digest: sha256:044f11b0ae08030a422670bc0684b5bb977f5f91298ed1c79fdd184ec2f59bf5
|
27
27
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
28
28
|
|
29
29
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
@@ -32,14 +32,14 @@ Remote Measure Devices Input
|
|
32
32
|
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
33
33
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
34
34
|
:alt: License: AGPL-3
|
35
|
-
.. |badge3| image:: https://img.shields.io/badge/github-OCA%
|
36
|
-
:target: https://github.com/OCA/
|
37
|
-
:alt: OCA/
|
35
|
+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--weighing-lightgray.png?logo=github
|
36
|
+
:target: https://github.com/OCA/stock-weighing/tree/15.0/web_widget_remote_measure
|
37
|
+
:alt: OCA/stock-weighing
|
38
38
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
39
|
-
:target: https://translation.odoo-community.org/projects/
|
39
|
+
:target: https://translation.odoo-community.org/projects/stock-weighing-15-0/stock-weighing-15-0-web_widget_remote_measure
|
40
40
|
:alt: Translate me on Weblate
|
41
41
|
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
42
|
-
:target: https://runboat.odoo-community.org/builds?repo=OCA/
|
42
|
+
:target: https://runboat.odoo-community.org/builds?repo=OCA/stock-weighing&target_branch=15.0
|
43
43
|
:alt: Try me on Runboat
|
44
44
|
|
45
45
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
@@ -101,10 +101,10 @@ But this is a commonground to add:
|
|
101
101
|
Bug Tracker
|
102
102
|
===========
|
103
103
|
|
104
|
-
Bugs are tracked on `GitHub Issues <https://github.com/OCA/
|
104
|
+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-weighing/issues>`_.
|
105
105
|
In case of trouble, please check there if your issue has already been reported.
|
106
106
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
107
|
-
`feedback <https://github.com/OCA/
|
107
|
+
`feedback <https://github.com/OCA/stock-weighing/issues/new?body=module:%20web_widget_remote_measure%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
108
108
|
|
109
109
|
Do not contact contributors directly about support or help with technical issues.
|
110
110
|
|
@@ -144,7 +144,7 @@ Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|
|
144
144
|
|
145
145
|
|maintainer-chienandalu|
|
146
146
|
|
147
|
-
This module is part of the `OCA/
|
147
|
+
This module is part of the `OCA/stock-weighing <https://github.com/OCA/stock-weighing/tree/15.0/web_widget_remote_measure>`_ project on GitHub.
|
148
148
|
|
149
149
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
150
150
|
|
@@ -1,10 +1,12 @@
|
|
1
|
-
odoo/addons/web_widget_remote_measure/README.rst,sha256=
|
2
|
-
odoo/addons/web_widget_remote_measure/__init__.py,sha256=
|
3
|
-
odoo/addons/web_widget_remote_measure/__manifest__.py,sha256=
|
4
|
-
odoo/addons/web_widget_remote_measure/
|
5
|
-
odoo/addons/web_widget_remote_measure/
|
1
|
+
odoo/addons/web_widget_remote_measure/README.rst,sha256=AsyTvZtu09aJP4GDBv9EewMB7d7JlmYtruT8UgHILx0,4664
|
2
|
+
odoo/addons/web_widget_remote_measure/__init__.py,sha256=jQ-fltIs1ohXt7udDkkJwzh7ckauQW2rbmv1Wtg3SjQ,47
|
3
|
+
odoo/addons/web_widget_remote_measure/__manifest__.py,sha256=cr-GOHEAo4aNOJb0F6cfMW5uEW0os41lB456pdNXq6U,902
|
4
|
+
odoo/addons/web_widget_remote_measure/controllers/__init__.py,sha256=4KFqEP2QHFbPN66eQJMdGsmNz2v7ywWv_FR1pW_kkLk,19
|
5
|
+
odoo/addons/web_widget_remote_measure/controllers/main.py,sha256=Y7-KWYAzJUsFOUXp8pYb6gubSRPjYaMMTK-EwPvf-FM,1596
|
6
|
+
odoo/addons/web_widget_remote_measure/i18n/es.po,sha256=1g5UC_KF8TBb1Dc-kRaGeQUapEhfAfyF45Xty1HGNdk,7881
|
7
|
+
odoo/addons/web_widget_remote_measure/i18n/web_widget_remote_measure.pot,sha256=gMfuMXTwF6iVJIXbJO0mxo5I8SFs_qL1iiMj0xm-QdQ,8469
|
6
8
|
odoo/addons/web_widget_remote_measure/models/__init__.py,sha256=J_ouBD3wdPWoRA5-ZLkwygexPIblJEq2FymqQkO9ez8,60
|
7
|
-
odoo/addons/web_widget_remote_measure/models/remote_measure_device.py,sha256=
|
9
|
+
odoo/addons/web_widget_remote_measure/models/remote_measure_device.py,sha256=qnO86qhgE9Z0yJy0zxs0AxWLZ6ZMSAf7T60iUC_Wtyo,1360
|
8
10
|
odoo/addons/web_widget_remote_measure/models/res_users.py,sha256=ozlPc7v3ZJwAZ7aEyNh0ZTaUpYcVziCVFnYgLwWNX0g,357
|
9
11
|
odoo/addons/web_widget_remote_measure/readme/CONFIGURE.rst,sha256=xZ0VdKMKYkumd_UG1NjCj5hl_HjPfKoxHCdUj12vk30,232
|
10
12
|
odoo/addons/web_widget_remote_measure/readme/CONTRIBUTORS.rst,sha256=1v8RVohEtpFYYq_juSbiR8NvH3IRmZqsZE3Jx3_Y31I,61
|
@@ -13,14 +15,14 @@ odoo/addons/web_widget_remote_measure/readme/ROADMAP.rst,sha256=Z0aICtUk3GUOPY5N
|
|
13
15
|
odoo/addons/web_widget_remote_measure/readme/USAGE.rst,sha256=dWWMqNmAvPjk2v1qlEP0F_lxEt1XfMUR-CT81JWgV8c,726
|
14
16
|
odoo/addons/web_widget_remote_measure/security/ir.model.access.csv,sha256=3bwXFcGN-56-3-aR-RYGH8G6sVnuYkirAzpY4dDu8IA,426
|
15
17
|
odoo/addons/web_widget_remote_measure/static/description/icon.png,sha256=O9NGHv3egMV4Z7wp_y1yxXS9BmUi7AiGAleQTwMkuRo,9652
|
16
|
-
odoo/addons/web_widget_remote_measure/static/description/index.html,sha256=
|
18
|
+
odoo/addons/web_widget_remote_measure/static/description/index.html,sha256=eG76yrTei_sTpDI4JhB92NC7w-mIiOfNdpEV9Ubj088,15088
|
17
19
|
odoo/addons/web_widget_remote_measure/static/src/js/remote_measure_device_kanban_widget.esm.js,sha256=vw2rHAKmv8F7V3AKVydkN01yNW4_b_uhO0O-GgUWlzI,1119
|
18
|
-
odoo/addons/web_widget_remote_measure/static/src/js/remote_measure_widget.esm.js,sha256=
|
20
|
+
odoo/addons/web_widget_remote_measure/static/src/js/remote_measure_widget.esm.js,sha256=pX5utejQ1_7tT4OjsmHuSyKnRuAGGNXmFcYPhi2XXlM,15362
|
19
21
|
odoo/addons/web_widget_remote_measure/static/src/scss/remote_measure_widget.scss,sha256=khdgvWe-uCaz6mXOTrO3-3sMhU8AJkCNA-8-EqaHhqM,643
|
20
22
|
odoo/addons/web_widget_remote_measure/static/src/xml/measure_device_status.xml,sha256=ZiDIjjUC_6OmMCt5CuZjivQQ5GbXw9k63eNlYmCez7E,461
|
21
|
-
odoo/addons/web_widget_remote_measure/views/remote_measure_device_views.xml,sha256=
|
22
|
-
odoo/addons/web_widget_remote_measure/views/res_users_views.xml,sha256=
|
23
|
-
odoo_addon_web_widget_remote_measure-15.0.1.0.0.
|
24
|
-
odoo_addon_web_widget_remote_measure-15.0.1.0.0.
|
25
|
-
odoo_addon_web_widget_remote_measure-15.0.1.0.0.
|
26
|
-
odoo_addon_web_widget_remote_measure-15.0.1.0.0.
|
23
|
+
odoo/addons/web_widget_remote_measure/views/remote_measure_device_views.xml,sha256=TjVLvhedTtSub_UCSmTeZEkxFksRXcUBA7lh2pQf72k,4212
|
24
|
+
odoo/addons/web_widget_remote_measure/views/res_users_views.xml,sha256=hTncZ9RfMn9nHlDe72msIUP8cnRAt2j1-7-bDkwKIek,1178
|
25
|
+
odoo_addon_web_widget_remote_measure-15.0.1.0.0.7.dist-info/METADATA,sha256=aOxb0rw3V9t_7Pg_vzzVIJu7O_URBpIh9it7dBRpRds,5241
|
26
|
+
odoo_addon_web_widget_remote_measure-15.0.1.0.0.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
27
|
+
odoo_addon_web_widget_remote_measure-15.0.1.0.0.7.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
28
|
+
odoo_addon_web_widget_remote_measure-15.0.1.0.0.7.dist-info/RECORD,,
|