Fix sortable cols in admin

This commit is contained in:
Matthew Ryan Dillon 2016-01-29 11:53:33 -07:00
parent 53f28be5ec
commit c4b8911cc4
3 changed files with 63 additions and 8 deletions

View file

@ -13,7 +13,7 @@ class MeasurementUnitAdmin(admin.ModelAdmin):
class MeasurementTypeAdmin(admin.ModelAdmin):
list_display = ('name', 'code', 'measurement_type_class', 'description',
'default_measurement_unit', 'sort_order')
'measurement_unit_code', 'sort_order')
list_display_links = ('name',)
search_fields = ('name', 'code', 'measurement_type_class',
'default_measurement_unit__code', 'description')
@ -21,10 +21,17 @@ class MeasurementTypeAdmin(admin.ModelAdmin):
fields = ('name', 'code', 'measurement_type_class', 'description',
'default_measurement_unit', 'sort_order')
def measurement_unit_code(self, obj):
if obj.default_measurement_unit:
return obj.default_measurement_unit.code
return obj.default_measurement_unit
measurement_unit_code.admin_order_field = 'default_measurement_unit__code'
measurement_unit_code.short_description = 'Default Measurement Unit'
class ContainerAdmin(admin.ModelAdmin):
list_display = ('name', 'code', 'application', 'color', 'material',
'volume', 'measurement_unit', 'sort_order')
list_display = ('name', 'code', 'application', 'color_name', 'material_name',
'volume', 'measurement_unit_name', 'sort_order')
list_display_links = ('name',)
search_fields = ('name', 'code', 'application', 'color__name',
'material__name', 'volume', 'measurement_unit__name')
@ -32,6 +39,27 @@ class ContainerAdmin(admin.ModelAdmin):
fields = ('name', 'code', 'application', 'color', 'material',
'volume', 'measurement_unit', 'sort_order')
def color_name(self, obj):
if obj.color:
return obj.color.name
return obj.color
color_name.admin_order_field = 'color__name'
color_name.short_description = 'Color'
def material_name(self, obj):
if obj.material:
return obj.material.name
return obj.material
material_name.admin_order_field = 'material__name'
material_name.short_description = 'Material'
def measurement_unit_name(self, obj):
if obj.measurement_unit:
return obj.measurement_unit.name
return obj.measurement_unit
measurement_unit_name.admin_order_field = 'measurement_unit__name'
measurement_unit_name.short_description = 'Measurement Unit'
class MaterialAdmin(admin.ModelAdmin):
list_display = ('name', 'code', 'material_class', 'description', 'sort_order')