alternative-backend-service/users/admin.py

56 lines
1.8 KiB
Python
Raw Normal View History

from django.contrib import admin
from .models import CustomUser, UserProfile, ContactMessage
@admin.register(CustomUser)
class UserAdmin(admin.ModelAdmin):
list_display = ('email', 'first_name', 'last_name', 'is_staff')
search_fields = ('email', 'first_name', 'last_name')
ordering = ('email',)
@admin.register(UserProfile)
class UserProfileAdmin(admin.ModelAdmin):
list_display = ('user', 'timezone', 'created_at', 'updated_at')
search_fields = ('user__email', 'user__first_name', 'user__last_name')
ordering = ('user__email',)
@admin.register(ContactMessage)
class ContactMessageAdmin(admin.ModelAdmin):
list_display = ['name', 'email', 'phone', 'created_at', 'is_read', 'is_responded']
list_filter = ['is_read', 'is_responded', 'created_at']
search_fields = ['name', 'email', 'phone', 'message']
readonly_fields = ['created_at']
date_hierarchy = 'created_at'
fieldsets = (
('Contact Information', {
'fields': ('name', 'email', 'phone')
}),
('Message', {
'fields': ('message',)
}),
('Status', {
'fields': ('is_read', 'is_responded', 'created_at')
}),
)
def get_queryset(self, request):
qs = super().get_queryset(request)
return qs.select_related()
actions = ['mark_as_read', 'mark_as_responded']
def mark_as_read(self, request, queryset):
updated = queryset.update(is_read=True)
self.message_user(request, f'{updated} message(s) marked as read.')
mark_as_read.short_description = "Mark selected as read"
def mark_as_responded(self, request, queryset):
updated = queryset.update(is_responded=True)
self.message_user(request, f'{updated} message(s) marked as responded.')
mark_as_responded.short_description = "Mark selected as responded"