Browse Source

admin panel cleaner users dropdown.

master
Mohsen Taba 4 weeks ago
parent
commit
6f4bc168cd
  1. 2
      apps/account/admin/user.py
  2. 12
      apps/chat/admin.py
  3. 2
      apps/course/admin/course.py

2
apps/account/admin/user.py

@ -333,7 +333,7 @@ class CourseTableSection(TableSection):
class ProfessorUpgradeForm(forms.ModelForm):
existing_user = forms.ModelChoiceField(
queryset=User.objects.exclude(groups__name="Professor Group"),
queryset=User.objects.filter(is_active=True, email__isnull=False).exclude(groups__name="Professor Group"),
required=True,
label=_("Select Existing User"),
help_text=_("Choose an existing user to upgrade to Professor."),

12
apps/chat/admin.py

@ -39,7 +39,8 @@ class MessageReadStatusAdmin(ModelAdmin):
is_read_status.short_description = _("Read Status")
from django.contrib.auth import get_user_model
User = get_user_model()
class RoomMessageAdmin(ModelAdmin):
list_display = (
'name', 'room_type_badge', 'course', 'initiator',
@ -71,6 +72,15 @@ class RoomMessageAdmin(ModelAdmin):
}),
)
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "initiator":
kwargs["queryset"] = User.objects.filter(is_active=True, email__isnull=False)
if db_field.name == "recipient":
kwargs["queryset"] = User.objects.filter(is_active=True, email__isnull=False)
return super().formfield_for_foreignkey(db_field, request, **kwargs)
def messages_count(self, obj):
count = obj.messages.count()
return format_html('<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-800">{}</span>', count)

2
apps/course/admin/course.py

@ -239,7 +239,7 @@ from unfold.widgets import UnfoldAdminSelectWidget
class AddStudentForm(forms.Form):
student = forms.ModelChoiceField(
queryset=User.objects.filter(is_active=True),
queryset=User.objects.filter(is_active=True , email__isnull=False),
label=_("Select Student"),
widget=UnfoldAdminSelectWidget,
required=True

Loading…
Cancel
Save