from django.contrib import admin from django.shortcuts import render_to_response, get_object_or_404 from procurement.admin_forms import ComponentAdminForm from procurement.models import Supplier, Component, Representative class RepresentativeAdmin(admin.ModelAdmin): list_display = ('name', 'email', 'supplier', 'updated') ordering = ("supplier",) class RepresentativeInline(admin.TabularInline): model = Representative class SupplierAdmin(admin.ModelAdmin): list_display = ('name', 'get_representatives', 'is_authorized', 'updated') filter_horizonal = ('components',) inlines = [RepresentativeInline] def get_representatives(self, obj): return list(str(x) for x in obj.representatives.all()) get_representatives.short_description = "Representatives" class ComponentAdmin(admin.ModelAdmin): list_display = ('name', 'sku', 'updated') form = ComponentAdminForm source_components_template = 'procurement/admin_templates/source_components.html' def source_components(self, request, pk): component = get_object_or_404(Component, pk=pk) return render_to_response(self.source_components_template, { 'title': 'Source Suppliers for: %s' % component, 'opts': self.model._meta, 'component': component, 'supplier_results': component.suppliers.filter(is_authorized=True), }) admin.site.register(Representative, RepresentativeAdmin) admin.site.register(Supplier, SupplierAdmin) admin.site.register(Component, ComponentAdmin)