[IMP] kpi: pre-commit auto fixes

This commit is contained in:
EdgarRetes
2024-10-09 13:58:35 -06:00
parent e452b365f5
commit 2c9017035c
12 changed files with 117 additions and 84 deletions

View File

@@ -17,32 +17,32 @@ Key Performance Indicator
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
:target: https://github.com/OCA/reporting-engine/tree/13.0/kpi
:target: https://github.com/OCA/reporting-engine/tree/17.0/kpi
:alt: OCA/reporting-engine
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/reporting-engine-13-0/reporting-engine-13-0-kpi
:target: https://translation.odoo-community.org/projects/reporting-engine-17-0/reporting-engine-17-0-kpi
: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/reporting-engine&target_branch=13.0
:target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=17.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module provides the basis for creating key performance indicators,
including static and dynamic thresholds (SQL query or Python code),
on local and remote data sources.
including static and dynamic thresholds (SQL query or Python code), on
local and remote data sources.
The module also provides the mecanism to update KPIs automatically.
A scheduler is executed every hour and updates the KPI values, based
on the periodicity of each KPI. KPI computation can also be done
manually.
The module also provides the mecanism to update KPIs automatically. A
scheduler is executed every hour and updates the KPI values, based on
the periodicity of each KPI. KPI computation can also be done manually.
A threshold is a list of ranges and a range is:
* a name (like Good, Warning, Bad)
* a minimum value (fixed, sql query or python code)
* a maximum value (fixed, sql query or python code)
* color (RGB code like #00FF00 for green, #FFA500 for orange, #FF0000 for red)
- a name (like Good, Warning, Bad)
- a minimum value (fixed, sql query or python code)
- a maximum value (fixed, sql query or python code)
- color (RGB code like #00FF00 for green, #FFA500 for orange, #FF0000
for red)
**Table of contents**
@@ -52,8 +52,7 @@ A threshold is a list of ranges and a range is:
Usage
=====
Example of usage:
https://www.youtube.com/watch?v=OC4-y2klzIk
Example of usage: https://www.youtube.com/watch?v=OC4-y2klzIk
Bug Tracker
===========
@@ -61,7 +60,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/reporting-engine/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/reporting-engine/issues/new?body=module:%20kpi%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/reporting-engine/issues/new?body=module:%20kpi%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.
@@ -69,26 +68,26 @@ Credits
=======
Authors
~~~~~~~
-------
* Savoir-faire Linux
Contributors
~~~~~~~~~~~~
------------
* Daniel Reis <dreis.pt@hotmail.com>
* Glen Dromgoole <gdromgoole@tier1engineering.com>
* Loic Lacroix <loic.lacroix@savoirfairelinux.com>
* Sandy Carter <sandy.carter@savoirfairelinux.com>
* Gervais Naoussi <gervaisnaoussi@gmail.com>
* Iván Todorovich <ivan.todorovich@gmail.com>
* Adrià Gil <adria.gil@eficent.com>
* `Guadaltech <https://www.guadaltech.es>`_:
- Daniel Reis <dreis.pt@hotmail.com>
- Glen Dromgoole <gdromgoole@tier1engineering.com>
- Loic Lacroix <loic.lacroix@savoirfairelinux.com>
- Sandy Carter <sandy.carter@savoirfairelinux.com>
- Gervais Naoussi <gervaisnaoussi@gmail.com>
- Iván Todorovich <ivan.todorovich@gmail.com>
- Adrià Gil <adria.gil@eficent.com>
- `Guadaltech <https://www.guadaltech.es>`__:
* Fernando La Chica <fernando.lachica@guadaltech.es>
- Fernando La Chica <fernando.lachica@guadaltech.es>
Maintainers
~~~~~~~~~~~
-----------
This module is maintained by the OCA.
@@ -100,6 +99,6 @@ 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/reporting-engine <https://github.com/OCA/reporting-engine/tree/13.0/kpi>`_ project on GitHub.
This module is part of the `OCA/reporting-engine <https://github.com/OCA/reporting-engine/tree/17.0/kpi>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -56,8 +56,16 @@ class KPI(models.Model):
name = fields.Char("Name", required=True)
description = fields.Text("Description")
category_id = fields.Many2one("kpi.category", "Category", required=True,)
threshold_id = fields.Many2one("kpi.threshold", "Threshold", required=True,)
category_id = fields.Many2one(
"kpi.category",
"Category",
required=True,
)
threshold_id = fields.Many2one(
"kpi.threshold",
"Threshold",
required=True,
)
periodicity = fields.Integer("Periodicity", default=1)
periodicity_uom = fields.Selection(
@@ -73,11 +81,21 @@ class KPI(models.Model):
default="day",
)
next_execution_date = fields.Datetime("Next execution date", readonly=True,)
value = fields.Float(string="Value", compute="_compute_display_last_kpi_value",)
color = fields.Text("Color", compute="_compute_display_last_kpi_value",)
next_execution_date = fields.Datetime(
"Next execution date",
readonly=True,
)
value = fields.Float(
string="Value",
compute="_compute_display_last_kpi_value",
)
color = fields.Text(
"Color",
compute="_compute_display_last_kpi_value",
)
last_execution = fields.Datetime(
"Last execution", compute="_compute_display_last_kpi_value",
"Last execution",
compute="_compute_display_last_kpi_value",
)
kpi_type = fields.Selection(
[
@@ -88,14 +106,21 @@ class KPI(models.Model):
"KPI Computation Type",
)
dbsource_id = fields.Many2one("base.external.dbsource", "External DB Source",)
dbsource_id = fields.Many2one(
"base.external.dbsource",
"External DB Source",
)
kpi_code = fields.Text(
"KPI Code",
help=(
"SQL code must return the result as 'value' " "(i.e. 'SELECT 5 AS value')."
),
)
history_ids = fields.One2many("kpi.history", "kpi_id", "History",)
history_ids = fields.One2many(
"kpi.history",
"kpi_id",
"History",
)
active = fields.Boolean(
"Active",
help=(

View File

@@ -11,7 +11,12 @@ class KPIHistory(models.Model):
_description = "History of the KPI"
_order = "date desc"
name = fields.Char("Name", size=150, required=True, default=fields.Datetime.now(),)
name = fields.Char(
"Name",
size=150,
required=True,
default=fields.Datetime.now(),
)
kpi_id = fields.Many2one("kpi", "KPI", required=True)
date = fields.Datetime(
"Execution Date",

View File

@@ -73,7 +73,8 @@ class KPIThresholdRange(models.Model):
min_code = fields.Text("Minimum Computation Code")
min_error = fields.Char("Minimum Error", compute="_compute_min_value")
min_dbsource_id = fields.Many2one(
"base.external.dbsource", "External DB Source Minimum",
"base.external.dbsource",
"External DB Source Minimum",
)
max_type = fields.Selection(
selection="_selection_value_type", string="Max Type", required=True
@@ -83,7 +84,8 @@ class KPIThresholdRange(models.Model):
max_code = fields.Text("Maximum Computation Code")
max_error = fields.Char("Maximum Error", compute="_compute_max_value")
max_dbsource_id = fields.Many2one(
"base.external.dbsource", "External DB Source Maximum",
"base.external.dbsource",
"External DB Source Maximum",
)
color = fields.Char(string="Color", help="Choose your color")

3
kpi/pyproject.toml Normal file
View File

@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@@ -0,0 +1,9 @@
- Daniel Reis \<<dreis.pt@hotmail.com>\>
- Glen Dromgoole \<<gdromgoole@tier1engineering.com>\>
- Loic Lacroix \<<loic.lacroix@savoirfairelinux.com>\>
- Sandy Carter \<<sandy.carter@savoirfairelinux.com>\>
- Gervais Naoussi \<<gervaisnaoussi@gmail.com>\>
- Iván Todorovich \<<ivan.todorovich@gmail.com>\>
- Adrià Gil \<<adria.gil@eficent.com>\>
- [Guadaltech](https://www.guadaltech.es):
- Fernando La Chica \<<fernando.lachica@guadaltech.es>\>

View File

@@ -1,10 +0,0 @@
* Daniel Reis <dreis.pt@hotmail.com>
* Glen Dromgoole <gdromgoole@tier1engineering.com>
* Loic Lacroix <loic.lacroix@savoirfairelinux.com>
* Sandy Carter <sandy.carter@savoirfairelinux.com>
* Gervais Naoussi <gervaisnaoussi@gmail.com>
* Iván Todorovich <ivan.todorovich@gmail.com>
* Adrià Gil <adria.gil@eficent.com>
* `Guadaltech <https://www.guadaltech.es>`_:
* Fernando La Chica <fernando.lachica@guadaltech.es>

15
kpi/readme/DESCRIPTION.md Normal file
View File

@@ -0,0 +1,15 @@
This module provides the basis for creating key performance indicators,
including static and dynamic thresholds (SQL query or Python code), on
local and remote data sources.
The module also provides the mecanism to update KPIs automatically. A
scheduler is executed every hour and updates the KPI values, based on
the periodicity of each KPI. KPI computation can also be done manually.
A threshold is a list of ranges and a range is:
- a name (like Good, Warning, Bad)
- a minimum value (fixed, sql query or python code)
- a maximum value (fixed, sql query or python code)
- color (RGB code like \#00FF00 for green, \#FFA500 for orange, \#FF0000
for red)

View File

@@ -1,15 +0,0 @@
This module provides the basis for creating key performance indicators,
including static and dynamic thresholds (SQL query or Python code),
on local and remote data sources.
The module also provides the mecanism to update KPIs automatically.
A scheduler is executed every hour and updates the KPI values, based
on the periodicity of each KPI. KPI computation can also be done
manually.
A threshold is a list of ranges and a range is:
* a name (like Good, Warning, Bad)
* a minimum value (fixed, sql query or python code)
* a maximum value (fixed, sql query or python code)
* color (RGB code like #00FF00 for green, #FFA500 for orange, #FF0000 for red)

1
kpi/readme/USAGE.md Normal file
View File

@@ -0,0 +1 @@
Example of usage: <https://www.youtube.com/watch?v=OC4-y2klzIk>

View File

@@ -1,2 +0,0 @@
Example of usage:
https://www.youtube.com/watch?v=OC4-y2klzIk

View File

@@ -1,4 +1,3 @@
<?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>
@@ -9,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -275,7 +275,7 @@ 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 .ln { color: gray; } /* 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 }
@@ -301,7 +301,7 @@ span.option {
span.pre {
white-space: pre }
span.problematic {
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
@@ -369,20 +369,20 @@ ul.auto-toc {
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:cfa60f307c1347dd86421388daf4ddf0cef49cfe864c034368a4b031d2dc045c
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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/reporting-engine/tree/13.0/kpi"><img alt="OCA/reporting-engine" src="https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/reporting-engine-13-0/reporting-engine-13-0-kpi"><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/reporting-engine&amp;target_branch=13.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<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/reporting-engine/tree/17.0/kpi"><img alt="OCA/reporting-engine" src="https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/reporting-engine-17-0/reporting-engine-17-0-kpi"><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/reporting-engine&amp;target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module provides the basis for creating key performance indicators,
including static and dynamic thresholds (SQL query or Python code),
on local and remote data sources.</p>
<p>The module also provides the mecanism to update KPIs automatically.
A scheduler is executed every hour and updates the KPI values, based
on the periodicity of each KPI. KPI computation can also be done
manually.</p>
including static and dynamic thresholds (SQL query or Python code), on
local and remote data sources.</p>
<p>The module also provides the mecanism to update KPIs automatically. A
scheduler is executed every hour and updates the KPI values, based on
the periodicity of each KPI. KPI computation can also be done manually.</p>
<p>A threshold is a list of ranges and a range is:</p>
<ul class="simple">
<li>a name (like Good, Warning, Bad)</li>
<li>a minimum value (fixed, sql query or python code)</li>
<li>a maximum value (fixed, sql query or python code)</li>
<li>color (RGB code like #00FF00 for green, #FFA500 for orange, #FF0000 for red)</li>
<li>color (RGB code like #00FF00 for green, #FFA500 for orange, #FF0000
for red)</li>
</ul>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
@@ -399,15 +399,14 @@ manually.</p>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-1">Usage</a></h1>
<p>Example of usage:
<a class="reference external" href="https://www.youtube.com/watch?v=OC4-y2klzIk">https://www.youtube.com/watch?v=OC4-y2klzIk</a></p>
<p>Example of usage: <a class="reference external" href="https://www.youtube.com/watch?v=OC4-y2klzIk">https://www.youtube.com/watch?v=OC4-y2klzIk</a></p>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/reporting-engine/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 to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/reporting-engine/issues/new?body=module:%20kpi%0Aversion:%2013.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/reporting-engine/issues/new?body=module:%20kpi%0Aversion:%2017.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">
@@ -437,11 +436,13 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">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>
<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/reporting-engine/tree/13.0/kpi">OCA/reporting-engine</a> project on GitHub.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/reporting-engine/tree/17.0/kpi">OCA/reporting-engine</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>