from django.contrib import admin from apps.course.models import Participant from apps.account.models import StudentUser, User @admin.register(Participant) class ParticipantAdmin(admin.ModelAdmin): list_display = ('student', 'course', 'joined_date', 'unread_messages_count') search_fields = ('student__fullname', 'student__email', 'course__title') list_filter = ('course', 'joined_date') ordering = ('-joined_date',) autocomplete_fields = ['student'] # جستجوی پویا برای فیلد دانش‌آموز def get_readonly_fields(self, request, obj=None): """ Make fields readonly if the object already exists. """ if obj: return ['student', 'course', 'joined_date'] return [] def get_form(self, request, obj=None, **kwargs): form = super().get_form(request, obj, **kwargs) if obj is None: # Adding a new participant # محدود کردن انتخاب دانش‌آموزان به کاربرانی که از نوع StudentUser هستند # form.base_fields['student'].queryset = StudentUser.objects.filter(user_type=User.UserType.STUDENT) form.base_fields['student'].widget.can_add_related = True # فعال کردن دکمه اضافه کردن return form