Files

98 lines
2.7 KiB
Python

from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from apps.directory.models import AlumniConnection, AlumniProfile
@admin.register(AlumniProfile)
class AlumniProfileAdmin(admin.ModelAdmin):
list_display = (
"user_email",
"graduation_year",
"major",
"degree",
"current_company",
"current_job",
)
list_filter = (
"graduation_year",
"major",
"degree",
"created_at",
"updated_at",
)
search_fields = (
"user__email",
"user__first_name",
"user__last_name",
"major",
"degree",
"current_company",
"current_job",
"skills",
)
raw_id_fields = ("user",)
fieldsets = (
(_("User Information"), {"fields": ("user",)}),
(_("Academic Information"), {"fields": ("graduation_year", "major", "degree")}),
(_("Professional Information"), {"fields": ("current_job", "current_company")}),
(_("Skills & Achievements"), {"fields": ("skills", "achievements")}),
(
_("Timestamps"),
{"fields": ("created_at", "updated_at"), "classes": ("collapse",)},
),
)
readonly_fields = ("created_at", "updated_at")
@admin.display(description="User Email")
def user_email(self, obj):
return getattr(obj.user, "email", "-")
@admin.register(AlumniConnection)
class AlumniConnectionAdmin(admin.ModelAdmin):
list_display = (
"requester_email",
"receiver_email",
"status",
"created_at",
"updated_at",
)
list_filter = (
"status",
"created_at",
"updated_at",
)
search_fields = (
"requester__email",
"requester__first_name",
"requester__last_name",
"receiver__email",
"receiver__first_name",
"receiver__last_name",
"message",
)
raw_id_fields = ("requester", "receiver")
fieldsets = (
(_("Connection Details"), {"fields": ("requester", "receiver", "status")}),
(_("Additional Information"), {"fields": ("message",)}),
(
_("Timestamps"),
{"fields": ("created_at", "updated_at"), "classes": ("collapse",)},
),
)
readonly_fields = ("created_at", "updated_at")
@admin.display(description="Requester Email")
def requester_email(self, obj):
return getattr(obj.requester, "email", "-")
@admin.display(description="Receiver Email")
def receiver_email(self, obj):
return getattr(obj.receiver, "email", "-")
def get_queryset(self, request):
return super().get_queryset(request).select_related("requester", "receiver")