mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-09 00:58:16 -06:00
Misc cleanup
This commit is contained in:
parent
6bec89d46b
commit
cbffc24810
@ -8,7 +8,7 @@ from core.models import DataSource, ObjectType
|
|||||||
from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site, SiteGroup
|
from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site, SiteGroup
|
||||||
from netbox.filtersets import BaseFilterSet, ChangeLoggedModelFilterSet, NetBoxModelFilterSet
|
from netbox.filtersets import BaseFilterSet, ChangeLoggedModelFilterSet, NetBoxModelFilterSet
|
||||||
from tenancy.models import Tenant, TenantGroup
|
from tenancy.models import Tenant, TenantGroup
|
||||||
from users.models import Group
|
from users.models import Group, User
|
||||||
from utilities.filters import ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter
|
from utilities.filters import ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter
|
||||||
from virtualization.models import Cluster, ClusterGroup, ClusterType
|
from virtualization.models import Cluster, ClusterGroup, ClusterType
|
||||||
from .choices import *
|
from .choices import *
|
||||||
@ -343,14 +343,16 @@ class NotificationGroupFilterSet(BaseFilterSet):
|
|||||||
method='search',
|
method='search',
|
||||||
label=_('Search'),
|
label=_('Search'),
|
||||||
)
|
)
|
||||||
# user_id = django_filters.ModelMultipleChoiceFilter(
|
user_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
# queryset=get_user_model().objects.all(),
|
field_name='users',
|
||||||
# label=_('User (ID)'),
|
queryset=User.objects.all(),
|
||||||
# )
|
label=_('User (ID)'),
|
||||||
# group_id = django_filters.ModelMultipleChoiceFilter(
|
)
|
||||||
# queryset=Group.objects.all(),
|
group_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
# label=_('Group (ID)'),
|
field_name='groups',
|
||||||
# )
|
queryset=Group.objects.all(),
|
||||||
|
label=_('Group (ID)'),
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = NotificationGroup
|
model = NotificationGroup
|
||||||
|
@ -10,9 +10,11 @@ from core.models import ObjectType
|
|||||||
from extras.choices import *
|
from extras.choices import *
|
||||||
from extras.models import *
|
from extras.models import *
|
||||||
from netbox.forms import NetBoxModelImportForm
|
from netbox.forms import NetBoxModelImportForm
|
||||||
|
from users.models import Group, User
|
||||||
from utilities.forms import CSVModelForm
|
from utilities.forms import CSVModelForm
|
||||||
from utilities.forms.fields import (
|
from utilities.forms.fields import (
|
||||||
CSVChoiceField, CSVContentTypeField, CSVModelChoiceField, CSVMultipleContentTypeField, SlugField,
|
CSVChoiceField, CSVContentTypeField, CSVModelChoiceField, CSVModelMultipleChoiceField, CSVMultipleContentTypeField,
|
||||||
|
SlugField,
|
||||||
)
|
)
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
@ -254,7 +256,25 @@ class JournalEntryImportForm(NetBoxModelImportForm):
|
|||||||
|
|
||||||
|
|
||||||
class NotificationGroupImportForm(CSVModelForm):
|
class NotificationGroupImportForm(CSVModelForm):
|
||||||
|
users = CSVModelMultipleChoiceField(
|
||||||
|
label=_('Users'),
|
||||||
|
queryset=User.objects.all(),
|
||||||
|
required=False,
|
||||||
|
to_field_name='username',
|
||||||
|
help_text=mark_safe(
|
||||||
|
_('User names separated by commas, encased with double quotes')
|
||||||
|
)
|
||||||
|
)
|
||||||
|
groups = CSVModelMultipleChoiceField(
|
||||||
|
label=_('Groups'),
|
||||||
|
queryset=Group.objects.all(),
|
||||||
|
required=False,
|
||||||
|
to_field_name='name',
|
||||||
|
help_text=mark_safe(
|
||||||
|
_('Group names separated by commas, encased with double quotes')
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = NotificationGroup
|
model = NotificationGroup
|
||||||
fields = ('name', 'description')
|
fields = ('name', 'description', 'users', 'groups')
|
||||||
|
@ -21,7 +21,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_event_type_choices():
|
def get_event_name_choices():
|
||||||
"""
|
"""
|
||||||
Compile a list of choices from all registered event types
|
Compile a list of choices from all registered event types
|
||||||
"""
|
"""
|
||||||
@ -60,7 +60,7 @@ class Notification(models.Model):
|
|||||||
event_name = models.CharField(
|
event_name = models.CharField(
|
||||||
verbose_name=_('event'),
|
verbose_name=_('event'),
|
||||||
max_length=50,
|
max_length=50,
|
||||||
choices=get_event_type_choices
|
choices=get_event_name_choices
|
||||||
)
|
)
|
||||||
|
|
||||||
objects = NotificationQuerySet.as_manager()
|
objects = NotificationQuerySet.as_manager()
|
||||||
|
@ -156,4 +156,7 @@ class ConfigContextModelQuerySet(RestrictedQuerySet):
|
|||||||
class NotificationQuerySet(RestrictedQuerySet):
|
class NotificationQuerySet(RestrictedQuerySet):
|
||||||
|
|
||||||
def unread(self):
|
def unread(self):
|
||||||
|
"""
|
||||||
|
Return only unread notifications.
|
||||||
|
"""
|
||||||
return self.filter(read__isnull=True)
|
return self.filter(read__isnull=True)
|
||||||
|
@ -322,11 +322,17 @@ class NotificationGroupTable(NetBoxTable):
|
|||||||
linkify=True,
|
linkify=True,
|
||||||
verbose_name=_('Name')
|
verbose_name=_('Name')
|
||||||
)
|
)
|
||||||
|
users = columns.ManyToManyColumn(
|
||||||
|
linkify_item=True
|
||||||
|
)
|
||||||
|
groups = columns.ManyToManyColumn(
|
||||||
|
linkify_item=True
|
||||||
|
)
|
||||||
|
|
||||||
class Meta(NetBoxTable.Meta):
|
class Meta(NetBoxTable.Meta):
|
||||||
model = NotificationGroup
|
model = NotificationGroup
|
||||||
fields = ('pk', 'name', 'description', 'groups', 'users')
|
fields = ('pk', 'name', 'description', 'groups', 'users')
|
||||||
default_columns = ('name', 'description')
|
default_columns = ('name', 'description', 'groups', 'users')
|
||||||
|
|
||||||
|
|
||||||
class WebhookTable(NetBoxTable):
|
class WebhookTable(NetBoxTable):
|
||||||
|
@ -84,6 +84,11 @@ DEFAULT_PERMISSIONS = getattr(configuration, 'DEFAULT_PERMISSIONS', {
|
|||||||
'extras.add_bookmark': ({'user': '$user'},),
|
'extras.add_bookmark': ({'user': '$user'},),
|
||||||
'extras.change_bookmark': ({'user': '$user'},),
|
'extras.change_bookmark': ({'user': '$user'},),
|
||||||
'extras.delete_bookmark': ({'user': '$user'},),
|
'extras.delete_bookmark': ({'user': '$user'},),
|
||||||
|
# Permit users to manage their own notifications
|
||||||
|
'extras.view_notification': ({'user': '$user'},),
|
||||||
|
'extras.add_notification': ({'user': '$user'},),
|
||||||
|
'extras.change_notification': ({'user': '$user'},),
|
||||||
|
'extras.delete_notification': ({'user': '$user'},),
|
||||||
# Permit users to manage their own subscriptions
|
# Permit users to manage their own subscriptions
|
||||||
'extras.view_subscription': ({'user': '$user'},),
|
'extras.view_subscription': ({'user': '$user'},),
|
||||||
'extras.add_subscription': ({'user': '$user'},),
|
'extras.add_subscription': ({'user': '$user'},),
|
||||||
|
Loading…
Reference in New Issue
Block a user