from django import forms
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
from django.forms import widgets


class KFetPermissionsField(forms.ModelMultipleChoiceField):
    def __init__(self, *args, **kwargs):
        queryset = Permission.objects.filter(
            content_type__in=ContentType.objects.filter(app_label="kfet")
        )
        super().__init__(
            queryset=queryset, widget=widgets.CheckboxSelectMultiple, *args, **kwargs
        )

    def label_from_instance(self, obj):
        return obj.name