]> git.ozlabs.org Git - patchwork/blob - apps/patchwork/admin.py
admin: Embellish model change lists
[patchwork] / apps / patchwork / admin.py
1 from django.contrib import admin
2 from django.contrib.sites.models import Site
3 from django.contrib.auth.models import User
4 from django.contrib.auth.admin import UserAdmin
5 from patchwork.models import Project, Person, UserProfile, State, Patch, \
6          Comment, Bundle
7
8 admin_site = admin.AdminSite()
9
10 class ProjectAdmin(admin.ModelAdmin):
11     list_display = ('name', 'linkname','listid', 'listemail')
12 admin_site.register(Project, ProjectAdmin)
13
14 class PersonAdmin(admin.ModelAdmin):
15     list_display = ('__unicode__', 'has_account')
16     search_fields = ('name', 'email')
17     def has_account(self, person):
18         return bool(person.user)
19     has_account.boolean = True
20     has_account.admin_order_field = 'user'
21     has_account.short_description = 'Account'
22 admin_site.register(Person, PersonAdmin)
23
24 class UserProfileAdmin(admin.ModelAdmin):
25     search_fields = ('user__username', 'user__first_name', 'user__last_name')
26 admin_site.register(UserProfile, UserProfileAdmin)
27
28 class StateAdmin(admin.ModelAdmin):
29     list_display = ('name', 'action_required')
30 admin_site.register(State, StateAdmin)
31
32 class PatchAdmin(admin.ModelAdmin):
33     list_display = ('name', 'submitter', 'project', 'state', 'date',
34             'archived', 'is_pull_request')
35     list_filter = ('project', 'state', 'archived')
36     search_fields = ('name', 'submitter__name', 'submitter__email')
37     date_hierarchy = 'date'
38     def is_pull_request(self, patch):
39         return bool(patch.pull_url)
40     is_pull_request.boolean = True
41     is_pull_request.admin_order_field = 'pull_url'
42     is_pull_request.short_description = 'Pull'
43 admin_site.register(Patch, PatchAdmin)
44
45 class CommentAdmin(admin.ModelAdmin):
46     list_display = ('patch', 'submitter', 'date')
47     search_fields = ('patch__name', 'submitter__name', 'submitter__email')
48     date_hierarchy = 'date'
49 admin_site.register(Comment, CommentAdmin)
50
51 class BundleAdmin(admin.ModelAdmin):
52     list_display = ('name', 'owner', 'project', 'public')
53     list_filter = ('public', 'project')
54     search_fields = ('name', 'owner')
55 admin_site.register(Bundle, BundleAdmin)
56
57 admin_site.register(User, UserAdmin)
58
59 class SiteAdmin(admin.ModelAdmin):
60     pass
61 admin_site.register(Site, SiteAdmin)
62