From 374abe52149c5804c605a781aee73b9542f6ac36 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 23 Aug 2022 10:34:06 -0700 Subject: [PATCH 1/2] #10033 disable Add a Termination button if 2 terminations on L2VPN P2P --- netbox/ipam/models/l2vpn.py | 6 ++++++ netbox/templates/ipam/l2vpn.html | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/netbox/ipam/models/l2vpn.py b/netbox/ipam/models/l2vpn.py index 0e948b18e..db6f47924 100644 --- a/netbox/ipam/models/l2vpn.py +++ b/netbox/ipam/models/l2vpn.py @@ -67,6 +67,12 @@ class L2VPN(NetBoxModel): def get_absolute_url(self): return reverse('ipam:l2vpn', args=[self.pk]) + def can_add_termination(self): + if self.type in L2VPNTypeChoices.P2P and self.terminations.count() >= 2: + return False + else: + return True + class L2VPNTermination(NetBoxModel): l2vpn = models.ForeignKey( diff --git a/netbox/templates/ipam/l2vpn.html b/netbox/templates/ipam/l2vpn.html index 44a1da818..32013400b 100644 --- a/netbox/templates/ipam/l2vpn.html +++ b/netbox/templates/ipam/l2vpn.html @@ -59,7 +59,7 @@ {% if perms.ipam.add_l2vpntermination %} From 439cf1a30874bffce105e0d0dea05b416f603487 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 23 Aug 2022 16:17:40 -0700 Subject: [PATCH 2/2] #10033 changes from code review --- netbox/ipam/models/l2vpn.py | 2 ++ netbox/templates/ipam/l2vpn.html | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/netbox/ipam/models/l2vpn.py b/netbox/ipam/models/l2vpn.py index db6f47924..ab29ab048 100644 --- a/netbox/ipam/models/l2vpn.py +++ b/netbox/ipam/models/l2vpn.py @@ -3,6 +3,7 @@ from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ValidationError from django.db import models from django.urls import reverse +from django.utils.functional import cached_property from ipam.choices import L2VPNTypeChoices from ipam.constants import L2VPN_ASSIGNMENT_MODELS @@ -67,6 +68,7 @@ class L2VPN(NetBoxModel): def get_absolute_url(self): return reverse('ipam:l2vpn', args=[self.pk]) + @cached_property def can_add_termination(self): if self.type in L2VPNTypeChoices.P2P and self.terminations.count() >= 2: return False diff --git a/netbox/templates/ipam/l2vpn.html b/netbox/templates/ipam/l2vpn.html index 32013400b..c19363d33 100644 --- a/netbox/templates/ipam/l2vpn.html +++ b/netbox/templates/ipam/l2vpn.html @@ -59,7 +59,7 @@ {% if perms.ipam.add_l2vpntermination %}