Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More
Signals overview¶
Lino defines a few additional Django signals.
Each signal is an instance of django.dispatch.Signal stored in
lino.core.signals.
Startup signals¶
- lino.core.signals.pre_startup¶
- lino.core.signals.post_startup¶
Sent exactly once per process at site startup, just before any application-specific startup actions.
sender: the
lino.core.site.Siteinstance
- lino.core.signals.pre_analyze¶
Sent exactly once per process at site startup, just before Lino analyzes the models.
sender: the
lino.core.site.Siteinstancemodels_list list of models
- lino.core.signals.post_analyze¶
Sent exactly once per process at site startup, just after Site has finished to analyze the models.
- lino.core.signals.pre_ui_build¶
- lino.core.signals.post_ui_build¶
Database signals¶
- lino.core.signals.database_connected¶
No longer used.
- lino.core.signals.testcase_setup¶
Emitted each time lino.core.utils.TestCase.setUp is called. Lino uses this signal to reset its SiteConfig cache.
It is necessary because (afaics) the Django test runner doesn’t send a ‘connected’ signal when it restores the database to a virgin state before running a new test case.
Row-level signals¶
- lino.core.signals.on_ui_created¶
Sent when a new model instance has been created and saved.
- lino.core.signals.pre_ui_delete¶
Sent just before a model instance is being deleted using the user interface.
request: The HttpRequest object
- lino.core.signals.pre_ui_save¶
Sent before a database object gets saved using the web user interface.
sender the database model
instance the database object which is going to be saved.
ar the action request
- lino.core.signals.on_ui_updated¶
Sent when a database model instance has been modified and saved using the web interface.
A receiver of this signal gets the following keyword parameters:
- Sender:
the database model of the instance which has been updated
- Watcher:
the
ChangeWatcherobject (which contains the model instance and information about the changes)- Request:
the BaseRequest object
- lino.core.signals.pre_merge¶
Sent when a model instance is being merged into another instance.
- lino.core.signals.auto_create¶
The
auto_createsignal is sent whenlookup_or_createsilently created a model instance.Arguments sent with this signal:
sender: The model instance that has been created.field: The database fieldknown_values: The specified known values
- lino.core.signals.pre_remove_child¶
- lino.core.signals.pre_add_child¶
Sent when an MTI child has been added. Arguments to the handler are:
sender : the parent (a database object instance)
request : the HttpRequest which asks to create an MTI child
child : the child model (a class object)
Test-specific signals¶
testcase_setupFired inlino.utils.djangotest.TestCase.setUp(), i.e. at the beginning of each test case.
Runtime signals:
pre_ui_createpre_ui_update
Utilities:
ChangeWatcherreceiver: the standard Django receiver decorator
lino.ui.models also defines a handler which will fire
the database_connected signal
and call the lino.ui.site.clear_site_config()
method on each of the following signals:
testcase_setup
connection_created
post_syncdb