Преглед изворни кода

Extend circuits tables to include all relevant model fields

Jeremy Stretch пре 5 година
родитељ
комит
725e3cdbf3
4 измењених фајлова са 21 додато и 16 уклоњено
  1. 15 10
      netbox/circuits/tables.py
  2. 3 3
      netbox/circuits/views.py
  3. 1 1
      netbox/netbox/views.py
  4. 2 2
      netbox/utilities/tables.py

+ 15 - 10
netbox/circuits/tables.py

@@ -27,18 +27,23 @@ STATUS_LABEL = """
 class ProviderTable(BaseTable):
     pk = ToggleColumn()
     name = tables.LinkColumn()
+    portal_url = tables.URLColumn(
+        visible=False
+    )
+    noc_contact = tables.Column(
+        visible=False
+    )
+    admin_contact = tables.Column(
+        visible=False
+    )
+    circuit_count = tables.Column(
+        accessor=Accessor('count_circuits'),
+        verbose_name='Circuits'
+    )
 
     class Meta(BaseTable.Meta):
         model = Provider
-        fields = ('pk', 'name', 'asn', 'account',)
-
-
-class ProviderDetailTable(ProviderTable):
-    circuit_count = tables.Column(accessor=Accessor('count_circuits'), verbose_name='Circuits')
-
-    class Meta(ProviderTable.Meta):
-        model = Provider
-        fields = ('pk', 'name', 'asn', 'account', 'circuit_count')
+        fields = ('pk', 'name', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'circuit_count')
 
 
 #
@@ -86,6 +91,6 @@ class CircuitTable(BaseTable):
     class Meta(BaseTable.Meta):
         model = Circuit
         fields = (
-            'pk', 'cid', 'status', 'type', 'provider', 'tenant', 'a_side', 'z_side', 'install_date', 'commit_rate',
+            'pk', 'cid', 'provider', 'type', 'status', 'tenant', 'a_side', 'z_side', 'install_date', 'commit_rate',
             'description',
         )

+ 3 - 3
netbox/circuits/views.py

@@ -28,7 +28,7 @@ class ProviderListView(PermissionRequiredMixin, ObjectListView):
     queryset = Provider.objects.annotate(count_circuits=Count('circuits'))
     filterset = filters.ProviderFilterSet
     filterset_form = forms.ProviderFilterForm
-    table = tables.ProviderDetailTable
+    table = tables.ProviderTable
 
 
 class ProviderView(PermissionRequiredMixin, View):
@@ -87,7 +87,7 @@ class ProviderBulkImportView(PermissionRequiredMixin, BulkImportView):
 
 class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView):
     permission_required = 'circuits.change_provider'
-    queryset = Provider.objects.all()
+    queryset = Provider.objects.annotate(count_circuits=Count('circuits'))
     filterset = filters.ProviderFilterSet
     table = tables.ProviderTable
     form = forms.ProviderBulkEditForm
@@ -96,7 +96,7 @@ class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView):
 
 class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
     permission_required = 'circuits.delete_provider'
-    queryset = Provider.objects.all()
+    queryset = Provider.objects.annotate(count_circuits=Count('circuits'))
     filterset = filters.ProviderFilterSet
     table = tables.ProviderTable
     default_return_url = 'circuits:provider_list'

+ 1 - 1
netbox/netbox/views.py

@@ -44,7 +44,7 @@ SEARCH_TYPES = OrderedDict((
     # Circuits
     ('provider', {
         'permission': 'circuits.view_provider',
-        'queryset': Provider.objects.all(),
+        'queryset': Provider.objects.annotate(count_circuits=Count('circuits')),
         'filterset': ProviderFilterSet,
         'table': ProviderTable,
         'url': 'circuits:provider_list',

+ 2 - 2
netbox/utilities/tables.py

@@ -37,10 +37,10 @@ class BaseTable(tables.Table):
     @property
     def configurable_columns(self):
         selected_columns = [
-            (name, self.columns[name].verbose_name) for name in self.sequence if name != 'pk'
+            (name, self.columns[name].verbose_name) for name in self.sequence if name not in ['pk', 'actions']
         ]
         available_columns = [
-            (name, column.verbose_name) for name, column in self.columns.items() if name not in self.sequence and name != 'pk'
+            (name, column.verbose_name) for name, column in self.columns.items() if name not in self.sequence and name not in ['pk', 'actions']
         ]
         return selected_columns + available_columns