Coverage for sites/comments_site/comments_database/admin.py: 97%
39 statements
« prev ^ index » next coverage.py v7.6.4, created at 2024-10-25 11:29 +0000
« prev ^ index » next coverage.py v7.6.4, created at 2024-10-25 11:29 +0000
1from django.contrib import admin
2from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
3from django.contrib.auth.models import Group
4from django.utils.translation import gettext_lazy as _
6from .forms import UserChangeForm
7from .forms import UserCreationForm
8from .models import Comment
9from .models import ModerationRights
10from .models import Moderator
11from .models import User
13# We don't need this, so remove it from the admin dashboard
14admin.site.unregister(Group)
17@admin.register(User)
18class UserAdmin(BaseUserAdmin):
19 add_form = UserCreationForm
20 form = UserChangeForm
21 model = User
22 list_display = ("username", "email", "mathdoc_site", "url", "is_staff", "is_superuser")
23 list_filter = ("is_staff", "is_superuser", "is_active", "groups", "mathdoc_site")
24 fieldsets = (
25 (_("Credentials"), {"fields": ("username", "password")}),
26 (_("Mathdoc site"), {"fields": ("mathdoc_site", "url")}),
27 (
28 _("Permissions"),
29 {
30 "fields": ("is_active", "is_staff", "is_superuser", "groups", "user_permissions"),
31 },
32 ),
33 (_("Important dates"), {"fields": ("last_login", "date_joined")}),
34 )
35 add_fieldsets = (
36 (
37 _("Credentials"),
38 {
39 "classes": ("wide",),
40 "fields": ("username", "password1", "password2"),
41 },
42 ),
43 (_("Mathdoc site"), {"fields": ("mathdoc_site", "url")}),
44 )
45 search_fields = ("username", "url", "email")
46 ordering = ("mathdoc_site", "username")
49class ModerationRightsAdmin(admin.TabularInline):
50 model = ModerationRights
51 extra = 0
52 verbose_name_plural = "Comments"
55@admin.register(Comment)
56class CommentAdmin(admin.ModelAdmin):
57 inlines = (ModerationRightsAdmin,)
58 empty_value_display = ""
59 list_display = (
60 "id",
61 "doi",
62 "site",
63 "author_id",
64 "author_email",
65 "author_full_name",
66 "date_submitted",
67 "status",
68 )
69 list_filter = ("site", "status", "doi", "author_email")
70 ordering = ("id",)
72 def has_change_permission(self, request, obj=None) -> bool:
73 return False
76@admin.register(Moderator)
77class ModeratorAdmin(admin.ModelAdmin):
78 inlines = (ModerationRightsAdmin,)
79 list_display = ["__str__"]