Available signals

ephios.core.signals.event_action = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get a list of actions that a user can perform on a single event. The actions are displayed in the dropdown menu on the event detail view. Receivers receive a event and request keyword argument. Each action is represented by a dict with the keys url, label and icon.

ephios.core.signals.event_forms = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get a list of form instances to show on the event create and update views. You receive an Optional[event] and request keyword arg you should use to create an instance of your form. Subclass ephios.core.forms.events.BasePluginFormMixin to customize the rendering behavior. If all forms are valid, save will be called on your form.

ephios.core.signals.event_info = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get additional information to display in the general section of the event detail view. Receivers will receive an event and request keyword arg to generate the information. Receivers should return html that is added below the event description.

This signal is sent out to get links for that page footer. Receivers should return a dict of with keys being the text and values being the url to link to. Receivers will receive a request keyword argument.

ephios.core.signals.homepage_info = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get additional information to display on the homepage. Receivers receive a request keyword argument. Receivers should return html that will be rendered inside a card.

ephios.core.signals.html_head = <ephios.core.plugins.PluginSignal object>

This signal allows you to put code inside the HTML <head> tag of every page. You will get the request as the keyword argument request and are expected to return HTML.

ephios.core.signals.management_settings_sections = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get sections for management settings. Receivers should return a list of dicts containing key-value-pairs for ‘label’, ‘url’ and a boolean flag ‘active’. Only views that the current user is allowed to view should be returned. Receivers will receive a request keyword argument.

This signal is sent out to get links for the main navbar. Receivers should return a list of dicts containing key-value-pairs for ‘label’, ‘url’ and a boolean flag ‘active’. An optional key ‘group’ can contain a label for a group under which the link should be displayed. Receivers will receive a request keyword argument.

ephios.core.signals.participant_from_request = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get a participant from a request with an unauthenticated user. Return a subclass of AbstractParticipant or None if you cannot provide a participant. The first non-None return-value will be used. Receivers will receive a request keyword argument.

ephios.core.signals.participant_signup_checkers = <ephios.core.plugins.PluginSignal object>

This signal is sent out so receivers can prevent signup for a shift or provide feedback for dispatchers. Receivers are expected to return a list of functions receiving a method and participant argument and optionally raising fitting subclasses of ephios.core.signup.checkers.SignupActionError.

ephios.core.signals.participation_finished = <ephios.core.plugins.PluginSignal object>

This signal is sent out once for every confirmed participation after the participation ended and the finished flag is set to True. Changing the shift date to the future will not cause this to be called again. Exceptions in receivers are ignored, so make sure your code is robust enough to handle errors and retry if needed. This signal is based on periodic_signal and provides a participation keyword argument.

ephios.core.signals.periodic_signal = <ephios.core.plugins.PluginSignal object>

This signal is called periodically, at least every 15 minutes.

ephios.core.signals.register_consequence_handlers = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get all known consequence handlers. Receivers should return a list of subclasses of ephios.core.consequences.BaseConsequenceHandler.

ephios.core.signals.register_event_bulk_action = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get a list of actions that a user can perform on a list of events. Receivers should return a list of actions. Each action is represented by a dict with the keys url, label and icon. Once the user wants to perform the action, a POST request will be issued to this URL. The bulk_action field will contain a list of event ids on which the action should be performed.

ephios.core.signals.register_group_permission_fields = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get a list of permission fields that should be displayed on the group form. Receivers should return a list of tuples of the form (field_name, field). field must be an instance of ephios.extra.permissions.PermissionField.

ephios.core.signals.register_healthchecks = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get all health checks that can be run to monitor the health of the application. Receivers should return a list of subclasses of ephios.core.services.health.AbstractHealthCheck

ephios.core.signals.register_notification_backends = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get all backends that can handle sending out notifications. Receivers should return a list of subclasses of ephios.core.notifications.backends.AbstractNotificationBackend

ephios.core.signals.register_notification_types = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get all notification types that can be sent out to a user or participant. Receivers should return a list of subclasses of ephios.core.notifications.types.AbstractNotificationHandler

ephios.core.signals.register_shift_structures = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get all known shift structures. Receivers should return a list of subclasses of ephios.core.signup.structure.abstract.AbstractShiftStructure.

ephios.core.signals.register_signup_flows = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get all known signup flows. Receivers should return a list of subclasses of ephios.core.signup.flow.abstract.AbstractSignupFlow.

ephios.core.signals.shift_forms = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get a list of form instances to show on the shift create and update views. You receive a shift and request keyword arg you should use to create an instance of your form. Subclass ephios.core.forms.events.BasePluginFormMixin to customize the rendering behavior. If all forms are valid, save will be called on your form.

ephios.core.signals.shift_info = <ephios.core.plugins.PluginSignal object>

This signal is sent out to get additional information to display in the shift box of the event detail view. Receivers will receive a shift and request keyword arg to generate the information. Receivers should return html that is added below the participations.