Transport 1
This commit is contained in:
Regular → Executable
+82
-81
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user