Event¶
- 
class connector.event.Event[source]¶
- Bases: - object- An event contains consumers called when the event is fired. - The events are able to filter the consumers to execute by model name. - The usage of an event is to instantiate an Event object: - on_my_event = Event() - An event always have at least the 2 following arguments: - session
- model_name
 - Then to subscribe one or more consumers, an event has a function: - def do_something(session, model_name, a, b): print "Event was fired with arguments: %s, %s" % (a, b) # active on all models on_my_event.subscribe(do_something) def do_something_product(session, model_name, a, b): print ("Event was fired on a product " "with arguments: %s, %s" % (a, b)) # active only on product.product on_my_event.subscribe(do_something_product, model_names='product.product') - We can also replace a consumer: - def do_something_product2(session, model_name, a, b): print "Consumer 2" print ("Event was fired on a product " "with arguments: %s, %s" % (a, b)) on_my_event.subscribe(do_something_product2, replacing=do_something_product) - Finally, we fire the event: - on_my_event.fire(session, 'res.users', 'value_a', 'value_b') - A consumer can be subscribed using a decorator: - @on_my_event def do_other_thing(session, model_name, a, b): print 'foo' @on_my_event(replacing=do_other_thing) def print_bar(session, model_name, a, b): print 'bar' - 
fire(session, model_name, *args, **kwargs)[source]¶
- Call each consumer subscribed on the event with the given arguments and keyword arguments. - All the consumers which were subscribed globally (no model name) or which are subscribed on the same model - Parameters: - session (connector.session.Session) – current session
- model_name (str) – name of the model
- args – arguments propagated to the consumer The second argument of args is the model name. The first argument is the session.
- kwargs – keyword arguments propagated to the consumer
 
- session (
 - 
has_consumer_for(session, model_name)[source]¶
- Return True if at least one consumer is registered for the model. 
 - 
subscribe(consumer, model_names=None, replacing=None)[source]¶
- Subscribe a consumer on the event - Parameters: - consumer – the function to register on the event
- model_names – the consumer will be active only on these models,
active on all models if None
- replacing – the function beeing replaced by this new one.
 
 
- 
connector.event.on_record_create= <connector.event.Event object>¶
- on_record_createis fired when one record has been created.- Listeners should take the following arguments: - session: ConnectorSessionobject
- model_name: name of the model
- record_id: id of the created record
- vals: field values updated, e.g {‘field_name’: field_value, …}
 
- session: 
- 
connector.event.on_record_unlink= <connector.event.Event object>¶
- on_record_unlinkis fired when one record has been deleted.- Listeners should take the following arguments: - session: ConnectorSessionobject
- model_name: name of the model
- record_id: id of the record
 
- session: 
- 
connector.event.on_record_write= <connector.event.Event object>¶
- on_record_writeis fired when one record has been updated.- Listeners should take the following arguments: - session: ConnectorSessionobject
- model_name: name of the model
- record_id: id of the record
- vals: field values of the new record, e.g {‘field_name’: field_value, …}
 
- session: