111 lines
5.4 KiB
Python
111 lines
5.4 KiB
Python
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 dssSettings(models.Model):
|
|
|
|
_name = "dss.settings"
|
|
_description = "DigitalSignage Einstellungen"
|
|
_inherit = ['mail.thread','mail.activity.mixin']
|
|
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
|
def_project_cloudpath = fields.Char('Standard Projekt Pfad',tracking=True)
|
|
def_project_cloudpath_sample = fields.Char('Projekt Beispiel :',store=True,tracking=True)
|
|
def_contract_cloudpath = fields.Char('Standard Kunden Pfad',tracking=True)
|
|
def_contract_cloudpath_sample = fields.Char('Projekt Beispiel :',tracking=True)
|
|
def_ad_cloudpath = fields.Char('Standard Kampagnen Pfad',tracking=True)
|
|
def_ad_cloudpath_sample = fields.Char('Kampagnen Beispiel :',tracking=True)
|
|
tuya_access_id = fields.Char('Tuya Access ID',tracking=True)
|
|
tuya_access_key = fields.Char('Tuya Access KEY',tracking=True)
|
|
tuya_endpoint = fields.Char('Tuya Access Endpoint',tracking=True)
|
|
google_maps_key = fields.Char('Google API Key (Maps)',tracking=True)
|
|
os_webimg_path = fields.Char('Verzeichnis für Bilder im Odooweb',tracking=True)
|
|
contact_runtime_user = fields.Many2one('res.users',string="Kalenderkontact",help="Kalenderkontakt für Ablauf von Verträgen")
|
|
runtime_auto_calandar_entry = fields.Boolean('Autom. Vertragsende Kalendereintrag ?',help='Jeden berechneten Vertrag-Ablaufzeitpunkt automatisch in Kalender eintragen ?',tracking=True)
|
|
show_expand_contract_group_ad_state = fields.Boolean('Jeden Kampagnen-Status anzeigen ?',help='im Groupierungsmodus der Verträge nach Kampagnenstatus alle (auch unbenutzte) Statusspalten anzeigen ?',tracking=True)
|
|
show_expand_contract_group_ad_work_state = fields.Boolean('Jeden Kampagnen-Arbeitsstatus anzeigen ?',help='im Groupierungsmodus der Verträge nach Kampagnen-Arbeitsstatus alle (auch unbenutzte) Statusspalten anzeigen ?',tracking=True)
|
|
show_expand_contract_group_ad_todo_state = fields.Boolean('Jeden Kampagnen-Aufgabenschritt anzeigen ?',help='im Groupierungsmodus der Verträge nach Kampagnen-Aufgabenschritt alle (auch unbenutzte) Aufgabenspalten anzeigen ?',tracking=True)
|
|
def _get_settingvalue(self,valuename):
|
|
settings = (self.env['dss.settings'].search([],limit=1))
|
|
wert = settings._origin.read([valuename])[0][valuename]
|
|
return wert
|
|
|
|
def _get_path_converted(self,path,record):
|
|
alls = ''
|
|
_logger.info("GetPath with " + str(path)+ " and Record : "+str(record.id))
|
|
if path:
|
|
for parts in path.split(','):
|
|
if parts[0] == '$':
|
|
fels = parts[1:]
|
|
parts = record._origin.read([fels])
|
|
_logger.info("Default Cloudpath Setzen - MusterProjekt gefunden " + str(parts))
|
|
if parts:
|
|
value = str(parts[0][fels])
|
|
else:
|
|
value = ''
|
|
_logger.info("Default Cloudpath Setzen - MusterProjekt gefunden " + str(value))
|
|
alls = alls + value
|
|
else:
|
|
alls = alls + str(parts)
|
|
return alls
|
|
|
|
@api.onchange('def_project_cloudpath')
|
|
def _onchange_def_project_cloudpath(self):
|
|
_logger.info("Default Project Cloudpath Setzen")
|
|
project_1 = self.env['dss.projects'].search([('uuid','=ilike','%')],limit=1)
|
|
if not project_1:
|
|
_logger.info("Default Cloudpath Setzen - kein MusterProjekt gefunden")
|
|
else:
|
|
_logger.info("Default Cloudpath Setzen - MusterProjekt gefunden "+str(project_1.id))
|
|
alls = self._get_path_converted(self.def_project_cloudpath,project_1)
|
|
self.def_project_cloudpath_sample = alls
|
|
|
|
@api.onchange('def_contract_cloudpath')
|
|
def _onchange_def_contract_cloudpath(self):
|
|
_logger.info("Default Contract Cloudpath Setzen")
|
|
contract_1 = self.env['dss.contracts'].search([('uuid','=ilike','%')],limit=1)
|
|
if not contract_1:
|
|
_logger.info("Default Cloudpath Setzen - kein MusterProjekt gefunden")
|
|
else:
|
|
_logger.info("Default Cloudpath Setzen - MusterProjekt gefunden "+str(contract_1.id))
|
|
alls = self._get_path_converted(self.def_contract_cloudpath,contract_1)
|
|
self.def_contract_cloudpath_sample = alls
|
|
|
|
@api.onchange('def_ad_cloudpath')
|
|
def _onchange_def_ad_cloudpath(self):
|
|
_logger.info("Default ad Cloudpath Setzen")
|
|
ad_1 = self.env['dss.ads'].search([('uuid','=ilike','%')],limit=1)
|
|
if not ad_1:
|
|
_logger.info("Default Cloudpath Setzen - kein MusterProjekt gefunden")
|
|
else:
|
|
_logger.info("Default Cloudpath Setzen - MusterProjekt gefunden "+str(ad_1.id))
|
|
alls = self._get_path_converted(self.def_ad_cloudpath,ad_1)
|
|
self.def_ad_cloudpath_sample = alls
|
|
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|