Просмотр исходного кода

Closes #7702: Add Powerfeed Defaults to User Configurations

Hunter Johnston 3 лет назад
Родитель
Сommit
52178f78d1
4 измененных файлов с 41 добавлено и 1 удалено
  1. 1 1
      netbox/dcim/urls.py
  2. 12 0
      netbox/dcim/views.py
  3. 3 0
      netbox/extras/admin.py
  4. 25 0
      netbox/netbox/config/parameters.py

+ 1 - 1
netbox/dcim/urls.py

@@ -489,7 +489,7 @@ urlpatterns = [
 
     # Power feeds
     path('power-feeds/', views.PowerFeedListView.as_view(), name='powerfeed_list'),
-    path('power-feeds/add/', views.PowerFeedEditView.as_view(), name='powerfeed_add'),
+    path('power-feeds/add/', views.PowerFeedCreateView.as_view(), name='powerfeed_add'),
     path('power-feeds/import/', views.PowerFeedBulkImportView.as_view(), name='powerfeed_import'),
     path('power-feeds/edit/', views.PowerFeedBulkEditView.as_view(), name='powerfeed_bulk_edit'),
     path('power-feeds/disconnect/', views.PowerFeedBulkDisconnectView.as_view(), name='powerfeed_bulk_disconnect'),

+ 12 - 0
netbox/dcim/views.py

@@ -16,6 +16,7 @@ from circuits.models import Circuit
 from extras.views import ObjectConfigContextView
 from ipam.models import ASN, IPAddress, Prefix, Service, VLAN, VLANGroup
 from ipam.tables import AssignedIPAddressesTable, InterfaceVLANTable
+from netbox.config import ConfigItem
 from netbox.views import generic
 from utilities.forms import ConfirmationForm
 from utilities.paginator import EnhancedPaginator, get_paginate_count
@@ -3253,6 +3254,17 @@ class PowerFeedView(generic.ObjectView):
     queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack')
 
 
+class PowerFeedCreateView(generic.ObjectEditView):
+    queryset = PowerFeed.objects.all()
+    form = forms.PowerFeedForm
+
+    def alter_object(self, obj, request, args, kwargs):
+        obj.voltage = ConfigItem('POWERFEED_DEFAULT_VOLTAGE')
+        obj.amperage = ConfigItem('POWERFEED_DEFAULT_AMPERAGE')
+        obj.max_utilization = ConfigItem('POWERFEED_DEFAULT_MAX_UTILIZATION')
+        return obj
+
+
 class PowerFeedEditView(generic.ObjectEditView):
     queryset = PowerFeed.objects.all()
     form = forms.PowerFeedForm

+ 3 - 0
netbox/extras/admin.py

@@ -15,6 +15,9 @@ class ConfigRevisionAdmin(admin.ModelAdmin):
         ('Rack Elevations', {
             'fields': ('RACK_ELEVATION_DEFAULT_UNIT_HEIGHT', 'RACK_ELEVATION_DEFAULT_UNIT_WIDTH'),
         }),
+        ('Power', {
+            'fields': ('POWERFEED_DEFAULT_VOLTAGE', 'POWERFEED_DEFAULT_AMPERAGE', 'POWERFEED_DEFAULT_MAX_UTILIZATION')
+        }),
         ('IPAM', {
             'fields': ('ENFORCE_GLOBAL_UNIQUE', 'PREFER_IPV4'),
         }),

+ 25 - 0
netbox/netbox/config/parameters.py

@@ -82,6 +82,31 @@ PARAMS = (
         field=forms.IntegerField
     ),
 
+    # Power
+    ConfigParam(
+        name='POWERFEED_DEFAULT_VOLTAGE',
+        label='Powerfeed voltage',
+        default=120,
+        description="Default voltage for powerfeeds",
+        field=forms.IntegerField
+    ),
+
+    ConfigParam(
+        name='POWERFEED_DEFAULT_AMPERAGE',
+        label='Powerfeed amperage',
+        default=15,
+        description="Default amperage for powerfeeds",
+        field=forms.IntegerField
+    ),
+
+    ConfigParam(
+        name='POWERFEED_DEFAULT_MAX_UTILIZATION',
+        label='Powerfeed max utilization',
+        default=80,
+        description="Default max utilization for powerfeeds",
+        field=forms.IntegerField
+    ),
+
     # Security
     ConfigParam(
         name='ALLOWED_URL_SCHEMES',