mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-14 01:41:22 -06:00
#16886: Rename Event to EventType
This commit is contained in:
parent
5cfa2bb561
commit
d1e16013f0
@ -4,12 +4,12 @@ Plugins can register their own custom event types for use with NetBox [event rul
|
||||
|
||||
```python
|
||||
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',
|
||||
text=_('Ticket opened'),
|
||||
type=EVENT_TYPE_SUCCESS
|
||||
type=EVENT_TYPE_KIND_SUCCESS
|
||||
).register()
|
||||
```
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
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__ = (
|
||||
'JOB_COMPLETED',
|
||||
@ -24,10 +24,10 @@ JOB_FAILED = 'job_failed'
|
||||
JOB_ERRORED = 'job_errored'
|
||||
|
||||
# Register core events
|
||||
Event(OBJECT_CREATED, _('Object created')).register()
|
||||
Event(OBJECT_UPDATED, _('Object updated')).register()
|
||||
Event(OBJECT_DELETED, _('Object deleted')).register()
|
||||
Event(JOB_STARTED, _('Job started')).register()
|
||||
Event(JOB_COMPLETED, _('Job completed'), type=EVENT_TYPE_SUCCESS).register()
|
||||
Event(JOB_FAILED, _('Job failed'), type=EVENT_TYPE_WARNING).register()
|
||||
Event(JOB_ERRORED, _('Job errored'), type=EVENT_TYPE_DANGER).register()
|
||||
EventType(OBJECT_CREATED, _('Object created')).register()
|
||||
EventType(OBJECT_UPDATED, _('Object updated')).register()
|
||||
EventType(OBJECT_DELETED, _('Object deleted')).register()
|
||||
EventType(JOB_STARTED, _('Job started')).register()
|
||||
EventType(JOB_COMPLETED, _('Job completed'), kind=EVENT_TYPE_KIND_SUCCESS).register()
|
||||
EventType(JOB_FAILED, _('Job failed'), kind=EVENT_TYPE_KIND_WARNING).register()
|
||||
EventType(JOB_ERRORED, _('Job errored'), kind=EVENT_TYPE_KIND_DANGER).register()
|
||||
|
@ -27,7 +27,7 @@ def get_event_type_choices():
|
||||
"""
|
||||
return [
|
||||
(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.
|
||||
"""
|
||||
return registry['events'].get(self.event_type)
|
||||
return registry['event_types'].get(self.event_type)
|
||||
|
||||
|
||||
class NotificationGroup(ChangeLoggedModel):
|
||||
|
@ -554,7 +554,7 @@ class EventRuleView(generic.ObjectView):
|
||||
def get_extra_context(self, request, instance):
|
||||
return {
|
||||
'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
|
||||
]
|
||||
}
|
||||
|
@ -2,41 +2,41 @@ from dataclasses import dataclass
|
||||
|
||||
from netbox.registry import registry
|
||||
|
||||
EVENT_TYPE_INFO = 'info'
|
||||
EVENT_TYPE_SUCCESS = 'success'
|
||||
EVENT_TYPE_WARNING = 'warning'
|
||||
EVENT_TYPE_DANGER = 'danger'
|
||||
EVENT_TYPE_KIND_INFO = 'info'
|
||||
EVENT_TYPE_KIND_SUCCESS = 'success'
|
||||
EVENT_TYPE_KIND_WARNING = 'warning'
|
||||
EVENT_TYPE_KIND_DANGER = 'danger'
|
||||
|
||||
__all__ = (
|
||||
'EVENT_TYPE_DANGER',
|
||||
'EVENT_TYPE_INFO',
|
||||
'EVENT_TYPE_SUCCESS',
|
||||
'EVENT_TYPE_WARNING',
|
||||
'Event',
|
||||
'get_event',
|
||||
'EVENT_TYPE_KIND_DANGER',
|
||||
'EVENT_TYPE_KIND_INFO',
|
||||
'EVENT_TYPE_KIND_SUCCESS',
|
||||
'EVENT_TYPE_KIND_WARNING',
|
||||
'EventType',
|
||||
'get_event_type',
|
||||
'get_event_type_choices',
|
||||
'get_event_text',
|
||||
)
|
||||
|
||||
|
||||
def get_event(name):
|
||||
return registry['events'].get(name)
|
||||
def get_event_type(name):
|
||||
return registry['event_types'].get(name)
|
||||
|
||||
|
||||
def get_event_text(name):
|
||||
if event := registry['events'].get(name):
|
||||
if event := registry['event_types'].get(name):
|
||||
return event.text
|
||||
return ''
|
||||
|
||||
|
||||
def get_event_type_choices():
|
||||
return [
|
||||
(event.name, event.text) for event in registry['events'].values()
|
||||
(event.name, event.text) for event in registry['event_types'].values()
|
||||
]
|
||||
|
||||
|
||||
@dataclass
|
||||
class Event:
|
||||
class EventType:
|
||||
"""
|
||||
A type of event which can occur in NetBox. Event rules can be defined to automatically
|
||||
perform some action in response to an event.
|
||||
@ -44,32 +44,32 @@ class Event:
|
||||
Args:
|
||||
name: The unique name under which the event is registered.
|
||||
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
|
||||
text: str
|
||||
type: str = EVENT_TYPE_INFO
|
||||
kind: str = EVENT_TYPE_KIND_INFO
|
||||
|
||||
def __str__(self):
|
||||
return self.text
|
||||
|
||||
def register(self):
|
||||
if self.name in registry['events']:
|
||||
raise Exception(f"An event named {self.name} has already been registered!")
|
||||
registry['events'][self.name] = self
|
||||
if self.name in registry['event_types']:
|
||||
raise Exception(f"An event type named {self.name} has already been registered!")
|
||||
registry['event_types'][self.name] = self
|
||||
|
||||
def color(self):
|
||||
return {
|
||||
EVENT_TYPE_INFO: 'blue',
|
||||
EVENT_TYPE_SUCCESS: 'green',
|
||||
EVENT_TYPE_WARNING: 'orange',
|
||||
EVENT_TYPE_DANGER: 'red',
|
||||
}.get(self.type)
|
||||
EVENT_TYPE_KIND_INFO: 'blue',
|
||||
EVENT_TYPE_KIND_SUCCESS: 'green',
|
||||
EVENT_TYPE_KIND_WARNING: 'orange',
|
||||
EVENT_TYPE_KIND_DANGER: 'red',
|
||||
}.get(self.kind)
|
||||
|
||||
def icon(self):
|
||||
return {
|
||||
EVENT_TYPE_INFO: 'mdi mdi-information',
|
||||
EVENT_TYPE_SUCCESS: 'mdi mdi-check-circle',
|
||||
EVENT_TYPE_WARNING: 'mdi mdi-alert-box',
|
||||
EVENT_TYPE_DANGER: 'mdi mdi-alert-octagon',
|
||||
}.get(self.type)
|
||||
EVENT_TYPE_KIND_INFO: 'mdi mdi-information',
|
||||
EVENT_TYPE_KIND_SUCCESS: 'mdi mdi-check-circle',
|
||||
EVENT_TYPE_KIND_WARNING: 'mdi mdi-alert-box',
|
||||
EVENT_TYPE_KIND_DANGER: 'mdi mdi-alert-octagon',
|
||||
}.get(self.kind)
|
||||
|
@ -25,7 +25,7 @@ registry = Registry({
|
||||
'counter_fields': collections.defaultdict(dict),
|
||||
'data_backends': dict(),
|
||||
'denormalized_fields': collections.defaultdict(list),
|
||||
'events': dict(),
|
||||
'event_types': dict(),
|
||||
'model_features': dict(),
|
||||
'models': collections.defaultdict(set),
|
||||
'plugins': dict(),
|
||||
|
Loading…
Reference in New Issue
Block a user