From b3a93a7abc816cc62baba0d7edc98115a68b31dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Gil=20Sorribes?= Date: Wed, 2 Jan 2019 12:21:33 +0100 Subject: [PATCH] [12.0][MIG] Migrate module kpi to v12 --- kpi/README.rst | 48 ++- kpi/__init__.py | 1 - kpi/__manifest__.py | 2 +- kpi/i18n/kpi.pot | 304 +++++++++------- kpi/models/__init__.py | 1 - kpi/models/kpi_threshold_range.py | 18 +- kpi/security/ir.model.access.csv | 1 + kpi/security/kpi_security.xml | 2 +- kpi/static/description/index.html | 444 ++++++++++++++++++++++++ kpi/views/kpi_threshold_range_views.xml | 2 +- kpi/views/kpi_views.xml | 4 +- 11 files changed, 657 insertions(+), 170 deletions(-) create mode 100644 kpi/static/description/index.html diff --git a/kpi/README.rst b/kpi/README.rst index b565b535d..3e86f937d 100644 --- a/kpi/README.rst +++ b/kpi/README.rst @@ -10,20 +10,20 @@ Key Performance Indicator .. |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-LGPL--3-blue.png - :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html - :alt: License: LGPL-3 -.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github - :target: https://github.com/OCA/server-tools/tree/11.0/kpi - :alt: OCA/server-tools +.. |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%2Freporting--engine-lightgray.png?logo=github + :target: https://github.com/OCA/reporting-engine/tree/12.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/server-tools-11-0/server-tools-11-0-kpi + :target: https://translation.odoo-community.org/projects/reporting-engine-12-0/reporting-engine-12-0-kpi :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/253/11.0 + :target: https://runbot.odoo-community.org/runbot/143/12.0 :alt: Try me on Runbot -|badge1| |badge2| |badge3| |badge4| +|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), @@ -41,18 +41,10 @@ A threshold is a list of ranges and a range is: * 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** .. contents:: - :local: - -Configuration -============= - -Users must be added to the appropriate groups within Odoo as follows: -* Creators: Settings > Users > Groups > Management System / User -* Responsible Persons: Settings > Users > Groups > Management System / Approving User + :local: Usage ===== @@ -60,25 +52,24 @@ Usage Example of usage: https://www.youtube.com/watch?v=OC4-y2klzIk - -Known issues / Roadmap -====================== - -* Use web_widget_color to display color associated to threshold range - Bug Tracker =========== -Bugs are tracked on `GitHub Issues `_. +Bugs are tracked on `GitHub 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. Credits ======= +Authors +~~~~~~~ + +* Savoir-faire Linux + Contributors ~~~~~~~~~~~~ @@ -88,6 +79,7 @@ Contributors * Sandy Carter * Gervais Naoussi * Iván Todorovich +* Adrià Gil Maintainers ~~~~~~~~~~~ @@ -102,6 +94,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/server-tools `_ project on GitHub. +This module is part of the `OCA/reporting-engine `_ project on GitHub. -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. \ No newline at end of file +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/kpi/__init__.py b/kpi/__init__.py index 7988aa3f7..69f7babdf 100644 --- a/kpi/__init__.py +++ b/kpi/__init__.py @@ -1,4 +1,3 @@ -# Copyright 2012 - Now Savoir-faire Linux # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import models diff --git a/kpi/__manifest__.py b/kpi/__manifest__.py index e52019c92..7ebaf1b41 100644 --- a/kpi/__manifest__.py +++ b/kpi/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Key Performance Indicator", - "version": "11.0.1.0.0", + "version": "12.0.1.0.0", "author": "Savoir-faire Linux,Odoo Community Association (OCA)", "website": "http://www.savoirfairelinux.com", "license": "AGPL-3", diff --git a/kpi/i18n/kpi.pot b/kpi/i18n/kpi.pot index a77fb1233..5944df08e 100644 --- a/kpi/i18n/kpi.pot +++ b/kpi/i18n/kpi.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 9.0c\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" @@ -14,69 +14,69 @@ msgstr "" "Plural-Forms: \n" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_active -#: model:ir.ui.view,arch_db:kpi.view_kpi_filter +#: model:ir.model.fields,field_description:kpi.field_kpi__active +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_filter msgid "Active" msgstr "" #. module: kpi #: model:ir.actions.act_window,name:kpi.open_category_list #: model:ir.ui.menu,name:kpi.menu_configuration_kpi_category -#: model:ir.ui.view,arch_db:kpi.view_kpi_category_tree +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_category_tree msgid "Categories" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_category_id_2257 -#: model:ir.ui.view,arch_db:kpi.view_kpi_category_form -#: model:ir.ui.view,arch_db:kpi.view_kpi_filter +#: model:ir.model.fields,field_description:kpi.field_kpi__category_id +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_category_form msgid "Category" msgstr "" #. module: kpi -#: model:ir.model.fields,help:kpi.field_kpi_threshold_range_color +#: model:ir.model.fields,help:kpi.field_kpi_threshold_range__color msgid "Choose your color" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_history_color -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_color +#: model:ir.model.fields,field_description:kpi.field_kpi__color +#: model:ir.model.fields,field_description:kpi.field_kpi_history__color +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__color msgid "Color" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_company_id -#: model:ir.model.fields,field_description:kpi.field_kpi_history_company_id -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_company_id -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_company_id +#: model:ir.model.fields,field_description:kpi.field_kpi__company_id +#: model:ir.model.fields,field_description:kpi.field_kpi_history__company_id +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__company_id +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__company_id msgid "Company" msgstr "" #. module: kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_form msgid "Computation" msgstr "" #. module: kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_form msgid "Compute KPI Now" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_category_create_uid -#: model:ir.model.fields,field_description:kpi.field_kpi_create_uid -#: model:ir.model.fields,field_description:kpi.field_kpi_history_create_uid -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_create_uid -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_create_uid +#: model:ir.model.fields,field_description:kpi.field_kpi__create_uid +#: model:ir.model.fields,field_description:kpi.field_kpi_category__create_uid +#: model:ir.model.fields,field_description:kpi.field_kpi_history__create_uid +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__create_uid +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__create_uid msgid "Created by" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_category_create_date -#: model:ir.model.fields,field_description:kpi.field_kpi_create_date -#: model:ir.model.fields,field_description:kpi.field_kpi_history_create_date -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_create_date -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_create_date +#: model:ir.model.fields,field_description:kpi.field_kpi__create_date +#: model:ir.model.fields,field_description:kpi.field_kpi_category__create_date +#: model:ir.model.fields,field_description:kpi.field_kpi_history__create_date +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__create_date +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__create_date msgid "Created on" msgstr "" @@ -91,45 +91,47 @@ msgid "Day" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_category_description -#: model:ir.model.fields,field_description:kpi.field_kpi_description -#: model:ir.ui.view,arch_db:kpi.view_kpi_form +#: model:ir.model.fields,field_description:kpi.field_kpi__description +#: model:ir.model.fields,field_description:kpi.field_kpi_category__description +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_form msgid "Description" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_category_display_name -#: model:ir.model.fields,field_description:kpi.field_kpi_display_name -#: model:ir.model.fields,field_description:kpi.field_kpi_history_display_name -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_display_name -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_display_name +#: model:ir.model.fields,field_description:kpi.field_kpi__display_name +#: model:ir.model.fields,field_description:kpi.field_kpi_category__display_name +#: model:ir.model.fields,field_description:kpi.field_kpi_history__display_name +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__display_name +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__display_name msgid "Display Name" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_max_error -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_min_error -msgid "Error" -msgstr "" - -#. module: kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_form -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_form msgid "Errors" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_history_date +#: model:ir.model.fields,field_description:kpi.field_kpi_history__date msgid "Execution Date" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_dbsource_id -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_max_dbsource_id -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_min_dbsource_id +#: model:ir.model.fields,field_description:kpi.field_kpi__dbsource_id msgid "External DB Source" msgstr "" +#. module: kpi +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__max_dbsource_id +msgid "External DB Source Maximum" +msgstr "" + +#. module: kpi +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__min_dbsource_id +msgid "External DB Source Minimum" +msgstr "" + #. module: kpi #: selection:kpi.threshold.range,max_type:0 #: selection:kpi.threshold.range,min_type:0 @@ -137,13 +139,8 @@ msgid "Fixed value" msgstr "" #. module: kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_filter -msgid "Group By..." -msgstr "" - -#. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_history_ids -#: model:ir.ui.view,arch_db:kpi.view_kpi_form +#: model:ir.model.fields,field_description:kpi.field_kpi__history_ids +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_form msgid "History" msgstr "" @@ -158,19 +155,17 @@ msgid "Hour" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_category_id -#: model:ir.model.fields,field_description:kpi.field_kpi_history_id -#: model:ir.model.fields,field_description:kpi.field_kpi_id -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_id -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_id +#: model:ir.model.fields,field_description:kpi.field_kpi__id +#: model:ir.model.fields,field_description:kpi.field_kpi_category__id +#: model:ir.model.fields,field_description:kpi.field_kpi_history__id +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__id +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__id msgid "ID" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_history_kpi_id -#: model:ir.ui.menu,name:kpi.menu_configuration_kpi -#: model:ir.ui.menu,name:kpi.menu_reporting_kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_filter +#: model:ir.model.fields,field_description:kpi.field_kpi_history__kpi_id +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_filter msgid "KPI" msgstr "" @@ -180,26 +175,36 @@ msgid "KPI Category" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_kpi_code +#: model:ir.model.fields,field_description:kpi.field_kpi__kpi_code msgid "KPI Code" msgstr "" #. module: kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_form msgid "KPI Computation" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_kpi_type +#: model:ir.model.fields,field_description:kpi.field_kpi__kpi_type msgid "KPI Computation Type" msgstr "" #. module: kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_history_form -#: model:ir.ui.view,arch_db:kpi.view_kpi_history_tree +#: model:ir.actions.act_window,name:kpi.open_kpi_dashboard +msgid "KPI Dashboard" +msgstr "" + +#. module: kpi +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_history_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_history_tree msgid "KPI History" msgstr "" +#. module: kpi +#: model:ir.actions.act_window,name:kpi.open_kpi_list +msgid "KPI Maintenance" +msgstr "" + #. module: kpi #: model:ir.model,name:kpi.model_kpi_threshold msgid "KPI Threshold" @@ -211,132 +216,175 @@ msgid "KPI Threshold Range" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_kpi_ids -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_form +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__kpi_ids +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_form msgid "KPIs" msgstr "" #. module: kpi #: model:ir.model,name:kpi.model_kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_form msgid "Key Performance Indicator" msgstr "" #. module: kpi -#: model:ir.actions.act_window,name:kpi.open_kpi_list -#: model:ir.ui.view,arch_db:kpi.view_kpi_tree +#: model:ir.ui.menu,name:kpi.menu_configuration_kpi +#: model:ir.ui.menu,name:kpi.menu_configuration_kpi_kpi +#: model:ir.ui.menu,name:kpi.menu_kpi_dasboard +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_tree msgid "Key Performance Indicators" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi___last_update -#: model:ir.model.fields,field_description:kpi.field_kpi_category___last_update -#: model:ir.model.fields,field_description:kpi.field_kpi_history___last_update -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold___last_update -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range___last_update +#: model:ir.model.fields,field_description:kpi.field_kpi____last_update +#: model:ir.model.fields,field_description:kpi.field_kpi_category____last_update +#: model:ir.model.fields,field_description:kpi.field_kpi_history____last_update +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold____last_update +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range____last_update msgid "Last Modified on" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_category_write_uid -#: model:ir.model.fields,field_description:kpi.field_kpi_history_write_uid -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_write_uid -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_write_uid -#: model:ir.model.fields,field_description:kpi.field_kpi_write_uid +#: model:ir.model.fields,field_description:kpi.field_kpi__write_uid +#: model:ir.model.fields,field_description:kpi.field_kpi_category__write_uid +#: model:ir.model.fields,field_description:kpi.field_kpi_history__write_uid +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__write_uid +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__write_uid msgid "Last Updated by" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_category_write_date -#: model:ir.model.fields,field_description:kpi.field_kpi_history_write_date -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_write_date -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_write_date -#: model:ir.model.fields,field_description:kpi.field_kpi_write_date +#: model:ir.model.fields,field_description:kpi.field_kpi__write_date +#: model:ir.model.fields,field_description:kpi.field_kpi_category__write_date +#: model:ir.model.fields,field_description:kpi.field_kpi_history__write_date +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__write_date +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__write_date msgid "Last Updated on" msgstr "" #. module: kpi -#: code:addons/kpi/models/kpi_threshold.py:69 +#: model:ir.model.fields,field_description:kpi.field_kpi__last_execution +msgid "Last execution" +msgstr "" + +#. module: kpi +#: code:addons/kpi/models/kpi_threshold.py:68 #, python-format msgid "Make sure your ranges do not overlap!" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_max_type +#: model:res.groups,name:kpi.group_kpi_manager +msgid "Manage KPI's" +msgstr "" + +#. module: kpi +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__max_type msgid "Max Type" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_max_fixed_value -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_max_value -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_form msgid "Maximum" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_max_code +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__max_code msgid "Maximum Computation Code" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_invalid_message -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_invalid_message +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__max_error +msgid "Maximum Error" +msgstr "" + +#. module: kpi +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__max_fixed_value +msgid "Maximum Fixed Value" +msgstr "" + +#. module: kpi +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__max_value +msgid "Maximum Value" +msgstr "" + +#. module: kpi +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__invalid_message +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__invalid_message msgid "Message" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_min_type +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__min_type msgid "Min Type" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_min_fixed_value -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_min_value -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_form msgid "Minimum" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_min_code +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__min_code msgid "Minimum Computation Code" msgstr "" +#. module: kpi +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__min_error +msgid "Minimum Error" +msgstr "" + +#. module: kpi +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__min_fixed_value +msgid "Minimum Fixed Value" +msgstr "" + +#. module: kpi +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__min_value +msgid "Minimum Value" +msgstr "" + +#. module: kpi +#: selection:kpi,periodicity_uom:0 +msgid "Minute" +msgstr "" + #. module: kpi #: selection:kpi,periodicity_uom:0 msgid "Month" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_category_name -#: model:ir.model.fields,field_description:kpi.field_kpi_history_name -#: model:ir.model.fields,field_description:kpi.field_kpi_name -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_name -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_name +#: model:ir.model.fields,field_description:kpi.field_kpi__name +#: model:ir.model.fields,field_description:kpi.field_kpi_category__name +#: model:ir.model.fields,field_description:kpi.field_kpi_history__name +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__name +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__name msgid "Name" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_next_execution_date +#: model:ir.model.fields,field_description:kpi.field_kpi__next_execution_date msgid "Next execution date" msgstr "" #. module: kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_filter +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_filter msgid "Only active KPIs are computed by the scheduler based on the periodicity configuration." msgstr "" #. module: kpi -#: model:ir.model.fields,help:kpi.field_kpi_active +#: model:ir.model.fields,help:kpi.field_kpi__active msgid "Only active KPIs will be updated by the scheduler based on the periodicity configuration." msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_periodicity +#: model:ir.model.fields,field_description:kpi.field_kpi__periodicity msgid "Periodicity" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_periodicity_uom +#: model:ir.model.fields,field_description:kpi.field_kpi__periodicity_uom msgid "Periodicity UoM" msgstr "" @@ -352,16 +400,16 @@ msgid "Python Code" msgstr "" #. module: kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_form msgid "Range" msgstr "" #. module: kpi #: model:ir.actions.act_window,name:kpi.open_threshold_range_list -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_ids +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__range_ids #: model:ir.ui.menu,name:kpi.menu_configuration_kpi_range -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_form -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_tree +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_tree msgid "Ranges" msgstr "" @@ -384,45 +432,47 @@ msgid "SQL - Local DB" msgstr "" #. module: kpi -#: model:ir.model.fields,help:kpi.field_kpi_kpi_code +#: model:ir.model.fields,help:kpi.field_kpi__kpi_code msgid "SQL code must return the result as 'value' (i.e. 'SELECT 5 AS value')." msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_id_2252 -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_form +#: model:ir.model.fields,field_description:kpi.field_kpi__threshold_id +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_form msgid "Threshold" msgstr "" #. module: kpi #: model:ir.actions.act_window,name:kpi.open_threshold_list -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_threshold_ids +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__threshold_ids #: model:ir.ui.menu,name:kpi.menu_configuration_kpi_threshold -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_form -#: model:ir.ui.view,arch_db:kpi.view_kpi_threshold_tree +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_range_form +#: model_terms:ir.ui.view,arch_db:kpi.view_kpi_threshold_tree msgid "Thresholds" msgstr "" #. module: kpi -#: code:addons/kpi/models/kpi_threshold.py:68 +#: code:addons/kpi/models/kpi_threshold.py:67 #, python-format msgid "Two of your ranges are overlapping." msgstr "" #. module: kpi -#: model:ir.ui.view,arch_db:kpi.view_kpi_filter -msgid "Type" +#: model:ir.actions.server,name:kpi.ir_cron_kpi_action_ir_actions_server +#: model:ir.cron,cron_name:kpi.ir_cron_kpi_action +#: model:ir.cron,name:kpi.ir_cron_kpi_action +msgid "Update KPI values" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range_valid -#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_valid +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold__valid +#: model:ir.model.fields,field_description:kpi.field_kpi_threshold_range__valid msgid "Valid" msgstr "" #. module: kpi -#: model:ir.model.fields,field_description:kpi.field_kpi_history_value -#: model:ir.model.fields,field_description:kpi.field_kpi_value +#: model:ir.model.fields,field_description:kpi.field_kpi__value +#: model:ir.model.fields,field_description:kpi.field_kpi_history__value msgid "Value" msgstr "" diff --git a/kpi/models/__init__.py b/kpi/models/__init__.py index 7da5b4485..ae1cb4657 100644 --- a/kpi/models/__init__.py +++ b/kpi/models/__init__.py @@ -1,4 +1,3 @@ -# Copyright 2012 - Now Savoir-faire Linux # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import kpi_category diff --git a/kpi/models/kpi_threshold_range.py b/kpi/models/kpi_threshold_range.py index d1b2d6b34..fb40b836e 100644 --- a/kpi/models/kpi_threshold_range.py +++ b/kpi/models/kpi_threshold_range.py @@ -52,13 +52,14 @@ class KPIThresholdRange(models.Model): ('local', 'SQL - Local DB'), ('external', 'SQL - Externa DB'), ), 'Min Type', required=True) - min_value = fields.Float(string='Minimum', compute="_compute_min_value") - min_fixed_value = fields.Float('Minimum') + min_value = fields.Float(string='Minimum Value', + compute="_compute_min_value") + min_fixed_value = fields.Float('Minimum Fixed Value') min_code = fields.Text('Minimum Computation Code') - min_error = fields.Char('Error', compute="_compute_min_value") + min_error = fields.Char('Minimum Error', compute="_compute_min_value") min_dbsource_id = fields.Many2one( 'base.external.dbsource', - 'External DB Source', + 'External DB Source Minimum', ) max_type = fields.Selection(( ('static', 'Fixed value'), @@ -66,13 +67,14 @@ class KPIThresholdRange(models.Model): ('local', 'SQL - Local DB'), ('external', 'SQL - External DB'), ), 'Max Type', required=True) - max_value = fields.Float(string='Maximum', compute="_compute_max_value") - max_fixed_value = fields.Float('Maximum') + max_value = fields.Float(string='Maximum Value', + compute="_compute_max_value") + max_fixed_value = fields.Float('Maximum Fixed Value') max_code = fields.Text('Maximum Computation Code') - max_error = fields.Char('Error', compute="_compute_max_value") + max_error = fields.Char('Maximum Error', compute="_compute_max_value") max_dbsource_id = fields.Many2one( 'base.external.dbsource', - 'External DB Source', + 'External DB Source Maximum', ) color = fields.Char( diff --git a/kpi/security/ir.model.access.csv b/kpi/security/ir.model.access.csv index a01bf4dcf..0d79d817d 100644 --- a/kpi/security/ir.model.access.csv +++ b/kpi/security/ir.model.access.csv @@ -5,6 +5,7 @@ "access_kpi_threshold_user","kpi.threshold.user","model_kpi_threshold","base.group_user",1,0,0,0 "access_kpi_threshold_range_user","kpi.threshold.range.user","model_kpi_threshold_range","base.group_user",1,0,0,0 "access_kpi_manager","kpi.manager","model_kpi","kpi.group_kpi_manager",1,1,1,1 +"access_kpi_history_manager","kpi.history.user","model_kpi_history","kpi.group_kpi_manager",1,1,1,1 "access_kpi_category_manager","kpi.category.manager","model_kpi_category","kpi.group_kpi_manager",1,1,1,1 "access_kpi_threshold_manager","kpi.threshold.manager","model_kpi_threshold","kpi.group_kpi_manager",1,1,1,1 "access_kpi_threshold_range_manager","kpi.threshold.range.manager","model_kpi_threshold_range","kpi.group_kpi_manager",1,1,1,1 diff --git a/kpi/security/kpi_security.xml b/kpi/security/kpi_security.xml index 1fe99a28b..64a20cca0 100755 --- a/kpi/security/kpi_security.xml +++ b/kpi/security/kpi_security.xml @@ -7,7 +7,7 @@ Manage KPI's - + diff --git a/kpi/static/description/index.html b/kpi/static/description/index.html new file mode 100644 index 000000000..7f2d21088 --- /dev/null +++ b/kpi/static/description/index.html @@ -0,0 +1,444 @@ + + + + + + +Key Performance Indicator + + + +
+

Key Performance Indicator

+ + +

Beta License: AGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runbot

+

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)
  • +
+

Table of contents

+ + +
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Savoir-faire Linux
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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 project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/kpi/views/kpi_threshold_range_views.xml b/kpi/views/kpi_threshold_range_views.xml index b230c7e73..958cb77f4 100644 --- a/kpi/views/kpi_threshold_range_views.xml +++ b/kpi/views/kpi_threshold_range_views.xml @@ -27,7 +27,7 @@ - + diff --git a/kpi/views/kpi_views.xml b/kpi/views/kpi_views.xml index a2f56f852..b8283b64f 100644 --- a/kpi/views/kpi_views.xml +++ b/kpi/views/kpi_views.xml @@ -63,8 +63,8 @@ - - + +