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:
@ -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
|
||||
* [#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
|
||||
* [#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
|
||||
|
||||
### 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
|
||||
* Added the `/availables-vlans/` endpoint
|
||||
* Added the `min_vid` and `max_vid` fields
|
||||
* tenancy.Contact
|
||||
* Added the `link` field
|
||||
* virtualization.VMInterface
|
||||
* Added `vrf` field
|
||||
|
@ -53,6 +53,16 @@
|
||||
<td>Address</td>
|
||||
<td>{{ object.address|linebreaksbr|placeholder }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Link</td>
|
||||
<td>
|
||||
{% if object.link %}
|
||||
<a href="{{ object.link }}">{{ object.link }}</a>
|
||||
{% else %}
|
||||
{{ ''|placeholder }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Assignments</th>
|
||||
<td>{{ assignment_count }}</td>
|
||||
|
@ -84,7 +84,7 @@ class ContactSerializer(NetBoxModelSerializer):
|
||||
class Meta:
|
||||
model = Contact
|
||||
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',
|
||||
]
|
||||
|
||||
|
@ -63,7 +63,7 @@ class ContactFilterSet(NetBoxModelFilterSet):
|
||||
|
||||
class Meta:
|
||||
model = Contact
|
||||
fields = ['id', 'name', 'title', 'phone', 'email', 'address']
|
||||
fields = ['id', 'name', 'title', 'phone', 'email', 'address', 'link']
|
||||
|
||||
def search(self, queryset, name, value):
|
||||
if not value.strip():
|
||||
@ -74,6 +74,7 @@ class ContactFilterSet(NetBoxModelFilterSet):
|
||||
Q(phone__icontains=value) |
|
||||
Q(email__icontains=value) |
|
||||
Q(address__icontains=value) |
|
||||
Q(link__icontains=value) |
|
||||
Q(comments__icontains=value)
|
||||
)
|
||||
|
||||
|
@ -98,9 +98,12 @@ class ContactBulkEditForm(NetBoxModelBulkEditForm):
|
||||
max_length=200,
|
||||
required=False
|
||||
)
|
||||
link = forms.URLField(
|
||||
required=False
|
||||
)
|
||||
|
||||
model = Contact
|
||||
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')
|
||||
|
@ -79,4 +79,4 @@ class ContactCSVForm(NetBoxModelCSVForm):
|
||||
|
||||
class Meta:
|
||||
model = Contact
|
||||
fields = ('name', 'title', 'phone', 'email', 'address', 'group', 'comments')
|
||||
fields = ('name', 'title', 'phone', 'email', 'address', 'link', 'group', 'comments')
|
||||
|
@ -1,11 +1,9 @@
|
||||
from django import forms
|
||||
|
||||
from extras.models import Tag
|
||||
from netbox.forms import NetBoxModelForm
|
||||
from tenancy.models import *
|
||||
from utilities.forms import (
|
||||
BootstrapMixin, CommentField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, SlugField, SmallTextarea,
|
||||
StaticSelect,
|
||||
BootstrapMixin, CommentField, DynamicModelChoiceField, SlugField, SmallTextarea, StaticSelect,
|
||||
)
|
||||
|
||||
__all__ = (
|
||||
@ -87,13 +85,13 @@ class ContactForm(NetBoxModelForm):
|
||||
comments = CommentField()
|
||||
|
||||
fieldsets = (
|
||||
('Contact', ('group', 'name', 'title', 'phone', 'email', 'address', 'tags')),
|
||||
('Contact', ('group', 'name', 'title', 'phone', 'email', 'address', 'link', 'tags')),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Contact
|
||||
fields = (
|
||||
'group', 'name', 'title', 'phone', 'email', 'address', 'comments', 'tags',
|
||||
'group', 'name', 'title', 'phone', 'email', 'address', 'link', 'comments', 'tags',
|
||||
)
|
||||
widgets = {
|
||||
'address': SmallTextarea(attrs={'rows': 3}),
|
||||
|
17
netbox/tenancy/migrations/0007_contact_link.py
Normal file
17
netbox/tenancy/migrations/0007_contact_link.py
Normal 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),
|
||||
),
|
||||
]
|
@ -105,6 +105,9 @@ class Contact(NetBoxModel):
|
||||
max_length=200,
|
||||
blank=True
|
||||
)
|
||||
link = models.URLField(
|
||||
blank=True
|
||||
)
|
||||
comments = models.TextField(
|
||||
blank=True
|
||||
)
|
||||
|
@ -65,7 +65,7 @@ class ContactTable(NetBoxTable):
|
||||
class Meta(NetBoxTable.Meta):
|
||||
model = Contact
|
||||
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',
|
||||
)
|
||||
default_columns = ('pk', 'name', 'group', 'assignment_count', 'title', 'phone', 'email')
|
||||
|
Reference in New Issue
Block a user