98 lines
2.7 KiB
Python
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")
|