mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-27 02:48: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
|
""" + PREFIX_LINK
|
||||||
|
|
||||||
IPADDRESS_LINK = """
|
IPADDRESS_LINK = """
|
||||||
{% if record.address %}
|
{% if record.address or record.start_address %}
|
||||||
<a href="{{ record.get_absolute_url }}" id="ipaddress_{{ record.pk }}">{{ record.address }}</a>
|
<a href="{{ record.get_absolute_url }}">{{ record }}</a>
|
||||||
{% elif record.start_address %}
|
|
||||||
<a href="{{ record.get_absolute_url }}" id="range_{{ record.pk }}">{{ record }}</a>
|
|
||||||
{% elif perms.ipam.add_ipaddress %}
|
{% 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 %}
|
{% else %}
|
||||||
{% if record.size <= 65536 %}{{ record.size }}{% else %}Many{% endif %} IP{{ record.size|pluralize }} available
|
{{ record.title }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
import netaddr
|
import netaddr
|
||||||
|
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from .constants import *
|
from .constants import *
|
||||||
from .models import Prefix, VLAN
|
from .models import Prefix, VLAN
|
||||||
|
|
||||||
@ -16,9 +18,20 @@ __all__ = (
|
|||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class AvailableIPSpace:
|
class AvailableIPSpace:
|
||||||
|
"""
|
||||||
|
A representation of available IP space between two IP addresses/ranges.
|
||||||
|
"""
|
||||||
size: int
|
size: int
|
||||||
first_ip: str
|
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):
|
def add_requested_prefixes(parent, prefix_list, show_available=True, show_assigned=True):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user