-# Note this is breaking in the admin.py when trying to use an inline to add a node/image
-# def _declared_fieldsets(self):
-# # Return None so django will call get_fieldsets and we can insert our
-# # dynamic fields
-# return None
-#
-# def get_readonly_fields(self, request, obj=None):
-# readonly_fields = super(SliverInline, self).get_readonly_fields(request, obj)
-#
-# # Lookup the networks that are bound to the slivers, and add those
-# # network names to the list of readonly fields.
-#
-# for sliver in obj.slivers.all():
-# for nbs in sliver.networksliver_set.all():
-# if nbs.ip:
-# network_name = nbs.network.name
-# if network_name not in [str(x) for x in readonly_fields]:
-# readonly_fields.append(NetworkLookerUpper(network_name))
-#
-# return readonly_fields
-#
-# def get_fieldsets(self, request, obj=None):
-# form = self.get_formset(request, obj).form
-# # fields = the read/write files + the read-only fields
-# fields = self.fields
-# for fieldName in self.get_readonly_fields(request,obj):
-# if not fieldName in fields:
-# fields.append(fieldName)
-#
-# return [(None, {'fields': fields})]
-
-
-
-class SiteROInline(ReadOnlyTabularInline):
- model = Site
- extra = 0
- fields = ['name', 'login_base', 'site_url', 'enabled']
- suit_classes = 'suit-tab suit-tab-sites'
+ def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
+ if db_field.name == 'deploymentNetwork':
+ kwargs['queryset'] = Deployment.select_by_acl(request.user)
+ kwargs['widget'] = forms.Select(attrs={'onChange': "sliver_deployment_changed(this);"})
+ elif db_field.name == 'flavor':
+ kwargs['widget'] = forms.Select(attrs={'onChange': "sliver_flavor_changed(this);"})
+
+ field = super(SliverInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
+
+ return field
+
+"""
+ SMBAKER: This is the old code that implemented each network type as a
+ separate column in the sliver table.
+
+ def _declared_fieldsets(self):
+ # Return None so django will call get_fieldsets and we can insert our
+ # dynamic fields
+ return None
+
+ def get_readonly_fields(self, request, obj=None):
+ readonly_fields = list(super(SliverInline, self).get_readonly_fields(request, obj))
+
+ # Lookup the networks that are bound to the slivers, and add those
+ # network names to the list of readonly fields.
+
+ for sliver in obj.slivers.all():
+ for nbs in sliver.networksliver_set.all():
+ if nbs.ip:
+ network_name = nbs.network.name
+ if network_name not in [str(x) for x in readonly_fields]:
+ readonly_fields.append(NetworkLookerUpper.get(network_name))
+
+ return readonly_fields
+
+ def get_fieldsets(self, request, obj=None):
+ form = self.get_formset(request, obj).form
+ # fields = the read/write files + the read-only fields
+ fields = list(self.fields)
+ for fieldName in self.get_readonly_fields(request,obj):
+ if not fieldName in fields:
+ fields.append(fieldName)
+
+ return [(None, {'fields': fields})]
+"""