oca-technical/odoo-bringout-oca-iot-iot_oca/iot_oca/models/iot_communication_system_action.py
2025-08-29 15:43:03 +02:00

32 lines
973 B
Python

# 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