admin.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from django import forms
  2. from django.contrib import admin
  3. from .models import CustomField, CustomFieldChoice, Graph, ExportTemplate, TopologyMap, UserAction
  4. class CustomFieldForm(forms.ModelForm):
  5. class Meta:
  6. model = CustomField
  7. exclude = []
  8. def __init__(self, *args, **kwargs):
  9. super(CustomFieldForm, self).__init__(*args, **kwargs)
  10. # Organize the available ContentTypes
  11. queryset = self.fields['obj_type'].queryset.order_by('app_label', 'model')
  12. self.fields['obj_type'].choices = [(ct.pk, '{} > {}'.format(ct.app_label, ct.name)) for ct in queryset]
  13. class CustomFieldChoiceAdmin(admin.TabularInline):
  14. model = CustomFieldChoice
  15. extra = 5
  16. @admin.register(CustomField)
  17. class CustomFieldAdmin(admin.ModelAdmin):
  18. inlines = [CustomFieldChoiceAdmin]
  19. list_display = ['name', 'models', 'type', 'required', 'default', 'weight', 'description']
  20. form = CustomFieldForm
  21. def models(self, obj):
  22. return ', '.join([ct.name for ct in obj.obj_type.all()])
  23. @admin.register(Graph)
  24. class GraphAdmin(admin.ModelAdmin):
  25. list_display = ['name', 'type', 'weight', 'source']
  26. @admin.register(ExportTemplate)
  27. class ExportTemplateAdmin(admin.ModelAdmin):
  28. list_display = ['name', 'content_type', 'description', 'mime_type', 'file_extension']
  29. @admin.register(TopologyMap)
  30. class TopologyMapAdmin(admin.ModelAdmin):
  31. list_display = ['name', 'slug', 'site']
  32. prepopulated_fields = {
  33. 'slug': ['name'],
  34. }
  35. @admin.register(UserAction)
  36. class UserActionAdmin(admin.ModelAdmin):
  37. actions = None
  38. list_display = ['user', 'action', 'content_type', 'object_id', 'message']