mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-24 17:38:37 -06:00
Closes #756: Added contact details to site model
This commit is contained in:
parent
8edaff860c
commit
e7b08f8f2f
@ -20,8 +20,9 @@ class SiteSerializer(CustomFieldSerializer, serializers.ModelSerializer):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Site
|
model = Site
|
||||||
fields = ['id', 'name', 'slug', 'tenant', 'facility', 'asn', 'physical_address', 'shipping_address', 'comments',
|
fields = ['id', 'name', 'slug', 'tenant', 'facility', 'asn', 'physical_address', 'shipping_address',
|
||||||
'custom_fields', 'count_prefixes', 'count_vlans', 'count_racks', 'count_devices', 'count_circuits']
|
'contact_name', 'contact_phone', 'contact_email', 'comments', 'custom_fields', 'count_prefixes',
|
||||||
|
'count_vlans', 'count_racks', 'count_devices', 'count_circuits']
|
||||||
|
|
||||||
|
|
||||||
class SiteNestedSerializer(SiteSerializer):
|
class SiteNestedSerializer(SiteSerializer):
|
||||||
|
@ -62,7 +62,8 @@ class SiteForm(BootstrapMixin, CustomFieldForm):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Site
|
model = Site
|
||||||
fields = ['name', 'slug', 'tenant', 'facility', 'asn', 'physical_address', 'shipping_address', 'comments']
|
fields = ['name', 'slug', 'tenant', 'facility', 'asn', 'physical_address', 'shipping_address', 'contact_name',
|
||||||
|
'contact_phone', 'contact_email', 'comments']
|
||||||
widgets = {
|
widgets = {
|
||||||
'physical_address': SmallTextarea(attrs={'rows': 3}),
|
'physical_address': SmallTextarea(attrs={'rows': 3}),
|
||||||
'shipping_address': SmallTextarea(attrs={'rows': 3}),
|
'shipping_address': SmallTextarea(attrs={'rows': 3}),
|
||||||
@ -82,7 +83,7 @@ class SiteFromCSVForm(forms.ModelForm):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Site
|
model = Site
|
||||||
fields = ['name', 'slug', 'tenant', 'facility', 'asn']
|
fields = ['name', 'slug', 'tenant', 'facility', 'asn', 'contact_name', 'contact_phone', 'contact_email']
|
||||||
|
|
||||||
|
|
||||||
class SiteImportForm(BootstrapMixin, BulkImportForm):
|
class SiteImportForm(BootstrapMixin, BulkImportForm):
|
||||||
|
30
netbox/dcim/migrations/0024_site_add_contact_fields.py
Normal file
30
netbox/dcim/migrations/0024_site_add_contact_fields.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.4 on 2016-12-29 16:23
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dcim', '0023_devicetype_comments'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='site',
|
||||||
|
name='contact_email',
|
||||||
|
field=models.EmailField(blank=True, max_length=254, verbose_name=b'Contact E-mail'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='site',
|
||||||
|
name='contact_name',
|
||||||
|
field=models.CharField(blank=True, max_length=50),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='site',
|
||||||
|
name='contact_phone',
|
||||||
|
field=models.CharField(blank=True, max_length=20),
|
||||||
|
),
|
||||||
|
]
|
@ -245,6 +245,9 @@ class Site(CreatedUpdatedModel, CustomFieldModel):
|
|||||||
asn = ASNField(blank=True, null=True, verbose_name='ASN')
|
asn = ASNField(blank=True, null=True, verbose_name='ASN')
|
||||||
physical_address = models.CharField(max_length=200, blank=True)
|
physical_address = models.CharField(max_length=200, blank=True)
|
||||||
shipping_address = models.CharField(max_length=200, blank=True)
|
shipping_address = models.CharField(max_length=200, blank=True)
|
||||||
|
contact_name = models.CharField(max_length=50, blank=True)
|
||||||
|
contact_phone = models.CharField(max_length=20, blank=True)
|
||||||
|
contact_email = models.EmailField(blank=True, verbose_name="Contact E-mail")
|
||||||
comments = models.TextField(blank=True)
|
comments = models.TextField(blank=True)
|
||||||
custom_field_values = GenericRelation(CustomFieldValue, content_type_field='obj_type', object_id_field='obj_id')
|
custom_field_values = GenericRelation(CustomFieldValue, content_type_field='obj_type', object_id_field='obj_id')
|
||||||
|
|
||||||
@ -266,6 +269,9 @@ class Site(CreatedUpdatedModel, CustomFieldModel):
|
|||||||
self.tenant.name if self.tenant else '',
|
self.tenant.name if self.tenant else '',
|
||||||
self.facility,
|
self.facility,
|
||||||
str(self.asn) if self.asn else '',
|
str(self.asn) if self.asn else '',
|
||||||
|
self.contact_name,
|
||||||
|
self.contact_phone,
|
||||||
|
self.contact_email,
|
||||||
])
|
])
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -22,6 +22,9 @@ class SiteTest(APITestCase):
|
|||||||
'asn',
|
'asn',
|
||||||
'physical_address',
|
'physical_address',
|
||||||
'shipping_address',
|
'shipping_address',
|
||||||
|
'contact_name',
|
||||||
|
'contact_phone',
|
||||||
|
'contact_email',
|
||||||
'comments',
|
'comments',
|
||||||
'custom_fields',
|
'custom_fields',
|
||||||
'count_prefixes',
|
'count_prefixes',
|
||||||
|
@ -110,6 +110,36 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Contact Name</td>
|
||||||
|
<td>
|
||||||
|
{% if site.contact_name %}
|
||||||
|
<span>{{ site.contact_name }}</span>
|
||||||
|
{% else %}
|
||||||
|
<span class="text-muted">N/A</span>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Contact Phone</td>
|
||||||
|
<td>
|
||||||
|
{% if site.contact_phone %}
|
||||||
|
<a href="tel:{{ site.contact_phone }}">{{ site.contact_phone }}</a>
|
||||||
|
{% else %}
|
||||||
|
<span class="text-muted">N/A</span>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Contact E-Mail</td>
|
||||||
|
<td>
|
||||||
|
{% if site.contact_email %}
|
||||||
|
<a href="mailto:{{ site.contact_email }}">{{ site.contact_email }}</a>
|
||||||
|
{% else %}
|
||||||
|
<span class="text-muted">N/A</span>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
{% with site.get_custom_fields as custom_fields %}
|
{% with site.get_custom_fields as custom_fields %}
|
||||||
|
@ -12,6 +12,9 @@
|
|||||||
{% render_field form.asn %}
|
{% render_field form.asn %}
|
||||||
{% render_field form.physical_address %}
|
{% render_field form.physical_address %}
|
||||||
{% render_field form.shipping_address %}
|
{% render_field form.shipping_address %}
|
||||||
|
{% render_field form.contact_name %}
|
||||||
|
{% render_field form.contact_phone %}
|
||||||
|
{% render_field form.contact_email %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% if form.custom_fields %}
|
{% if form.custom_fields %}
|
||||||
|
@ -53,10 +53,25 @@
|
|||||||
<td>Autonomous system number (optional)</td>
|
<td>Autonomous system number (optional)</td>
|
||||||
<td>65000</td>
|
<td>65000</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Contact Name</td>
|
||||||
|
<td>Name of administrative contact (optional)</td>
|
||||||
|
<td>Hank Hill</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Contact Phone</td>
|
||||||
|
<td>Phone number (optional)</td>
|
||||||
|
<td>+1-214-555-1234</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Contact E-mail</td>
|
||||||
|
<td>E-mail address (optional)</td>
|
||||||
|
<td>hhill@example.com</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<h4>Example</h4>
|
<h4>Example</h4>
|
||||||
<pre>ASH-4 South,ash4-south,Pied Piper,Equinix DC6,65000</pre>
|
<pre>ASH-4 South,ash4-south,Pied Piper,Equinix DC6,65000,Hank Hill,+1-214-555-1234,hhill@example.com</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Loading…
Reference in New Issue
Block a user