mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-26 18:38:38 -06:00
Improve representation of available IP space
This commit is contained in:
parent
4ee9653e63
commit
5960385fcd
@ -26,14 +26,12 @@ PREFIX_LINK_WITH_DEPTH = """
|
||||
""" + PREFIX_LINK
|
||||
|
||||
IPADDRESS_LINK = """
|
||||
{% if record.address %}
|
||||
<a href="{{ record.get_absolute_url }}" id="ipaddress_{{ record.pk }}">{{ record.address }}</a>
|
||||
{% elif record.start_address %}
|
||||
<a href="{{ record.get_absolute_url }}" id="range_{{ record.pk }}">{{ record }}</a>
|
||||
{% if record.address or record.start_address %}
|
||||
<a href="{{ record.get_absolute_url }}">{{ record }}</a>
|
||||
{% elif perms.ipam.add_ipaddress %}
|
||||
<a href="{% url 'ipam:ipaddress_add' %}?address={{ record.first_ip }}{% if object.vrf %}&vrf={{ object.vrf.pk }}{% endif %}{% if object.tenant %}&tenant={{ object.tenant.pk }}{% endif %}&return_url={% url 'ipam:prefix_ipaddresses' pk=object.pk %}" class="btn btn-sm btn-success">{% if record.size <= 65536 %}{{ record.size }}{% else %}Many{% endif %} IP{{ record.size|pluralize }} available</a>
|
||||
<a href="{% url 'ipam:ipaddress_add' %}?address={{ record.first_ip }}{% if object.vrf %}&vrf={{ object.vrf.pk }}{% endif %}{% if object.tenant %}&tenant={{ object.tenant.pk }}{% endif %}&return_url={% url 'ipam:prefix_ipaddresses' pk=object.pk %}" class="btn btn-sm btn-success">{{ record.title }}</a>
|
||||
{% else %}
|
||||
{% if record.size <= 65536 %}{{ record.size }}{% else %}Many{% endif %} IP{{ record.size|pluralize }} available
|
||||
{{ record.title }}
|
||||
{% endif %}
|
||||
"""
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
from dataclasses import dataclass
|
||||
import netaddr
|
||||
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .constants import *
|
||||
from .models import Prefix, VLAN
|
||||
|
||||
@ -16,9 +18,20 @@ __all__ = (
|
||||
|
||||
@dataclass
|
||||
class AvailableIPSpace:
|
||||
"""
|
||||
A representation of available IP space between two IP addresses/ranges.
|
||||
"""
|
||||
size: int
|
||||
first_ip: str
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
if self.size == 1:
|
||||
return _('1 IP available')
|
||||
if self.size <= 65536:
|
||||
return _('{count} IPs available').format(count=self.size)
|
||||
return _('Many IPs available')
|
||||
|
||||
|
||||
def add_requested_prefixes(parent, prefix_list, show_available=True, show_assigned=True):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user