Example #1
0
	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])
Example #2
0
    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])
Example #3
0
	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)
Example #4
0
    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)