showard | a5288b4 | 2009-07-28 20:06:08 +0000 | [diff] [blame] | 1 | """Django 1.0 admin interface declarations.""" |
| 2 | |
| 3 | from django.contrib import admin |
| 4 | |
| 5 | from autotest_lib.frontend import settings |
| 6 | from autotest_lib.frontend.afe import model_logic, models |
| 7 | |
| 8 | |
| 9 | class AtomicGroupAdmin(admin.ModelAdmin): |
| 10 | list_display = ('name', 'description', 'max_number_of_machines') |
| 11 | |
| 12 | def queryset(self, request): |
| 13 | return models.AtomicGroup.valid_objects |
| 14 | |
| 15 | admin.site.register(models.AtomicGroup, AtomicGroupAdmin) |
| 16 | |
| 17 | |
| 18 | class LabelAdmin(admin.ModelAdmin): |
| 19 | list_display = ('name', 'kernel_config') |
| 20 | |
| 21 | def queryset(self, request): |
| 22 | return models.Label.valid_objects |
| 23 | |
| 24 | admin.site.register(models.Label, LabelAdmin) |
| 25 | |
| 26 | |
| 27 | class UserAdmin(admin.ModelAdmin): |
| 28 | list_display = ('login', 'access_level') |
| 29 | search_fields = ('login',) |
| 30 | |
| 31 | admin.site.register(models.User, UserAdmin) |
| 32 | |
| 33 | |
| 34 | class HostAdmin(admin.ModelAdmin): |
| 35 | # TODO(showard) - showing platform requires a SQL query for |
| 36 | # each row (since labels are many-to-many) - should we remove |
| 37 | # it? |
| 38 | list_display = ('hostname', 'platform', 'locked', 'status') |
| 39 | list_filter = ('labels', 'locked', 'protection') |
| 40 | search_fields = ('hostname', 'status') |
| 41 | filter_horizontal = ('labels',) |
| 42 | |
| 43 | def queryset(self, request): |
| 44 | return models.Host.valid_objects |
| 45 | |
| 46 | admin.site.register(models.Host, HostAdmin) |
| 47 | |
| 48 | |
| 49 | class TestAdmin(admin.ModelAdmin): |
| 50 | fields = ('name', 'author', 'test_category', 'test_class', |
| 51 | 'test_time', 'sync_count', 'test_type', 'path', |
| 52 | 'dependencies', 'experimental', 'run_verify', |
| 53 | 'description') |
| 54 | list_display = ('name', 'test_type', 'description', 'sync_count') |
| 55 | search_fields = ('name',) |
| 56 | filter_horizontal = ('dependency_labels',) |
| 57 | |
| 58 | admin.site.register(models.Test, TestAdmin) |
| 59 | |
| 60 | |
| 61 | class ProfilerAdmin(admin.ModelAdmin): |
| 62 | list_display = ('name', 'description') |
| 63 | search_fields = ('name',) |
| 64 | |
| 65 | admin.site.register(models.Profiler, ProfilerAdmin) |
| 66 | |
| 67 | |
| 68 | class AclGroupAdmin(admin.ModelAdmin): |
| 69 | list_display = ('name', 'description') |
| 70 | search_fields = ('name',) |
| 71 | filter_horizontal = ('users', 'hosts') |
| 72 | |
| 73 | admin.site.register(models.AclGroup, AclGroupAdmin) |
| 74 | |
| 75 | |
| 76 | if settings.FULL_ADMIN: |
| 77 | class JobAdmin(admin.ModelAdmin): |
| 78 | list_display = ('id', 'owner', 'name', 'control_type') |
| 79 | filter_horizontal = ('dependency_labels',) |
| 80 | |
| 81 | admin.site.register(models.Job, JobAdmin) |
| 82 | |
| 83 | class IneligibleHostQueueAdmin(admin.ModelAdmin): |
| 84 | list_display = ('id', 'job', 'host') |
| 85 | |
| 86 | admin.site.register(models.IneligibleHostQueue, IneligibleHostQueueAdmin) |
| 87 | |
| 88 | class HostQueueEntryAdmin(admin.ModelAdmin): |
| 89 | list_display = ('id', 'job', 'host', 'status', |
| 90 | 'meta_host') |
| 91 | |
| 92 | admin.site.register(models.HostQueueEntry, HostQueueEntryAdmin) |
| 93 | |
| 94 | admin.site.register(models.AbortedHostQueueEntry) |