from django.utils.translation import gettext_lazy
from django.views.generic import ListView

from judge.models import Language
from judge.utils.views import TitleMixin


class LanguageList(TitleMixin, ListView):
    model = Language
    context_object_name = 'languages'
    template_name = 'status/language-list.html'
    title = gettext_lazy('Runtimes')

    def get_queryset(self):
        queryset = super().get_queryset().prefetch_related('runtimeversion_set')
        if not self.request.user.is_superuser and not self.request.user.is_staff:
            queryset = queryset.filter(judges__online=True).distinct()
        return queryset