diff --git a/__manifest__.py b/__manifest__.py
index f63483f..9a7b830 100755
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -45,7 +45,7 @@
'views/dss_zahlungen.xml',
'views/dss_web_contracts.xml',
'views/dss_invoices.xml',
- 'views/dss_m2mmail.xml',
+ 'views/dss_m2mmail_views.xml',
'views/mainsystem_view.xml',
'views/dss_importinvoicelist.xml',
'views/menu.xml',
diff --git a/__pycache__/__init__.cpython-311.pyc b/__pycache__/__init__.cpython-311.pyc
old mode 100644
new mode 100755
diff --git a/attendance.xml b/attendance.xml
old mode 100644
new mode 100755
diff --git a/controllers/__init__.py b/controllers/__init__.py
old mode 100644
new mode 100755
diff --git a/controllers/__pycache__/__init__.cpython-311.pyc b/controllers/__pycache__/__init__.cpython-311.pyc
old mode 100644
new mode 100755
index 4bd8fc1..832b7ad
Binary files a/controllers/__pycache__/__init__.cpython-311.pyc and b/controllers/__pycache__/__init__.cpython-311.pyc differ
diff --git a/controllers/__pycache__/dss_screendesigner_controller.cpython-311.pyc b/controllers/__pycache__/dss_screendesigner_controller.cpython-311.pyc
old mode 100644
new mode 100755
index 7358fd7..93828c7
Binary files a/controllers/__pycache__/dss_screendesigner_controller.cpython-311.pyc and b/controllers/__pycache__/dss_screendesigner_controller.cpython-311.pyc differ
diff --git a/controllers/__pycache__/main.cpython-311.pyc b/controllers/__pycache__/main.cpython-311.pyc
old mode 100644
new mode 100755
index 28d7e95..b6f15cf
Binary files a/controllers/__pycache__/main.cpython-311.pyc and b/controllers/__pycache__/main.cpython-311.pyc differ
diff --git a/controllers/dss_screendesigner_controller.py b/controllers/dss_screendesigner_controller.py
old mode 100644
new mode 100755
diff --git a/controllers/main.py b/controllers/main.py
old mode 100644
new mode 100755
diff --git a/controllers/website_form.py b/controllers/website_form.py
old mode 100644
new mode 100755
diff --git a/data/ir_model_data.xml b/data/ir_model_data.xml
old mode 100644
new mode 100755
diff --git a/hr_attendance_view.xml b/hr_attendance_view.xml
old mode 100644
new mode 100755
diff --git a/models/__init__.py b/models/__init__.py
index 30a6afa..dcd8048 100755
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -27,4 +27,4 @@ from . import dss_invoices
from . import dss_importinvoicelist
from . import dss_web_contracts
from . import dss_m2mmail
-
+from . import dsslogger
diff --git a/models/__pycache__/__init__.cpython-311.pyc b/models/__pycache__/__init__.cpython-311.pyc
index dd75390..d0c9eea 100644
Binary files a/models/__pycache__/__init__.cpython-311.pyc and b/models/__pycache__/__init__.cpython-311.pyc differ
diff --git a/models/__pycache__/company.cpython-311.pyc b/models/__pycache__/company.cpython-311.pyc
old mode 100644
new mode 100755
diff --git a/models/__pycache__/dss.cpython-311.pyc b/models/__pycache__/dss.cpython-311.pyc
old mode 100644
new mode 100755
index 73520dc..3ce6542
Binary files a/models/__pycache__/dss.cpython-311.pyc and b/models/__pycache__/dss.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_activity.cpython-311.pyc b/models/__pycache__/dss_activity.cpython-311.pyc
old mode 100644
new mode 100755
diff --git a/models/__pycache__/dss_activity_mixin.cpython-311.pyc b/models/__pycache__/dss_activity_mixin.cpython-311.pyc
old mode 100644
new mode 100755
index da0577d..34cddd7
Binary files a/models/__pycache__/dss_activity_mixin.cpython-311.pyc and b/models/__pycache__/dss_activity_mixin.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_ads.cpython-311.pyc b/models/__pycache__/dss_ads.cpython-311.pyc
old mode 100644
new mode 100755
index a1bc0b3..98f3598
Binary files a/models/__pycache__/dss_ads.cpython-311.pyc and b/models/__pycache__/dss_ads.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_advertisefields.cpython-311.pyc b/models/__pycache__/dss_advertisefields.cpython-311.pyc
old mode 100644
new mode 100755
index 401b291..0656776
Binary files a/models/__pycache__/dss_advertisefields.cpython-311.pyc and b/models/__pycache__/dss_advertisefields.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_advertisefields_templates.cpython-311.pyc b/models/__pycache__/dss_advertisefields_templates.cpython-311.pyc
old mode 100644
new mode 100755
index 05edd48..c73b6ba
Binary files a/models/__pycache__/dss_advertisefields_templates.cpython-311.pyc and b/models/__pycache__/dss_advertisefields_templates.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_contract.cpython-311.pyc b/models/__pycache__/dss_contract.cpython-311.pyc
index 958d846..3ec6144 100644
Binary files a/models/__pycache__/dss_contract.cpython-311.pyc and b/models/__pycache__/dss_contract.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_display_templates.cpython-311.pyc b/models/__pycache__/dss_display_templates.cpython-311.pyc
old mode 100644
new mode 100755
index 46588a8..136eaf0
Binary files a/models/__pycache__/dss_display_templates.cpython-311.pyc and b/models/__pycache__/dss_display_templates.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_eventdays.cpython-311.pyc b/models/__pycache__/dss_eventdays.cpython-311.pyc
old mode 100644
new mode 100755
diff --git a/models/__pycache__/dss_geraetetypen.cpython-311.pyc b/models/__pycache__/dss_geraetetypen.cpython-311.pyc
old mode 100644
new mode 100755
diff --git a/models/__pycache__/dss_importInvoicelist.cpython-311.pyc b/models/__pycache__/dss_importInvoicelist.cpython-311.pyc
old mode 100644
new mode 100755
diff --git a/models/__pycache__/dss_importinvoicelist.cpython-311.pyc b/models/__pycache__/dss_importinvoicelist.cpython-311.pyc
old mode 100644
new mode 100755
index 9a0dc24..b9a56de
Binary files a/models/__pycache__/dss_importinvoicelist.cpython-311.pyc and b/models/__pycache__/dss_importinvoicelist.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_invoices.cpython-311.pyc b/models/__pycache__/dss_invoices.cpython-311.pyc
old mode 100644
new mode 100755
index 7134fa6..b5ec8c1
Binary files a/models/__pycache__/dss_invoices.cpython-311.pyc and b/models/__pycache__/dss_invoices.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_m2mmail.cpython-311.pyc b/models/__pycache__/dss_m2mmail.cpython-311.pyc
index 2fc04a7..7094b7f 100644
Binary files a/models/__pycache__/dss_m2mmail.cpython-311.pyc and b/models/__pycache__/dss_m2mmail.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_maintains.cpython-311.pyc b/models/__pycache__/dss_maintains.cpython-311.pyc
old mode 100644
new mode 100755
diff --git a/models/__pycache__/dss_marker.cpython-311.pyc b/models/__pycache__/dss_marker.cpython-311.pyc
old mode 100644
new mode 100755
index 8b55ffa..331aedb
Binary files a/models/__pycache__/dss_marker.cpython-311.pyc and b/models/__pycache__/dss_marker.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_onlinestate.cpython-311.pyc b/models/__pycache__/dss_onlinestate.cpython-311.pyc
old mode 100644
new mode 100755
index 2d9e89f..7a81c9c
Binary files a/models/__pycache__/dss_onlinestate.cpython-311.pyc and b/models/__pycache__/dss_onlinestate.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_projects.cpython-311.pyc b/models/__pycache__/dss_projects.cpython-311.pyc
index d91a593..4658dc1 100644
Binary files a/models/__pycache__/dss_projects.cpython-311.pyc and b/models/__pycache__/dss_projects.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_provision.cpython-311.pyc b/models/__pycache__/dss_provision.cpython-311.pyc
old mode 100644
new mode 100755
index 5f0fd0a..6990432
Binary files a/models/__pycache__/dss_provision.cpython-311.pyc and b/models/__pycache__/dss_provision.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_provisionstypen.cpython-311.pyc b/models/__pycache__/dss_provisionstypen.cpython-311.pyc
old mode 100644
new mode 100755
index e195603..0cb1313
Binary files a/models/__pycache__/dss_provisionstypen.cpython-311.pyc and b/models/__pycache__/dss_provisionstypen.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_settings.cpython-311.pyc b/models/__pycache__/dss_settings.cpython-311.pyc
index 37f2f17..8eb6872 100644
Binary files a/models/__pycache__/dss_settings.cpython-311.pyc and b/models/__pycache__/dss_settings.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_software.cpython-311.pyc b/models/__pycache__/dss_software.cpython-311.pyc
old mode 100644
new mode 100755
diff --git a/models/__pycache__/dss_systems.cpython-311.pyc b/models/__pycache__/dss_systems.cpython-311.pyc
old mode 100644
new mode 100755
diff --git a/models/__pycache__/dss_systemtypen.cpython-311.pyc b/models/__pycache__/dss_systemtypen.cpython-311.pyc
old mode 100644
new mode 100755
diff --git a/models/__pycache__/dss_trigger.cpython-311.pyc b/models/__pycache__/dss_trigger.cpython-311.pyc
index 100e67d..5ad6824 100644
Binary files a/models/__pycache__/dss_trigger.cpython-311.pyc and b/models/__pycache__/dss_trigger.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_triggerexecute.cpython-311.pyc b/models/__pycache__/dss_triggerexecute.cpython-311.pyc
old mode 100644
new mode 100755
index 6c696e1..064aa0a
Binary files a/models/__pycache__/dss_triggerexecute.cpython-311.pyc and b/models/__pycache__/dss_triggerexecute.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_triggervalues.cpython-311.pyc b/models/__pycache__/dss_triggervalues.cpython-311.pyc
old mode 100644
new mode 100755
index 44dbfdc..dc1d543
Binary files a/models/__pycache__/dss_triggervalues.cpython-311.pyc and b/models/__pycache__/dss_triggervalues.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_web_contracts.cpython-311.pyc b/models/__pycache__/dss_web_contracts.cpython-311.pyc
old mode 100644
new mode 100755
index c33e53b..1e4b48c
Binary files a/models/__pycache__/dss_web_contracts.cpython-311.pyc and b/models/__pycache__/dss_web_contracts.cpython-311.pyc differ
diff --git a/models/__pycache__/dss_zahlungen.cpython-311.pyc b/models/__pycache__/dss_zahlungen.cpython-311.pyc
old mode 100644
new mode 100755
index a7811c6..428e252
Binary files a/models/__pycache__/dss_zahlungen.cpython-311.pyc and b/models/__pycache__/dss_zahlungen.cpython-311.pyc differ
diff --git a/models/dss_activity_mixin.py b/models/dss_activity_mixin.py
old mode 100644
new mode 100755
diff --git a/models/dss_ads.py b/models/dss_ads.py
old mode 100644
new mode 100755
diff --git a/models/dss_contract.py b/models/dss_contract.py
index f247f06..b478fbe 100755
--- a/models/dss_contract.py
+++ b/models/dss_contract.py
@@ -8,6 +8,7 @@ import datetime
import json
import re
import uuid
+from .dsslogger import OdooCustomLogger
import logging
import base64
import subprocess
@@ -31,6 +32,8 @@ from tuya_connector import TuyaOpenAPI, TUYA_LOGGER
import sys
TUYA_LOGGER.setLevel(logging.DEBUG)
+
+# logging.setLoggerClass(OdooCustomLogger)
_logger = logging.getLogger(__name__)
class dsscontracts(models.Model):
diff --git a/models/dss_importinvoicelist.py b/models/dss_importinvoicelist.py
old mode 100644
new mode 100755
diff --git a/models/dss_invoices.py b/models/dss_invoices.py
old mode 100644
new mode 100755
diff --git a/models/dss_m2mmail.py b/models/dss_m2mmail.py
old mode 100644
new mode 100755
index 4057880..c31ce71
--- a/models/dss_m2mmail.py
+++ b/models/dss_m2mmail.py
@@ -1,15 +1,55 @@
import uuid
+import logging
from odoo import api, fields, models, _
from odoo import tools
+_logger = logging.getLogger(__name__)
+
class dssm2mvalues(models.Model):
+ @api.model
+ def analyze_emails(self):
+ # Prüfe, ob der Datensatz ein Email-Objekt ist
+ email_text = self.website_message_ids.body
+ # Prüfe, ob der Text "ProjektID:" enthält
+ if "ProjektID:" in email_text:
+ # Finde die Position von "ProjektID:"
+ pos = email_text.find("ProjektID:")
+ _logger.info("Import M2M Emails - Get ID. File - Message : pos "+str(pos))
+ # Extrahiere die nächsten 3 Ziffern
+ project_id = email_text[pos + 11:pos + 14].strip()
+ self.project_id = project_id
+ self.analyzed = True
+
+ @api.model
+ def create(self, vals):
+ result = super(dssm2mvalues, self).create(vals)
+ settings = self.env['dss.settings'].search([],limit=1)
+ cron_job = settings.m2mcron
+ if cron_job:
+ _logger.info("Import M2M Emails - Create - Cron activating : "+str(cron_job))
+ cron_job._trigger()
+ return result
+
_name = "dss.m2mmail"
_description = "DigitalSignage M2M Rückmeldungen"
# _rec_name = "statusname"
_inherit = ['mail.thread', 'mail.activity.mixin']
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
+ analyzed = fields.Boolean('Analysiert', default=False, tracking=True)
+ project_id = fields.Char(string='Projekt-ID',tracking=True)
+ project = fields.Many2one('dss.projects', string='Projekt', compute='_compute_project')
+ @api.depends('project_id')
+ def _compute_project(self):
+ self.project = False
+ for record in self:
+ if record.project_id:
+ project = self.env['dss.projects'].search([('projectid', '=', int(record.project_id))])
+ if project:
+ record.project = project
+
+ # ... andere Methoden ...
@api.model
def _default_uuid(self):
return str(uuid.uuid4())
diff --git a/models/dss_mailthreat.py b/models/dss_mailthreat.py
old mode 100644
new mode 100755
diff --git a/models/dss_marker.py b/models/dss_marker.py
old mode 100644
new mode 100755
diff --git a/models/dss_onlinestate.py b/models/dss_onlinestate.py
old mode 100644
new mode 100755
diff --git a/models/dss_projects.py b/models/dss_projects.py
index 690a198..25facb7 100755
--- a/models/dss_projects.py
+++ b/models/dss_projects.py
@@ -2,8 +2,9 @@ import ast
import datetime
import json
import re
-import uuid
+from .dsslogger import OdooCustomLogger
import logging
+import uuid
import base64
import subprocess
import tempfile
@@ -31,10 +32,14 @@ from tuya_connector import TuyaOpenAPI, TUYA_LOGGER
import sys
TUYA_LOGGER.setLevel(logging.DEBUG)
+
+logging.setLoggerClass(OdooCustomLogger)
_logger = logging.getLogger(__name__)
class dssprojects(models.Model):
+
+
_name = "dss.projects"
_description = "DigitalSignage Projekte"
_rec_name = "projektname"
diff --git a/models/dss_provision.py b/models/dss_provision.py
old mode 100644
new mode 100755
diff --git a/models/dss_provisionstypen.py b/models/dss_provisionstypen.py
old mode 100644
new mode 100755
diff --git a/models/dss_settings.py b/models/dss_settings.py
index 5374c42..0555be9 100755
--- a/models/dss_settings.py
+++ b/models/dss_settings.py
@@ -61,7 +61,8 @@ class dssSettings(models.Model):
rporturl = fields.Char('RPort URL',tracking=True)
rportusername = fields.Char('RPort Username',tracking=True)
rporttoken = fields.Char('RPort API Token',tracking=True)
-
+ showdebug = fields.Boolean('Debug',help='Debug Informationen aktivieren ',tracking=True)
+ m2mcron = fields.Many2one('ir.cron',string='M2M Cron',tracking=True)
def _get_settingvalue(self,valuename):
settings = (self.env['dss.settings'].search([],limit=1))
diff --git a/models/dss_trigger.py b/models/dss_trigger.py
old mode 100644
new mode 100755
index 52fa504..4108950
--- a/models/dss_trigger.py
+++ b/models/dss_trigger.py
@@ -138,91 +138,92 @@ class dsstriggergroups(models.Model):
def run_triggers(self, changes, Dataset, triggers):
_logger.info("Trigger in run_triggers ! - start count :"+str(len(triggers)) )
for trig in triggers:
- _logger.info("Trigger in run_triggers - Working on : "+str(trig.triggername)+'('+str(trig.id)+')')
- dochecktrigger = False
-
- if (changes == False):
- dochecktrigger = True
- elif (trig.triggertyp == "COND"):
- dochecktrigger = True
- else:
- if (trig.trigger_field.name in changes):
- dochecktrigger = True
-
- if (dochecktrigger):
- isinintitable = self.env['dss.triggermodel.execute'].search(['&',('trigger','=',trig.id),('data_uuid','=',Dataset.uuid)])
- dotrigger = False
- if (not isinintitable) and trig.trigger_init_trigger:
- _logger.info("Trigger in run_triggers - first run and allowed : "+str(isinintitable)+' -> '+str(trig.trigger_init_trigger)+' -> '+str(trig))
- dotrigger = True
- elif (not isinintitable) and ((not trig.trigger_init_trigger) and (not trig.trigger_onlyinit_trigger)):
- _logger.info("Trigger in run_triggers - first run but not allowed : "+str(isinintitable)+' -> '+str(trig.trigger_init_trigger)+' -> '+str(trig))
- dotrigger = False
- elif (isinintitable) and trig.trigger_onlyinit_trigger:
- _logger.info("Trigger in run_triggers - not first run but only first: "+str(isinintitable)+' -> '+str(trig.trigger_onlyinit_trigger)+' -> '+str(trig))
- dotrigger = False
+ if trig.trigger_active:
+ _logger.info("Trigger in run_triggers - Working on : "+str(trig.triggername)+'('+str(trig.id)+')')
+ dochecktrigger = False
+
+ if (changes == False):
+ dochecktrigger = True
+ elif (trig.triggertyp == "COND"):
+ dochecktrigger = True
else:
- _logger.info("Trigger in run_triggers - not first run but only first: "+str(isinintitable)+' -> '+str(trig))
- dotrigger = True
-
- if dotrigger:
- fieldname = trig.trigger_value_field.name
- _logger.info("Trigger in run_triggers - checking conditions : "+str(trig.triggertyp)+" field : "+str(fieldname)+' -> '+str(trig.trigger_value_field))
- if (trig.triggertyp == "FIELD_B"):
- Wert = Dataset[fieldname]
- _logger.info("Trigger in run_triggers - Boolean check : "+str(Dataset[fieldname])+" vs "+str(Wert)+' -> '+str(trig.trigger_value_Bool))
- if trig.trigger_value_Bool:
- if Wert:
- _logger.info("Trigger in run_triggers - value true - specific value found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value_Bool))
- dotrigger = True
- else:
- _logger.info("Trigger in run_triggers - value true - specific value not found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value_Bool))
- dotrigger = False
- else:
- if Wert:
- _logger.info("Trigger in run_triggers - value False - specific value found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value_Bool))
- dotrigger = False
- else:
- _logger.info("Trigger in run_triggers - value False - specific value not found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value_Bool))
- dotrigger = True
- elif (trig.triggertyp == "FIELD_S"):
- #Wert= self.env[trig.trigger_table.model].get(fieldname)
- WertDB = self.env[trig.trigger_table.model].search([('id', '=', Dataset.id)])
- field = WertDB._fields[fieldname]
- field_type = field.type
- Wert = ""
- if field_type=="many2one":
- Wert = str(Dataset[fieldname].id)
-# Dataset[fieldname].model
-# SubWertDB = self.env[].search([('id', '=', field.id)])
-# Wert = SubWertDB.id
- if field_type=="char":
- Wert = str(Dataset[fieldname])
- _logger.info("Trigger in run_triggers - specific value : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value)+' - '+str(field)+' / '+str(field_type))
- if (str(Wert) == str(trig.trigger_value)):
- _logger.info("Trigger in run_triggers - specific value found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value))
- dotrigger = True
- else:
- _logger.info("Trigger in run_triggers - specific value not found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value))
- dotrigger = False
- elif (trig.triggertyp == "FIELD_K"):
- dotrigger = False
- elif (trig.triggertyp == "MANUAL"):
- dotrigger = False
- elif (trig.triggertyp == "COND"):
+ if (trig.trigger_field.name in changes):
+ dochecktrigger = True
+
+ if (dochecktrigger):
+ isinintitable = self.env['dss.triggermodel.execute'].search(['&',('trigger','=',trig.id),('data_uuid','=',Dataset.uuid)])
+ dotrigger = False
+ if (not isinintitable) and trig.trigger_init_trigger:
+ _logger.info("Trigger in run_triggers - first run and allowed : "+str(isinintitable)+' -> '+str(trig.trigger_init_trigger)+' -> '+str(trig))
dotrigger = True
+ elif (not isinintitable) and ((not trig.trigger_init_trigger) and (not trig.trigger_onlyinit_trigger)):
+ _logger.info("Trigger in run_triggers - first run but not allowed : "+str(isinintitable)+' -> '+str(trig.trigger_init_trigger)+' -> '+str(trig))
+ dotrigger = False
+ elif (isinintitable) and trig.trigger_onlyinit_trigger:
+ _logger.info("Trigger in run_triggers - not first run but only first: "+str(isinintitable)+' -> '+str(trig.trigger_onlyinit_trigger)+' -> '+str(trig))
+ dotrigger = False
+ else:
+ _logger.info("Trigger in run_triggers - not first run but only first: "+str(isinintitable)+' -> '+str(trig))
+ dotrigger = True
+
+ if dotrigger:
+ fieldname = trig.trigger_value_field.name
+ _logger.info("Trigger in run_triggers - checking conditions : "+str(trig.triggertyp)+" field : "+str(fieldname)+' -> '+str(trig.trigger_value_field))
+ if (trig.triggertyp == "FIELD_B"):
+ Wert = Dataset[fieldname]
+ _logger.info("Trigger in run_triggers - Boolean check : "+str(Dataset[fieldname])+" vs "+str(Wert)+' -> '+str(trig.trigger_value_Bool))
+ if trig.trigger_value_Bool:
+ if Wert:
+ _logger.info("Trigger in run_triggers - value true - specific value found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value_Bool))
+ dotrigger = True
+ else:
+ _logger.info("Trigger in run_triggers - value true - specific value not found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value_Bool))
+ dotrigger = False
+ else:
+ if Wert:
+ _logger.info("Trigger in run_triggers - value False - specific value found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value_Bool))
+ dotrigger = False
+ else:
+ _logger.info("Trigger in run_triggers - value False - specific value not found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value_Bool))
+ dotrigger = True
+ elif (trig.triggertyp == "FIELD_S"):
+ #Wert= self.env[trig.trigger_table.model].get(fieldname)
+ WertDB = self.env[trig.trigger_table.model].search([('id', '=', Dataset.id)])
+ field = WertDB._fields[fieldname]
+ field_type = field.type
+ Wert = ""
+ if field_type=="many2one":
+ Wert = str(Dataset[fieldname].id)
+ # Dataset[fieldname].model
+ # SubWertDB = self.env[].search([('id', '=', field.id)])
+ # Wert = SubWertDB.id
+ if field_type=="char":
+ Wert = str(Dataset[fieldname])
+ _logger.info("Trigger in run_triggers - specific value : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value)+' - '+str(field)+' / '+str(field_type))
+ if (str(Wert) == str(trig.trigger_value)):
+ _logger.info("Trigger in run_triggers - specific value found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value))
+ dotrigger = True
+ else:
+ _logger.info("Trigger in run_triggers - specific value not found : "+str(changes)+" ("+str(Wert)+') -> '+str(trig.trigger_value))
+ dotrigger = False
+ elif (trig.triggertyp == "FIELD_K"):
+ dotrigger = False
+ elif (trig.triggertyp == "MANUAL"):
+ dotrigger = False
+ elif (trig.triggertyp == "COND"):
+ dotrigger = True
- if trig.trigger_plus_conditions and dotrigger:
- runtrigger = True
- for SingleC in trig.trigger_conditions:
- _logger.info("Trigger in run_triggers - Multible Conditions found "+str(trig.trigger_conditions)+' -> '+str(SingleC)+' -> '+str(runtrigger))
- runtrigger = SingleC.trigger_CheckCond(Dataset,SingleC) and runtrigger
- else:
- runtrigger = dotrigger
+ if trig.trigger_plus_conditions and dotrigger:
+ runtrigger = True
+ for SingleC in trig.trigger_conditions:
+ _logger.info("Trigger in run_triggers - Multible Conditions found "+str(trig.trigger_conditions)+' -> '+str(SingleC)+' -> '+str(runtrigger))
+ runtrigger = SingleC.trigger_CheckCond(Dataset,SingleC) and runtrigger
+ else:
+ runtrigger = dotrigger
- if runtrigger:
- execds = ''
- self.trigger_run(trig,Dataset,isinintitable,execds)
+ if runtrigger:
+ execds = ''
+ self.trigger_run(trig,Dataset,isinintitable,execds)
def trigger_run(self,trig,Dataset,isinintitable,execds):
for akt in trig.trigger_aktionen:
diff --git a/models/dss_triggerexecute.py b/models/dss_triggerexecute.py
old mode 100644
new mode 100755
diff --git a/models/dss_triggervalues.py b/models/dss_triggervalues.py
old mode 100644
new mode 100755
diff --git a/models/dss_web_contracts.py b/models/dss_web_contracts.py
old mode 100644
new mode 100755
diff --git a/models/dss_zahlungen.py b/models/dss_zahlungen.py
old mode 100644
new mode 100755
diff --git a/my_attendances.js b/my_attendances.js
old mode 100644
new mode 100755
diff --git a/res_partner.py b/res_partner.py
old mode 100644
new mode 100755
diff --git a/static/images/dsscalc.png b/static/images/dsscalc.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/google_map_templates.xml b/static/src/archiv/google_map_templates.xml
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/conv30.png b/static/src/archiv/lib/images/conv30.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/conv40.png b/static/src/archiv/lib/images/conv40.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/conv50.png b/static/src/archiv/lib/images/conv50.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/heart30.png b/static/src/archiv/lib/images/heart30.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/heart40.png b/static/src/archiv/lib/images/heart40.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/heart50.png b/static/src/archiv/lib/images/heart50.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/m1.png b/static/src/archiv/lib/images/m1.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/m2.png b/static/src/archiv/lib/images/m2.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/m3.png b/static/src/archiv/lib/images/m3.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/m4.png b/static/src/archiv/lib/images/m4.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/m5.png b/static/src/archiv/lib/images/m5.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/people35.png b/static/src/archiv/lib/images/people35.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/people45.png b/static/src/archiv/lib/images/people45.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/people55.png b/static/src/archiv/lib/images/people55.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/lib/images/pin.png b/static/src/archiv/lib/images/pin.png
old mode 100644
new mode 100755
diff --git a/static/src/archiv/screenDesignerView.js b/static/src/archiv/screenDesignerView.js
old mode 100644
new mode 100755
diff --git a/static/src/archiv/website_google_map.js b/static/src/archiv/website_google_map.js
old mode 100644
new mode 100755
diff --git a/static/src/css/screenDesignerView.css b/static/src/css/screenDesignerView.css
old mode 100644
new mode 100755
diff --git a/static/src/helpers/img/pat-blue.jpg b/static/src/helpers/img/pat-blue.jpg
old mode 100644
new mode 100755
diff --git a/static/src/helpers/img/pat-orange.jpg b/static/src/helpers/img/pat-orange.jpg
old mode 100644
new mode 100755
diff --git a/static/src/helpers/img/pat-red.jpg b/static/src/helpers/img/pat-red.jpg
old mode 100644
new mode 100755
diff --git a/static/src/helpers/img/pat-yellow.jpg b/static/src/helpers/img/pat-yellow.jpg
old mode 100644
new mode 100755
diff --git a/static/src/helpers/v2/app.js b/static/src/helpers/v2/app.js
old mode 100644
new mode 100755
diff --git a/static/src/helpers/v2/img-front/calendar-270x150.png b/static/src/helpers/v2/img-front/calendar-270x150.png
old mode 100644
new mode 100755
diff --git a/static/src/helpers/v2/img-front/month-270x150.png b/static/src/helpers/v2/img-front/month-270x150.png
old mode 100644
new mode 100755
diff --git a/static/src/helpers/v2/img-front/scheduler-270x150.png b/static/src/helpers/v2/img-front/scheduler-270x150.png
old mode 100644
new mode 100755
diff --git a/static/src/helpers/v2/main.css b/static/src/helpers/v2/main.css
old mode 100644
new mode 100755
diff --git a/static/src/helpers/v2/reporter.js b/static/src/helpers/v2/reporter.js
old mode 100644
new mode 100755
diff --git a/static/src/img/calendar.png b/static/src/img/calendar.png
old mode 100644
new mode 100755
diff --git a/static/src/img/calendar_rf.png b/static/src/img/calendar_rf.png
old mode 100644
new mode 100755
diff --git a/static/src/img/conv30.png b/static/src/img/conv30.png
old mode 100644
new mode 100755
diff --git a/static/src/img/conv40.png b/static/src/img/conv40.png
old mode 100644
new mode 100755
diff --git a/static/src/img/conv50.png b/static/src/img/conv50.png
old mode 100644
new mode 100755
diff --git a/static/src/img/dsscalc.png b/static/src/img/dsscalc.png
old mode 100644
new mode 100755
diff --git a/static/src/img/heart30.png b/static/src/img/heart30.png
old mode 100644
new mode 100755
diff --git a/static/src/img/heart40.png b/static/src/img/heart40.png
old mode 100644
new mode 100755
diff --git a/static/src/img/heart50.png b/static/src/img/heart50.png
old mode 100644
new mode 100755
diff --git a/static/src/img/img_107_b.jpg b/static/src/img/img_107_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_107_b_2.jpg b/static/src/img/img_107_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_108_b.jpg b/static/src/img/img_108_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_108_b_2.jpg b/static/src/img/img_108_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_108_b_3.jpg b/static/src/img/img_108_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_113_b.jpg b/static/src/img/img_113_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_113_b_2.jpg b/static/src/img/img_113_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_113_b_3.jpg b/static/src/img/img_113_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_115_b.jpg b/static/src/img/img_115_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_117_b.jpg b/static/src/img/img_117_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_119_b.jpg b/static/src/img/img_119_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_119_b_2.jpg b/static/src/img/img_119_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_119_b_3.jpg b/static/src/img/img_119_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_121_b.jpg b/static/src/img/img_121_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_134_b.jpg b/static/src/img/img_134_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_134_b_2.jpg b/static/src/img/img_134_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_134_b_3.jpg b/static/src/img/img_134_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_135_b.jpg b/static/src/img/img_135_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_137_b.jpg b/static/src/img/img_137_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_137_b_2.jpg b/static/src/img/img_137_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_137_b_3.jpg b/static/src/img/img_137_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_138_b.jpg b/static/src/img/img_138_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_138_b_2.jpg b/static/src/img/img_138_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_138_b_3.jpg b/static/src/img/img_138_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_146_b.jpg b/static/src/img/img_146_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_146_b_2.jpg b/static/src/img/img_146_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_146_b_3.jpg b/static/src/img/img_146_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_14_b.jpg b/static/src/img/img_14_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_14_b_2.jpg b/static/src/img/img_14_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_14_b_3.jpg b/static/src/img/img_14_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_150_b.jpg b/static/src/img/img_150_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_150_b_2.jpg b/static/src/img/img_150_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_150_b_3.jpg b/static/src/img/img_150_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_151_b.jpg b/static/src/img/img_151_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_151_b_2.jpg b/static/src/img/img_151_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_151_b_3.jpg b/static/src/img/img_151_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_15_b.jpg b/static/src/img/img_15_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_17_b.jpg b/static/src/img/img_17_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_18_b.jpg b/static/src/img/img_18_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_197_b.jpg b/static/src/img/img_197_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_197_b_2.jpg b/static/src/img/img_197_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_197_b_3.jpg b/static/src/img/img_197_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_198_b.jpg b/static/src/img/img_198_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_198_b_2.jpg b/static/src/img/img_198_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_198_b_3.jpg b/static/src/img/img_198_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_19_b.jpg b/static/src/img/img_19_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_19_b_2.jpg b/static/src/img/img_19_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_19_b_3.jpg b/static/src/img/img_19_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_21_b.jpg b/static/src/img/img_21_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_21_b_2.jpg b/static/src/img/img_21_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_21_b_3.jpg b/static/src/img/img_21_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_4_b.jpg b/static/src/img/img_4_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_4_b_2.jpg b/static/src/img/img_4_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_5_b.jpg b/static/src/img/img_5_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_62_b.jpg b/static/src/img/img_62_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_62_b_2.jpg b/static/src/img/img_62_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_62_b_3.jpg b/static/src/img/img_62_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_63_b.jpg b/static/src/img/img_63_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_63_b_2.jpg b/static/src/img/img_63_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_63_b_3.jpg b/static/src/img/img_63_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_65_b.jpg b/static/src/img/img_65_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_65_b_2.jpg b/static/src/img/img_65_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_65_b_3.jpg b/static/src/img/img_65_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_66_b.jpg b/static/src/img/img_66_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_66_b_2.jpg b/static/src/img/img_66_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_66_b_3.jpg b/static/src/img/img_66_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_67_b.jpg b/static/src/img/img_67_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_68_b.jpg b/static/src/img/img_68_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_69_b.jpg b/static/src/img/img_69_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_70_b.jpg b/static/src/img/img_70_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_70_b_2.jpg b/static/src/img/img_70_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_71_b.jpg b/static/src/img/img_71_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_72_b.jpg b/static/src/img/img_72_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_72_b_2.jpg b/static/src/img/img_72_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_72_b_3.jpg b/static/src/img/img_72_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_73_b.jpg b/static/src/img/img_73_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_74_b.jpg b/static/src/img/img_74_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_74_b_2.jpg b/static/src/img/img_74_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_74_b_3.jpg b/static/src/img/img_74_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_76_b.jpg b/static/src/img/img_76_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_77_b.jpg b/static/src/img/img_77_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_78_b.jpg b/static/src/img/img_78_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_79_b.jpg b/static/src/img/img_79_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_79_b_2.jpg b/static/src/img/img_79_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_79_b_3.jpg b/static/src/img/img_79_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_81_b.jpg b/static/src/img/img_81_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_81_b_2.jpg b/static/src/img/img_81_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_81_b_3.jpg b/static/src/img/img_81_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_83_b.jpg b/static/src/img/img_83_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_84_b.jpg b/static/src/img/img_84_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_85_b.jpg b/static/src/img/img_85_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_86_b.jpg b/static/src/img/img_86_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_87_b.jpg b/static/src/img/img_87_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_88_b.jpg b/static/src/img/img_88_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_90_b.jpg b/static/src/img/img_90_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_90_b_2.jpg b/static/src/img/img_90_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_90_b_3.jpg b/static/src/img/img_90_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_91_b.jpg b/static/src/img/img_91_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_92_b.jpg b/static/src/img/img_92_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_92_b_3.jpg b/static/src/img/img_92_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_93_b.jpg b/static/src/img/img_93_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_94_b.jpg b/static/src/img/img_94_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_94_b_2.jpg b/static/src/img/img_94_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_94_b_3.jpg b/static/src/img/img_94_b_3.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_95_b.jpg b/static/src/img/img_95_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_96_b.jpg b/static/src/img/img_96_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_97_b.jpg b/static/src/img/img_97_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_98_b.jpg b/static/src/img/img_98_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_98_b_2.jpg b/static/src/img/img_98_b_2.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/img_99_b.jpg b/static/src/img/img_99_b.jpg
old mode 100644
new mode 100755
diff --git a/static/src/img/m0.png b/static/src/img/m0.png
old mode 100644
new mode 100755
diff --git a/static/src/img/m1.png b/static/src/img/m1.png
old mode 100644
new mode 100755
diff --git a/static/src/img/m2.png b/static/src/img/m2.png
old mode 100644
new mode 100755
diff --git a/static/src/img/m3.png b/static/src/img/m3.png
old mode 100644
new mode 100755
diff --git a/static/src/img/m4.png b/static/src/img/m4.png
old mode 100644
new mode 100755
diff --git a/static/src/img/m5.png b/static/src/img/m5.png
old mode 100644
new mode 100755
diff --git a/static/src/img/partners.png b/static/src/img/partners.png
old mode 100644
new mode 100755
diff --git a/static/src/img/people35.png b/static/src/img/people35.png
old mode 100644
new mode 100755
diff --git a/static/src/img/people45.png b/static/src/img/people45.png
old mode 100644
new mode 100755
diff --git a/static/src/img/people55.png b/static/src/img/people55.png
old mode 100644
new mode 100755
diff --git a/static/src/img/pin.png b/static/src/img/pin.png
old mode 100644
new mode 100755
diff --git a/static/src/img/pin2.png b/static/src/img/pin2.png
old mode 100644
new mode 100755
diff --git a/static/src/img/pin_display.png b/static/src/img/pin_display.png
old mode 100644
new mode 100755
diff --git a/static/src/img/pin_display_touch.png b/static/src/img/pin_display_touch.png
old mode 100644
new mode 100755
diff --git a/static/src/img/pin_led.png b/static/src/img/pin_led.png
old mode 100644
new mode 100755
diff --git a/static/src/js/daypilot-all.min.d.ts b/static/src/js/daypilot-all.min.d.ts
old mode 100644
new mode 100755
diff --git a/static/src/js/daypilot-all.min.js b/static/src/js/daypilot-all.min.js
old mode 100644
new mode 100755
diff --git a/static/src/js/daypilot-all.src.js b/static/src/js/daypilot-all.src.js
old mode 100644
new mode 100755
diff --git a/static/src/js/draggable_table_new.js b/static/src/js/draggable_table_new.js
old mode 100644
new mode 100755
diff --git a/static/src/js/dss_google_map.js b/static/src/js/dss_google_map.js
old mode 100644
new mode 100755
diff --git a/static/src/js/dss_screenview_archparser.js b/static/src/js/dss_screenview_archparser.js
old mode 100644
new mode 100755
diff --git a/static/src/js/dss_screenview_controller.js b/static/src/js/dss_screenview_controller.js
old mode 100644
new mode 100755
diff --git a/static/src/js/dss_screenview_model.js b/static/src/js/dss_screenview_model.js
old mode 100644
new mode 100755
diff --git a/static/src/js/dss_screenview_register.js b/static/src/js/dss_screenview_register.js
old mode 100644
new mode 100755
diff --git a/static/src/js/dss_screenview_renderer.js b/static/src/js/dss_screenview_renderer.js
old mode 100644
new mode 100755
diff --git a/static/src/js/form_button.js b/static/src/js/form_button.js
old mode 100644
new mode 100755
diff --git a/static/src/js/form_compiler.js b/static/src/js/form_compiler.js
old mode 100644
new mode 100755
diff --git a/static/src/js/form_label.js b/static/src/js/form_label.js
old mode 100644
new mode 100755
diff --git a/static/src/js/kanban_button.js b/static/src/js/kanban_button.js
old mode 100644
new mode 100755
diff --git a/static/src/js/screenDesignerView.js b/static/src/js/screenDesignerView.js
old mode 100644
new mode 100755
diff --git a/static/src/js/src/daypilot-calendar.src.js b/static/src/js/src/daypilot-calendar.src.js
old mode 100644
new mode 100755
diff --git a/static/src/js/src/daypilot-common.src.js b/static/src/js/src/daypilot-common.src.js
old mode 100644
new mode 100755
diff --git a/static/src/js/src/daypilot-datepicker.src.js b/static/src/js/src/daypilot-datepicker.src.js
old mode 100644
new mode 100755
diff --git a/static/src/js/src/daypilot-menu.src.js b/static/src/js/src/daypilot-menu.src.js
old mode 100644
new mode 100755
diff --git a/static/src/js/src/daypilot-modal.src.js b/static/src/js/src/daypilot-modal.src.js
old mode 100644
new mode 100755
diff --git a/static/src/js/src/daypilot-month.src.js b/static/src/js/src/daypilot-month.src.js
old mode 100644
new mode 100755
diff --git a/static/src/js/src/daypilot-navigator.src.js b/static/src/js/src/daypilot-navigator.src.js
old mode 100644
new mode 100755
diff --git a/static/src/js/website_form_editor.js b/static/src/js/website_form_editor.js
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/conv30.png b/static/src/lib/images/conv30.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/conv40.png b/static/src/lib/images/conv40.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/conv50.png b/static/src/lib/images/conv50.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/heart30.png b/static/src/lib/images/heart30.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/heart40.png b/static/src/lib/images/heart40.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/heart50.png b/static/src/lib/images/heart50.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/m1.png b/static/src/lib/images/m1.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/m2.png b/static/src/lib/images/m2.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/m3.png b/static/src/lib/images/m3.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/m4.png b/static/src/lib/images/m4.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/m5.png b/static/src/lib/images/m5.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/people35.png b/static/src/lib/images/people35.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/people45.png b/static/src/lib/images/people45.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/people55.png b/static/src/lib/images/people55.png
old mode 100644
new mode 100755
diff --git a/static/src/lib/images/pin.png b/static/src/lib/images/pin.png
old mode 100644
new mode 100755
diff --git a/static/src/xml/dss_screenview_controller.xml b/static/src/xml/dss_screenview_controller.xml
old mode 100644
new mode 100755
diff --git a/static/src/xml/dss_screenview_renderer.xml b/static/src/xml/dss_screenview_renderer.xml
old mode 100644
new mode 100755
diff --git a/static/src/xml/form_button.xml b/static/src/xml/form_button.xml
old mode 100644
new mode 100755
diff --git a/static/src/xml/form_label.xml b/static/src/xml/form_label.xml
old mode 100644
new mode 100755
diff --git a/static/src/xml/list_renderer.xml b/static/src/xml/list_renderer.xml
old mode 100644
new mode 100755
diff --git a/static/src/xml/screenDesignerView.xml b/static/src/xml/screenDesignerView.xml
old mode 100644
new mode 100755
diff --git a/views/dss_dialog.xml b/views/dss_dialog.xml
old mode 100644
new mode 100755
diff --git a/views/dss_eventdays.xml b/views/dss_eventdays.xml
old mode 100644
new mode 100755
diff --git a/views/dss_importinvoicelist.xml b/views/dss_importinvoicelist.xml
old mode 100644
new mode 100755
diff --git a/views/dss_invoices.xml b/views/dss_invoices.xml
old mode 100644
new mode 100755
diff --git a/views/dss_m2mmail.xml b/views/dss_m2mmail.xml
deleted file mode 100644
index b1fad67..0000000
--- a/views/dss_m2mmail.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
- DigitalSignage Alle M2M Nachrichten
- ir.actions.act_window
- dss.m2mmail
- tree,form
-
-
- No Contracts/Clients found. Let's create one!
-
-
- Keep track of the progress of your contracts from creation to completion.
- Collaborate efficiently by chatting in real-time or via email.
-
-
-
-
-
-
- dss_m2mmail_tree
- dss.m2mmail
-
-
-
-
-
-
-
-
-
- dss_main_m2mmail_form
- dss.m2mmail
-
-
-
-
-
-
-
diff --git a/views/dss_marker.xml b/views/dss_marker.xml
old mode 100644
new mode 100755
diff --git a/views/dss_onlinestate.xml b/views/dss_onlinestate.xml
old mode 100644
new mode 100755
diff --git a/views/dss_report_invoice.xml b/views/dss_report_invoice.xml
old mode 100644
new mode 100755
diff --git a/views/dss_screendesign.xml b/views/dss_screendesign.xml
old mode 100644
new mode 100755
diff --git a/views/dss_settings.xml b/views/dss_settings.xml
index 1a82ec4..0430047 100755
--- a/views/dss_settings.xml
+++ b/views/dss_settings.xml
@@ -89,6 +89,13 @@
+
+
+
+
+
+
+
@@ -103,6 +110,9 @@
+
+
+
diff --git a/views/dss_trigger_action_groups.xml b/views/dss_trigger_action_groups.xml
old mode 100644
new mode 100755
diff --git a/views/dss_trigger_groups.xml b/views/dss_trigger_groups.xml
old mode 100644
new mode 100755
diff --git a/views/dss_webcalendar.xml b/views/dss_webcalendar.xml
old mode 100644
new mode 100755
diff --git a/views/dss_zahlungen.xml b/views/dss_zahlungen.xml
old mode 100644
new mode 100755
diff --git a/views/google_map.xml b/views/google_map.xml
old mode 100644
new mode 100755