source: asadb/groups/admin.py @ 83d82e7

space-accessstablestage
Last change on this file since 83d82e7 was 83d82e7, checked in by Alex Dehnert <adehnert@…>, 13 years ago

Set up list_filter for AthenaMoiraAccount?

  • Property mode set to 100644
File size: 4.9 KB
Line 
1from django.contrib import admin
2
3from reversion.admin import VersionAdmin
4
5import groups.models
6import util.admin
7
8class GroupAdmin(VersionAdmin):
9    list_max_show_all = 1000
10    list_display = (
11        'id',
12        'name',
13        'abbreviation',
14        'activity_category',
15        'officer_email',
16        'main_account_id',
17        'funding_account_id',
18        'athena_locker',
19        'update_date',
20        'updater',
21    )
22    list_display_links = ('id', 'name', )
23    list_filter = [
24        'activity_category',
25        'group_class',
26        'group_status',
27        'group_funding',
28    ]
29    date_hierarchy = 'update_date'
30    search_fields = [ 'id', 'name', 'abbreviation', 'officer_email', 'athena_locker', ]
31admin.site.register(groups.models.Group, GroupAdmin)
32
33
34class Admin_GroupConstitution(VersionAdmin):
35    list_display = (
36        'pk',
37        'group',
38        'source_url',
39        'dest_file',
40        'last_update',
41        'last_download',
42        'failure_date',
43    )
44admin.site.register(groups.models.GroupConstitution, Admin_GroupConstitution)
45
46
47class Admin_GroupStartup(VersionAdmin):
48    list_display = (
49        'id',
50        'group',
51        'stage',
52        'submitter',
53        'president_kerberos',
54        'create_officer_list',
55        'create_group_list',
56        'create_athena_locker',
57    )
58    list_display_links = ('id', 'group', )
59    search_fields = [ 'group__name', 'group__abbreviation', 'submitter', 'president_kerberos', ]
60admin.site.register(groups.models.GroupStartup, Admin_GroupStartup)
61
62class Admin_GroupNote(VersionAdmin):
63    list_display = (
64        'pk',
65        'author',
66        'timestamp',
67        'acl_read_group',
68        'acl_read_offices',
69        'group',
70    )
71    list_display_links = ('pk', 'timestamp', )
72    list_filter = [
73        'acl_read_group',
74        'acl_read_offices',
75    ]
76    date_hierarchy = 'timestamp'
77    search_fields = [
78        'author',
79        'group__name',
80        'group__abbreviation',
81        'group__officer_email',
82        'group__athena_locker',
83    ]
84admin.site.register(groups.models.GroupNote, Admin_GroupNote)
85
86
87class OfficerRoleAdmin(VersionAdmin):
88    list_display = (
89        'id',
90        'display_name',
91        'slug',
92        'max_count',
93        'require_student',
94        'publicly_visible',
95        'grant_user',
96    )
97    list_display_links = ('id', 'display_name', 'slug', )
98    prepopulated_fields = {"slug": ("display_name",)}
99admin.site.register(groups.models.OfficerRole, OfficerRoleAdmin)
100
101
102class OfficeHolderAdmin(VersionAdmin):
103    class OfficeHolderPeriodFilter(util.admin.TimePeriodFilter):
104        start_field = 'start_time'
105        end_field = 'end_time'
106
107    list_display = (
108        'id',
109        'person',
110        'role',
111        'group',
112        'start_time', 'end_time',
113    )
114    list_display_links = (
115        'id',
116        'person',
117        'role',
118        'group',
119        'start_time', 'end_time',
120    )
121    search_fields = (
122        'id',
123        'person',
124        'role__display_name', 'role__slug',
125        'group__name', 'group__abbreviation',
126        'start_time', 'end_time',
127    )
128    list_filter = [
129        'role',
130        OfficeHolderPeriodFilter,
131    ]
132admin.site.register(groups.models.OfficeHolder, OfficeHolderAdmin)
133
134
135class ActivityCategoryAdmin(admin.ModelAdmin):
136    list_display = (
137        'id',
138        'name',
139    )
140    list_display_links = ('id', 'name', )
141admin.site.register(groups.models.ActivityCategory, ActivityCategoryAdmin)
142
143
144class Admin_GroupClass(admin.ModelAdmin):
145    list_display = (
146        'id',
147        'name',
148        'slug',
149        'gets_publicity',
150    )
151    list_display_links = ('id', 'name', 'slug', )
152    list_filter = [ 'gets_publicity', ]
153    prepopulated_fields = {'slug': ('name', )}
154admin.site.register(groups.models.GroupClass, Admin_GroupClass)
155
156
157class Admin_GroupStatus(admin.ModelAdmin):
158    list_display = (
159        'id',
160        'name',
161        'slug',
162        'is_active',
163    )
164    list_display_links = ('id', 'name', 'slug', )
165    list_filter = [ 'is_active', ]
166    prepopulated_fields = {'slug': ('name', )}
167admin.site.register(groups.models.GroupStatus, Admin_GroupStatus)
168
169
170class Admin_GroupFunding(admin.ModelAdmin):
171    list_display = (
172        'id',
173        'name',
174        'slug',
175        'contact_email',
176        'funding_list',
177    )
178    list_display_links = ('id', 'name', 'slug', )
179    prepopulated_fields = {'slug': ('name', )}
180admin.site.register(groups.models.GroupFunding, Admin_GroupFunding)
181
182
183class Admin_AthenaMoiraAccount(admin.ModelAdmin):
184    list_display = (
185        'id',
186        'username',
187        'mit_id',
188        'first_name',
189        'last_name',
190        'account_class',
191        'mutable',
192        'add_date',
193        'del_date',
194        'mod_date',
195    )
196    list_display_links = ( 'id', 'username', )
197    search_fields = ( 'username', 'mit_id', 'first_name', 'last_name', 'account_class', )
198    list_filter = ( 'account_class', 'mutable', )
199admin.site.register(groups.models.AthenaMoiraAccount, Admin_AthenaMoiraAccount)
Note: See TracBrowser for help on using the repository browser.