Browse Source
Merge pull request #510 from dreispt/9.0-add-kpi
Merge pull request #510 from dreispt/9.0-add-kpi
[ADD] Extract kpi module from OCA/management-system#7.0pull/546/head
Maxime Chambreuil
8 years ago
committed by
GitHub
16 changed files with 2750 additions and 0 deletions
-
3mgmtsystem_kpi/__init__.py
-
70mgmtsystem_kpi/__openerp__.py
-
364mgmtsystem_kpi/i18n/fr.po
-
351mgmtsystem_kpi/i18n/mgmtsystem_kpi.pot
-
363mgmtsystem_kpi/i18n/nb.po
-
363mgmtsystem_kpi/i18n/pt_BR.po
-
357mgmtsystem_kpi/i18n/vi.po
-
BINmgmtsystem_kpi/images/kpi_computation.png
-
BINmgmtsystem_kpi/images/kpi_definition.png
-
BINmgmtsystem_kpi/images/kpi_range.png
-
BINmgmtsystem_kpi/images/kpi_threshold.png
-
532mgmtsystem_kpi/mgmtsystem_kpi.py
-
300mgmtsystem_kpi/mgmtsystem_kpi_view.xml
-
11mgmtsystem_kpi/security/ir.model.access.csv
-
36mgmtsystem_kpi/security/mgmtsystem_kpi_security.xml
-
BINmgmtsystem_kpi/static/src/img/icon.png
@ -0,0 +1,3 @@ |
|||
# -*- encoding: utf-8 -*- |
|||
|
|||
from . import mgmtsystem_kpi |
@ -0,0 +1,70 @@ |
|||
# -*- encoding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# OpenERP, Open Source Management Solution |
|||
# Copyright (C) 2012 Savoir-faire Linux (<http://www.savoirfairelinux.com>). |
|||
# |
|||
# This program is free software: you can redistribute it and/or modify |
|||
# it under the terms of the GNU Affero General Public License as |
|||
# published by the Free Software Foundation, either version 3 of the |
|||
# License, or (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU Affero General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU Affero General Public License |
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
{ |
|||
"name": "Key Performance Indicator", |
|||
"version": "7.0.1.1.1", |
|||
"author": "Savoir-faire Linux,Odoo Community Association (OCA)", |
|||
"website": "http://www.savoirfairelinux.com", |
|||
"license": "AGPL-3", |
|||
"category": "Management System", |
|||
"complexity": "normal", |
|||
"description": """\ |
|||
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) |
|||
|
|||
This module depends on: |
|||
* base_external_dbsource (available in lp:openobject-extension) |
|||
* web_color (available in lp:web-addons) |
|||
""", |
|||
"depends": [ |
|||
'mgmtsystem', |
|||
'base_external_dbsource', |
|||
'web_color', |
|||
], |
|||
"data": [ |
|||
'security/ir.model.access.csv', |
|||
'security/mgmtsystem_kpi_security.xml', |
|||
'mgmtsystem_kpi_view.xml', |
|||
], |
|||
"images": [ |
|||
"images/kpi_definition.png", |
|||
"images/kpi_computation.png", |
|||
"images/kpi_threshold.png", |
|||
"images/kpi_range.png", |
|||
], |
|||
"demo": [], |
|||
"test": [], |
|||
'installable': False, |
|||
} |
|||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
@ -0,0 +1,364 @@ |
|||
# French translation for openerp-mgmtsystem |
|||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 |
|||
# This file is distributed under the same license as the openerp-mgmtsystem package. |
|||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013. |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: openerp-mgmtsystem\n" |
|||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
|||
"POT-Creation-Date: 2013-04-03 18:36+0000\n" |
|||
"PO-Revision-Date: 2013-05-14 01:00+0000\n" |
|||
"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) " |
|||
"<maxime.chambreuil@savoirfairelinux.com>\n" |
|||
"Language-Team: French <fr@li.org>\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: 8bit\n" |
|||
"X-Launchpad-Export-Date: 2014-04-24 06:29+0000\n" |
|||
"X-Generator: Launchpad (build 16985)\n" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,category_id:0 |
|||
#: view:mgmtsystem.kpi.category:0 |
|||
msgid "Category" |
|||
msgstr "Catégorie" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "KPI Computation" |
|||
msgstr "Calcul de ICP" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi.threshold.range,color:0 |
|||
msgid "RGB code with #" |
|||
msgstr "Code RVB incluant le #" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.history:0 |
|||
msgid "KPI History" |
|||
msgstr "Historique de l'ICP" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi,kpi_code:0 |
|||
msgid "" |
|||
"SQL code must return the result as 'value' (i.e. 'SELECT 5 AS value')." |
|||
msgstr "" |
|||
"Le code SQL doit retourner le résultat comme une \"value\" (ex: \"SELECT 5 " |
|||
"AS value\")." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,kpi_type:0 |
|||
msgid "KPI Computation Type" |
|||
msgstr "Type de calcul de l'ICP" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_kpi_list |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Key Performance Indicators" |
|||
msgstr "Indicateurs Clé de Performance" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Group By..." |
|||
msgstr "Regrouper par..." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold,valid:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,valid:0 |
|||
msgid "Valid" |
|||
msgstr "Valide" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "SQL - Local DB" |
|||
msgstr "SQL - Base locale" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_category |
|||
msgid "KPI Category" |
|||
msgstr "Catégorie ICP" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Periodicity UoM" |
|||
msgstr "UdM de la périodicité" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Type" |
|||
msgstr "Type" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,name:0 |
|||
#: field:mgmtsystem.kpi.category,name:0 |
|||
#: field:mgmtsystem.kpi.history,name:0 |
|||
#: field:mgmtsystem.kpi.threshold,name:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,name:0 |
|||
msgid "Name" |
|||
msgstr "Nom" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Week" |
|||
msgstr "Semaine" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,description:0 |
|||
#: field:mgmtsystem.kpi.category,description:0 |
|||
msgid "Description" |
|||
msgstr "Description" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
msgid "Python" |
|||
msgstr "Python" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,max_code:0 |
|||
msgid "Maximum Computation Code" |
|||
msgstr "Code de calcul du maximum" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Min Type" |
|||
msgstr "Type du minimum" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_threshold_range_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_range |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: field:mgmtsystem.kpi.threshold,range_ids:0 |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
msgid "Ranges" |
|||
msgstr "Intervalles" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: code:addons/mgmtsystem_kpi/mgmtsystem_kpi.py:218 |
|||
#, python-format |
|||
msgid "2 of your ranges are overlapping!" |
|||
msgstr "2 périodes se chevauchent!" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_dbsource |
|||
msgid "Data Sources" |
|||
msgstr "Sources de données" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
msgid "Max Type" |
|||
msgstr "Type du maximum" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "" |
|||
"Only active KPIs are computed by the scheduler based on the periodicity " |
|||
"configuration." |
|||
msgstr "" |
|||
"Seuls les ICPs actifs sont calculés par l'ordonnanceur en fonction de la " |
|||
"configuration de la périodicité." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,active:0 |
|||
msgid "Active" |
|||
msgstr "Actif" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_threshold |
|||
msgid "KPI Threshold" |
|||
msgstr "Seuil de l'ICP" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Day" |
|||
msgstr "Jour" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Fixed value" |
|||
msgstr "Valeur fixe" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_threshold_range |
|||
msgid "KPI Threshold Range" |
|||
msgstr "Intervalle du seuil de l'ICP" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,min_code:0 |
|||
msgid "Minimum Computation Code" |
|||
msgstr "Code de calcul du minimum" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: code:addons/mgmtsystem_kpi/mgmtsystem_kpi.py:218 |
|||
#, python-format |
|||
msgid "Please make sure your ranges do not overlap!" |
|||
msgstr "Assurez-vous que vos intervalles ne se chevauchent pas !" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,kpi_code:0 |
|||
msgid "KPI Code" |
|||
msgstr "Code ICP" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Hour" |
|||
msgstr "Heure" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.history,date:0 |
|||
msgid "Execution Date" |
|||
msgstr "Date d'exécution" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_fixed_value:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_value:0 |
|||
msgid "Maximum" |
|||
msgstr "Maximum" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Compute KPI Now" |
|||
msgstr "Calculez l'ICP maintenant" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "SQL - Externa DB" |
|||
msgstr "SQL - BD externe" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_history |
|||
msgid "History of the KPI" |
|||
msgstr "Historique de l'ICP" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,next_execution_date:0 |
|||
msgid "Next execution date" |
|||
msgstr "Prochaine date d'exécution" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,dbsource_id:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_dbsource_id:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_dbsource_id:0 |
|||
msgid "External DB Source" |
|||
msgstr "Source de données externe" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi,active:0 |
|||
msgid "" |
|||
"Only active KPIs will be updated by the scheduler based on the periodicity " |
|||
"configuration." |
|||
msgstr "" |
|||
"Seuls les ICPs actif seront mis à jour par l'ordonnanceur en fonction de la " |
|||
"configuration de la périodicité." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi.history,kpi_id:0 |
|||
msgid "KPI" |
|||
msgstr "ICP" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,history_ids:0 |
|||
msgid "History" |
|||
msgstr "Historique" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,periodicity:0 |
|||
msgid "Periodicity" |
|||
msgstr "Fréquence" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.history,color:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,color:0 |
|||
msgid "Color" |
|||
msgstr "Couleur" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
msgid "SQL - External DB" |
|||
msgstr "SQL - BD externe" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Python Code" |
|||
msgstr "Code Python" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
msgid "Range" |
|||
msgstr "Intervalle" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Month" |
|||
msgstr "Mois" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,value:0 |
|||
#: field:mgmtsystem.kpi.history,value:0 |
|||
msgid "Value" |
|||
msgstr "Valeur" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_fixed_value:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_value:0 |
|||
msgid "Minimum" |
|||
msgstr "Minimum" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_category_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_category |
|||
#: view:mgmtsystem.kpi.category:0 |
|||
msgid "Categories" |
|||
msgstr "Catégories" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Computation" |
|||
msgstr "Calcul" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,threshold_id:0 |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
msgid "Threshold" |
|||
msgstr "Seuil" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: field:mgmtsystem.kpi.threshold,kpi_ids:0 |
|||
msgid "KPIs" |
|||
msgstr "ICPs" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold,invalid_message:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,invalid_message:0 |
|||
msgid "Message" |
|||
msgstr "Message" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_threshold_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_threshold |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,threshold_ids:0 |
|||
msgid "Thresholds" |
|||
msgstr "Seuils" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Key Performance Indicator" |
|||
msgstr "Indicateur Clé de Performance" |
@ -0,0 +1,351 @@ |
|||
# Translation of OpenERP Server. |
|||
# This file contains the translation of the following modules: |
|||
# * mgmtsystem_kpi |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: OpenERP Server 7.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2013-04-03 18:36+0000\n" |
|||
"PO-Revision-Date: 2013-04-03 18:36+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: \n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: \n" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,category_id:0 |
|||
#: view:mgmtsystem.kpi.category:0 |
|||
msgid "Category" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "KPI Computation" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi.threshold.range,color:0 |
|||
msgid "RGB code with #" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.history:0 |
|||
msgid "KPI History" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi,kpi_code:0 |
|||
msgid "SQL code must return the result as 'value' (i.e. 'SELECT 5 AS value')." |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,kpi_type:0 |
|||
msgid "KPI Computation Type" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_kpi_list |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Key Performance Indicators" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Group By..." |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold,valid:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,valid:0 |
|||
msgid "Valid" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "SQL - Local DB" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_category |
|||
msgid "KPI Category" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Periodicity UoM" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Type" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,name:0 |
|||
#: field:mgmtsystem.kpi.category,name:0 |
|||
#: field:mgmtsystem.kpi.history,name:0 |
|||
#: field:mgmtsystem.kpi.threshold,name:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,name:0 |
|||
msgid "Name" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Week" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,description:0 |
|||
#: field:mgmtsystem.kpi.category,description:0 |
|||
msgid "Description" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
msgid "Python" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,max_code:0 |
|||
msgid "Maximum Computation Code" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Min Type" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_threshold_range_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_range |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: field:mgmtsystem.kpi.threshold,range_ids:0 |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
msgid "Ranges" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: code:addons/mgmtsystem_kpi/mgmtsystem_kpi.py:218 |
|||
#, python-format |
|||
msgid "2 of your ranges are overlapping!" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_dbsource |
|||
msgid "Data Sources" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
msgid "Max Type" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Only active KPIs are computed by the scheduler based on the periodicity configuration." |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,active:0 |
|||
msgid "Active" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_threshold |
|||
msgid "KPI Threshold" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Day" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Fixed value" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_threshold_range |
|||
msgid "KPI Threshold Range" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,min_code:0 |
|||
msgid "Minimum Computation Code" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: code:addons/mgmtsystem_kpi/mgmtsystem_kpi.py:218 |
|||
#, python-format |
|||
msgid "Please make sure your ranges do not overlap!" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,kpi_code:0 |
|||
msgid "KPI Code" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Hour" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.history,date:0 |
|||
msgid "Execution Date" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_fixed_value:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_value:0 |
|||
msgid "Maximum" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Compute KPI Now" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "SQL - Externa DB" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_history |
|||
msgid "History of the KPI" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,next_execution_date:0 |
|||
msgid "Next execution date" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,dbsource_id:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_dbsource_id:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_dbsource_id:0 |
|||
msgid "External DB Source" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi,active:0 |
|||
msgid "Only active KPIs will be updated by the scheduler based on the periodicity configuration." |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi.history,kpi_id:0 |
|||
msgid "KPI" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,history_ids:0 |
|||
msgid "History" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,periodicity:0 |
|||
msgid "Periodicity" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.history,color:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,color:0 |
|||
msgid "Color" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
msgid "SQL - External DB" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Python Code" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
msgid "Range" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Month" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,value:0 |
|||
#: field:mgmtsystem.kpi.history,value:0 |
|||
msgid "Value" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_fixed_value:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_value:0 |
|||
msgid "Minimum" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_category_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_category |
|||
#: view:mgmtsystem.kpi.category:0 |
|||
msgid "Categories" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Computation" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,threshold_id:0 |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
msgid "Threshold" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: field:mgmtsystem.kpi.threshold,kpi_ids:0 |
|||
msgid "KPIs" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold,invalid_message:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,invalid_message:0 |
|||
msgid "Message" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_threshold_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_threshold |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,threshold_ids:0 |
|||
msgid "Thresholds" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Key Performance Indicator" |
|||
msgstr "" |
|||
|
@ -0,0 +1,363 @@ |
|||
# Norwegian Bokmal translation for openerp-mgmtsystem |
|||
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 |
|||
# This file is distributed under the same license as the openerp-mgmtsystem package. |
|||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: openerp-mgmtsystem\n" |
|||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
|||
"POT-Creation-Date: 2013-04-03 18:36+0000\n" |
|||
"PO-Revision-Date: 2014-01-22 17:33+0000\n" |
|||
"Last-Translator: Torvald Baade Bringsvor <torvald@bringsvor.com>\n" |
|||
"Language-Team: Norwegian Bokmal <nb@li.org>\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: 8bit\n" |
|||
"X-Launchpad-Export-Date: 2014-04-24 06:30+0000\n" |
|||
"X-Generator: Launchpad (build 16985)\n" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,category_id:0 |
|||
#: view:mgmtsystem.kpi.category:0 |
|||
msgid "Category" |
|||
msgstr "Kategori" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "KPI Computation" |
|||
msgstr "KPI beregning" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi.threshold.range,color:0 |
|||
msgid "RGB code with #" |
|||
msgstr "RGB kode med tall" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.history:0 |
|||
msgid "KPI History" |
|||
msgstr "KPI Historikk" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi,kpi_code:0 |
|||
msgid "" |
|||
"SQL code must return the result as 'value' (i.e. 'SELECT 5 AS value')." |
|||
msgstr "" |
|||
"SQL kode må returnere resultatet som 'verdi' (for eksempel 'SELECT S AS " |
|||
"verdi')." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,kpi_type:0 |
|||
msgid "KPI Computation Type" |
|||
msgstr "KPI Beregningstype" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_kpi_list |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Key Performance Indicators" |
|||
msgstr "Nøkkeltall for ytelse (KPI)" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Group By..." |
|||
msgstr "Grupper etter ..." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold,valid:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,valid:0 |
|||
msgid "Valid" |
|||
msgstr "Gyldig" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "SQL - Local DB" |
|||
msgstr "SQL - lokal database" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_category |
|||
msgid "KPI Category" |
|||
msgstr "KPI Kategori" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Periodicity UoM" |
|||
msgstr "Periodisitet måleenhet (UoM)" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Type" |
|||
msgstr "Type" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,name:0 |
|||
#: field:mgmtsystem.kpi.category,name:0 |
|||
#: field:mgmtsystem.kpi.history,name:0 |
|||
#: field:mgmtsystem.kpi.threshold,name:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,name:0 |
|||
msgid "Name" |
|||
msgstr "Navn" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Week" |
|||
msgstr "Uke" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,description:0 |
|||
#: field:mgmtsystem.kpi.category,description:0 |
|||
msgid "Description" |
|||
msgstr "Beskrivelse" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
msgid "Python" |
|||
msgstr "Python" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,max_code:0 |
|||
msgid "Maximum Computation Code" |
|||
msgstr "Maksimal beregningskode" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Min Type" |
|||
msgstr "Min type" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_threshold_range_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_range |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: field:mgmtsystem.kpi.threshold,range_ids:0 |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
msgid "Ranges" |
|||
msgstr "Områder" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: code:addons/mgmtsystem_kpi/mgmtsystem_kpi.py:218 |
|||
#, python-format |
|||
msgid "2 of your ranges are overlapping!" |
|||
msgstr "to av dine områder overlapper" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_dbsource |
|||
msgid "Data Sources" |
|||
msgstr "Datakilder" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
msgid "Max Type" |
|||
msgstr "Maks type" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "" |
|||
"Only active KPIs are computed by the scheduler based on the periodicity " |
|||
"configuration." |
|||
msgstr "" |
|||
"Kun aktive KPIer blir beregnet periodisk (av scheduler) basert på " |
|||
"konfigurert periode." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,active:0 |
|||
msgid "Active" |
|||
msgstr "Aktiv" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_threshold |
|||
msgid "KPI Threshold" |
|||
msgstr "KPI nivå" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Day" |
|||
msgstr "Dag" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Fixed value" |
|||
msgstr "Fast verdi" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_threshold_range |
|||
msgid "KPI Threshold Range" |
|||
msgstr "KPI Nivåområde" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,min_code:0 |
|||
msgid "Minimum Computation Code" |
|||
msgstr "Minimal beregningskode" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: code:addons/mgmtsystem_kpi/mgmtsystem_kpi.py:218 |
|||
#, python-format |
|||
msgid "Please make sure your ranges do not overlap!" |
|||
msgstr "Vennligst vær sikker på at områdene ikke overlapper!" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,kpi_code:0 |
|||
msgid "KPI Code" |
|||
msgstr "KPI kode" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Hour" |
|||
msgstr "Time" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.history,date:0 |
|||
msgid "Execution Date" |
|||
msgstr "Gjennomførings dato" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_fixed_value:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_value:0 |
|||
msgid "Maximum" |
|||
msgstr "Maksimum" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Compute KPI Now" |
|||
msgstr "Beregn KPI Nå" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "SQL - Externa DB" |
|||
msgstr "SQL - Ekstern database" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_history |
|||
msgid "History of the KPI" |
|||
msgstr "Historisk KPI" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,next_execution_date:0 |
|||
msgid "Next execution date" |
|||
msgstr "Neste eksekveringsdato" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,dbsource_id:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_dbsource_id:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_dbsource_id:0 |
|||
msgid "External DB Source" |
|||
msgstr "Ekstern databasekilde" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi,active:0 |
|||
msgid "" |
|||
"Only active KPIs will be updated by the scheduler based on the periodicity " |
|||
"configuration." |
|||
msgstr "" |
|||
"Kun aktive KPIer blir oppdatert periodisk (av scheduler) basert på " |
|||
"konfigurert periode." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi.history,kpi_id:0 |
|||
msgid "KPI" |
|||
msgstr "KPI" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,history_ids:0 |
|||
msgid "History" |
|||
msgstr "Historikk" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,periodicity:0 |
|||
msgid "Periodicity" |
|||
msgstr "Periodisitet" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.history,color:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,color:0 |
|||
msgid "Color" |
|||
msgstr "Farge" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
msgid "SQL - External DB" |
|||
msgstr "SQL - Ekstern database" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Python Code" |
|||
msgstr "Python kode" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
msgid "Range" |
|||
msgstr "Intervall" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Month" |
|||
msgstr "Måned" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,value:0 |
|||
#: field:mgmtsystem.kpi.history,value:0 |
|||
msgid "Value" |
|||
msgstr "Verdi" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_fixed_value:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_value:0 |
|||
msgid "Minimum" |
|||
msgstr "Minimum" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_category_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_category |
|||
#: view:mgmtsystem.kpi.category:0 |
|||
msgid "Categories" |
|||
msgstr "Kategorier" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Computation" |
|||
msgstr "Beregning" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,threshold_id:0 |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
msgid "Threshold" |
|||
msgstr "Terskel" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: field:mgmtsystem.kpi.threshold,kpi_ids:0 |
|||
msgid "KPIs" |
|||
msgstr "KPIer" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold,invalid_message:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,invalid_message:0 |
|||
msgid "Message" |
|||
msgstr "Melding" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_threshold_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_threshold |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,threshold_ids:0 |
|||
msgid "Thresholds" |
|||
msgstr "Terskler" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Key Performance Indicator" |
|||
msgstr "Nøkkelindikator for ytelse (KPI)" |
@ -0,0 +1,363 @@ |
|||
# French translation for openerp-mgmtsystem |
|||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 |
|||
# This file is distributed under the same license as the openerp-mgmtsystem package. |
|||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013. |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: openerp-mgmtsystem\n" |
|||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
|||
"POT-Creation-Date: 2013-04-03 18:36+0000\n" |
|||
"PO-Revision-Date: 2013-07-18 15:14+0000\n" |
|||
"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n" |
|||
"Language-Team: French <fr@li.org>\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: 8bit\n" |
|||
"X-Launchpad-Export-Date: 2014-04-24 06:30+0000\n" |
|||
"X-Generator: Launchpad (build 16985)\n" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,category_id:0 |
|||
#: view:mgmtsystem.kpi.category:0 |
|||
msgid "Category" |
|||
msgstr "Categoria" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "KPI Computation" |
|||
msgstr "Cálculo de ICD" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi.threshold.range,color:0 |
|||
msgid "RGB code with #" |
|||
msgstr "Código RGB com #" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.history:0 |
|||
msgid "KPI History" |
|||
msgstr "Historico ICD" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi,kpi_code:0 |
|||
msgid "" |
|||
"SQL code must return the result as 'value' (i.e. 'SELECT 5 AS value')." |
|||
msgstr "" |
|||
"Código SQL deve retornar o resultado como \"valor\" (ou seja, 'SELECT 5 AS " |
|||
"value')." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,kpi_type:0 |
|||
msgid "KPI Computation Type" |
|||
msgstr "Tipo cálculo ICD" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_kpi_list |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Key Performance Indicators" |
|||
msgstr "Indicadores Chave de Desempenho" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Group By..." |
|||
msgstr "Agrupar Por..." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold,valid:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,valid:0 |
|||
msgid "Valid" |
|||
msgstr "Válido" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "SQL - Local DB" |
|||
msgstr "SQL - DB local" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_category |
|||
msgid "KPI Category" |
|||
msgstr "Categoria ICD" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Periodicity UoM" |
|||
msgstr "UoM periodicidade" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Type" |
|||
msgstr "Tipo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,name:0 |
|||
#: field:mgmtsystem.kpi.category,name:0 |
|||
#: field:mgmtsystem.kpi.history,name:0 |
|||
#: field:mgmtsystem.kpi.threshold,name:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,name:0 |
|||
msgid "Name" |
|||
msgstr "Nome" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Week" |
|||
msgstr "Semana" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,description:0 |
|||
#: field:mgmtsystem.kpi.category,description:0 |
|||
msgid "Description" |
|||
msgstr "Descrição" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
msgid "Python" |
|||
msgstr "Python" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,max_code:0 |
|||
msgid "Maximum Computation Code" |
|||
msgstr "Código máximo do cálculo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Min Type" |
|||
msgstr "Tipo minimo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_threshold_range_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_range |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: field:mgmtsystem.kpi.threshold,range_ids:0 |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
msgid "Ranges" |
|||
msgstr "Intervalos" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: code:addons/mgmtsystem_kpi/mgmtsystem_kpi.py:218 |
|||
#, python-format |
|||
msgid "2 of your ranges are overlapping!" |
|||
msgstr "2 de suas faixas são sobrepostas!" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_dbsource |
|||
msgid "Data Sources" |
|||
msgstr "Fonte de dados" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
msgid "Max Type" |
|||
msgstr "Tipo máximo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "" |
|||
"Only active KPIs are computed by the scheduler based on the periodicity " |
|||
"configuration." |
|||
msgstr "" |
|||
"Só os ICDs ativos são calculados pelo planificador baseado na configuração " |
|||
"de periodicidade." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,active:0 |
|||
msgid "Active" |
|||
msgstr "Ativo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_threshold |
|||
msgid "KPI Threshold" |
|||
msgstr "Limiar ICD" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Day" |
|||
msgstr "Dia" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Fixed value" |
|||
msgstr "Valor fixo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_threshold_range |
|||
msgid "KPI Threshold Range" |
|||
msgstr "Faixa limiar do ICD" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,min_code:0 |
|||
msgid "Minimum Computation Code" |
|||
msgstr "Código minimo de cálculo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: code:addons/mgmtsystem_kpi/mgmtsystem_kpi.py:218 |
|||
#, python-format |
|||
msgid "Please make sure your ranges do not overlap!" |
|||
msgstr "Por favor, certifique-se seus intervalos não se sobrepõem!" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,kpi_code:0 |
|||
msgid "KPI Code" |
|||
msgstr "Código ICD" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Hour" |
|||
msgstr "Hora" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.history,date:0 |
|||
msgid "Execution Date" |
|||
msgstr "Data de Execução" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_fixed_value:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_value:0 |
|||
msgid "Maximum" |
|||
msgstr "Máximo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Compute KPI Now" |
|||
msgstr "Cálcule o ICD agora" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "SQL - Externa DB" |
|||
msgstr "SQL - DB Externo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_history |
|||
msgid "History of the KPI" |
|||
msgstr "História do ICD" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,next_execution_date:0 |
|||
msgid "Next execution date" |
|||
msgstr "Próxima data de execução" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,dbsource_id:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_dbsource_id:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_dbsource_id:0 |
|||
msgid "External DB Source" |
|||
msgstr "Fonte Externa de Dados" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi,active:0 |
|||
msgid "" |
|||
"Only active KPIs will be updated by the scheduler based on the periodicity " |
|||
"configuration." |
|||
msgstr "" |
|||
"Somente os ICDs ativos serão atualizados pelo programador com base na " |
|||
"configuração periodicidade." |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi.history,kpi_id:0 |
|||
msgid "KPI" |
|||
msgstr "IDC" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,history_ids:0 |
|||
msgid "History" |
|||
msgstr "Histórico" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,periodicity:0 |
|||
msgid "Periodicity" |
|||
msgstr "Periodicidade" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.history,color:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,color:0 |
|||
msgid "Color" |
|||
msgstr "Cor" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
msgid "SQL - External DB" |
|||
msgstr "SQL - DB externo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Python Code" |
|||
msgstr "Código Python" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
msgid "Range" |
|||
msgstr "Intervalo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Month" |
|||
msgstr "Mês" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,value:0 |
|||
#: field:mgmtsystem.kpi.history,value:0 |
|||
msgid "Value" |
|||
msgstr "Valor" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_fixed_value:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_value:0 |
|||
msgid "Minimum" |
|||
msgstr "Mínimo" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_category_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_category |
|||
#: view:mgmtsystem.kpi.category:0 |
|||
msgid "Categories" |
|||
msgstr "Categorias" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Computation" |
|||
msgstr "Calcular" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,threshold_id:0 |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
msgid "Threshold" |
|||
msgstr "Limiar" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: field:mgmtsystem.kpi.threshold,kpi_ids:0 |
|||
msgid "KPIs" |
|||
msgstr "ICDs" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold,invalid_message:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,invalid_message:0 |
|||
msgid "Message" |
|||
msgstr "Mensagem" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_threshold_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_threshold |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,threshold_ids:0 |
|||
msgid "Thresholds" |
|||
msgstr "Limites" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Key Performance Indicator" |
|||
msgstr "Indicador Chave Desempenho" |
@ -0,0 +1,357 @@ |
|||
# Vietnamese translation for openerp-mgmtsystem |
|||
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 |
|||
# This file is distributed under the same license as the openerp-mgmtsystem package. |
|||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: openerp-mgmtsystem\n" |
|||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
|||
"POT-Creation-Date: 2013-04-03 18:36+0000\n" |
|||
"PO-Revision-Date: 2014-03-05 03:04+0000\n" |
|||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
|||
"Language-Team: Vietnamese <vi@li.org>\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: 8bit\n" |
|||
"X-Launchpad-Export-Date: 2014-04-24 06:30+0000\n" |
|||
"X-Generator: Launchpad (build 16985)\n" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,category_id:0 |
|||
#: view:mgmtsystem.kpi.category:0 |
|||
msgid "Category" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "KPI Computation" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi.threshold.range,color:0 |
|||
msgid "RGB code with #" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.history:0 |
|||
msgid "KPI History" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi,kpi_code:0 |
|||
msgid "" |
|||
"SQL code must return the result as 'value' (i.e. 'SELECT 5 AS value')." |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,kpi_type:0 |
|||
msgid "KPI Computation Type" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_kpi_list |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Key Performance Indicators" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Group By..." |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold,valid:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,valid:0 |
|||
msgid "Valid" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "SQL - Local DB" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_category |
|||
msgid "KPI Category" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Periodicity UoM" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Type" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,name:0 |
|||
#: field:mgmtsystem.kpi.category,name:0 |
|||
#: field:mgmtsystem.kpi.history,name:0 |
|||
#: field:mgmtsystem.kpi.threshold,name:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,name:0 |
|||
msgid "Name" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Week" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,description:0 |
|||
#: field:mgmtsystem.kpi.category,description:0 |
|||
msgid "Description" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
msgid "Python" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,max_code:0 |
|||
msgid "Maximum Computation Code" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Min Type" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_threshold_range_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_range |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: field:mgmtsystem.kpi.threshold,range_ids:0 |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
msgid "Ranges" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: code:addons/mgmtsystem_kpi/mgmtsystem_kpi.py:218 |
|||
#, python-format |
|||
msgid "2 of your ranges are overlapping!" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_dbsource |
|||
msgid "Data Sources" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
msgid "Max Type" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "" |
|||
"Only active KPIs are computed by the scheduler based on the periodicity " |
|||
"configuration." |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,active:0 |
|||
msgid "Active" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_threshold |
|||
msgid "KPI Threshold" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Day" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Fixed value" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_threshold_range |
|||
msgid "KPI Threshold Range" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold.range,min_code:0 |
|||
msgid "Minimum Computation Code" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: code:addons/mgmtsystem_kpi/mgmtsystem_kpi.py:218 |
|||
#, python-format |
|||
msgid "Please make sure your ranges do not overlap!" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,kpi_code:0 |
|||
msgid "KPI Code" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Hour" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.history,date:0 |
|||
msgid "Execution Date" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_fixed_value:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_value:0 |
|||
msgid "Maximum" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Compute KPI Now" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "SQL - Externa DB" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi_history |
|||
msgid "History of the KPI" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,next_execution_date:0 |
|||
msgid "Next execution date" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,dbsource_id:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,max_dbsource_id:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_dbsource_id:0 |
|||
msgid "External DB Source" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: help:mgmtsystem.kpi,active:0 |
|||
msgid "" |
|||
"Only active KPIs will be updated by the scheduler based on the periodicity " |
|||
"configuration." |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi.history,kpi_id:0 |
|||
msgid "KPI" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
#: field:mgmtsystem.kpi,history_ids:0 |
|||
msgid "History" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,periodicity:0 |
|||
msgid "Periodicity" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.history,color:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,color:0 |
|||
msgid "Color" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,kpi_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
msgid "SQL - External DB" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi.threshold.range,max_type:0 |
|||
#: selection:mgmtsystem.kpi.threshold.range,min_type:0 |
|||
msgid "Python Code" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
msgid "Range" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: selection:mgmtsystem.kpi,periodicity_uom:0 |
|||
msgid "Month" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,value:0 |
|||
#: field:mgmtsystem.kpi.history,value:0 |
|||
msgid "Value" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_fixed_value:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,min_value:0 |
|||
msgid "Minimum" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_category_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_category |
|||
#: view:mgmtsystem.kpi.category:0 |
|||
msgid "Categories" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Computation" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi,threshold_id:0 |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
msgid "Threshold" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: field:mgmtsystem.kpi.threshold,kpi_ids:0 |
|||
msgid "KPIs" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: field:mgmtsystem.kpi.threshold,invalid_message:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,invalid_message:0 |
|||
msgid "Message" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.actions.act_window,name:mgmtsystem_kpi.open_mgmtsystem_threshold_list |
|||
#: model:ir.ui.menu,name:mgmtsystem_kpi.menu_mgmtsystem_configuration_kpi_threshold |
|||
#: view:mgmtsystem.kpi.threshold:0 |
|||
#: view:mgmtsystem.kpi.threshold.range:0 |
|||
#: field:mgmtsystem.kpi.threshold.range,threshold_ids:0 |
|||
msgid "Thresholds" |
|||
msgstr "" |
|||
|
|||
#. module: mgmtsystem_kpi |
|||
#: model:ir.model,name:mgmtsystem_kpi.model_mgmtsystem_kpi |
|||
#: view:mgmtsystem.kpi:0 |
|||
msgid "Key Performance Indicator" |
|||
msgstr "" |
After Width: 658 | Height: 352 | Size: 41 KiB |
After Width: 655 | Height: 353 | Size: 46 KiB |
After Width: 818 | Height: 449 | Size: 27 KiB |
After Width: 655 | Height: 266 | Size: 25 KiB |
@ -0,0 +1,532 @@ |
|||
# -*- encoding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# OpenERP, Open Source Management Solution |
|||
# Copyright (C) 2012 Savoir-faire Linux (<http://www.savoirfairelinux.com>). |
|||
# |
|||
# This program is free software: you can redistribute it and/or modify |
|||
# it under the terms of the GNU Affero General Public License as |
|||
# published by the Free Software Foundation, either version 3 of the |
|||
# License, or (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU Affero General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU Affero General Public License |
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
from datetime import datetime, timedelta |
|||
from openerp.osv import fields, orm |
|||
from openerp.tools.translate import _ |
|||
from openerp.tools.safe_eval import safe_eval |
|||
from openerp.tools import ( |
|||
DEFAULT_SERVER_DATETIME_FORMAT as DATETIME_FORMAT, |
|||
) |
|||
import time |
|||
import re |
|||
import logging |
|||
_logger = logging.getLogger(__name__) |
|||
|
|||
|
|||
def is_one_value(result): |
|||
# check if sql query returns only one value |
|||
if type(result) is dict and 'value' in result.dictfetchone(): |
|||
return True |
|||
elif type(result) is list and 'value' in result[0]: |
|||
return True |
|||
else: |
|||
return False |
|||
|
|||
|
|||
RE_SELECT_QUERY = re.compile('.*(' + '|'.join(( |
|||
'INSERT', |
|||
'UPDATE', |
|||
'DELETE', |
|||
'CREATE', |
|||
'ALTER', |
|||
'DROP', |
|||
'GRANT', |
|||
'REVOKE', |
|||
'INDEX', |
|||
)) + ')') |
|||
|
|||
|
|||
def is_select_query(query): |
|||
"""Check if sql query is a SELECT statement""" |
|||
return not RE_SELECT_QUERY.match(query.upper()) |
|||
|
|||
|
|||
class mgmtsystem_kpi_category(orm.Model): |
|||
""" |
|||
KPI Category |
|||
""" |
|||
_name = "mgmtsystem.kpi.category" |
|||
_description = "KPI Category" |
|||
_columns = { |
|||
'name': fields.char('Name', size=50, required=True), |
|||
'description': fields.text('Description') |
|||
} |
|||
|
|||
|
|||
class mgmtsystem_kpi_threshold_range(orm.Model): |
|||
""" |
|||
KPI Threshold Range |
|||
""" |
|||
_name = "mgmtsystem.kpi.threshold.range" |
|||
_description = "KPI Threshold Range" |
|||
|
|||
def compute_min_value(self, cr, uid, ids, field_name, arg, context=None): |
|||
if context is None: |
|||
context = {} |
|||
result = {} |
|||
for obj in self.browse(cr, uid, ids): |
|||
value = None |
|||
if obj.min_type == 'local' and is_select_query(obj.min_code): |
|||
cr.execute(obj.min_code) |
|||
dic = cr.dictfetchall() |
|||
if is_one_value(dic): |
|||
value = dic[0]['value'] |
|||
elif (obj.min_type == 'external' |
|||
and obj.min_dbsource_id.id |
|||
and is_select_query(obj.min_code)): |
|||
dbsrc_obj = obj.min_dbsource_id |
|||
res = dbsrc_obj.execute(obj.min_code) |
|||
if is_one_value(res): |
|||
value = res[0]['value'] |
|||
elif obj.min_type == 'python': |
|||
value = safe_eval(obj.min_code) |
|||
else: |
|||
value = obj.min_fixed_value |
|||
result[obj.id] = value |
|||
return result |
|||
|
|||
def compute_max_value(self, cr, uid, ids, field_name, arg, context=None): |
|||
if context is None: |
|||
context = {} |
|||
result = {} |
|||
for obj in self.browse(cr, uid, ids, context): |
|||
value = None |
|||
if obj.max_type == 'local' and is_select_query(obj.max_code): |
|||
cr.execute(obj.max_code) |
|||
dic = cr.dictfetchall() |
|||
if is_one_value(dic): |
|||
value = dic[0]['value'] |
|||
elif obj.max_type == 'python': |
|||
value = safe_eval(obj.max_code) |
|||
elif (obj.max_type == 'external' |
|||
and obj.max_dbsource_id.id |
|||
and is_select_query(obj.max_code)): |
|||
dbsrc_obj = obj.max_dbsource_id |
|||
res = dbsrc_obj.execute(obj.max_code) |
|||
if is_one_value(res): |
|||
value = res[0]['value'] |
|||
else: |
|||
value = obj.max_fixed_value |
|||
result[obj.id] = value |
|||
return result |
|||
|
|||
def _is_valid_range(self, cr, uid, ids, field_name, arg, context=None): |
|||
if context is None: |
|||
context = {} |
|||
result = {} |
|||
for obj in self.browse(cr, uid, ids, context): |
|||
if obj.max_value < obj.min_value: |
|||
result[obj.id] = False |
|||
else: |
|||
result[obj.id] = True |
|||
return result |
|||
|
|||
def _generate_invalid_message( |
|||
self, cr, uid, ids, field_name, arg, context=None): |
|||
if context is None: |
|||
context = {} |
|||
result = {} |
|||
for obj in self.browse(cr, uid, ids, context): |
|||
if obj.valid: |
|||
result[obj.id] = "" |
|||
else: |
|||
result[obj.id] = ("Minimum value is greater than the maximum " |
|||
"value! Please adjust them.") |
|||
return result |
|||
|
|||
_columns = { |
|||
'name': fields.char('Name', size=50, required=True), |
|||
'valid': fields.function( |
|||
_is_valid_range, |
|||
string='Valid', |
|||
type='boolean', |
|||
required=True, |
|||
), |
|||
'invalid_message': fields.function( |
|||
_generate_invalid_message, |
|||
string='Message', |
|||
type='char', |
|||
size=100, |
|||
), |
|||
'min_type': fields.selection(( |
|||
('static', 'Fixed value'), |
|||
('python', 'Python Code'), |
|||
('local', 'SQL - Local DB'), |
|||
('external', 'SQL - Externa DB'), |
|||
), 'Min Type', required=True), |
|||
'min_value': fields.function( |
|||
compute_min_value, |
|||
string='Minimum', |
|||
type='float', |
|||
), |
|||
'min_fixed_value': fields.float('Minimum'), |
|||
'min_code': fields.text('Minimum Computation Code'), |
|||
'min_dbsource_id': fields.many2one( |
|||
'base.external.dbsource', |
|||
'External DB Source', |
|||
), |
|||
'max_type': fields.selection(( |
|||
('static', 'Fixed value'), |
|||
('python', 'Python Code'), |
|||
('local', 'SQL - Local DB'), |
|||
('external', 'SQL - External DB'), |
|||
), 'Max Type', required=True), |
|||
'max_value': fields.function( |
|||
compute_max_value, |
|||
string='Maximum', |
|||
type='float', |
|||
), |
|||
'max_fixed_value': fields.float('Maximum'), |
|||
'max_code': fields.text('Maximum Computation Code'), |
|||
'max_dbsource_id': fields.many2one( |
|||
'base.external.dbsource', |
|||
'External DB Source', |
|||
), |
|||
'color': fields.char( |
|||
'Color', |
|||
help='RGB code with #', |
|||
size=7, |
|||
required=True, |
|||
), |
|||
'threshold_ids': fields.many2many( |
|||
'mgmtsystem.kpi.threshold', |
|||
'mgmtsystem_kpi_threshold_range_rel', |
|||
'range_id', |
|||
'threshold_id', |
|||
'Thresholds', |
|||
), |
|||
'company_id': fields.many2one('res.company', 'Company') |
|||
} |
|||
|
|||
_defaults = { |
|||
'company_id': ( |
|||
lambda self, cr, uid, c: |
|||
self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id), |
|||
'valid': True, |
|||
} |
|||
|
|||
|
|||
class mgmtsystem_kpi_threshold(orm.Model): |
|||
""" |
|||
KPI Threshold |
|||
""" |
|||
_name = "mgmtsystem.kpi.threshold" |
|||
_description = "KPI Threshold" |
|||
|
|||
def _is_valid_threshold(self, cr, uid, ids, field_name, arg, context=None): |
|||
if context is None: |
|||
context = {} |
|||
result = {} |
|||
for obj in self.browse(cr, uid, ids, context): |
|||
# check if ranges overlap |
|||
# TODO: This code can be done better |
|||
for range1 in obj.range_ids: |
|||
for range2 in obj.range_ids: |
|||
if (range1.valid and range2.valid |
|||
and range1.min_value < range2.min_value): |
|||
result[obj.id] = range1.max_value <= range2.min_value |
|||
return result |
|||
|
|||
def _generate_invalid_message( |
|||
self, cr, uid, ids, field_name, arg, context=None): |
|||
if context is None: |
|||
context = {} |
|||
result = {} |
|||
for obj in self.browse(cr, uid, ids, context): |
|||
if obj.valid: |
|||
result[obj.id] = "" |
|||
else: |
|||
result[obj.id] = ("2 of your ranges are overlapping! Please " |
|||
"make sure your ranges do not overlap.") |
|||
return result |
|||
|
|||
_columns = { |
|||
'name': fields.char('Name', size=50, required=True), |
|||
'range_ids': fields.many2many( |
|||
'mgmtsystem.kpi.threshold.range', |
|||
'mgmtsystem_kpi_threshold_range_rel', |
|||
'threshold_id', |
|||
'range_id', |
|||
'Ranges' |
|||
), |
|||
'valid': fields.function( |
|||
_is_valid_threshold, |
|||
string='Valid', |
|||
type='boolean', |
|||
required=True, |
|||
), |
|||
'invalid_message': fields.function( |
|||
_generate_invalid_message, |
|||
string='Message', |
|||
type='char', |
|||
size=100, |
|||
), |
|||
'kpi_ids': fields.one2many('mgmtsystem.kpi', 'threshold_id', 'KPIs'), |
|||
'company_id': fields.many2one('res.company', 'Company') |
|||
} |
|||
|
|||
_defaults = { |
|||
'company_id': ( |
|||
lambda self, cr, uid, c: |
|||
self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id), |
|||
'valid': True, |
|||
} |
|||
|
|||
def create(self, cr, uid, data, context=None): |
|||
if context is None: |
|||
context = {} |
|||
|
|||
# check if ranges overlap |
|||
# TODO: This code can be done better |
|||
range_obj1 = self.pool.get('mgmtsystem.kpi.threshold.range') |
|||
range_obj2 = self.pool.get('mgmtsystem.kpi.threshold.range') |
|||
for range1 in data['range_ids'][0][2]: |
|||
range_obj1 = range_obj1.browse(cr, uid, range1, context) |
|||
for range2 in data['range_ids'][0][2]: |
|||
range_obj2 = range_obj2.browse(cr, uid, range2, context) |
|||
if (range_obj1.valid and range_obj2.valid |
|||
and range_obj1.min_value < range_obj2.min_value): |
|||
if range_obj1.max_value > range_obj2.min_value: |
|||
raise orm.except_orm( |
|||
_("2 of your ranges are overlapping!"), |
|||
_("Please make sure your ranges do not overlap!") |
|||
) |
|||
range_obj2 = self.pool.get('mgmtsystem.kpi.threshold.range') |
|||
range_obj1 = self.pool.get('mgmtsystem.kpi.threshold.range') |
|||
return super(mgmtsystem_kpi_threshold, self).create( |
|||
cr, uid, data, context |
|||
) |
|||
|
|||
def get_color(self, cr, uid, ids, kpi_value, context=None): |
|||
if context is None: |
|||
context = {} |
|||
|
|||
color = '#FFFFFF' |
|||
for obj in self.browse(cr, uid, ids, context): |
|||
for range_obj in obj.range_ids: |
|||
if (range_obj.min_value <= kpi_value <= range_obj.max_value |
|||
and range_obj.valid): |
|||
color = range_obj.color |
|||
return color |
|||
|
|||
|
|||
class mgmtsystem_kpi_history(orm.Model): |
|||
""" |
|||
History of the KPI |
|||
""" |
|||
_name = "mgmtsystem.kpi.history" |
|||
_description = "History of the KPI" |
|||
|
|||
_columns = { |
|||
'name': fields.char('Name', size=150, required=True), |
|||
'kpi_id': fields.many2one('mgmtsystem.kpi', 'KPI', required=True), |
|||
'date': fields.datetime( |
|||
'Execution Date', |
|||
required=True, |
|||
readonly=True, |
|||
), |
|||
'value': fields.float('Value', required=True, readonly=True), |
|||
'color': fields.text('Color', required=True, readonly=True), |
|||
'company_id': fields.many2one('res.company', 'Company') |
|||
} |
|||
|
|||
_defaults = { |
|||
'company_id': ( |
|||
lambda self, cr, uid, c: |
|||
self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id), |
|||
'name': lambda *a: time.strftime('%d %B %Y'), |
|||
'date': lambda *a: time.strftime(DATETIME_FORMAT), |
|||
'color': '#FFFFFF', |
|||
} |
|||
|
|||
_order = "date desc" |
|||
|
|||
|
|||
class mgmtsystem_kpi(orm.Model): |
|||
""" |
|||
Key Performance Indicators |
|||
""" |
|||
_name = "mgmtsystem.kpi" |
|||
_description = "Key Performance Indicator" |
|||
|
|||
def _display_last_kpi_value( |
|||
self, cr, uid, ids, field_name, arg, context=None): |
|||
if context is None: |
|||
context = {} |
|||
|
|||
result = {} |
|||
for obj in self.browse(cr, uid, ids): |
|||
if obj.history_ids: |
|||
result[obj.id] = obj.history_ids[0].value |
|||
else: |
|||
result[obj.id] = 0 |
|||
|
|||
return result |
|||
|
|||
def compute_kpi_value(self, cr, uid, ids, context=None): |
|||
if context is None: |
|||
context = {} |
|||
for obj in self.browse(cr, uid, ids): |
|||
kpi_value = 0 |
|||
if obj.kpi_type == 'local' and is_select_query(obj.kpi_code): |
|||
cr.execute(obj.kpi_code) |
|||
dic = cr.dictfetchall() |
|||
if is_one_value(dic): |
|||
kpi_value = dic[0]['value'] |
|||
elif (obj.kpi_type == 'external' |
|||
and obj.dbsource_id.id |
|||
and is_select_query(obj.kpi_code)): |
|||
dbsrc_obj = obj.dbsource_id |
|||
res = dbsrc_obj.execute(obj.kpi_code) |
|||
if is_one_value(res): |
|||
kpi_value = res[0]['value'] |
|||
elif obj.kpi_type == 'python': |
|||
kpi_value = safe_eval(obj.kpi_code) |
|||
|
|||
threshold_obj = obj.threshold_id |
|||
values = { |
|||
'kpi_id': obj.id, |
|||
'value': kpi_value, |
|||
'color': threshold_obj.get_color(kpi_value), |
|||
} |
|||
|
|||
history_obj = self.pool.get('mgmtsystem.kpi.history') |
|||
history_id = history_obj.create(cr, uid, values, context=context) |
|||
obj.history_ids.append(history_id) |
|||
|
|||
return True |
|||
|
|||
def update_next_execution_date(self, cr, uid, ids, context=None): |
|||
if context is None: |
|||
context = {} |
|||
|
|||
for obj in self.browse(cr, uid, ids): |
|||
if obj.periodicity_uom == 'hour': |
|||
delta = timedelta(hours=obj.periodicity) |
|||
elif obj.periodicity_uom == 'day': |
|||
delta = timedelta(days=obj.periodicity) |
|||
elif obj.periodicity_uom == 'week': |
|||
delta = timedelta(weeks=obj.periodicity) |
|||
elif obj.periodicity_uom == 'month': |
|||
delta = timedelta(months=obj.periodicity) |
|||
else: |
|||
delta = timedelta() |
|||
new_date = datetime.now() + delta |
|||
|
|||
values = { |
|||
'next_execution_date': new_date.strftime(DATETIME_FORMAT), |
|||
} |
|||
|
|||
obj.write(values) |
|||
|
|||
return True |
|||
|
|||
# Method called by the scheduler |
|||
def update_kpi_value(self, cr, uid, ids=None, context=None): |
|||
if context is None: |
|||
context = {} |
|||
if not ids: |
|||
filters = [ |
|||
'&', |
|||
'|', |
|||
('active', '=', True), |
|||
('next_execution_date', '<=', |
|||
datetime.now().strftime(DATETIME_FORMAT)), |
|||
('next_execution_date', '=', False), |
|||
] |
|||
if 'filters' in context: |
|||
filters.extend(context['filters']) |
|||
ids = self.search(cr, uid, filters, context=context) |
|||
res = None |
|||
|
|||
try: |
|||
res = self.compute_kpi_value(cr, uid, ids, context=context) |
|||
self.update_next_execution_date(cr, uid, ids, context=context) |
|||
except Exception: |
|||
_logger.exception("Failed updating KPI values") |
|||
|
|||
return res |
|||
|
|||
_columns = { |
|||
'name': fields.char('Name', size=50, required=True), |
|||
'description': fields.text('Description'), |
|||
'category_id': fields.many2one( |
|||
'mgmtsystem.kpi.category', |
|||
'Category', |
|||
required=True, |
|||
), |
|||
'threshold_id': fields.many2one( |
|||
'mgmtsystem.kpi.threshold', |
|||
'Threshold', |
|||
required=True, |
|||
), |
|||
'periodicity': fields.integer('Periodicity'), |
|||
'periodicity_uom': fields.selection(( |
|||
('hour', 'Hour'), |
|||
('day', 'Day'), |
|||
('week', 'Week'), |
|||
('month', 'Month') |
|||
), 'Periodicity UoM', required=True), |
|||
'next_execution_date': fields.datetime( |
|||
'Next execution date', |
|||
readonly=True, |
|||
), |
|||
'value': fields.function( |
|||
_display_last_kpi_value, |
|||
string='Value', |
|||
type='float', |
|||
), |
|||
'kpi_type': fields.selection(( |
|||
('python', 'Python'), |
|||
('local', 'SQL - Local DB'), |
|||
('external', 'SQL - External DB') |
|||
), 'KPI Computation Type'), |
|||
'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( |
|||
'mgmtsystem.kpi.history', |
|||
'kpi_id', |
|||
'History', |
|||
), |
|||
'active': fields.boolean( |
|||
'Active', |
|||
help=("Only active KPIs will be updated by the scheduler based on" |
|||
" the periodicity configuration."), |
|||
), |
|||
'company_id': fields.many2one('res.company', 'Company') |
|||
} |
|||
|
|||
_defaults = { |
|||
'company_id': ( |
|||
lambda self, cr, uid, c: |
|||
self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id), |
|||
'active': True, |
|||
'periodicity': 1, |
|||
'periodicity_uom': 'day', |
|||
} |
@ -0,0 +1,300 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<openerp> |
|||
<data> |
|||
|
|||
<!-- KPI --> |
|||
|
|||
<record id="view_mgmtsystem_kpi_tree" model="ir.ui.view"> |
|||
<field name="name">mgmtsystem.kpi.tree</field> |
|||
<field name="model">mgmtsystem.kpi</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Key Performance Indicators"> |
|||
<field name="name"/> |
|||
<field name="value" widget="progressbar"/> |
|||
<field name="category_id"/> |
|||
<field name="kpi_type"/> |
|||
<field name="company_id" group="base.group_multi_company"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_mgmtsystem_kpi_filter" model="ir.ui.view"> |
|||
<field name="name">mgmtsystem.kpi.filter</field> |
|||
<field name="model">mgmtsystem.kpi</field> |
|||
<field name="arch" type="xml"> |
|||
<search string="KPI"> |
|||
<group> |
|||
<filter name="active" icon="terp-document-new" domain="[('active','=',True)]" string="Active" help="Only active KPIs are computed by the scheduler based on the periodicity configuration."/> |
|||
<separator orientation="vertical"/> |
|||
<field name="name"/> |
|||
<field name="category_id"/> |
|||
<field name="company_id" group="base.group_multi_company"/> |
|||
</group> |
|||
<newline /> |
|||
<group expand="0" string="Group By..."> |
|||
<filter string="Category" context="{'group_by':'category_id'}"/> |
|||
<filter string="Type" context="{'group_by':'kpi_type'}"/> |
|||
</group> |
|||
</search> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_mgmtsystem_kpi_form" model="ir.ui.view"> |
|||
<field name="name">mgmtsystem.kpi.form</field> |
|||
<field name="model">mgmtsystem.kpi</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Key Performance Indicator"> |
|||
<group col="6" colspan="6"> |
|||
<field name="name" colspan="2"/> |
|||
<field name="threshold_id" colspan="2"/> |
|||
<field name="category_id" colspan="2"/> |
|||
<newline/> |
|||
<field name="value" colspan="2"/> |
|||
<button name="compute_kpi_value" string="Compute KPI Now" colspan="2" type="object"/> |
|||
<field name="active" colspan="2"/> |
|||
<field name="company_id" group="base.group_multi_company"/> |
|||
</group> |
|||
<notebook colspan="6"> |
|||
<page string="History"> |
|||
<field name="history_ids" readonly="1" nolabel="1"/> |
|||
</page> |
|||
<page string="Computation"> |
|||
<group col="6"> |
|||
<field name="periodicity" colspan="2"/> |
|||
<field name="periodicity_uom" colspan="2"/> |
|||
<field name="next_execution_date" colspan="2"/> |
|||
<separator string="KPI Computation" colspan="6"/> |
|||
<newline/> |
|||
<field name="kpi_type" colspan="2"/> |
|||
<field name="dbsource_id" colspan="2" attrs="{'invisible' : [('kpi_type', '!=', 'external')]}"/> |
|||
<newline/> |
|||
<field name="kpi_code" colspan="6"/> |
|||
</group> |
|||
</page> |
|||
<page string="Description"> |
|||
<field name="description" nolabel="1"/> |
|||
</page> |
|||
</notebook> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<record model="ir.actions.act_window" id="open_mgmtsystem_kpi_list"> |
|||
<field name="name">Key Performance Indicators</field> |
|||
<field name="res_model">mgmtsystem.kpi</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="view_id" ref="view_mgmtsystem_kpi_tree"/> |
|||
<field name="search_view_id" ref="view_mgmtsystem_kpi_filter"/> |
|||
</record> |
|||
|
|||
<menuitem id="menu_mgmtsystem_kpi" |
|||
name="KPI" |
|||
action="open_mgmtsystem_kpi_list" |
|||
sequence="15" |
|||
parent="mgmtsystem.menu_mgmtsystem_main" |
|||
groups="base.group_user"/> |
|||
|
|||
<!-- KPI history --> |
|||
|
|||
<record id="view_mgmtsystem_kpi_history_tree" model="ir.ui.view"> |
|||
<field name="name">mgmtsystem.kpi.history.tree</field> |
|||
<field name="model">mgmtsystem.kpi.history</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="KPI History"> |
|||
<field name="name"/> |
|||
<field name="date"/> |
|||
<field name="value"/> |
|||
<field name="color" widget="color"/> |
|||
<field name="company_id" group="base.group_multi_company"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<!-- Configuration menu --> |
|||
|
|||
<menuitem id="menu_mgmtsystem_configuration_kpi" |
|||
name="KPI" |
|||
parent="mgmtsystem.menu_mgmtsystem_configuration" |
|||
groups="mgmtsystem.group_mgmtsystem_manager" |
|||
sequence="20"/> |
|||
|
|||
<!-- Categories --> |
|||
|
|||
<record id="view_mgmtsystem_kpi_category_tree" model="ir.ui.view"> |
|||
<field name="name">mgmtsystem.kpi.category.tree</field> |
|||
<field name="model">mgmtsystem.kpi.category</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Categories"> |
|||
<field name="name"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_mgmtsystem_kpi_category_form" model="ir.ui.view"> |
|||
<field name="name">mgmtsystem.kpi.category.form</field> |
|||
<field name="model">mgmtsystem.kpi.category</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Category"> |
|||
<field name="name"/> |
|||
<newline/> |
|||
<field name="description" colspan="4"/> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<record model="ir.actions.act_window" id="open_mgmtsystem_category_list"> |
|||
<field name="name">Categories</field> |
|||
<field name="res_model">mgmtsystem.kpi.category</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="view_id" ref="view_mgmtsystem_kpi_category_tree"/> |
|||
</record> |
|||
|
|||
<menuitem id="menu_mgmtsystem_configuration_kpi_category" |
|||
name="Categories" |
|||
action="open_mgmtsystem_category_list" |
|||
parent="menu_mgmtsystem_configuration_kpi" |
|||
groups="mgmtsystem.group_mgmtsystem_manager" |
|||
sequence="10"/> |
|||
|
|||
<!-- Thresholds --> |
|||
|
|||
<record id="view_mgmtsystem_kpi_threshold_tree" model="ir.ui.view"> |
|||
<field name="name">mgmtsystem.kpi.threshold.tree</field> |
|||
<field name="model">mgmtsystem.kpi.threshold</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Thresholds"> |
|||
<field name="name"/> |
|||
<field name="invalid_message"/> |
|||
<field name="company_id" group="base.group_multi_company"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_mgmtsystem_kpi_threshold_form" model="ir.ui.view"> |
|||
<field name="name">mgmtsystem.kpi.threshold.form</field> |
|||
<field name="model">mgmtsystem.kpi.threshold</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Threshold"> |
|||
<field name="name"/> |
|||
<newline/> |
|||
<separator string="Ranges" colspan="2"/> |
|||
<newline/> |
|||
<field name="range_ids" nolabel="1" colspan="2"/> |
|||
<newline/> |
|||
<separator string="KPIs" colspan="2"/> |
|||
<newline/> |
|||
<field name="kpi_ids" nolabel="1" colspan="2"/> |
|||
<newline/> |
|||
<field name="invalid_message" nolabel="1" attrs="{'invisible' : [('invalid_message', '=', '')]}" colspan="2"/> |
|||
<newline/> |
|||
<field name="company_id" group="base.group_multi_company"/> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<record model="ir.actions.act_window" id="open_mgmtsystem_threshold_list"> |
|||
<field name="name">Thresholds</field> |
|||
<field name="res_model">mgmtsystem.kpi.threshold</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="view_id" ref="view_mgmtsystem_kpi_threshold_tree"/> |
|||
</record> |
|||
|
|||
<menuitem id="menu_mgmtsystem_configuration_kpi_threshold" |
|||
name="Thresholds" |
|||
action="open_mgmtsystem_threshold_list" |
|||
parent="menu_mgmtsystem_configuration_kpi" |
|||
groups="mgmtsystem.group_mgmtsystem_manager" |
|||
sequence="10"/> |
|||
|
|||
<!-- Ranges --> |
|||
|
|||
<record id="view_mgmtsystem_kpi_threshold_range_tree" model="ir.ui.view"> |
|||
<field name="name">mgmtsystem.kpi.threshold.range.tree</field> |
|||
<field name="model">mgmtsystem.kpi.threshold.range</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Ranges"> |
|||
<field name="name"/> |
|||
<field name="min_value"/> |
|||
<field name="max_value"/> |
|||
<field name="color" widget="color"/> |
|||
<field name="invalid_message"/> |
|||
<field name="company_id" group="base.group_multi_company"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_mgmtsystem_kpi_threshold_range_form" model="ir.ui.view"> |
|||
<field name="name">mgmtsystem.kpi.threshold.range.form</field> |
|||
<field name="model">mgmtsystem.kpi.threshold.range</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Range"> |
|||
<field name="name"/> |
|||
<field name="color"/> |
|||
<field name="company_id" group="base.group_multi_company"/> |
|||
<newline/> |
|||
<separator string="Minimum" colspan="4"/> |
|||
<newline/> |
|||
<field name="min_type"/> |
|||
<field name="min_fixed_value" attrs="{'invisible' : [('min_type', '!=', 'static')]}"/> |
|||
<field name="min_dbsource_id" attrs="{'invisible' : [('min_type', '!=', 'external')]}"/> |
|||
<newline/> |
|||
<field name="min_code" colspan="4" attrs="{'invisible' : [('min_type', 'NOT IN', ('local','external','python'))]}"/> |
|||
<newline/> |
|||
<separator string="Maximum" colspan="4"/> |
|||
<newline/> |
|||
<field name="max_type"/> |
|||
<field name="max_fixed_value" attrs="{'invisible' : [('max_type', '!=', 'static')]}"/> |
|||
<field name="max_dbsource_id" attrs="{'invisible' : [('max_type', '!=', 'external')]}"/> |
|||
<newline/> |
|||
<field name="max_code" colspan="4" attrs="{'invisible' : [('max_type', 'NOT IN', ('local','external','python'))]}"/> |
|||
<newline/> |
|||
<separator string="Thresholds" colspan="4"/> |
|||
<field name="threshold_ids" nolabel="1" colspan="4"/> |
|||
<field name="invalid_message" nolabel="1" attrs="{'invisible' : [('invalid_message', '=', '')]}" colspan="4"/> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<record model="ir.actions.act_window" id="open_mgmtsystem_threshold_range_list"> |
|||
<field name="name">Ranges</field> |
|||
<field name="res_model">mgmtsystem.kpi.threshold.range</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="view_id" ref="view_mgmtsystem_kpi_threshold_range_tree"/> |
|||
</record> |
|||
|
|||
<menuitem id="menu_mgmtsystem_configuration_kpi_range" |
|||
name="Ranges" |
|||
action="open_mgmtsystem_threshold_range_list" |
|||
parent="menu_mgmtsystem_configuration_kpi" |
|||
groups="mgmtsystem.group_mgmtsystem_manager" |
|||
sequence="20"/> |
|||
|
|||
<menuitem id="menu_mgmtsystem_configuration_kpi_dbsource" |
|||
name="Data Sources" |
|||
action="base_external_dbsource.action_dbsource" |
|||
parent="menu_mgmtsystem_configuration_kpi" |
|||
groups="mgmtsystem.group_mgmtsystem_manager" |
|||
sequence="20"/> |
|||
|
|||
</data> |
|||
|
|||
<data noupdate="1"> |
|||
|
|||
<record forcecreate="True" id="ir_cron_mgmtsystem_kpi_action" model="ir.cron"> |
|||
<field name="name">Update KPI values</field> |
|||
<field name="user_id" ref="base.user_root"/> |
|||
<field name="interval_number">1</field> |
|||
<field name="interval_type">hours</field> |
|||
<field name="numbercall">-1</field> |
|||
<field eval="False" name="doall"/> |
|||
<field eval="'mgmtsystem.kpi'" name="model"/> |
|||
<field eval="'update_kpi_value'" name="function"/> |
|||
<field eval="'()'" name="args"/> |
|||
</record> |
|||
|
|||
</data> |
|||
</openerp> |
@ -0,0 +1,11 @@ |
|||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" |
|||
"access_mgmtsystem_kpi_user","mgmtsystem.kpi.user","model_mgmtsystem_kpi","base.group_user",1,0,0,0 |
|||
"access_mgmtsystem_kpi_history_user","mgmtsystem.kpi.history.user","model_mgmtsystem_kpi_history","base.group_user",1,0,0,0 |
|||
"access_mgmtsystem_kpi_category_user","mgmtsystem.kpi.category.user","model_mgmtsystem_kpi_category","base.group_user",1,0,0,0 |
|||
"access_mgmtsystem_kpi_threshold_user","mgmtsystem.kpi.threshold.user","model_mgmtsystem_kpi_threshold","base.group_user",1,0,0,0 |
|||
"access_mgmtsystem_kpi_threshold_range_user","mgmtsystem.kpi.threshold.range.user","model_mgmtsystem_kpi_threshold_range","base.group_user",1,0,0,0 |
|||
"access_mgmtsystem_kpi_manager","mgmtsystem.kpi.manager","model_mgmtsystem_kpi","mgmtsystem.group_mgmtsystem_manager",1,1,1,1 |
|||
"access_mgmtsystem_kpi_category_manager","mgmtsystem.kpi.category.manager","model_mgmtsystem_kpi_category","mgmtsystem.group_mgmtsystem_manager",1,1,1,1 |
|||
"access_mgmtsystem_kpi_threshold_manager","mgmtsystem.kpi.threshold.manager","model_mgmtsystem_kpi_threshold","mgmtsystem.group_mgmtsystem_manager",1,1,1,1 |
|||
"access_mgmtsystem_kpi_threshold_range_manager","mgmtsystem.kpi.threshold.range.manager","model_mgmtsystem_kpi_threshold_range","mgmtsystem.group_mgmtsystem_manager",1,1,1,1 |
|||
"access_base_external_dbsource_mgmtsystem_manager","base.external.dbsource.manager","base_external_dbsource.model_base_external_dbsource","mgmtsystem.group_mgmtsystem_manager",1,1,1,1 |
@ -0,0 +1,36 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<openerp> |
|||
<data noupdate="1"> |
|||
|
|||
<!-- Rule --> |
|||
|
|||
<record model="ir.rule" id="mgmtsystem_kpi_rule"> |
|||
<field name="name">mgmtsystem_kpi multi-company</field> |
|||
<field name="model_id" ref="model_mgmtsystem_kpi"/> |
|||
<field name="global" eval="True"/> |
|||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> |
|||
</record> |
|||
|
|||
<record model="ir.rule" id="mgmtsystem_kpi_threshold_range_rule"> |
|||
<field name="name">mgmtsystem_kpi_threshold_range multi-company</field> |
|||
<field name="model_id" ref="model_mgmtsystem_kpi_threshold_range"/> |
|||
<field name="global" eval="True"/> |
|||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> |
|||
</record> |
|||
|
|||
<record model="ir.rule" id="mgmtsystem_kpi_threshold_rule"> |
|||
<field name="name">mgmtsystem_kpi_threshold multi-company</field> |
|||
<field name="model_id" ref="model_mgmtsystem_kpi_threshold"/> |
|||
<field name="global" eval="True"/> |
|||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> |
|||
</record> |
|||
|
|||
<record model="ir.rule" id="mgmtsystem_kpi_history_rule"> |
|||
<field name="name">mgmtsystem_kpi_history multi-company</field> |
|||
<field name="model_id" ref="model_mgmtsystem_kpi_history"/> |
|||
<field name="global" eval="True"/> |
|||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> |
|||
</record> |
|||
|
|||
</data> |
|||
</openerp> |
After Width: 100 | Height: 100 | Size: 2.3 KiB |
Write
Preview
Loading…
Cancel
Save
Reference in new issue