1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Cleanup and documentation for #1344

This commit is contained in:
jeremystretch
2021-10-18 16:20:31 -04:00
parent f485a47b48
commit 487d67768b
10 changed files with 79 additions and 8 deletions

View File

@@ -1,8 +1,9 @@
from django.contrib.auth.models import ContentType
from rest_framework import serializers
from netbox.api import ContentTypeField
from netbox.api import ChoiceField, ContentTypeField
from netbox.api.serializers import NestedGroupModelSerializer, OrganizationalModelSerializer, PrimaryModelSerializer
from tenancy.choices import ContactPriorityChoices
from tenancy.models import *
from .nested_serializers import *
@@ -93,9 +94,11 @@ class ContactAssignmentSerializer(PrimaryModelSerializer):
)
contact = NestedContactSerializer()
role = NestedContactRoleSerializer(required=False, allow_null=True)
priority = ChoiceField(choices=ContactPriorityChoices, required=False)
class Meta:
model = ContactAssignment
fields = [
'id', 'url', 'display', 'content_type', 'object_id', 'contact', 'role', 'created', 'last_updated',
'id', 'url', 'display', 'content_type', 'object_id', 'contact', 'role', 'priority', 'created',
'last_updated',
]

View File

@@ -2,8 +2,8 @@ import django_filters
from django.db.models import Q
from extras.filters import TagFilter
from netbox.filtersets import OrganizationalModelFilterSet, PrimaryModelFilterSet
from utilities.filters import TreeNodeMultipleChoiceFilter
from netbox.filtersets import ChangeLoggedModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet
from utilities.filters import ContentTypeFilter, TreeNodeMultipleChoiceFilter
from .models import *
@@ -168,7 +168,8 @@ class ContactFilterSet(PrimaryModelFilterSet):
)
class ContactAssignmentFilterSet(OrganizationalModelFilterSet):
class ContactAssignmentFilterSet(ChangeLoggedModelFilterSet):
content_type = ContentTypeFilter()
contact_id = django_filters.ModelMultipleChoiceFilter(
queryset=Contact.objects.all(),
label='Contact (ID)',
@@ -186,4 +187,4 @@ class ContactAssignmentFilterSet(OrganizationalModelFilterSet):
class Meta:
model = ContactAssignment
fields = ['id', 'priority']
fields = ['id', 'content_type_id', 'priority']

View File

@@ -96,6 +96,21 @@ class ContactBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBul
queryset=ContactGroup.objects.all(),
required=False
)
title = forms.CharField(
max_length=100,
required=False
)
phone = forms.CharField(
max_length=50,
required=False
)
email = forms.EmailField(
required=False
)
address = forms.CharField(
max_length=200,
required=False
)
class Meta:
nullable_fields = ['group', 'title', 'phone', 'email', 'address', 'comments']

View File

@@ -109,10 +109,16 @@ class ContactForm(BootstrapMixin, CustomFieldModelForm):
class ContactAssignmentForm(BootstrapMixin, forms.ModelForm):
group = DynamicModelChoiceField(
queryset=ContactGroup.objects.all(),
required=False
required=False,
initial_params={
'contacts': '$contact'
}
)
contact = DynamicModelChoiceField(
queryset=Contact.objects.all()
queryset=Contact.objects.all(),
query_params={
'group_id': '$group'
}
)
role = DynamicModelChoiceField(
queryset=ContactRole.objects.all()

View File

@@ -259,3 +259,6 @@ class ContactAssignment(ChangeLoggedModel):
class Meta:
ordering = ('priority', 'contact')
def __str__(self):
return f"{self.contact} ({self.get_priority_display()})" if self.priority else self.name