annotate savane/svmain/admin.py @ 318:8d7c891dec61

Start adding some stats for the homepage
author Sylvain Beucler <beuc@beuc.net>
date Wed, 18 Aug 2010 23:35:26 +0200
parents df0e87b3b7b9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
276
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
1 # User/group admin interface
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
2 # Copyright (C) 2009, 2010 Sylvain Beucler
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
3 #
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
4 # This file is part of Savane.
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
5 #
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
6 # Savane is free software: you can redistribute it and/or modify
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
7 # it under the terms of the GNU Affero General Public License as
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
8 # published by the Free Software Foundation, either version 3 of the
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
9 # License, or (at your option) any later version.
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
10 #
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
11 # Savane is distributed in the hope that it will be useful,
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
14 # GNU Affero General Public License for more details.
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
15 #
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
16 # You should have received a copy of the GNU Affero General Public License
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
18
154
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
19 from django.contrib import admin
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
20 from django.utils.translation import ugettext, ugettext_lazy as _
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
21 import models as svmain_models
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
22
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
23 class LicenseAdmin(admin.ModelAdmin):
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
24 list_display = ['slug', 'pk', 'name', 'url']
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
25 search_fields = ['name']
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
26
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
27 class DevelopmentStatusAdmin(admin.ModelAdmin):
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
28 list_display = ['name', 'pk']
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
29 search_fields = ['name']
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
30
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
31 class SshKeyInline(admin.TabularInline):
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
32 model = svmain_models.SshKey
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
33 extra = 2 # to add several keys in the ExtendedUser page
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
34
173
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
35 class SvUserInfoAdmin(admin.ModelAdmin):
154
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
36 fieldsets = (
173
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
37 (None, {'fields': ('user',)}),
293
df0e87b3b7b9 i18n fixes: don't translate 'Savane'
Sylvain Beucler <beuc@beuc.net>
parents: 289
diff changeset
38 ('Savane',
154
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
39 {'fields': ('status', 'spamscore',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
40 'gpg_key', 'gpg_key_count',
318
8d7c891dec61 Start adding some stats for the homepage
Sylvain Beucler <beuc@beuc.net>
parents: 293
diff changeset
41 'email_hide', 'timezone',)}),
154
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
42 )
173
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
43 list_display = ('user', 'status')
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
44 list_filter = ('status',)
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
45 search_fields = ('user',)
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
46 ordering = ('user__username',)
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
47 #filter_horizontal = ('m2m',)
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
48 #inlines = [SshKeyInline]
154
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
49
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
50 class GroupConfigurationAdmin(admin.ModelAdmin):
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
51 fieldsets = (
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
52 (_('General Settings'), {'fields': ('name', 'base_host', 'description')}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
53 (_('Project WWW Homepage'),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
54 {'fields': ('can_use_homepage', 'homepage_scm', 'dir_type_homepage',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
55 'dir_homepage', 'url_homepage', 'url_cvs_viewcvs_homepage')}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
56 (_('Source Code Manager: CVS'),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
57 {'fields': ('can_use_cvs', 'dir_type_cvs',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
58 'dir_cvs', 'url_cvs_viewcvs')}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
59 (_('Source Code Manager: GNU Arch'),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
60 {'fields': ('can_use_arch', 'dir_type_arch',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
61 'dir_arch', 'url_arch_viewcvs')}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
62 (_('Source Code Manager: Subversion'),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
63 {'fields': ('can_use_svn', 'dir_type_svn',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
64 'dir_svn', 'url_svn_viewcvs')}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
65 (_('Source Code Manager: Git'),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
66 {'fields': ('can_use_git', 'dir_type_git',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
67 'dir_git', 'url_git_viewcvs')}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
68 (_('Source Code Manager: Mercurial'),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
69 {'fields': ('can_use_hg', 'dir_type_hg',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
70 'dir_hg', 'url_hg_viewcvs')}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
71 (_('Source Code Manager: Bazaar'),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
72 {'fields': ('can_use_bzr', 'dir_type_bzr',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
73 'dir_bzr', 'url_bzr_viewcvs')}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
74 (_('Download area'),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
75 {'fields': ('can_use_download', 'dir_type_download',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
76 'dir_download', 'url_download')}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
77 (_('Licenses'), {'fields': ('can_use_license',)}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
78 (_('Development Status'), {'fields': ('can_use_devel_status',)}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
79 (_('Mailing List'),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
80 {'fields': ('can_use_mailing_list', 'mailing_list_virtual_host',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
81 'mailing_list_address', 'mailing_list_format',
207
6fef32fad596 Browse project mailing lists
Sylvain Beucler <beuc@beuc.net>
parents: 173
diff changeset
82 'url_mailing_list_listinfo', 'url_mailing_list_archives',
154
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
83 'url_mailing_list_archives_private', 'url_mailing_list_admin')}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
84 # TODO: finish
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
85 (_('News Manager'), {'fields': ('can_use_news',)}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
86 (_('Project Menu Settings'),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
87 {'fields': ('is_menu_configurable_homepage',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
88 'is_menu_configurable_extralink_documentation',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
89 'is_menu_configurable_download',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
90 'is_configurable_download_dir',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
91 'is_menu_configurable_support',
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
92 # ...
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
93 )}),
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
94
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
95 )
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
96
173
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
97 class SvGroupInfoAdmin(admin.ModelAdmin):
154
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
98 # Copy/pasted from django.contrib.auth.admin; inheritance fails
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
99 # when you attempt to display extended fields..
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
100 search_fields = ('name',)
173
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
101 ordering = ('group__name',)
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
102 #filter_horizontal = ('permissions',)
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
103 list_display = ('pk', 'full_name', 'type', 'license',)
154
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
104 list_filter = ('type', 'license', 'devel_status',)
276
f30299911fe3 Admin interface for jobs
Sylvain Beucler <beuc@beuc.net>
parents: 207
diff changeset
105 date_hierarchy = 'register_time'
154
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
106
207
6fef32fad596 Browse project mailing lists
Sylvain Beucler <beuc@beuc.net>
parents: 173
diff changeset
107 class MailingListAdmin(admin.ModelAdmin):
6fef32fad596 Browse project mailing lists
Sylvain Beucler <beuc@beuc.net>
parents: 173
diff changeset
108 search_fields = ('list_name',)
6fef32fad596 Browse project mailing lists
Sylvain Beucler <beuc@beuc.net>
parents: 173
diff changeset
109 ordering = ('list_name',)
6fef32fad596 Browse project mailing lists
Sylvain Beucler <beuc@beuc.net>
parents: 173
diff changeset
110 list_display = ('pk', 'list_name', 'status', 'is_public', 'description',)
6fef32fad596 Browse project mailing lists
Sylvain Beucler <beuc@beuc.net>
parents: 173
diff changeset
111 list_filter = ('status', 'is_public', )
6fef32fad596 Browse project mailing lists
Sylvain Beucler <beuc@beuc.net>
parents: 173
diff changeset
112
173
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
113 admin.site.register(svmain_models.SvUserInfo, SvUserInfoAdmin)
1c3b185b7ca4 Change derived class ExtendedUser to AutoOneToOneField SvUserInfo (idem for groups); replicate changes across the code. This allow to create Savane-specific user object automatically (e.g. after django-registration).
Sylvain Beucler <beuc@beuc.net>
parents: 154
diff changeset
114 admin.site.register(svmain_models.SvGroupInfo, SvGroupInfoAdmin)
154
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
115 admin.site.register(svmain_models.GroupConfiguration, GroupConfigurationAdmin)
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
116 admin.site.register(svmain_models.License, LicenseAdmin)
20584264d28c Reorganise directory layout
Sylvain Beucler <beuc@beuc.net>
parents:
diff changeset
117 admin.site.register(svmain_models.DevelopmentStatus, DevelopmentStatusAdmin)
207
6fef32fad596 Browse project mailing lists
Sylvain Beucler <beuc@beuc.net>
parents: 173
diff changeset
118 admin.site.register(svmain_models.MailingList, MailingListAdmin)