Initial commit: OCA Technical packages (595 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:03 +02:00
commit 2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions

View file

@ -0,0 +1,77 @@
========
IoT Base
========
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:c34e428d89d764b8729d8c6829d21080bbcb86b8c3d8af66fd656894bebb1e2f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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/16.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-16-0/iot-16-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=16.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 <https://github.com/OCA/iot/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/iot/issues/new?body=module:%20iot_oca%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
~~~~~~~
* Creu Blanca
Contributors
~~~~~~~~~~~~
* Enric Tobella <etobella@creublanca.es>
* ViraWeb123 <info@viraweb123.ir>
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 <https://github.com/OCA/iot/tree/16.0/iot_oca>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

@ -0,0 +1,3 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models

View file

@ -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": "16.0.1.0.1",
"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",
],
}

View file

@ -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 "Akcija"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__action_count
msgid "Action Count"
msgstr "Broj akcija"
#. module: iot
#: code:addons/iot/models/iot_system_action.py:20
#, python-format
msgid "Action cannot be processed"
msgstr "Akcija se ne može obraditi"
#. 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 "Akcije"
#. 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 "Aktivan"
#. module: iot
#: model:ir.ui.menu,name:iot.iot_config_device_menu
msgid "Config Devices"
msgstr "Konfiguriši uređaje"
#. 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 "Kreirao"
#. 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 "Kreirano"
#. 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 "Uređaj"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__device_identification
msgid "Device Identification"
msgstr "Identifikacija uređaja"
#. module: iot
#: code:addons/iot/models/iot_device_action.py:28
#, python-format
msgid "Device and action must be of the same system"
msgstr "Uređaj i akcija moraju biti istog sistema"
#. 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 "Uređaji"
#. 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 "Prikazani naziv"
#. module: iot
#: selection:iot.device.action,status:0
msgid "Failed"
msgstr "Neuspješan"
#. 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 "ID"
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "Inactive"
msgstr "Neaktivan"
#. module: iot
#: model:ir.module.category,name:iot.ir_module_category_iot
#: model:ir.ui.menu,name:iot.iot_root_menu
msgid "IoT"
msgstr "IoT"
#. module: iot
#: model:ir.model,name:iot.model_iot_device_action
msgid "IoT Action"
msgstr "IoT akcija"
#. module: iot
#: model:ir.model,name:iot.model_iot_device
msgid "IoT Device"
msgstr "IoT uređaj"
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_search
msgid "IoT Device Search"
msgstr "Pretraga IoT uređaja"
#. 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 "IoT uređaji"
#. module: iot
#: model:ir.actions.act_window,name:iot.iot_system_action
#: model:ir.model,name:iot.model_iot_system
msgid "IoT System"
msgstr "IoT sistem"
#. module: iot
#: model:ir.model,name:iot.model_iot_system_action
msgid "IoT System.action"
msgstr "IoT sistem.akcija"
#. module: iot
#: model:res.groups,name:iot.group_iot_user
msgid "IoT User"
msgstr "IoT korisnik"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__ip
msgid "Ip"
msgstr "IP"
#. 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 "Zadnje mijenjano"
#. 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 "Zadnji ažurirao"
#. 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 "Zadnje ažurirano"
#. module: iot
#: model:res.groups,name:iot.group_iot_manager
msgid "Manager"
msgstr "Upravitelj"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__model
msgid "Model"
msgstr "Model"
#. module: iot
#: model:res.groups,comment:iot.group_iot_manager
msgid "Module administrator, able to modify configuration data."
msgstr "Administrator modula, može mijenjati konfiguracijske podatke."
#. module: iot
#: model:res.groups,comment:iot.group_iot_user
msgid "Module user."
msgstr "Korisnik modula."
#. 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 "Naziv:"
#. module: iot
#: selection:iot.device.action,status:0
msgid "Ok"
msgstr "Uredu"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device_action__date_ok
msgid "Ok date"
msgstr "Datum u redu"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__passphrase
msgid "Passphrase"
msgstr "Parolska fraza"
#. module: iot
#: selection:iot.device.action,status:0
msgid "Pending"
msgstr "Na čekanju"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device_action__result
msgid "Result"
msgstr "Rezultat"
#. module: iot
#: model_terms:ir.ui.view,arch_db:iot.iot_device_action_tree
msgid "Run"
msgstr "Pokrenut"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device__state
msgid "State"
msgstr "Status"
#. module: iot
#: model:ir.model.fields,field_description:iot.field_iot_device_action__status
msgid "Status"
msgstr "Status"
#. 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 "Sistem"
#. 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 "Sistemska akcija"
#. module: iot
#: model:ir.ui.menu,name:iot.iot_system_menu
msgid "Systems"
msgstr "Sistemi"

View file

@ -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 <jabelchi@gmail.com>\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 ""

View file

@ -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 <informatica@totmaterial.es>\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"

View file

@ -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 <mostafa.barmshory@gmail.com>\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 ""

View file

@ -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 ""

View file

@ -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 ""

View file

@ -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 ""

View file

@ -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: 2025-06-21 13:27+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\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 5.10.4\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 "Supervisore"
#. 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"

View file

@ -0,0 +1,26 @@
# Copyright 2021 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade
_model_renames = [
("iot.system", "iot.communication.system"),
("iot.system.action", "iot.communication.system.action"),
]
_table_renames = [
("iot_system", "iot_communication_system"),
("iot_system_action", "iot_communication_system_action"),
]
_column_renames = {
"iot_communication_system_action": [("system_id", "communication_system_id")],
"iot_device": [("system_id", "communication_system_id")],
"iot_device_action": [("system_action_id", "communication_system_action_id")],
}
@openupgrade.migrate()
def migrate(env, version):
openupgrade.rename_models(env.cr, _model_renames)
openupgrade.rename_tables(env.cr, _table_renames)
openupgrade.rename_columns(env.cr, _column_renames)

View file

@ -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

View file

@ -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"
)

View file

@ -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

View file

@ -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()

View file

@ -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)

View file

@ -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)

View file

@ -0,0 +1,13 @@
# 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")

View file

@ -0,0 +1,2 @@
* Enric Tobella <etobella@creublanca.es>
* ViraWeb123 <info@viraweb123.ir>

View file

@ -0,0 +1 @@
This addon is a base module used for all iot modules.

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2017 Eficent Business and IT Consulting Services, S.L.
Copyright 2017 Creu Blanca
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
-->
<odoo>
<record id="ir_module_category_iot" model="ir.module.category">
<field name="name">IoT</field>
</record>
<record id="group_iot_user" model="res.groups">
<field name="name">IoT User</field>
<field name="comment">Module user.</field>
<field name="category_id" ref="ir_module_category_iot" />
</record>
<record id="group_iot_manager" model="res.groups">
<field name="name">Manager</field>
<field
name="comment"
>Module administrator, able to modify configuration data.</field>
<field name="category_id" ref="ir_module_category_iot" />
<field name="implied_ids" eval="[(4, ref('group_iot_user'))]" />
<field
name="users"
eval="[(4,ref('base.user_root')), (4,ref('base.user_admin'))]"
/>
</record>
</odoo>

View file

@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_iot_device access_iot_device model_iot_device group_iot_user 1 1 0 0
3 manage_iot_device access_iot_device model_iot_device group_iot_manager 1 1 1 0
4 access_iot_device_action access_iot_device_action model_iot_device_action group_iot_user 1 1 1 0
5 manage_iot_device_action access_iot_device_action model_iot_device_action group_iot_manager 1 1 1 0
6 access_iot_system access_iot_system model_iot_communication_system group_iot_user 1 0 0 0
7 manage_iot_system access_iot_system model_iot_communication_system group_iot_manager 1 1 1 0
8 access_iot_system_action access_iot_system_action model_iot_communication_system_action group_iot_user 1 0 0 0
9 manage_iot_system_action access_iot_system_action model_iot_communication_system_action group_iot_manager 1 1 1 0
10 access_iot_device_group access_iot_device_group model_iot_device_group group_iot_user 1 0 0 0
11 manage_iot_device_group manage_iot_device_group model_iot_device_group group_iot_manager 1 1 1 0
12 access_iot_device_tag access_iot_device_tag model_iot_device_tag group_iot_user 1 0 0 0
13 manage_iot_device_tag manage_iot_device_tag model_iot_device_tag group_iot_manager 1 1 1 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

View file

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="Capa_1"
data-name="Capa 1"
viewBox="0 0 200.33 200"
version="1.1"
sodipodi:docname="icon.svg"
inkscape:version="0.92.4 (unknown)"
inkscape:export-filename="/home/REINACB/jaime.arroyo/icon.png"
inkscape:export-xdpi="95.841858"
inkscape:export-ydpi="95.841858">
<metadata
id="metadata24">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>icon</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1853"
inkscape:window-height="1025"
id="namedview22"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-text-baseline="true"
inkscape:zoom="3.337544"
inkscape:cx="-15.298257"
inkscape:cy="88.965657"
inkscape:window-x="1987"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1">
<sodipodi:guide
position="51.271186,126.37712"
orientation="-0.70710678,0.70710678"
id="guide40"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="118.65012,168.08767"
orientation="-0.70710678,0.70710678"
id="guide42"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="138.02966,143.00847"
orientation="-0.70710678,0.70710678"
id="guide46"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="137.92373,118.22034"
orientation="-0.70710678,0.70710678"
id="guide48"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="156.99152,93.008474"
orientation="-0.70710678,0.70710678"
id="guide50"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="139.19491,46.822034"
orientation="-0.70710678,0.70710678"
id="guide52"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
</sodipodi:namedview>
<defs
id="defs4">
<style
id="style2">.cls-1{fill:none;}.cls-2{fill:#3b588f;}.cls-3{fill:#070308;opacity:0.4;}.cls-4{fill:#fff;}</style>
</defs>
<title
id="title6">icon</title>
<rect
id="_Sector_"
data-name="&lt;Sector&gt;"
class="cls-1"
width="200"
height="200" />
<rect
class="cls-2"
x="0.33000001"
width="200"
height="200"
id="rect9"
ry="5.6928086"
y="0"
style="fill:#006400;fill-opacity:1" />
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline">
<path
style="fill:#000000;fill-opacity:0.4908257;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 51.271202,73.622896 0.31781314,124.57629 0.24411382,194.77708 c 0.61125585,1.22897 0.0713539,1.30678 1.83376758,3.6869 1.072577,1.37049 4.2927789,1.58367 4.2780498,1.59104 l 85.9722268,-0.0103 46.866752,-46.86675 -14.84505,-13.54478 32.64166,-32.64166 -19.06779,-25.211874 -15.56416,15.56415 -18.18371,-6.49848 33.8538,-33.8538 -19.37954,-25.079203 -54.381298,54.381303 z"
id="path56-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccccc" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Layer 2">
<path
inkscape:connector-curvature="0"
d="m 66.536712,68.514381 c 13.722128,0 24.84993,12.078175 24.84993,26.972245 0,14.894074 -11.127802,26.972244 -24.84993,26.972244 -13.727099,0 -24.849926,-12.07817 -24.849926,-26.972244 0,-14.89407 11.122827,-26.972245 24.849926,-26.972245 z M 141.08649,46.936586 c 0,-8.938602 -6.67966,-16.183347 -14.90996,-16.183347 -8.23526,0 -14.90995,7.244745 -14.90995,16.183347 0,1.683068 0.30316,3.269036 0.73555,4.79027 L 91.083472,68.757132 c 2.3508,2.540785 4.35867,5.442999 5.968952,8.625724 L 117.91145,60.40113 c 2.37068,1.710041 5.20854,2.718803 8.26508,2.718803 8.2303,0 14.90996,-7.244745 14.90996,-16.183347 z M 112.00213,139.2464 c -0.43239,1.52123 -0.73555,3.1072 -0.73555,4.79027 0,8.9386 6.67469,16.18335 14.90995,16.18335 8.2303,0 14.90996,-7.24475 14.90996,-16.18335 0,-8.9386 -6.67966,-16.18335 -14.90996,-16.18335 -3.05654,0 -5.8944,1.00877 -8.26011,2.71881 L 97.057394,113.5904 c -1.610282,3.18273 -3.623122,6.08494 -5.968952,8.62572 z m 34.05434,-27.24197 c 8.2303,0 14.90996,-7.24474 14.90996,-16.183344 0,-8.93861 -6.67966,-16.183351 -14.90996,-16.183351 -6.36655,0 -11.76395,4.353321 -13.90105,10.454441 h -31.22641 c 0.23359,1.76938 0.3976,3.56034 0.3976,5.39445 0,1.83411 -0.16401,3.625074 -0.3976,5.394454 h 31.03258 c 1.96315,6.44637 7.49474,11.12335 14.09488,11.12335 z"
id="path2"
style="fill:#ffffff;stroke-width:5.17786932" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -0,0 +1,424 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>IoT Base</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="iot-base">
<h1 class="title">IoT Base</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:c34e428d89d764b8729d8c6829d21080bbcb86b8c3d8af66fd656894bebb1e2f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/iot/tree/16.0/iot_oca"><img alt="OCA/iot" src="https://img.shields.io/badge/github-OCA%2Fiot-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/iot-16-0/iot-16-0-iot_oca"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/iot&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This addon is a base module used for all iot modules.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-1">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-2">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-3">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-4">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-5">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-1">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/iot/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/iot/issues/new?body=module:%20iot_oca%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-2">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-3">Authors</a></h2>
<ul class="simple">
<li>Creu Blanca</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-4">Contributors</a></h2>
<ul class="simple">
<li>Enric Tobella &lt;<a class="reference external" href="mailto:etobella&#64;creublanca.es">etobella&#64;creublanca.es</a>&gt;</li>
<li>ViraWeb123 &lt;<a class="reference external" href="mailto:info&#64;viraweb123.ir">info&#64;viraweb123.ir</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-5">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/iot/tree/16.0/iot_oca">OCA/iot</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1 @@
from . import test_iot

View file

@ -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()

View file

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2021 Creu Blanca
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="iot_device_group_form_view">
<field name="name">iot.device.group.form (in iot_oca)</field>
<field name="model">iot.device.group</field>
<field name="arch" type="xml">
<form>
<header />
<sheet>
<group>
<field name="name" />
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="iot_device_group_search_view">
<field name="name">iot.device.group.search (in iot_oca)</field>
<field name="model">iot.device.group</field>
<field name="arch" type="xml">
<search>
<field name="name" />
</search>
</field>
</record>
<record model="ir.ui.view" id="iot_device_group_tree_view">
<field name="name">iot.device.group.tree (in iot_oca)</field>
<field name="model">iot.device.group</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="name" />
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="iot_device_group_act_window">
<field name="name">Device Group</field>
<!-- TODO -->
<field name="res_model">iot.device.group</field>
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
<field name="context">{}</field>
</record>
<record model="ir.ui.menu" id="iot_device_group_menu">
<field name="name">Device Group</field>
<field name="parent_id" ref="iot_configuration_menu" />
<field name="action" ref="iot_device_group_act_window" />
<field name="sequence" eval="10" />
</record>
</odoo>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2021 Creu Blanca
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="iot_device_tag_form_view">
<field name="name">iot.device.tag.form (in iot_oca)</field>
<field name="model">iot.device.tag</field>
<field name="arch" type="xml">
<form>
<header />
<sheet>
<group>
<field name="name" />
</group>
<group name="main">
<field name="color" />
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="iot_device_tag_search_view">
<field name="name">iot.device.tag.search (in iot_oca)</field>
<field name="model">iot.device.tag</field>
<field name="arch" type="xml">
<search>
<field name="name" />
</search>
</field>
</record>
<record model="ir.ui.view" id="iot_device_tag_tree_view">
<field name="name">iot.device.tag.tree (in iot_oca)</field>
<field name="model">iot.device.tag</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="name" />
<field name="color" />
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="iot_device_tag_act_window">
<field name="name">Device Tag</field>
<!-- TODO -->
<field name="res_model">iot.device.tag</field>
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
<field name="context">{}</field>
</record>
<record model="ir.ui.menu" id="iot_device_tag_menu">
<field name="name">Device Tag</field>
<field name="parent_id" ref="iot_configuration_menu" />
<field name="action" ref="iot_device_tag_act_window" />
<field name="sequence" eval="20" />
</record>
</odoo>

View file

@ -0,0 +1,249 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="iot_device_tree" model="ir.ui.view">
<field name="name">iot.device.tree</field>
<field name="model">iot.device</field>
<field name="arch" type="xml">
<tree delete="0">
<field name="name" />
<field name="communication_system_id" />
<field name="model" />
<field name="last_contact_date" />
<field name="group_id" />
<field name="ip" />
</tree>
</field>
</record>
<record id="iot_device_form" model="ir.ui.view">
<field name="name">iot.device.form</field>
<field name="model">iot.device</field>
<field name="arch" type="xml">
<form>
<header />
<sheet>
<field name="active" invisible="1" />
<div class="oe_button_box" name="button_box" />
<widget
name="web_ribbon"
text="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"
/>
<field
name="image_1920"
widget='image'
class="oe_avatar"
options='{"preview_image": "image_128"}'
/>
<div class="oe_title">
<h1>
<field name="name" />
</h1>
</div>
<group>
<group>
<field name="group_id" />
<field
name="tag_ids"
widget="many2many_tags"
options="{'color_field': 'color'}"
/>
<field name="icon" />
<field
name="communication_system_id"
attrs="{'readonly': [('action_count','>', 0)]}"
widget="selection"
/>
<field name="action_count" invisible="1" />
</group>
<group>
<field name="model" />
<field name="ip" />
<field name="state" />
<field name="last_contact_date" />
</group>
</group>
<notebook>
<page string="Actions" id="actions">
<field name="action_ids" readonly="True" />
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="iot_device_action_tree" model="ir.ui.view">
<field name="name">iot.device.action.tree</field>
<field name="model">iot.device.action</field>
<field name="arch" type="xml">
<tree>
<field name="status" />
<field name="result" />
<field name="date_ok" />
<button
name="run"
type="object"
string="Run"
attrs="{'invisible': [('status', '=', 'ok')]}"
/>
</tree>
</field>
</record>
<record id="iot_device_kanban" model="ir.ui.view">
<field name="name">iot.device.kanban</field>
<field name="model">iot.device</field>
<field name="arch" type="xml">
<kanban class="o_kanban_dashboard">
<field name="name" />
<field name="state" />
<field name="communication_system_id" />
<field name="group_id" />
<field name="color" />
<field name="id" />
<field name="image_128" />
<field name="icon" />
<templates>
<t t-name="kanban-box">
<div
t-attf-class="{{!selection_mode ? 'oe_kanban_color_' + kanban_getcolor(record.color.raw_value) : ''}} oe_kanban_global_click"
>
<div class="o_dropdown_kanban dropdown">
<a
role="button"
class="dropdown-toggle o-no-caret btn"
data-toggle="dropdown"
data-display="static"
href="#"
aria-label="Dropdown menu"
title="Dropdown menu"
>
<span class="fa fa-ellipsis-v" />
</a>
<div class="dropdown-menu" role="menu">
<t t-if="widget.editable">
<a
role="menuitem"
type="edit"
class="dropdown-item"
>Edit...</a>
</t>
<t t-if="widget.deletable">
<a
role="menuitem"
type="delete"
class="dropdown-item"
>Delete</a>
</t>
<ul
class="oe_kanban_colorpicker"
data-field="color"
/>
</div>
</div>
<div class="oe_kanban_content">
<div class="o_kanban_image">
<img
t-att-src="kanban_image('iot.device', 'image_128', record.id.raw_value)"
alt="default_image"
t-if="record.image_128.raw_value"
/>
<i
t-attf-class="{{record.icon.raw_value}}"
t-if="!record.image_128.raw_value and record.icon.raw_value"
/>
<i
t-attf-class="fa fa-question fa-6x"
title="Unknown device"
t-if="!record.image_128.raw_value and !record.icon.raw_value"
/>
</div>
<div class="o_kanban_details">
<div class="o_kanban_record_top">
<b class="o_kanban_record_title">
<field name="name" />
</b>
</div>
<div class="o_kanban_record_body">
<div t-if="record.group_id.raw_value">
<field name="group_id" />
</div>
<div t-if="record.ip">IP: <field
name="ip"
/></div>
<div
t-if="record.last_contact_date"
>Last contact: <field
name="last_contact_date"
/></div>
<field
name="tag_ids"
widget="many2many_tags"
options="{'color_field': 'color'}"
/>
<div class="row">
<div
class="col-xs-6 o_kanban_primary_left"
id="actions"
>
<!-- TODO: Delete this on 14, actions should go to dropdown menu -->
</div>
</div>
</div>
<div class="o_kanban_record_bottom">
</div>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record id="iot_device_search" model="ir.ui.view">
<field name="name">iot.device.search</field>
<field name="model">iot.device</field>
<field name="arch" type="xml">
<search string="IoT Device Search">
<field name="name" />
<field name="group_id" />
<field name="model" />
<field name="ip" />
<separator />
<filter
name="active"
string="Active"
domain="[('active','=',True)]"
help="Active"
/>
<filter
name="inactive"
string="Inactive"
domain="[('active','=',False)]"
help="Inactive"
/>
<separator />
<group expand="0" string="Group By">
<filter
name="group_group"
string="Group"
domain="[]"
context="{'group_by':'group_id'}"
/>
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="iot_device_action">
<field name="name">IoT Devices</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">iot.device</field>
<field name="view_mode">kanban,tree,form</field>
</record>
<menuitem
name="Devices"
sequence="10"
id="iot_device_menu"
action="iot_device_action"
parent="iot_root_menu"
/>
</odoo>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<menuitem
name="IoT"
id="iot_root_menu"
groups="group_iot_user"
web_icon="iot_oca,static/description/icon.png"
/>
<record model="ir.ui.menu" id="iot_configuration_menu">
<field name="name">Configuration</field>
<field name="parent_id" ref="iot_root_menu" />
<field name="sequence" eval="20" />
<field name="groups_id" eval="[(4, ref('group_iot_manager'))]" />
</record>
</odoo>

View file

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="iot_system_tree" model="ir.ui.view">
<field name="name">iot.communication.system.tree</field>
<field name="model">iot.communication.system</field>
<field name="arch" type="xml">
<tree create="0" delete="0">
<field name="name" />
</tree>
</field>
</record>
<record id="iot_system_form" model="ir.ui.view">
<field name="name">iot.communication.system.form</field>
<field name="model">iot.communication.system</field>
<field name="arch" type="xml">
<form create="0" delete="0" edit="0">
<header />
<sheet>
<div class="oe_title">
<h1>
<field name="name" />
</h1>
</div>
<notebook>
<page string="Devices" id="devices">
<field name="device_ids" readonly="True" />
</page>
<page string="Actions" id="actions">
<field
name="communication_system_action_ids"
readonly="True"
/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="iot_system_action_tree" model="ir.ui.view">
<field name="name">iot.communication.system.action.tree</field>
<field name="model">iot.communication.system.action</field>
<field name="arch" type="xml">
<tree create="0" delete="0">
<field name="name" />
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="iot_system_action">
<field name="name">IoT System</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">iot.communication.system</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem
name="Systems"
sequence="90"
id="iot_system_menu"
action="iot_system_action"
parent="iot_configuration_menu"
groups="group_iot_manager"
/>
</odoo>