def add_fields(self, form, index): super(PackageComponentInlineFormset, self).add_fields(form, index) if 'type' in form.initial and form.initial['type'] in models.PackageTemplate.get_memory_types(): is_readonly = self.instance and self.instance.is_read_only() form.fields['amount'] = forms.IntegerField(min_value=1, initial=1024, widget=core_admin.GBtoMBWidget({'readonly': is_readonly})) elif 'type' in form.initial and form.initial['type'] == models.PackageComponent.Types.CORES: form.fields['amount'] = forms.IntegerField(min_value=1, initial=1)
def ram_gb(self, obj): return '%s GB' % core_admin.GBtoMBWidget().format_value(obj.ram)
def storage_gb(self, obj): return '%s GB' % core_admin.GBtoMBWidget().format_value(obj.storage)
class Meta: widgets = { 'ram': core_admin.GBtoMBWidget(), 'storage': core_admin.GBtoMBWidget(), }