from django.contrib import admin
from django.db.models import Q
from .models import Classroom
from status.models import Status


@admin.register(Classroom)
class ClassroomAdmin(admin.ModelAdmin):
    list_display = ('room_number', 'building', 'capacity', 'status', 'slug')
    search_fields = ('room_number', 'building')
    prepopulated_fields = {'slug': ('building', 'room_number')}

    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == 'status':
            kwargs['queryset'] = Status.objects.filter(
                Q(type='class_room') & (Q(is_global=True) | Q(organization__isnull=False))
            )
        return super().formfield_for_foreignkey(db_field, request, **kwargs)
