from icekit.plugins.content_listing.forms import ContentListingAdminForm

from icekit_events.models import EventBase

from .models import EventContentListingItem


class EventContentListingAdminForm(ContentListingAdminForm):

    class Meta:
        model = EventContentListingItem
        fields = '__all__'

    def filter_content_types(self, content_type_qs):
        """ Filter the content types selectable to only event subclasses """
        valid_ct_ids = []
        for ct in content_type_qs:
            model = ct.model_class()
            if model and issubclass(model, EventBase):
                valid_ct_ids.append(ct.id)
        return content_type_qs.filter(pk__in=valid_ct_ids)

@@ -217,16 +217,200 @@
 inForm):
+%0A    # TODO Improve admin experience:%0A    # - horizontal filter for %60limit_to_types%60 choice%0A    # - verbose_name for Content Type%0A    # - default (required) value for No Items Message.
 %0A%0A    cl

Add TODO's for improving admin experience for Event Content Listing