def delete_trigger (cls, object_key, trigger_condition, field_value): object_triggers = cls.get_object_triggers (object_key) if object_triggers != None: idx = None for id in object_triggers: if cls.__triggers[id].condition == trigger_condition: idx = id if idx != None: ConditionProvider.deactivate_trigger (idx) cls.__triggers.pop (idx) del (cls.__object_triggers[object_key])
def delete_trigger(cls, object_key, trigger_condition, field_value): object_triggers = cls.get_object_triggers(object_key) if object_triggers != None: idx = None for id in object_triggers: if cls.__triggers[id].condition == trigger_condition: idx = id if idx != None: ConditionProvider.deactivate_trigger(idx) cls.__triggers.pop(idx) del (cls.__object_triggers[object_key])
def process_object_triggers (cls, object_key, object_value): deferred_activation = [] object_triggers = cls.get_object_triggers (object_key) if object_triggers != None: for id in object_triggers: activate = False if cls.__triggers[id].condition == "": activate = True elif cls.__triggers[id].condition == "==": if str (object_value) == str (cls.__triggers[id].value): activate = True elif cls.__triggers[id].condition == "!=": if str (object_value) != str (cls.__triggers[id].value): activate = True elif cls.__triggers[id].condition == ">=": if object_value >= cls.__triggers[id].value: activate = True elif cls.__triggers[id].condition == "<=": if object_value <= cls.__triggers[id].value: activate = True elif cls.__triggers[id].condition == ">": if object_value > cls.__triggers[id].value: activate = True elif cls.__triggers[id].condition == "<": if object_value < cls.__triggers[id].value: activate = True if activate == True: if cls.__triggers[id].type == TriggerType.on_change: if cls.__triggers[id].active == True: cls.__triggers[id].active = False #print "D", cls.__triggers[id].condition, cls.__triggers[id].value ConditionProvider.deactivate_trigger (id) deferred_activation.append (id) else: #print "deact", object_key, cls.__triggers[id].condition, cls.__triggers[id].value, object_value if cls.__triggers[id].active == True: #print "D", cls.__triggers[id].condition, cls.__triggers[id].value cls.__triggers[id].active = False n = cls.__activated_triggers.count (id) if n != 0: cls.__activated_triggers.remove (id) ConditionProvider.deactivate_trigger (id) for id in deferred_activation: #print "act", object_key, cls.__triggers[id].condition, cls.__triggers[id].value, object_value if cls.__triggers[id].active == False: cls.__triggers[id].active = True cls.__activated_triggers.append (id) ConditionProvider.activate_trigger (id)
def process_object_triggers(cls, object_key, object_value): deferred_activation = [] object_triggers = cls.get_object_triggers(object_key) if object_triggers != None: for id in object_triggers: activate = False if cls.__triggers[id].condition == "": activate = True elif cls.__triggers[id].condition == "==": if str(object_value) == str(cls.__triggers[id].value): activate = True elif cls.__triggers[id].condition == "!=": if str(object_value) != str(cls.__triggers[id].value): activate = True elif cls.__triggers[id].condition == ">=": if object_value >= cls.__triggers[id].value: activate = True elif cls.__triggers[id].condition == "<=": if object_value <= cls.__triggers[id].value: activate = True elif cls.__triggers[id].condition == ">": if object_value > cls.__triggers[id].value: activate = True elif cls.__triggers[id].condition == "<": if object_value < cls.__triggers[id].value: activate = True if activate == True: if cls.__triggers[id].type == TriggerType.on_change: if cls.__triggers[id].active == True: cls.__triggers[id].active = False #print "D", cls.__triggers[id].condition, cls.__triggers[id].value ConditionProvider.deactivate_trigger(id) deferred_activation.append(id) else: #print "deact", object_key, cls.__triggers[id].condition, cls.__triggers[id].value, object_value if cls.__triggers[id].active == True: #print "D", cls.__triggers[id].condition, cls.__triggers[id].value cls.__triggers[id].active = False n = cls.__activated_triggers.count(id) if n != 0: cls.__activated_triggers.remove(id) ConditionProvider.deactivate_trigger(id) for id in deferred_activation: #print "act", object_key, cls.__triggers[id].condition, cls.__triggers[id].value, object_value if cls.__triggers[id].active == False: cls.__triggers[id].active = True cls.__activated_triggers.append(id) ConditionProvider.activate_trigger(id)