#16886: Rename Event to EventType

This commit is contained in:
Jeremy Stretch 2024-07-31 15:39:05 -04:00
parent 5cfa2bb561
commit d1e16013f0
6 changed files with 45 additions and 45 deletions

View File

@ -4,12 +4,12 @@ Plugins can register their own custom event types for use with NetBox [event rul
```python ```python
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from netbox.events import Event, EVENT_TYPE_SUCCESS from netbox.events import EventType, EVENT_TYPE_KIND_SUCCESS
Event( EventType(
name='ticket_opened', name='ticket_opened',
text=_('Ticket opened'), text=_('Ticket opened'),
type=EVENT_TYPE_SUCCESS type=EVENT_TYPE_KIND_SUCCESS
).register() ).register()
``` ```

View File

@ -1,6 +1,6 @@
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from netbox.events import Event, EVENT_TYPE_DANGER, EVENT_TYPE_SUCCESS, EVENT_TYPE_WARNING from netbox.events import EventType, EVENT_TYPE_KIND_DANGER, EVENT_TYPE_KIND_SUCCESS, EVENT_TYPE_KIND_WARNING
__all__ = ( __all__ = (
'JOB_COMPLETED', 'JOB_COMPLETED',
@ -24,10 +24,10 @@ JOB_FAILED = 'job_failed'
JOB_ERRORED = 'job_errored' JOB_ERRORED = 'job_errored'
# Register core events # Register core events
Event(OBJECT_CREATED, _('Object created')).register() EventType(OBJECT_CREATED, _('Object created')).register()
Event(OBJECT_UPDATED, _('Object updated')).register() EventType(OBJECT_UPDATED, _('Object updated')).register()
Event(OBJECT_DELETED, _('Object deleted')).register() EventType(OBJECT_DELETED, _('Object deleted')).register()
Event(JOB_STARTED, _('Job started')).register() EventType(JOB_STARTED, _('Job started')).register()
Event(JOB_COMPLETED, _('Job completed'), type=EVENT_TYPE_SUCCESS).register() EventType(JOB_COMPLETED, _('Job completed'), kind=EVENT_TYPE_KIND_SUCCESS).register()
Event(JOB_FAILED, _('Job failed'), type=EVENT_TYPE_WARNING).register() EventType(JOB_FAILED, _('Job failed'), kind=EVENT_TYPE_KIND_WARNING).register()
Event(JOB_ERRORED, _('Job errored'), type=EVENT_TYPE_DANGER).register() EventType(JOB_ERRORED, _('Job errored'), kind=EVENT_TYPE_KIND_DANGER).register()

View File

@ -27,7 +27,7 @@ def get_event_type_choices():
""" """
return [ return [
(name, event.text) (name, event.text)
for name, event in registry['events'].items() for name, event in registry['event_types'].items()
] ]
@ -102,7 +102,7 @@ class Notification(models.Model):
""" """
Returns the registered Event which triggered this Notification. Returns the registered Event which triggered this Notification.
""" """
return registry['events'].get(self.event_type) return registry['event_types'].get(self.event_type)
class NotificationGroup(ChangeLoggedModel): class NotificationGroup(ChangeLoggedModel):

View File

@ -554,7 +554,7 @@ class EventRuleView(generic.ObjectView):
def get_extra_context(self, request, instance): def get_extra_context(self, request, instance):
return { return {
'event_types': [ 'event_types': [
event for name, event in registry['events'].items() event for name, event in registry['event_types'].items()
if name in instance.event_types if name in instance.event_types
] ]
} }

View File

@ -2,41 +2,41 @@ from dataclasses import dataclass
from netbox.registry import registry from netbox.registry import registry
EVENT_TYPE_INFO = 'info' EVENT_TYPE_KIND_INFO = 'info'
EVENT_TYPE_SUCCESS = 'success' EVENT_TYPE_KIND_SUCCESS = 'success'
EVENT_TYPE_WARNING = 'warning' EVENT_TYPE_KIND_WARNING = 'warning'
EVENT_TYPE_DANGER = 'danger' EVENT_TYPE_KIND_DANGER = 'danger'
__all__ = ( __all__ = (
'EVENT_TYPE_DANGER', 'EVENT_TYPE_KIND_DANGER',
'EVENT_TYPE_INFO', 'EVENT_TYPE_KIND_INFO',
'EVENT_TYPE_SUCCESS', 'EVENT_TYPE_KIND_SUCCESS',
'EVENT_TYPE_WARNING', 'EVENT_TYPE_KIND_WARNING',
'Event', 'EventType',
'get_event', 'get_event_type',
'get_event_type_choices', 'get_event_type_choices',
'get_event_text', 'get_event_text',
) )
def get_event(name): def get_event_type(name):
return registry['events'].get(name) return registry['event_types'].get(name)
def get_event_text(name): def get_event_text(name):
if event := registry['events'].get(name): if event := registry['event_types'].get(name):
return event.text return event.text
return '' return ''
def get_event_type_choices(): def get_event_type_choices():
return [ return [
(event.name, event.text) for event in registry['events'].values() (event.name, event.text) for event in registry['event_types'].values()
] ]
@dataclass @dataclass
class Event: class EventType:
""" """
A type of event which can occur in NetBox. Event rules can be defined to automatically A type of event which can occur in NetBox. Event rules can be defined to automatically
perform some action in response to an event. perform some action in response to an event.
@ -44,32 +44,32 @@ class Event:
Args: Args:
name: The unique name under which the event is registered. name: The unique name under which the event is registered.
text: The human-friendly event name. This should support translation. text: The human-friendly event name. This should support translation.
type: The event's classification (info, success, warning, or danger). The default type is info. kind: The event's classification (info, success, warning, or danger). The default type is info.
""" """
name: str name: str
text: str text: str
type: str = EVENT_TYPE_INFO kind: str = EVENT_TYPE_KIND_INFO
def __str__(self): def __str__(self):
return self.text return self.text
def register(self): def register(self):
if self.name in registry['events']: if self.name in registry['event_types']:
raise Exception(f"An event named {self.name} has already been registered!") raise Exception(f"An event type named {self.name} has already been registered!")
registry['events'][self.name] = self registry['event_types'][self.name] = self
def color(self): def color(self):
return { return {
EVENT_TYPE_INFO: 'blue', EVENT_TYPE_KIND_INFO: 'blue',
EVENT_TYPE_SUCCESS: 'green', EVENT_TYPE_KIND_SUCCESS: 'green',
EVENT_TYPE_WARNING: 'orange', EVENT_TYPE_KIND_WARNING: 'orange',
EVENT_TYPE_DANGER: 'red', EVENT_TYPE_KIND_DANGER: 'red',
}.get(self.type) }.get(self.kind)
def icon(self): def icon(self):
return { return {
EVENT_TYPE_INFO: 'mdi mdi-information', EVENT_TYPE_KIND_INFO: 'mdi mdi-information',
EVENT_TYPE_SUCCESS: 'mdi mdi-check-circle', EVENT_TYPE_KIND_SUCCESS: 'mdi mdi-check-circle',
EVENT_TYPE_WARNING: 'mdi mdi-alert-box', EVENT_TYPE_KIND_WARNING: 'mdi mdi-alert-box',
EVENT_TYPE_DANGER: 'mdi mdi-alert-octagon', EVENT_TYPE_KIND_DANGER: 'mdi mdi-alert-octagon',
}.get(self.type) }.get(self.kind)

View File

@ -25,7 +25,7 @@ registry = Registry({
'counter_fields': collections.defaultdict(dict), 'counter_fields': collections.defaultdict(dict),
'data_backends': dict(), 'data_backends': dict(),
'denormalized_fields': collections.defaultdict(list), 'denormalized_fields': collections.defaultdict(list),
'events': dict(), 'event_types': dict(),
'model_features': dict(), 'model_features': dict(),
'models': collections.defaultdict(set), 'models': collections.defaultdict(set),
'plugins': dict(), 'plugins': dict(),