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

Closes #8593: Add link field to contact model

This commit is contained in:
jeremystretch
2022-03-30 16:19:12 -04:00
parent 3ff4fd814e
commit cdacd2a951
10 changed files with 46 additions and 11 deletions

View File

@ -143,6 +143,7 @@ Where it is desired to limit the range of available VLANs within a group, users
* [#8307](https://github.com/netbox-community/netbox/issues/8307) - Add `data_type` indicator to REST API serializer for custom fields * [#8307](https://github.com/netbox-community/netbox/issues/8307) - Add `data_type` indicator to REST API serializer for custom fields
* [#8463](https://github.com/netbox-community/netbox/issues/8463) - Change the `created` field on all change-logged models from date to datetime * [#8463](https://github.com/netbox-community/netbox/issues/8463) - Change the `created` field on all change-logged models from date to datetime
* [#8572](https://github.com/netbox-community/netbox/issues/8572) - Add a `pre_run()` method for reports * [#8572](https://github.com/netbox-community/netbox/issues/8572) - Add a `pre_run()` method for reports
* [#8593](https://github.com/netbox-community/netbox/issues/8593) - Add a `link` field for contacts
* [#8649](https://github.com/netbox-community/netbox/issues/8649) - Enable customization of configuration module using `NETBOX_CONFIGURATION` environment variable * [#8649](https://github.com/netbox-community/netbox/issues/8649) - Enable customization of configuration module using `NETBOX_CONFIGURATION` environment variable
### Bug Fixes (From Beta2) ### Bug Fixes (From Beta2)
@ -205,5 +206,7 @@ Where it is desired to limit the range of available VLANs within a group, users
* ipam.VLANGroup * ipam.VLANGroup
* Added the `/availables-vlans/` endpoint * Added the `/availables-vlans/` endpoint
* Added the `min_vid` and `max_vid` fields * Added the `min_vid` and `max_vid` fields
* tenancy.Contact
* Added the `link` field
* virtualization.VMInterface * virtualization.VMInterface
* Added `vrf` field * Added `vrf` field

View File

@ -53,6 +53,16 @@
<td>Address</td> <td>Address</td>
<td>{{ object.address|linebreaksbr|placeholder }}</td> <td>{{ object.address|linebreaksbr|placeholder }}</td>
</tr> </tr>
<tr>
<td>Link</td>
<td>
{% if object.link %}
<a href="{{ object.link }}">{{ object.link }}</a>
{% else %}
{{ ''|placeholder }}
{% endif %}
</td>
</tr>
<tr> <tr>
<th scope="row">Assignments</th> <th scope="row">Assignments</th>
<td>{{ assignment_count }}</td> <td>{{ assignment_count }}</td>

View File

@ -84,7 +84,7 @@ class ContactSerializer(NetBoxModelSerializer):
class Meta: class Meta:
model = Contact model = Contact
fields = [ fields = [
'id', 'url', 'display', 'group', 'name', 'title', 'phone', 'email', 'address', 'comments', 'tags', 'id', 'url', 'display', 'group', 'name', 'title', 'phone', 'email', 'address', 'link', 'comments', 'tags',
'custom_fields', 'created', 'last_updated', 'custom_fields', 'created', 'last_updated',
] ]

View File

@ -63,7 +63,7 @@ class ContactFilterSet(NetBoxModelFilterSet):
class Meta: class Meta:
model = Contact model = Contact
fields = ['id', 'name', 'title', 'phone', 'email', 'address'] fields = ['id', 'name', 'title', 'phone', 'email', 'address', 'link']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -74,6 +74,7 @@ class ContactFilterSet(NetBoxModelFilterSet):
Q(phone__icontains=value) | Q(phone__icontains=value) |
Q(email__icontains=value) | Q(email__icontains=value) |
Q(address__icontains=value) | Q(address__icontains=value) |
Q(link__icontains=value) |
Q(comments__icontains=value) Q(comments__icontains=value)
) )

View File

@ -98,9 +98,12 @@ class ContactBulkEditForm(NetBoxModelBulkEditForm):
max_length=200, max_length=200,
required=False required=False
) )
link = forms.URLField(
required=False
)
model = Contact model = Contact
fieldsets = ( fieldsets = (
(None, ('group', 'title', 'phone', 'email', 'address')), (None, ('group', 'title', 'phone', 'email', 'address', 'link')),
) )
nullable_fields = ('group', 'title', 'phone', 'email', 'address', 'comments') nullable_fields = ('group', 'title', 'phone', 'email', 'address', 'link', 'comments')

View File

@ -79,4 +79,4 @@ class ContactCSVForm(NetBoxModelCSVForm):
class Meta: class Meta:
model = Contact model = Contact
fields = ('name', 'title', 'phone', 'email', 'address', 'group', 'comments') fields = ('name', 'title', 'phone', 'email', 'address', 'link', 'group', 'comments')

View File

@ -1,11 +1,9 @@
from django import forms from django import forms
from extras.models import Tag
from netbox.forms import NetBoxModelForm from netbox.forms import NetBoxModelForm
from tenancy.models import * from tenancy.models import *
from utilities.forms import ( from utilities.forms import (
BootstrapMixin, CommentField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, SlugField, SmallTextarea, BootstrapMixin, CommentField, DynamicModelChoiceField, SlugField, SmallTextarea, StaticSelect,
StaticSelect,
) )
__all__ = ( __all__ = (
@ -87,13 +85,13 @@ class ContactForm(NetBoxModelForm):
comments = CommentField() comments = CommentField()
fieldsets = ( fieldsets = (
('Contact', ('group', 'name', 'title', 'phone', 'email', 'address', 'tags')), ('Contact', ('group', 'name', 'title', 'phone', 'email', 'address', 'link', 'tags')),
) )
class Meta: class Meta:
model = Contact model = Contact
fields = ( fields = (
'group', 'name', 'title', 'phone', 'email', 'address', 'comments', 'tags', 'group', 'name', 'title', 'phone', 'email', 'address', 'link', 'comments', 'tags',
) )
widgets = { widgets = {
'address': SmallTextarea(attrs={'rows': 3}), 'address': SmallTextarea(attrs={'rows': 3}),

View File

@ -0,0 +1,17 @@
from django.db import migrations, models
import utilities.validators
class Migration(migrations.Migration):
dependencies = [
('tenancy', '0006_created_datetimefield'),
]
operations = [
migrations.AddField(
model_name='contact',
name='link',
field=models.URLField(blank=True),
),
]

View File

@ -105,6 +105,9 @@ class Contact(NetBoxModel):
max_length=200, max_length=200,
blank=True blank=True
) )
link = models.URLField(
blank=True
)
comments = models.TextField( comments = models.TextField(
blank=True blank=True
) )

View File

@ -65,7 +65,7 @@ class ContactTable(NetBoxTable):
class Meta(NetBoxTable.Meta): class Meta(NetBoxTable.Meta):
model = Contact model = Contact
fields = ( fields = (
'pk', 'name', 'group', 'title', 'phone', 'email', 'address', 'comments', 'assignment_count', 'tags', 'pk', 'name', 'group', 'title', 'phone', 'email', 'address', 'link', 'comments', 'assignment_count', 'tags',
'created', 'last_updated', 'created', 'last_updated',
) )
default_columns = ('pk', 'name', 'group', 'assignment_count', 'title', 'phone', 'email') default_columns = ('pk', 'name', 'group', 'assignment_count', 'title', 'phone', 'email')