diff --git a/netbox/templates/generic/object.html b/netbox/templates/generic/object.html index 4935bfd91..98a27d040 100644 --- a/netbox/templates/generic/object.html +++ b/netbox/templates/generic/object.html @@ -77,7 +77,7 @@ Context: {% if perms.extras.add_bookmark and object.bookmarks %} {% bookmark_button object %} {% endif %} - {% if perms.extras.add_subscription %} + {% if perms.extras.add_subscription and object.subscriptions %} {% subscribe_button object %} {% endif %} {% if request.user|can_add:object %} diff --git a/netbox/utilities/templates/buttons/subscribe.html b/netbox/utilities/templates/buttons/subscribe.html index 07fb33d2b..fff3c49c2 100644 --- a/netbox/utilities/templates/buttons/subscribe.html +++ b/netbox/utilities/templates/buttons/subscribe.html @@ -1,16 +1,18 @@ {% load i18n %} -
+{% if form_url %} + +{% endif %} diff --git a/netbox/utilities/templatetags/buttons.py b/netbox/utilities/templatetags/buttons.py index f198f5008..675fa98eb 100644 --- a/netbox/utilities/templatetags/buttons.py +++ b/netbox/utilities/templatetags/buttons.py @@ -4,6 +4,7 @@ from django.urls import NoReverseMatch, reverse from core.models import ObjectType from extras.models import Bookmark, ExportTemplate, Subscription +from netbox.models.features import NotificationsMixin from utilities.querydict import prepare_cloned_fields from utilities.views import get_viewname @@ -97,6 +98,10 @@ def delete_button(instance): @register.inclusion_tag('buttons/subscribe.html', takes_context=True) def subscribe_button(context, instance): + # Skip for objects which don't support notifications + if not (issubclass(instance.__class__, NotificationsMixin)): + return {} + # Check if this user has already subscribed to the object content_type = ContentType.objects.get_for_model(instance) subscription = Subscription.objects.filter(