diff --git a/iot_oca/README.rst b/iot_oca/README.rst new file mode 100644 index 00000000..9604e9a0 --- /dev/null +++ b/iot_oca/README.rst @@ -0,0 +1,77 @@ +======== +IoT Base +======== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:63329517180c8be0f231acc74dcc3c7b79d2f3ad73b7893666d9be90ed855fd3 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fiot-lightgray.png?logo=github + :target: https://github.com/OCA/iot/tree/17.0/iot_oca + :alt: OCA/iot +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/iot-17-0/iot-17-0-iot_oca + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/iot&target_branch=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This addon is a base module used for all iot modules. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Creu Blanca + +Contributors +------------ + +- Enric Tobella +- ViraWeb123 + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/iot `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/iot_oca/__init__.py b/iot_oca/__init__.py new file mode 100644 index 00000000..83e553ac --- /dev/null +++ b/iot_oca/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import models diff --git a/iot_oca/__manifest__.py b/iot_oca/__manifest__.py new file mode 100644 index 00000000..68bac437 --- /dev/null +++ b/iot_oca/__manifest__.py @@ -0,0 +1,24 @@ +# Copyright (C) 2018 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "IoT Base", + "version": "17.0.1.0.0", + "category": "IoT", + "author": "Creu Blanca, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "application": True, + "summary": "IoT base module", + "website": "https://github.com/OCA/iot", + "depends": ["base"], + "data": [ + "security/iot_security.xml", + "security/ir.model.access.csv", + "views/iot_menu.xml", + "views/iot_device_tag.xml", + "views/iot_device_group.xml", + "views/iot_system_views.xml", + "views/iot_device_views.xml", + ], +} diff --git a/iot_oca/i18n/ca.po b/iot_oca/i18n/ca.po new file mode 100644 index 00000000..a64f4291 --- /dev/null +++ b/iot_oca/i18n/ca.po @@ -0,0 +1,426 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * iot_oca +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-06-03 11:05+0000\n" +"Last-Translator: jabelchi \n" +"Language-Team: none\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_ids +msgid "Action" +msgstr "Acció" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_count +msgid "Action Count" +msgstr "Nombre d'accions" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_communication_system_action.py:0 +#, python-format +msgid "Action cannot be processed" +msgstr "L'acció no pot processar-se" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_form +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Actions" +msgstr "Accions" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__active +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Active" +msgstr "Actiu" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__color +msgid "Color" +msgstr "Color" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__color +msgid "Color Index" +msgstr "Index de colors" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__communication_system_id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__communication_system_id +msgid "Communication System" +msgstr "Sistema de comunicacions" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__communication_system_action_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__communication_system_action_id +msgid "Communication System Action" +msgstr "Acció del sistema de comunicacions" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_configuration_menu +msgid "Configuration" +msgstr "Configuració" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_uid +msgid "Created by" +msgstr "Creat per" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_date +msgid "Created on" +msgstr "Creat el" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Delete" +msgstr "Elimina" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__device_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__device_id +msgid "Device" +msgstr "Dispositiu" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_group_act_window +#: model:ir.ui.menu,name:iot_oca.iot_device_group_menu +msgid "Device Group" +msgstr "Grup de dispositius" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_tag_act_window +#: model:ir.model,name:iot_oca.model_iot_device_tag +#: model:ir.ui.menu,name:iot_oca.iot_device_tag_menu +msgid "Device Tag" +msgstr "Etiqueta de dispositiu" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_device_action.py:0 +#, python-format +msgid "Device and action must be of the same system" +msgstr "El dispositiu i l'acció han d'ésser del mateix sistema" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_device_menu +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Devices" +msgstr "Dispositius" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__display_name +msgid "Display Name" +msgstr "Nom a mostrar" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Dropdown menu" +msgstr "Menú desplegable" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Edit..." +msgstr "Edita..." + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__failed +msgid "Failed" +msgstr "Error" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__group_id +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group" +msgstr "Grup" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group By" +msgstr "Agrupa per" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__id +msgid "ID" +msgstr "ID" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__ip +msgid "IP" +msgstr "IP" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "IP:" +msgstr "IP:" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__icon +msgid "Icon" +msgstr "Icona" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1920 +msgid "Image" +msgstr "Imatge" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1024 +msgid "Image 1024" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_128 +msgid "Image 128" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_256 +msgid "Image 256" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_512 +msgid "Image 512" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Inactive" +msgstr "" + +#. module: iot_oca +#: model:ir.module.category,name:iot_oca.ir_module_category_iot +#: model:ir.ui.menu,name:iot_oca.iot_root_menu +msgid "IoT" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_action +msgid "IoT Action" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system +msgid "IoT Communication System" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system_action +msgid "IoT Communication System action" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device +msgid "IoT Device" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "IoT Device Search" +msgstr "" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_action +msgid "IoT Devices" +msgstr "" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_system_action +msgid "IoT System" +msgstr "" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_user +msgid "IoT User" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_group +msgid "Iot Group" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__last_contact_date +msgid "Last Contact Date" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag____last_update +msgid "Last Modified on" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_date +msgid "Last Updated on" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Last contact:" +msgstr "" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_manager +msgid "Manager" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__model +msgid "Model" +msgstr "" + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_manager +msgid "Module administrator, able to modify configuration data." +msgstr "" + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_user +msgid "Module user." +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__name +msgid "Name" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__ok +msgid "Ok" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__date_ok +msgid "Ok date" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__pending +msgid "Pending" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__result +msgid "Result" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_action_tree +msgid "Run" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__state +msgid "State" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__status +msgid "Status" +msgstr "" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_system_menu +msgid "Systems" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__tag_ids +msgid "Tag" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Unknown device" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-archive_fa-4x +msgid "archive" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "default_image" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-desktop_fa-4x +msgid "desktop" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-laptop_fa-4x +msgid "laptop" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-mobile_fa-6x +msgid "mobile" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-television_fa-4x +msgid "television" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-wifi_fa-4x +msgid "wifi" +msgstr "" diff --git a/iot_oca/i18n/es.po b/iot_oca/i18n/es.po new file mode 100644 index 00000000..2fea697f --- /dev/null +++ b/iot_oca/i18n/es.po @@ -0,0 +1,441 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * iot +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-09-03 13:40+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_ids +msgid "Action" +msgstr "Acción" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_count +msgid "Action Count" +msgstr "# Acciones" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_communication_system_action.py:0 +#, python-format +msgid "Action cannot be processed" +msgstr "La acción no puede ser procesada" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_form +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Actions" +msgstr "Acciones" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__active +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Active" +msgstr "Activo" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__color +msgid "Color" +msgstr "Color" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__color +msgid "Color Index" +msgstr "Índice de Color" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__communication_system_id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__communication_system_id +msgid "Communication System" +msgstr "Sistema de comunicación" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__communication_system_action_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__communication_system_action_id +msgid "Communication System Action" +msgstr "Acción del sistema de comunicación" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_configuration_menu +msgid "Configuration" +msgstr "Configuración" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Delete" +msgstr "Borrar" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__device_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__device_id +msgid "Device" +msgstr "Dispositivo" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_group_act_window +#: model:ir.ui.menu,name:iot_oca.iot_device_group_menu +msgid "Device Group" +msgstr "Grupo de dispositivos" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_tag_act_window +#: model:ir.model,name:iot_oca.model_iot_device_tag +#: model:ir.ui.menu,name:iot_oca.iot_device_tag_menu +msgid "Device Tag" +msgstr "Etiqueta de dispositivo" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_device_action.py:0 +#, python-format +msgid "Device and action must be of the same system" +msgstr "El dispositivo y la acción deben ser del mismo sistema" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_device_menu +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Devices" +msgstr "Dispositivos" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Dropdown menu" +msgstr "Menú Desplegable" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Edit..." +msgstr "Editar..." + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__failed +msgid "Failed" +msgstr "Fallado" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__group_id +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group" +msgstr "Grupo" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group By" +msgstr "Agrupar Por" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__id +msgid "ID" +msgstr "ID" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__ip +msgid "IP" +msgstr "IP" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "IP:" +msgstr "IP:" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__icon +msgid "Icon" +msgstr "Icono" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1920 +msgid "Image" +msgstr "Imagen" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1024 +msgid "Image 1024" +msgstr "Imagen 1024" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_128 +msgid "Image 128" +msgstr "Imagen 128" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_256 +msgid "Image 256" +msgstr "Imagen 256" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_512 +msgid "Image 512" +msgstr "Imagen 512" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Inactive" +msgstr "Inactivo" + +#. module: iot_oca +#: model:ir.module.category,name:iot_oca.ir_module_category_iot +#: model:ir.ui.menu,name:iot_oca.iot_root_menu +msgid "IoT" +msgstr "IoT" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_action +msgid "IoT Action" +msgstr "Acción IoT" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system +msgid "IoT Communication System" +msgstr "Sistema de comunicación de IoT" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system_action +msgid "IoT Communication System action" +msgstr "Acción del sistema de comunicación IoT" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device +msgid "IoT Device" +msgstr "Dispositivo IoT" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "IoT Device Search" +msgstr "Búsqueda de dispositivos IoT" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_action +msgid "IoT Devices" +msgstr "Dispositivos IoT" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_system_action +msgid "IoT System" +msgstr "Sistema IoT" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_user +msgid "IoT User" +msgstr "Usuario IoT" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_group +msgid "Iot Group" +msgstr "Grupo IoT" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__last_contact_date +msgid "Last Contact Date" +msgstr "Última fecha de contacto" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Last contact:" +msgstr "Último contacto:" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_manager +msgid "Manager" +msgstr "Responsable" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__model +msgid "Model" +msgstr "Modelo" + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_manager +msgid "Module administrator, able to modify configuration data." +msgstr "Administrador del módulo, puede modificar los datos de configuración." + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_user +msgid "Module user." +msgstr "Usuario del módulo." + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__name +msgid "Name" +msgstr "Nombre" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__ok +msgid "Ok" +msgstr "Ok" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__date_ok +msgid "Ok date" +msgstr "Fecha de aceptación" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__pending +msgid "Pending" +msgstr "Pendiente" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__result +msgid "Result" +msgstr "Resultado" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_action_tree +msgid "Run" +msgstr "Procesar" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__state +msgid "State" +msgstr "Estado" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__status +msgid "Status" +msgstr "Estados" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_system_menu +msgid "Systems" +msgstr "Sistemas" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__tag_ids +msgid "Tag" +msgstr "Etiqueta" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Unknown device" +msgstr "Dispositivo desconocido" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-archive_fa-4x +msgid "archive" +msgstr "archivo" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "default_image" +msgstr "imagen_por_defecto" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-desktop_fa-4x +msgid "desktop" +msgstr "escritorio" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-laptop_fa-4x +msgid "laptop" +msgstr "ordenador portátil" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-mobile_fa-6x +msgid "mobile" +msgstr "móvil" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-television_fa-4x +msgid "television" +msgstr "televisión" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-wifi_fa-4x +msgid "wifi" +msgstr "wifi" + +#~ msgid "IoT System.action" +#~ msgstr "Acción de Sistema IoT" + +#~ msgid "Ip" +#~ msgstr "Ip" + +#~ msgid "System" +#~ msgstr "Sistema" + +#~ msgid "System Action" +#~ msgstr "Acción del Sistema" + +#~ msgid "Config Devices" +#~ msgstr "Configurar Dispositivos" diff --git a/iot_oca/i18n/fa.po b/iot_oca/i18n/fa.po new file mode 100644 index 00000000..65e67efd --- /dev/null +++ b/iot_oca/i18n/fa.po @@ -0,0 +1,426 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * iot_oca +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-04-03 19:37+0000\n" +"Last-Translator: Mostafa Barmshory \n" +"Language-Team: none\n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_ids +msgid "Action" +msgstr "فعالیت" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_count +msgid "Action Count" +msgstr "تعداد فعالیت" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_communication_system_action.py:0 +#, python-format +msgid "Action cannot be processed" +msgstr "فعالیت قابل پردازش نیست" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_form +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Actions" +msgstr "فعالیت‌ها" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__active +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Active" +msgstr "فعال" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__color +msgid "Color" +msgstr "رنگ" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__color +msgid "Color Index" +msgstr "شماره رنگ" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__communication_system_id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__communication_system_id +msgid "Communication System" +msgstr "سیستم ارتباطی" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__communication_system_action_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__communication_system_action_id +msgid "Communication System Action" +msgstr "فعالیت سیستم ارتباطی" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_configuration_menu +msgid "Configuration" +msgstr "پیکره بندی" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_uid +msgid "Created by" +msgstr "ایجاد شده توسط" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_date +msgid "Created on" +msgstr "ایجاد شد در" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Delete" +msgstr "حذف" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__device_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__device_id +msgid "Device" +msgstr "دستگاه" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_group_act_window +#: model:ir.ui.menu,name:iot_oca.iot_device_group_menu +msgid "Device Group" +msgstr "گره دستگاه" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_tag_act_window +#: model:ir.model,name:iot_oca.model_iot_device_tag +#: model:ir.ui.menu,name:iot_oca.iot_device_tag_menu +msgid "Device Tag" +msgstr "برچسب دستگاه" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_device_action.py:0 +#, python-format +msgid "Device and action must be of the same system" +msgstr "دستگاه و فعالیت باید از یک سیستم مشابه باشد" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_device_menu +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Devices" +msgstr "دستگاه‌ها" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__display_name +msgid "Display Name" +msgstr "نام نایشی" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Dropdown menu" +msgstr "منوی آبشاری" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Edit..." +msgstr "ویرایش.." + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__failed +msgid "Failed" +msgstr "ناموفق" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__group_id +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group" +msgstr "گروه" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group By" +msgstr "گروه با" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__id +msgid "ID" +msgstr "شناسه" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__ip +msgid "IP" +msgstr "آدرس" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "IP:" +msgstr "آدرس:" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__icon +msgid "Icon" +msgstr "شکلک" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1920 +msgid "Image" +msgstr "تصویر" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1024 +msgid "Image 1024" +msgstr "تصویر ۱۰۲۴" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_128 +msgid "Image 128" +msgstr "تصویر ۱۲۸" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_256 +msgid "Image 256" +msgstr "تصویر ۲۵۶" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_512 +msgid "Image 512" +msgstr "تصویر ۵۱۲" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Inactive" +msgstr "غیر فعال" + +#. module: iot_oca +#: model:ir.module.category,name:iot_oca.ir_module_category_iot +#: model:ir.ui.menu,name:iot_oca.iot_root_menu +msgid "IoT" +msgstr "اینترنت اشیا" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_action +msgid "IoT Action" +msgstr "فعالیت اینترنت اشیا" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system +msgid "IoT Communication System" +msgstr "سیستم ارتباطی اینترنت اشیا" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system_action +msgid "IoT Communication System action" +msgstr "فعالیت سیستم ارتباطی اینترنت اشیا" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device +msgid "IoT Device" +msgstr "دستگاه اینترنت اشیا" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "IoT Device Search" +msgstr "جستجوی دستگاه اینترنت اشیا" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_action +msgid "IoT Devices" +msgstr "دستگاه‌های اینترنت اشیا" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_system_action +msgid "IoT System" +msgstr "سیستم اینترنت اشیا" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_user +msgid "IoT User" +msgstr "کاربر اینترنت اشیا" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_group +msgid "Iot Group" +msgstr "گروه اینترنت اشیا" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__last_contact_date +msgid "Last Contact Date" +msgstr "آخرین تاریخ اتصال" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag____last_update +msgid "Last Modified on" +msgstr "آخرین نگارش در" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_uid +msgid "Last Updated by" +msgstr "آخرین به روز رسانی با" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_date +msgid "Last Updated on" +msgstr "آخرین به روز رسانی در" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Last contact:" +msgstr "آخرین اتصال:" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_manager +msgid "Manager" +msgstr "مدیر" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__model +msgid "Model" +msgstr "مدل" + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_manager +msgid "Module administrator, able to modify configuration data." +msgstr "مدیر ماژول قادر به تغییر داده‌های پیکره بندی است." + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_user +msgid "Module user." +msgstr "کاربر ماژول." + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__name +msgid "Name" +msgstr "نام" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__ok +msgid "Ok" +msgstr "تایید" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__date_ok +msgid "Ok date" +msgstr "تاریخ تایید" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__pending +msgid "Pending" +msgstr "معلق" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__result +msgid "Result" +msgstr "نتیجه" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_action_tree +msgid "Run" +msgstr "اجرا" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__state +msgid "State" +msgstr "حالت" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__status +msgid "Status" +msgstr "حالت‌ها" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_system_menu +msgid "Systems" +msgstr "سیستم‌ها" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__tag_ids +msgid "Tag" +msgstr "برچسب" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Unknown device" +msgstr "دستگاه ناشناس" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-archive_fa-4x +msgid "archive" +msgstr "بایگانی" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "default_image" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-desktop_fa-4x +msgid "desktop" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-laptop_fa-4x +msgid "laptop" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-mobile_fa-6x +msgid "mobile" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-television_fa-4x +msgid "television" +msgstr "تلویزیون" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-wifi_fa-4x +msgid "wifi" +msgstr "" diff --git a/iot_oca/i18n/fa_IR.po b/iot_oca/i18n/fa_IR.po new file mode 100644 index 00000000..b02b5e00 --- /dev/null +++ b/iot_oca/i18n/fa_IR.po @@ -0,0 +1,424 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * iot_oca +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: fa_IR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_ids +msgid "Action" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_count +msgid "Action Count" +msgstr "" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_communication_system_action.py:0 +#, python-format +msgid "Action cannot be processed" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_form +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Actions" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__active +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Active" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__color +msgid "Color" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__color +msgid "Color Index" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__communication_system_id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__communication_system_id +msgid "Communication System" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__communication_system_action_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__communication_system_action_id +msgid "Communication System Action" +msgstr "" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_configuration_menu +msgid "Configuration" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_uid +msgid "Created by" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_date +msgid "Created on" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Delete" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__device_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__device_id +msgid "Device" +msgstr "" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_group_act_window +#: model:ir.ui.menu,name:iot_oca.iot_device_group_menu +msgid "Device Group" +msgstr "" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_tag_act_window +#: model:ir.model,name:iot_oca.model_iot_device_tag +#: model:ir.ui.menu,name:iot_oca.iot_device_tag_menu +msgid "Device Tag" +msgstr "" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_device_action.py:0 +#, python-format +msgid "Device and action must be of the same system" +msgstr "" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_device_menu +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Devices" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__display_name +msgid "Display Name" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Dropdown menu" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Edit..." +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__failed +msgid "Failed" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__group_id +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group By" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__id +msgid "ID" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__ip +msgid "IP" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "IP:" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__icon +msgid "Icon" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1920 +msgid "Image" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1024 +msgid "Image 1024" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_128 +msgid "Image 128" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_256 +msgid "Image 256" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_512 +msgid "Image 512" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Inactive" +msgstr "" + +#. module: iot_oca +#: model:ir.module.category,name:iot_oca.ir_module_category_iot +#: model:ir.ui.menu,name:iot_oca.iot_root_menu +msgid "IoT" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_action +msgid "IoT Action" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system +msgid "IoT Communication System" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system_action +msgid "IoT Communication System action" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device +msgid "IoT Device" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "IoT Device Search" +msgstr "" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_action +msgid "IoT Devices" +msgstr "" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_system_action +msgid "IoT System" +msgstr "" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_user +msgid "IoT User" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_group +msgid "Iot Group" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__last_contact_date +msgid "Last Contact Date" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag____last_update +msgid "Last Modified on" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_date +msgid "Last Updated on" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Last contact:" +msgstr "" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_manager +msgid "Manager" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__model +msgid "Model" +msgstr "" + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_manager +msgid "Module administrator, able to modify configuration data." +msgstr "" + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_user +msgid "Module user." +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__name +msgid "Name" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__ok +msgid "Ok" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__date_ok +msgid "Ok date" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__pending +msgid "Pending" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__result +msgid "Result" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_action_tree +msgid "Run" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__state +msgid "State" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__status +msgid "Status" +msgstr "" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_system_menu +msgid "Systems" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__tag_ids +msgid "Tag" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Unknown device" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-archive_fa-4x +msgid "archive" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "default_image" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-desktop_fa-4x +msgid "desktop" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-laptop_fa-4x +msgid "laptop" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-mobile_fa-6x +msgid "mobile" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-television_fa-4x +msgid "television" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-wifi_fa-4x +msgid "wifi" +msgstr "" diff --git a/iot_oca/i18n/iot.pot b/iot_oca/i18n/iot.pot new file mode 100644 index 00000000..adcd4efa --- /dev/null +++ b/iot_oca/i18n/iot.pot @@ -0,0 +1,269 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * iot +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \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: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__action_ids +msgid "Action" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__action_count +msgid "Action Count" +msgstr "" + +#. module: iot +#: code:addons/iot/models/iot_system_action.py:20 +#, python-format +msgid "Action cannot be processed" +msgstr "" + +#. module: iot +#: model_terms:ir.ui.view,arch_db:iot.iot_device_form +#: model_terms:ir.ui.view,arch_db:iot.iot_system_form +msgid "Actions" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__active +#: model_terms:ir.ui.view,arch_db:iot.iot_device_search +msgid "Active" +msgstr "" + +#. module: iot +#: model:ir.ui.menu,name:iot.iot_config_device_menu +msgid "Config Devices" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__create_uid +#: model:ir.model.fields,field_description:iot.field_iot_device_action__create_uid +#: model:ir.model.fields,field_description:iot.field_iot_system__create_uid +#: model:ir.model.fields,field_description:iot.field_iot_system_action__create_uid +msgid "Created by" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__create_date +#: model:ir.model.fields,field_description:iot.field_iot_device_action__create_date +#: model:ir.model.fields,field_description:iot.field_iot_system__create_date +#: model:ir.model.fields,field_description:iot.field_iot_system_action__create_date +msgid "Created on" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device_action__device_id +#: model:ir.model.fields,field_description:iot.field_iot_system__device_ids +msgid "Device" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__device_identification +msgid "Device Identification" +msgstr "" + +#. module: iot +#: code:addons/iot/models/iot_device_action.py:28 +#, python-format +msgid "Device and action must be of the same system" +msgstr "" + +#. module: iot +#: model:ir.ui.menu,name:iot.iot_device_menu +#: model_terms:ir.ui.view,arch_db:iot.iot_system_form +msgid "Devices" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__display_name +#: model:ir.model.fields,field_description:iot.field_iot_device_action__display_name +#: model:ir.model.fields,field_description:iot.field_iot_system__display_name +#: model:ir.model.fields,field_description:iot.field_iot_system_action__display_name +msgid "Display Name" +msgstr "" + +#. module: iot +#: selection:iot.device.action,status:0 +msgid "Failed" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__id +#: model:ir.model.fields,field_description:iot.field_iot_device_action__id +#: model:ir.model.fields,field_description:iot.field_iot_system__id +#: model:ir.model.fields,field_description:iot.field_iot_system_action__id +msgid "ID" +msgstr "" + +#. module: iot +#: model_terms:ir.ui.view,arch_db:iot.iot_device_search +msgid "Inactive" +msgstr "" + +#. module: iot +#: model:ir.module.category,name:iot.ir_module_category_iot +#: model:ir.ui.menu,name:iot.iot_root_menu +msgid "IoT" +msgstr "" + +#. module: iot +#: model:ir.model,name:iot.model_iot_device_action +msgid "IoT Action" +msgstr "" + +#. module: iot +#: model:ir.model,name:iot.model_iot_device +msgid "IoT Device" +msgstr "" + +#. module: iot +#: model_terms:ir.ui.view,arch_db:iot.iot_device_search +msgid "IoT Device Search" +msgstr "" + +#. module: iot +#: model:ir.actions.act_window,name:iot.iot_device_action +#: model:ir.actions.act_window,name:iot.iot_device_config_action +msgid "IoT Devices" +msgstr "" + +#. module: iot +#: model:ir.actions.act_window,name:iot.iot_system_action +#: model:ir.model,name:iot.model_iot_system +msgid "IoT System" +msgstr "" + +#. module: iot +#: model:ir.model,name:iot.model_iot_system_action +msgid "IoT System.action" +msgstr "" + +#. module: iot +#: model:res.groups,name:iot.group_iot_user +msgid "IoT User" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__ip +msgid "Ip" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device____last_update +#: model:ir.model.fields,field_description:iot.field_iot_device_action____last_update +#: model:ir.model.fields,field_description:iot.field_iot_system____last_update +#: model:ir.model.fields,field_description:iot.field_iot_system_action____last_update +msgid "Last Modified on" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__write_uid +#: model:ir.model.fields,field_description:iot.field_iot_device_action__write_uid +#: model:ir.model.fields,field_description:iot.field_iot_system__write_uid +#: model:ir.model.fields,field_description:iot.field_iot_system_action__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__write_date +#: model:ir.model.fields,field_description:iot.field_iot_device_action__write_date +#: model:ir.model.fields,field_description:iot.field_iot_system__write_date +#: model:ir.model.fields,field_description:iot.field_iot_system_action__write_date +msgid "Last Updated on" +msgstr "" + +#. module: iot +#: model:res.groups,name:iot.group_iot_manager +msgid "Manager" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__model +msgid "Model" +msgstr "" + +#. module: iot +#: model:res.groups,comment:iot.group_iot_manager +msgid "Module administrator, able to modify configuration data." +msgstr "" + +#. module: iot +#: model:res.groups,comment:iot.group_iot_user +msgid "Module user." +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__name +#: model:ir.model.fields,field_description:iot.field_iot_system__name +#: model:ir.model.fields,field_description:iot.field_iot_system_action__name +msgid "Name" +msgstr "" + +#. module: iot +#: selection:iot.device.action,status:0 +msgid "Ok" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device_action__date_ok +msgid "Ok date" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__passphrase +msgid "Passphrase" +msgstr "" + +#. module: iot +#: selection:iot.device.action,status:0 +msgid "Pending" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device_action__result +msgid "Result" +msgstr "" + +#. module: iot +#: model_terms:ir.ui.view,arch_db:iot.iot_device_action_tree +msgid "Run" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__state +msgid "State" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device_action__status +msgid "Status" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device__system_id +#: model:ir.model.fields,field_description:iot.field_iot_system_action__system_id +msgid "System" +msgstr "" + +#. module: iot +#: model:ir.model.fields,field_description:iot.field_iot_device_action__system_action_id +#: model:ir.model.fields,field_description:iot.field_iot_system__system_action_ids +msgid "System Action" +msgstr "" + +#. module: iot +#: model:ir.ui.menu,name:iot.iot_system_menu +msgid "Systems" +msgstr "" + diff --git a/iot_oca/i18n/iot_oca.pot b/iot_oca/i18n/iot_oca.pot new file mode 100644 index 00000000..4662fe9b --- /dev/null +++ b/iot_oca/i18n/iot_oca.pot @@ -0,0 +1,423 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * iot_oca +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \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: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_ids +msgid "Action" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_count +msgid "Action Count" +msgstr "" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_communication_system_action.py:0 +#, python-format +msgid "Action cannot be processed" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_form +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Actions" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__active +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Active" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__color +msgid "Color" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__color +msgid "Color Index" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__communication_system_id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__communication_system_id +msgid "Communication System" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__communication_system_action_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__communication_system_action_id +msgid "Communication System Action" +msgstr "" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_configuration_menu +msgid "Configuration" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_uid +msgid "Created by" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_date +msgid "Created on" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Delete" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__device_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__device_id +msgid "Device" +msgstr "" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_group_act_window +#: model:ir.ui.menu,name:iot_oca.iot_device_group_menu +msgid "Device Group" +msgstr "" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_tag_act_window +#: model:ir.model,name:iot_oca.model_iot_device_tag +#: model:ir.ui.menu,name:iot_oca.iot_device_tag_menu +msgid "Device Tag" +msgstr "" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_device_action.py:0 +#, python-format +msgid "Device and action must be of the same system" +msgstr "" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_device_menu +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Devices" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__display_name +msgid "Display Name" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Dropdown menu" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Edit..." +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__failed +msgid "Failed" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__group_id +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group By" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__id +msgid "ID" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__ip +msgid "IP" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "IP:" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__icon +msgid "Icon" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1920 +msgid "Image" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1024 +msgid "Image 1024" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_128 +msgid "Image 128" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_256 +msgid "Image 256" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_512 +msgid "Image 512" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Inactive" +msgstr "" + +#. module: iot_oca +#: model:ir.module.category,name:iot_oca.ir_module_category_iot +#: model:ir.ui.menu,name:iot_oca.iot_root_menu +msgid "IoT" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_action +msgid "IoT Action" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system +msgid "IoT Communication System" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system_action +msgid "IoT Communication System action" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device +msgid "IoT Device" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "IoT Device Search" +msgstr "" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_action +msgid "IoT Devices" +msgstr "" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_system_action +msgid "IoT System" +msgstr "" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_user +msgid "IoT User" +msgstr "" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_group +msgid "Iot Group" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__last_contact_date +msgid "Last Contact Date" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag____last_update +msgid "Last Modified on" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_date +msgid "Last Updated on" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Last contact:" +msgstr "" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_manager +msgid "Manager" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__model +msgid "Model" +msgstr "" + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_manager +msgid "Module administrator, able to modify configuration data." +msgstr "" + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_user +msgid "Module user." +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__name +msgid "Name" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__ok +msgid "Ok" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__date_ok +msgid "Ok date" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__pending +msgid "Pending" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__result +msgid "Result" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_action_tree +msgid "Run" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__state +msgid "State" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__status +msgid "Status" +msgstr "" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_system_menu +msgid "Systems" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__tag_ids +msgid "Tag" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Unknown device" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-archive_fa-4x +msgid "archive" +msgstr "" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "default_image" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-desktop_fa-4x +msgid "desktop" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-laptop_fa-4x +msgid "laptop" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-mobile_fa-6x +msgid "mobile" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-television_fa-4x +msgid "television" +msgstr "" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-wifi_fa-4x +msgid "wifi" +msgstr "" diff --git a/iot_oca/i18n/it.po b/iot_oca/i18n/it.po new file mode 100644 index 00000000..3a33e39d --- /dev/null +++ b/iot_oca/i18n/it.po @@ -0,0 +1,428 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * iot_oca +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-01-10 14:36+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_ids +msgid "Action" +msgstr "Azione" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__action_count +msgid "Action Count" +msgstr "Conteggio azione" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_communication_system_action.py:0 +#, python-format +msgid "Action cannot be processed" +msgstr "L'azione non può essere elaborata" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_form +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Actions" +msgstr "Azioni" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__active +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Active" +msgstr "Attivo" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__color +msgid "Color" +msgstr "Colore" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__color +msgid "Color Index" +msgstr "Indice colore" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__communication_system_id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__communication_system_id +msgid "Communication System" +msgstr "Sistema di comunicazione" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__communication_system_action_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__communication_system_action_id +msgid "Communication System Action" +msgstr "Azione sistema di comunicazione" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_configuration_menu +msgid "Configuration" +msgstr "Configurazione" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__create_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Delete" +msgstr "Elimina" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__device_ids +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__device_id +msgid "Device" +msgstr "Dispositivo" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_group_act_window +#: model:ir.ui.menu,name:iot_oca.iot_device_group_menu +msgid "Device Group" +msgstr "Gruppo dispositivo" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_tag_act_window +#: model:ir.model,name:iot_oca.model_iot_device_tag +#: model:ir.ui.menu,name:iot_oca.iot_device_tag_menu +msgid "Device Tag" +msgstr "Etichetta dispositivo" + +#. module: iot_oca +#. odoo-python +#: code:addons/iot_oca/models/iot_device_action.py:0 +#, python-format +msgid "Device and action must be of the same system" +msgstr "Il dispositivo e l'azione devono essere dello stesso sistema" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_device_menu +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_system_form +msgid "Devices" +msgstr "Dispositivi" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__display_name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Dropdown menu" +msgstr "Menu a tendina" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Edit..." +msgstr "Edita..." + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__failed +msgid "Failed" +msgstr "Fallito" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__group_id +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group" +msgstr "Gruppo" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Group By" +msgstr "Raggruppa per" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__id +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__id +msgid "ID" +msgstr "ID" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__ip +msgid "IP" +msgstr "IP" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "IP:" +msgstr "IP:" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__icon +msgid "Icon" +msgstr "Icona" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1920 +msgid "Image" +msgstr "Immagine" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_1024 +msgid "Image 1024" +msgstr "Immagine 1024" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_128 +msgid "Image 128" +msgstr "Immagine 128" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_256 +msgid "Image 256" +msgstr "Immagine 256" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__image_512 +msgid "Image 512" +msgstr "Immagine 512" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "Inactive" +msgstr "Inattivo" + +#. module: iot_oca +#: model:ir.module.category,name:iot_oca.ir_module_category_iot +#: model:ir.ui.menu,name:iot_oca.iot_root_menu +msgid "IoT" +msgstr "IoT" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_action +msgid "IoT Action" +msgstr "Azione IoT" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system +msgid "IoT Communication System" +msgstr "Sistema di comunicazione IoT" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_communication_system_action +msgid "IoT Communication System action" +msgstr "Azione sistema di comunicazione IoT" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device +msgid "IoT Device" +msgstr "Dispositivo IoT" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_search +msgid "IoT Device Search" +msgstr "Ricerca dispositivo IoT" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_device_action +msgid "IoT Devices" +msgstr "Dispositivi IoT" + +#. module: iot_oca +#: model:ir.actions.act_window,name:iot_oca.iot_system_action +msgid "IoT System" +msgstr "Sistema IoT" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_user +msgid "IoT User" +msgstr "Utente IoT" + +#. module: iot_oca +#: model:ir.model,name:iot_oca.model_iot_device_group +msgid "Iot Group" +msgstr "Gruppo IoT" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__last_contact_date +msgid "Last Contact Date" +msgstr "Ultima data contatto" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group____last_update +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_uid +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__write_date +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Last contact:" +msgstr "Ultimo contatto:" + +#. module: iot_oca +#: model:res.groups,name:iot_oca.group_iot_manager +msgid "Manager" +msgstr "Responsabile" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__model +msgid "Model" +msgstr "Modello" + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_manager +msgid "Module administrator, able to modify configuration data." +msgstr "" +"Amministratore del modulo, abilitato alla modifica dei dati di " +"configurazione." + +#. module: iot_oca +#: model:res.groups,comment:iot_oca.group_iot_user +msgid "Module user." +msgstr "Utente modulo." + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_communication_system_action__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_group__name +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_tag__name +msgid "Name" +msgstr "Nome" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__ok +msgid "Ok" +msgstr "Ok" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__date_ok +msgid "Ok date" +msgstr "Data ok" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device_action__status__pending +msgid "Pending" +msgstr "In attesa" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__result +msgid "Result" +msgstr "Risultato" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_action_tree +msgid "Run" +msgstr "Esegui" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__state +msgid "State" +msgstr "Stato" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device_action__status +msgid "Status" +msgstr "Stato" + +#. module: iot_oca +#: model:ir.ui.menu,name:iot_oca.iot_system_menu +msgid "Systems" +msgstr "Sistemi" + +#. module: iot_oca +#: model:ir.model.fields,field_description:iot_oca.field_iot_device__tag_ids +msgid "Tag" +msgstr "Etichetta" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "Unknown device" +msgstr "Dispositivo sconosciuto" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-archive_fa-4x +msgid "archive" +msgstr "archivia" + +#. module: iot_oca +#: model_terms:ir.ui.view,arch_db:iot_oca.iot_device_kanban +msgid "default_image" +msgstr "default_image" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-desktop_fa-4x +msgid "desktop" +msgstr "desktop" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-laptop_fa-4x +msgid "laptop" +msgstr "laptop" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-mobile_fa-6x +msgid "mobile" +msgstr "cellulare" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-television_fa-4x +msgid "television" +msgstr "televisione" + +#. module: iot_oca +#: model:ir.model.fields.selection,name:iot_oca.selection__iot_device__icon__fa_fa-wifi_fa-4x +msgid "wifi" +msgstr "wifi" diff --git a/iot_oca/models/__init__.py b/iot_oca/models/__init__.py new file mode 100644 index 00000000..164df931 --- /dev/null +++ b/iot_oca/models/__init__.py @@ -0,0 +1,6 @@ +from . import iot_device +from . import iot_device_action +from . import iot_communication_system +from . import iot_communication_system_action +from . import iot_device_group +from . import iot_device_tag diff --git a/iot_oca/models/iot_communication_system.py b/iot_oca/models/iot_communication_system.py new file mode 100644 index 00000000..a1e430e9 --- /dev/null +++ b/iot_oca/models/iot_communication_system.py @@ -0,0 +1,15 @@ +# Copyright (C) 2018 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo import fields, models + + +class IoTCommunicationSystem(models.Model): + _name = "iot.communication.system" + _description = "IoT Communication System" + # TODO: Rename it to iot.communication.system System is confusing + + name = fields.Char(required=True) + device_ids = fields.One2many("iot.device", inverse_name="communication_system_id") + communication_system_action_ids = fields.One2many( + "iot.communication.system.action", inverse_name="communication_system_id" + ) diff --git a/iot_oca/models/iot_communication_system_action.py b/iot_oca/models/iot_communication_system_action.py new file mode 100644 index 00000000..0c24d056 --- /dev/null +++ b/iot_oca/models/iot_communication_system_action.py @@ -0,0 +1,32 @@ +# Copyright (C) 2018 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +import logging +import traceback +from io import StringIO + +from odoo import _, fields, models +from odoo.exceptions import ValidationError + +_logger = logging.getLogger(__name__) + + +class IoTSystemAction(models.Model): + _name = "iot.communication.system.action" + _description = "IoT Communication System action" + + name = fields.Char(required=True) + communication_system_id = fields.Many2one("iot.communication.system", required=True) + + def _run(self, device_action): + raise ValidationError(_("Action cannot be processed")) + + def run(self, device_action): + try: + result = self._run(device_action) + return "ok", result + except Exception: + buff = StringIO() + traceback.print_exc(file=buff) + error = buff.getvalue() + _logger.warning(error) + return "failed", error diff --git a/iot_oca/models/iot_device.py b/iot_oca/models/iot_device.py new file mode 100644 index 00000000..eee04eaa --- /dev/null +++ b/iot_oca/models/iot_device.py @@ -0,0 +1,50 @@ +# Copyright (C) 2018 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo import api, fields, models + + +class IoTDevice(models.Model): + _name = "iot.device" + _description = "IoT Device" + _inherit = "image.mixin" + + name = fields.Char(required=True) + communication_system_id = fields.Many2one("iot.communication.system", required=True) + action_ids = fields.One2many("iot.device.action", inverse_name="device_id") + active = fields.Boolean(default=True) + state = fields.Selection([], readonly=True) + model = fields.Char() + ip = fields.Char(string="IP") + action_count = fields.Integer(compute="_compute_action_count") + group_id = fields.Many2one("iot.device.group") + tag_ids = fields.Many2many("iot.device.tag") + color = fields.Integer() + last_contact_date = fields.Datetime(readonly=True) + icon = fields.Selection( + [ + ("fa fa-television fa-4x", "television"), + ("fa fa-wifi fa-4x", "wifi"), + ("fa fa-laptop fa-4x", "laptop"), + ("fa fa-desktop fa-4x", "desktop"), + ("fa fa-archive fa-4x", "archive"), + ("fa fa-mobile fa-6x", "mobile"), + ] + ) + + @api.depends("action_ids") + def _compute_action_count(self): + for record in self: + record.action_count = len(record.action_ids) + + def device_run_action(self): + system_action = self.env["iot.communication.system.action"].browse( + self.env.context.get("iot_communication_system_action_id") + ) + for rec in self: + action = self.env["iot.device.action"].create( + { + "device_id": rec.id, + "communication_system_action_id": system_action.id, + } + ) + action.run() diff --git a/iot_oca/models/iot_device_action.py b/iot_oca/models/iot_device_action.py new file mode 100644 index 00000000..32512cf0 --- /dev/null +++ b/iot_oca/models/iot_device_action.py @@ -0,0 +1,46 @@ +# Copyright (C) 2018 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + + +class IoTDeviceAction(models.Model): + _name = "iot.device.action" + _description = "IoT Action" + _order = "date_ok desc" + + device_id = fields.Many2one("iot.device", required=True, readonly=True) + communication_system_action_id = fields.Many2one( + "iot.communication.system.action", required=True + ) + status = fields.Selection( + [("ok", "Ok"), ("pending", "Pending"), ("failed", "Failed")], + required=True, + default="pending", + ) + result = fields.Text() + date_ok = fields.Datetime(readonly=True, string="Ok date") + + @api.constrains("device_id", "communication_system_action_id") + def _check_system(self): + if self.filtered( + lambda r: r.device_id.communication_system_id + != r.communication_system_action_id.communication_system_id + ): + raise ValidationError(_("Device and action must be of the same system")) + + def run_extra_actions(self, status, result): + return + + def run(self): + self.ensure_one() + if self.status != "ok": + status, result = self.communication_system_action_id.run(self) + self.write( + { + "status": status, + "result": result, + "date_ok": fields.Datetime.now() if status == "ok" else False, + } + ) + self.run_extra_actions(status, result) diff --git a/iot_oca/models/iot_device_group.py b/iot_oca/models/iot_device_group.py new file mode 100644 index 00000000..5c4db11d --- /dev/null +++ b/iot_oca/models/iot_device_group.py @@ -0,0 +1,11 @@ +# Copyright 2021 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class IotDeviceGroup(models.Model): + _name = "iot.device.group" + _description = "Iot Group" + + name = fields.Char(required=True) diff --git a/iot_oca/models/iot_device_tag.py b/iot_oca/models/iot_device_tag.py new file mode 100644 index 00000000..5563e52f --- /dev/null +++ b/iot_oca/models/iot_device_tag.py @@ -0,0 +1,12 @@ +# Copyright 2021 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class IotDeviceTag(models.Model): + _name = "iot.device.tag" + _description = "Device Tag" + + name = fields.Char(required=True) + color = fields.Integer(string="Color Index") diff --git a/iot_oca/pyproject.toml b/iot_oca/pyproject.toml new file mode 100644 index 00000000..4231d0cc --- /dev/null +++ b/iot_oca/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/iot_oca/readme/CONTRIBUTORS.md b/iot_oca/readme/CONTRIBUTORS.md new file mode 100644 index 00000000..531fb5f9 --- /dev/null +++ b/iot_oca/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- Enric Tobella \<\> +- ViraWeb123 \<\> diff --git a/iot_oca/readme/DESCRIPTION.md b/iot_oca/readme/DESCRIPTION.md new file mode 100644 index 00000000..18b7de1f --- /dev/null +++ b/iot_oca/readme/DESCRIPTION.md @@ -0,0 +1 @@ +This addon is a base module used for all iot modules. diff --git a/iot_oca/security/iot_security.xml b/iot_oca/security/iot_security.xml new file mode 100644 index 00000000..1f5fd500 --- /dev/null +++ b/iot_oca/security/iot_security.xml @@ -0,0 +1,28 @@ + + + + + IoT + + + IoT User + Module user. + + + + Manager + Module administrator, able to modify configuration data. + + + + + diff --git a/iot_oca/security/ir.model.access.csv b/iot_oca/security/ir.model.access.csv new file mode 100644 index 00000000..384d6577 --- /dev/null +++ b/iot_oca/security/ir.model.access.csv @@ -0,0 +1,13 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_iot_device,access_iot_device,model_iot_device,group_iot_user,1,1,0,0 +manage_iot_device,access_iot_device,model_iot_device,group_iot_manager,1,1,1,0 +access_iot_device_action,access_iot_device_action,model_iot_device_action,group_iot_user,1,1,1,0 +manage_iot_device_action,access_iot_device_action,model_iot_device_action,group_iot_manager,1,1,1,0 +access_iot_system,access_iot_system,model_iot_communication_system,group_iot_user,1,0,0,0 +manage_iot_system,access_iot_system,model_iot_communication_system,group_iot_manager,1,1,1,0 +access_iot_system_action,access_iot_system_action,model_iot_communication_system_action,group_iot_user,1,0,0,0 +manage_iot_system_action,access_iot_system_action,model_iot_communication_system_action,group_iot_manager,1,1,1,0 +access_iot_device_group,access_iot_device_group,model_iot_device_group,group_iot_user,1,0,0,0 +manage_iot_device_group,manage_iot_device_group,model_iot_device_group,group_iot_manager,1,1,1,0 +access_iot_device_tag,access_iot_device_tag,model_iot_device_tag,group_iot_user,1,0,0,0 +manage_iot_device_tag,manage_iot_device_tag,model_iot_device_tag,group_iot_manager,1,1,1,0 diff --git a/iot_oca/static/description/icon.png b/iot_oca/static/description/icon.png new file mode 100644 index 00000000..325deacb Binary files /dev/null and b/iot_oca/static/description/icon.png differ diff --git a/iot_oca/static/description/icon.svg b/iot_oca/static/description/icon.svg new file mode 100644 index 00000000..66bc24ae --- /dev/null +++ b/iot_oca/static/description/icon.svg @@ -0,0 +1,141 @@ + + + + + + image/svg+xml + + icon + + + + + + + + + + + + + + + icon + + + + + + + + + diff --git a/iot_oca/static/description/index.html b/iot_oca/static/description/index.html new file mode 100644 index 00000000..b108c08d --- /dev/null +++ b/iot_oca/static/description/index.html @@ -0,0 +1,424 @@ + + + + + +IoT Base + + + +
+

IoT Base

+ + +

Beta License: AGPL-3 OCA/iot Translate me on Weblate Try me on Runboat

+

This addon is a base module used for all iot modules.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Creu Blanca
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/iot project on GitHub.

+

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

+
+
+
+ + diff --git a/iot_oca/tests/__init__.py b/iot_oca/tests/__init__.py new file mode 100644 index 00000000..c1763e19 --- /dev/null +++ b/iot_oca/tests/__init__.py @@ -0,0 +1 @@ +from . import test_iot diff --git a/iot_oca/tests/test_iot.py b/iot_oca/tests/test_iot.py new file mode 100644 index 00000000..4a1908a4 --- /dev/null +++ b/iot_oca/tests/test_iot.py @@ -0,0 +1,54 @@ +# Copyright (C) 2018 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from unittest.mock import patch + +from odoo.exceptions import ValidationError +from odoo.tests.common import TransactionCase +from odoo.tools import mute_logger + + +class TestIoT(TransactionCase): + def setUp(self): + super().setUp() + self.system = self.env["iot.communication.system"].create({"name": "Testing"}) + self.system_2 = self.env["iot.communication.system"].create( + {"name": "Testing 02"} + ) + self.action = self.env["iot.communication.system.action"].create( + {"name": "test", "communication_system_id": self.system.id} + ) + self.action_2 = self.env["iot.communication.system.action"].create( + {"name": "test 02", "communication_system_id": self.system_2.id} + ) + self.device = self.env["iot.device"].create( + {"name": "Device", "communication_system_id": self.system.id} + ) + + def test_action(self): + self.assertEqual(self.device.action_count, 0) + with mute_logger("odoo.addons.iot_oca.models.iot_communication_system_action"): + self.device.with_context( + iot_communication_system_action_id=self.action.id + ).device_run_action() + self.assertEqual(self.device.action_count, 1) + self.assertEqual(self.device.action_ids.status, "failed") + + def test_correct_action(self): + self.assertEqual(self.device.action_count, 0) + with patch( + "odoo.addons.iot_oca.models.iot_communication_system_action." + "IoTSystemAction._run", + return_value=("ok", ""), + ): + self.device.with_context( + iot_communication_system_action_id=self.action.id + ).device_run_action() + self.assertEqual(self.device.action_count, 1) + self.assertEqual(self.device.action_ids.status, "ok") + + def test_constrains(self): + with self.assertRaises(ValidationError): + self.device.with_context( + iot_communication_system_action_id=self.action_2.id + ).device_run_action() diff --git a/iot_oca/views/iot_device_group.xml b/iot_oca/views/iot_device_group.xml new file mode 100644 index 00000000..3bfddebc --- /dev/null +++ b/iot_oca/views/iot_device_group.xml @@ -0,0 +1,51 @@ + + + + + iot.device.group.form (in iot_oca) + iot.device.group + +
+
+ + + + + + + + + + iot.device.group.search (in iot_oca) + iot.device.group + + + + + + + + iot.device.group.tree (in iot_oca) + iot.device.group + + + + + + + + Device Group + + iot.device.group + tree,form + [] + {} + + + Device Group + + + + + diff --git a/iot_oca/views/iot_device_tag.xml b/iot_oca/views/iot_device_tag.xml new file mode 100644 index 00000000..15880586 --- /dev/null +++ b/iot_oca/views/iot_device_tag.xml @@ -0,0 +1,55 @@ + + + + + iot.device.tag.form (in iot_oca) + iot.device.tag + +
+
+ + + + + + + + + + + + + iot.device.tag.search (in iot_oca) + iot.device.tag + + + + + + + + iot.device.tag.tree (in iot_oca) + iot.device.tag + + + + + + + + + Device Tag + + iot.device.tag + tree,form + [] + {} + + + Device Tag + + + + + diff --git a/iot_oca/views/iot_device_views.xml b/iot_oca/views/iot_device_views.xml new file mode 100644 index 00000000..af0fbd9c --- /dev/null +++ b/iot_oca/views/iot_device_views.xml @@ -0,0 +1,249 @@ + + + + iot.device.tree + iot.device + + + + + + + + + + + + + iot.device.form + iot.device + +
+
+ + +
+ + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + iot.device.action.tree + iot.device.action + + + + + +