from django.conf import settings from netbox.plugins import PluginTemplateExtension from .models import RackConcept def _enabled(): return settings.PLUGINS_CONFIG.get('netbox_rack_concept', {}).get('enable_rack_tab', True) class RackConceptButtons(PluginTemplateExtension): """Adds "Copy to concept" to the button row of a rack, and lists derived concepts.""" models = ['dcim.rack'] def buttons(self): if not _enabled(): return '' if not self.context['request'].user.has_perm('netbox_rack_concept.add_rackconcept'): return '' return self.render('netbox_rack_concept/inc/rack_copy_button.html', extra_context={ 'rack': self.context['object'], }) def right_page(self): if not _enabled(): return '' rack = self.context['object'] concepts = RackConcept.objects.restrict(self.context['request'].user, 'view').filter(source_rack=rack) if not concepts: return '' return self.render('netbox_rack_concept/inc/rack_concepts_panel.html', extra_context={ 'concepts': concepts, }) template_extensions = [RackConceptButtons]