[UPD] README.rst

This commit is contained in:
OCA-git-bot
2022-05-21 05:53:50 +00:00
parent 043bd576c2
commit 9b02995395
2 changed files with 106 additions and 116 deletions

View File

@@ -14,13 +14,13 @@ Web Widget JSON Graph
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3 :alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
:target: https://github.com/OCA/web/tree/12.0/web_widget_json_graph :target: https://github.com/OCA/web/tree/15.0/web_widget_json_graph
:alt: OCA/web :alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/web-12-0/web-12-0-web_widget_json_graph :target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_widget_json_graph
:alt: Translate me on Weblate :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/162/12.0 :target: https://runbot.odoo-community.org/runbot/162/15.0
:alt: Try me on Runbot :alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5| |badge1| |badge2| |badge3| |badge4| |badge5|
@@ -28,7 +28,7 @@ Web Widget JSON Graph
This module allows to load a line graph per ordered pair from an One2many or This module allows to load a line graph per ordered pair from an One2many or
Many2many field. Many2many field.
.. image:: https://raw.githubusercontent.com/OCA/web/12.0/web_widget_json_graph/static/description/widget_in_action.png .. image:: https://raw.githubusercontent.com/OCA/web/15.0/web_widget_json_graph/static/description/widget_in_action.png
:width: 400px :width: 400px
:alt: Widget in action :alt: Widget in action
@@ -50,70 +50,64 @@ For example::
The JSON needs to be like:: The JSON needs to be like::
fields = ['field1', 'field2', 'field3', ...]
field_x = 'field_x'
dictionary = self.value_ids.sorted(field_x).read(fields)
color = {
'field1': HEXCOLOR1,
'field2': '#FFBB78',
'field3': '#1F77B4',
...
}
dictionary = self.value_ids.sorted(field_x).read(fields)
content = {}
data = []
for field in fields:
if field != field_x:
content[field] = []
for rec in dictionary:
content[field].append({'x': rec[field_x], 'y': rec[field]})
if field in color:
data.append({'values': content[field], 'key': field,
'color': color[field]})
continue
data.append({'values': content[field], 'key': field})
info = { info = {
'label_x': 'X Label', "type": "line",
'label_y': 'Y label', "data": {"datasets": [], "labels": []},
'data': data "options": {
"scales": {
"yAxes": [
{
"ticks": {"beginAtZero": True, "stacked": False},
"scaleLabel": {"display": True, "labelString": "Quantity"},
}
],
"xAxes": [
{
"scaleLabel": {"display": True, "labelString": "Date"},
}
],
},
"elements": {"point": {"radius": 3}},
"legend": {"labels": {"usePointStyle": True}},
"tooltips": {"intersect": False, "axis": "xy", "mode": "index"},
},
} }
self.field_text_json = json.dumps(info) self.field_text_json = json.dumps(info)
For example:: For example::
fields = ['sequence', 'value', 'sma', 'cma'] plot_dataset = [1, 2, 3, 4, 3, 2]
field_x = 'sequence' labels = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
dictionary = self.value_ids.sorted(field_x).read(fields)
color = {
'value': '#2CA02C',
'sma': '#FFBB78'
}
dictionary = self.value_ids.sorted(field_x).read(fields)
content = {}
data = []
for field in fields:
if field != field_x:
content[field] = []
for rec in dictionary:
content[field].append({'x': rec[field_x], 'y': rec[field]})
if field in color:
data.append({'values': content[field], 'key': field,
'color': color[field]})
continue
data.append({'values': content[field], 'key': field})
info = { info = {
'label_x': 'Sequence', "type": "line",
'label_y': '', "data": {"datasets": plot_dataset, "labels": labels},
'data': data "options": {
"scales": {
"yAxes": [
{
"ticks": {"beginAtZero": True, "stacked": False},
"scaleLabel": {"display": True, "labelString": "Quantity"},
}
],
"xAxes": [
{
"scaleLabel": {"display": True, "labelString": "Date"},
}
],
},
"elements": {"point": {"radius": 3}},
"legend": {"labels": {"usePointStyle": True}},
"tooltips": {"intersect": False, "axis": "xy", "mode": "index"},
},
} }
self.values_data = json.dumps(info) self.values_data = json.dumps(info)
For more information, please see `Chart Js Documentation <https://www.chartjs.org/docs/2.9.4/>`.
Known issues / Roadmap Known issues / Roadmap
====================== ======================
* ``nolabel`` is ignored, this image will never bring a label, by default simply use an extra separator. * None
* A graph will always use 100% of the width, pending the css dynamic attribute.
* Height is harcoded.
Bug Tracker Bug Tracker
=========== ===========
@@ -121,7 +115,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_. 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. 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 If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_widget_json_graph%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. `feedback <https://github.com/OCA/web/issues/new?body=module:%20web_widget_json_graph%0Aversion:%2015.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. Do not contact contributors directly about support or help with technical issues.
@@ -162,11 +156,14 @@ promote its widespread use.
.. |maintainer-luisg123v| image:: https://github.com/luisg123v.png?size=40px .. |maintainer-luisg123v| image:: https://github.com/luisg123v.png?size=40px
:target: https://github.com/luisg123v :target: https://github.com/luisg123v
:alt: luisg123v :alt: luisg123v
.. |maintainer-frahikLV| image:: https://github.com/frahikLV.png?size=40px
:target: https://github.com/frahikLV
:alt: frahikLV
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__: Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-luisg123v| |maintainer-luisg123v| |maintainer-frahikLV|
This module is part of the `OCA/web <https://github.com/OCA/web/tree/12.0/web_widget_json_graph>`_ project on GitHub. This module is part of the `OCA/web <https://github.com/OCA/web/tree/15.0/web_widget_json_graph>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -367,10 +367,10 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !! !! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !! !! 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/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/12.0/web_widget_json_graph"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-12-0/web-12-0-web_widget_json_graph"><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/162/12.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p> <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/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_widget_json_graph"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_widget_json_graph"><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/162/15.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>This module allows to load a line graph per ordered pair from an One2many or <p>This module allows to load a line graph per ordered pair from an One2many or
Many2many field.</p> Many2many field.</p>
<img alt="Widget in action" src="https://raw.githubusercontent.com/OCA/web/12.0/web_widget_json_graph/static/description/widget_in_action.png" style="width: 400px;" /> <img alt="Widget in action" src="https://raw.githubusercontent.com/OCA/web/15.0/web_widget_json_graph/static/description/widget_in_action.png" style="width: 400px;" />
<p><strong>Table of contents</strong></p> <p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents"> <div class="contents local topic" id="contents">
<ul class="simple"> <ul class="simple">
@@ -398,71 +398,64 @@ Many2many field.</p>
</pre> </pre>
<p>The JSON needs to be like:</p> <p>The JSON needs to be like:</p>
<pre class="literal-block"> <pre class="literal-block">
fields = ['field1', 'field2', 'field3', ...]
field_x = 'field_x'
dictionary = self.value_ids.sorted(field_x).read(fields)
color = {
'field1': HEXCOLOR1,
'field2': '#FFBB78',
'field3': '#1F77B4',
...
}
dictionary = self.value_ids.sorted(field_x).read(fields)
content = {}
data = []
for field in fields:
if field != field_x:
content[field] = []
for rec in dictionary:
content[field].append({'x': rec[field_x], 'y': rec[field]})
if field in color:
data.append({'values': content[field], 'key': field,
'color': color[field]})
continue
data.append({'values': content[field], 'key': field})
info = { info = {
'label_x': 'X Label', &quot;type&quot;: &quot;line&quot;,
'label_y': 'Y label', &quot;data&quot;: {&quot;datasets&quot;: [], &quot;labels&quot;: []},
'data': data &quot;options&quot;: {
&quot;scales&quot;: {
&quot;yAxes&quot;: [
{
&quot;ticks&quot;: {&quot;beginAtZero&quot;: True, &quot;stacked&quot;: False},
&quot;scaleLabel&quot;: {&quot;display&quot;: True, &quot;labelString&quot;: &quot;Quantity&quot;},
}
],
&quot;xAxes&quot;: [
{
&quot;scaleLabel&quot;: {&quot;display&quot;: True, &quot;labelString&quot;: &quot;Date&quot;},
}
],
},
&quot;elements&quot;: {&quot;point&quot;: {&quot;radius&quot;: 3}},
&quot;legend&quot;: {&quot;labels&quot;: {&quot;usePointStyle&quot;: True}},
&quot;tooltips&quot;: {&quot;intersect&quot;: False, &quot;axis&quot;: &quot;xy&quot;, &quot;mode&quot;: &quot;index&quot;},
},
} }
self.field_text_json = json.dumps(info) self.field_text_json = json.dumps(info)
</pre> </pre>
<p>For example:</p> <p>For example:</p>
<pre class="literal-block"> <pre class="literal-block">
fields = ['sequence', 'value', 'sma', 'cma'] plot_dataset = [1, 2, 3, 4, 3, 2]
field_x = 'sequence' labels = [&quot;Jan&quot;, &quot;Feb&quot;, &quot;Mar&quot;, &quot;Apr&quot;, &quot;May&quot;, &quot;Jun&quot;]
dictionary = self.value_ids.sorted(field_x).read(fields)
color = {
'value': '#2CA02C',
'sma': '#FFBB78'
}
dictionary = self.value_ids.sorted(field_x).read(fields)
content = {}
data = []
for field in fields:
if field != field_x:
content[field] = []
for rec in dictionary:
content[field].append({'x': rec[field_x], 'y': rec[field]})
if field in color:
data.append({'values': content[field], 'key': field,
'color': color[field]})
continue
data.append({'values': content[field], 'key': field})
info = { info = {
'label_x': 'Sequence', &quot;type&quot;: &quot;line&quot;,
'label_y': '', &quot;data&quot;: {&quot;datasets&quot;: plot_dataset, &quot;labels&quot;: labels},
'data': data &quot;options&quot;: {
&quot;scales&quot;: {
&quot;yAxes&quot;: [
{
&quot;ticks&quot;: {&quot;beginAtZero&quot;: True, &quot;stacked&quot;: False},
&quot;scaleLabel&quot;: {&quot;display&quot;: True, &quot;labelString&quot;: &quot;Quantity&quot;},
}
],
&quot;xAxes&quot;: [
{
&quot;scaleLabel&quot;: {&quot;display&quot;: True, &quot;labelString&quot;: &quot;Date&quot;},
}
],
},
&quot;elements&quot;: {&quot;point&quot;: {&quot;radius&quot;: 3}},
&quot;legend&quot;: {&quot;labels&quot;: {&quot;usePointStyle&quot;: True}},
&quot;tooltips&quot;: {&quot;intersect&quot;: False, &quot;axis&quot;: &quot;xy&quot;, &quot;mode&quot;: &quot;index&quot;},
},
} }
self.values_data = json.dumps(info) self.values_data = json.dumps(info)
</pre> </pre>
<p>For more information, please see <cite>Chart Js Documentation &lt;https://www.chartjs.org/docs/2.9.4/&gt;</cite>.</p>
</div> </div>
<div class="section" id="known-issues-roadmap"> <div class="section" id="known-issues-roadmap">
<h1><a class="toc-backref" href="#id2">Known issues / Roadmap</a></h1> <h1><a class="toc-backref" href="#id2">Known issues / Roadmap</a></h1>
<ul class="simple"> <ul class="simple">
<li><tt class="docutils literal">nolabel</tt> is ignored, this image will never bring a label, by default simply use an extra separator.</li> <li>None</li>
<li>A graph will always use 100% of the width, pending the css dynamic attribute.</li>
<li>Height is harcoded.</li>
</ul> </ul>
</div> </div>
<div class="section" id="bug-tracker"> <div class="section" id="bug-tracker">
@@ -470,7 +463,7 @@ self.values_data = json.dumps(info)
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>. <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported. 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 If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_widget_json_graph%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p> <a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_widget_json_graph%0Aversion:%2015.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> <p>Do not contact contributors directly about support or help with technical issues.</p>
</div> </div>
<div class="section" id="credits"> <div class="section" id="credits">
@@ -501,9 +494,9 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use.</p> promote its widespread use.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p> <p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainers</a>:</p>
<p><a class="reference external" href="https://github.com/luisg123v"><img alt="luisg123v" src="https://github.com/luisg123v.png?size=40px" /></a></p> <p><a class="reference external" href="https://github.com/luisg123v"><img alt="luisg123v" src="https://github.com/luisg123v.png?size=40px" /></a> <a class="reference external" href="https://github.com/frahikLV"><img alt="frahikLV" src="https://github.com/frahikLV.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/12.0/web_widget_json_graph">OCA/web</a> project on GitHub.</p> <p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_widget_json_graph">OCA/web</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> <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> </div>