90 lines
4.3 KiB
Python
Executable File
90 lines
4.3 KiB
Python
Executable File
import ast
|
|
import datetime
|
|
import json
|
|
import re
|
|
import uuid
|
|
import logging
|
|
import base64
|
|
import subprocess
|
|
import tempfile
|
|
import easywebdav
|
|
import os
|
|
import os.path
|
|
|
|
|
|
from odoo import api, fields, models, _
|
|
from odoo import tools
|
|
from odoo.exceptions import ValidationError
|
|
from datetime import date
|
|
from datetime import datetime
|
|
from dateutil.relativedelta import relativedelta
|
|
from pyffmpeg import FFmpeg
|
|
from tuya_iot import TuyaOpenAPI, TUYA_LOGGER
|
|
from tuya_connector import TuyaOpenAPI, TUYA_LOGGER
|
|
import sys
|
|
|
|
TUYA_LOGGER.setLevel(logging.DEBUG)
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class dsssystems(models.Model):
|
|
_name = "dss.systems"
|
|
_description = "DigitalSignage Systemtypen"
|
|
_inherit = ['mail.thread','mail.activity.mixin']
|
|
_rec_name = "systemname"
|
|
# _inherit = ['mail.thread', 'mail.activity.mixin']
|
|
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
|
# uuid = fields.Char('UUID', required=True, translate=True)
|
|
systemname = fields.Char('Systemname', required=True)
|
|
|
|
grundsystem = fields.Many2one('dss.systemtypen', string="Gerät ist nutzbar für")
|
|
grundsystem_kennung = fields.Char(string='Kennung', related='grundsystem.kennung')
|
|
standort = fields.Char('Hauptstandort des Systems',tracking=True)
|
|
|
|
|
|
farbe = fields.Char('Grundfarbe')
|
|
|
|
has_heizung = fields.Boolean('Mit Heizsystem')
|
|
has_klima = fields.Boolean('Mit Klimasystem')
|
|
has_fan = fields.Boolean('Mit Ventiltorensystem')
|
|
|
|
stromzaehler = fields.Many2one('dss.geraetetypen')
|
|
stromverbrauch_avg = fields.Integer('Stromverbrauch AVG in W')
|
|
|
|
osvorhanden = fields.Boolean('Mit Betriebssystem')
|
|
osname = fields.Char('Betriebssystem')
|
|
ostyp = fields.Selection([('Win','Windows'), ('Lin','Linux'), ('And','Android'),('Ras','Raspberry PI'),('Non','Keines bekannt'),('Div','Anderes')]);
|
|
|
|
lcd_ausrichtung = fields.Selection([('quer','Horizontal/Querformat'), ('hoch','Vertikal/Hochformat'),('Divers','Andere Art')],'LCD Ausrichtung');
|
|
lcd_touch = fields.Boolean('Touchsystem')
|
|
lcd_montage = fields.Selection([('WAN','Wandmontage'), ('FUS','Standfuss rollbar'), ('FI1','Boden verankert 1 Fuss'),('FI2','Boden verankert 2 Füsse'),('FIX','Bodenverankert Blockfuss'),('XXX','Sonstige')],'Montage/Befestigung');
|
|
lcd_montage_sonstige = fields.Char('Sonstige Montageart')
|
|
|
|
lcd_panel = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LCD'),('led_geraetetyp','=','ANZ')]")
|
|
lcd_mainboard = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LCD'),('led_geraetetyp','=','STE')]")
|
|
lcd_touchcontroler = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LCD'),('led_geraetetyp','=','SYS')]")
|
|
lcd_netzteil = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LCD'),('led_geraetetyp','=','NET')]")
|
|
|
|
led_pixelpitch = fields.Char('Pixelabstand')
|
|
led_breite = fields.Integer('LED Breite mm')
|
|
led_hoehe = fields.Integer('LED Hoehe mm')
|
|
led_pixel_breite = fields.Integer('LED Breite px')
|
|
led_pixel_hoehe = fields.Integer('LED Hoehe px')
|
|
led_cab_in_breite = fields.Integer('LED Cabinets Breite Stck')
|
|
led_cab_in_hoehe = fields.Integer('LED Cabinets Hoehe Stck')
|
|
|
|
led_receivingcard = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LED'),('led_geraetetyp','=','REC')]")
|
|
led_netzteile = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LED'),('led_geraetetyp','=','NET')]")
|
|
led_module = fields.Many2one('dss.geraetetypen',domain="['&',('grundsystem_kennung','=','LED'),('led_geraetetyp','=','MOD')]")
|
|
|
|
led_montage = fields.Selection([('WAN','Wandmontage'), ('FUS','1 standFuss zentral'), ('FU2','2 Standfüsse Aussen'),('FU3','1 Standfuss dezentral'),('MO1','manuell Mobil bewegbar'),('MO2','Mobil bewegbar Container'),('XXX','Sonstige')],'Montage/Befestigung');
|
|
led_montage_sonstige = fields.Char('Sonstige Montageart')
|
|
|
|
led_cabinets_sonstige = fields.Many2many('dss.geraetetypen','led_cabinet_typen','uuid',domain="['&',('grundsystem_kennung','=','LED'),('geraetetyp','=','ANZ')]",string="Cabinets im Verbund")
|
|
|
|
zusatz_integrationen = fields.Many2many('dss.geraetetypen','zusatz_typen','uuid')
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|