diff --git a/opentech/apply/dashboard/tables.py b/opentech/apply/dashboard/tables.py index d51aa4b49db3d135a851fb1d47b287a5cccc8a2c..3fe68e7adea4225032c3ed54e4a17e3ee6c5d278 100644 --- a/opentech/apply/dashboard/tables.py +++ b/opentech/apply/dashboard/tables.py @@ -1,5 +1,6 @@ import django_filters as filters import django_tables2 as tables +from django_select2.forms import Select2MultipleWidget from wagtail.wagtailcore.models import Page @@ -30,9 +31,15 @@ def get_used_funds(request): return Page.objects.filter(applicationsubmission__isnull=False).distinct() +class Select2ModelMultipleChoiceFilter(filters.ModelMultipleChoiceFilter): + def __init__(self, *args, **kwargs): + kwargs.setdefault('widget', Select2MultipleWidget) + super().__init__(*args, **kwargs) + + class SubmissionFilter(filters.FilterSet): - round = filters.ModelMultipleChoiceFilter(queryset=get_used_rounds) - page = filters.ModelMultipleChoiceFilter(queryset=get_used_funds, label='Funds') + round = Select2ModelMultipleChoiceFilter(queryset=get_used_rounds) + page = Select2ModelMultipleChoiceFilter(queryset=get_used_funds, label='Funds') class Meta: model = ApplicationSubmission diff --git a/opentech/apply/dashboard/templates/dashboard/dashboard.html b/opentech/apply/dashboard/templates/dashboard/dashboard.html index 08ae363360542af9d06a1622d0f289f8ebef7909..e8ec362ed788416dfc6d13428c44d994ee47d6ed 100644 --- a/opentech/apply/dashboard/templates/dashboard/dashboard.html +++ b/opentech/apply/dashboard/templates/dashboard/dashboard.html @@ -24,3 +24,7 @@ {% render_table table %} </div> {% endblock %} + +{% block extra_js %} + {{ filter.form.media }} +{% endblock %} diff --git a/opentech/settings/base.py b/opentech/settings/base.py index 8fca9323f77f8c186adcac06bad7791f7b9a1fcb..7499a8eda9417a09e0fe25261cb474dc384b9d2d 100644 --- a/opentech/settings/base.py +++ b/opentech/settings/base.py @@ -58,6 +58,7 @@ INSTALLED_APPS = [ 'wagtailcaptcha', 'django_tables2', 'django_filters', + 'django_select2', 'addressfield', 'django.contrib.admin', diff --git a/opentech/urls.py b/opentech/urls.py index 77fbcf1c9c77288cb42263b35e7a100a76c694b7..22c3889c8af9eab7aee4610cb49cfd108c1a32fd 100644 --- a/opentech/urls.py +++ b/opentech/urls.py @@ -24,6 +24,7 @@ urlpatterns = [ url('^', include(apply_urls)), url('^', include('social_django.urls', namespace='social')), url(r'^tinymce/', include('tinymce.urls')), + url(r'^select2/', include('django_select2.urls')), ] diff --git a/requirements.txt b/requirements.txt index b8b5004d5c1306c6fb9a4c385bd1034944b3f991..497a0a0b9301df600ce0914bddf67b6fbe671f79 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20,6 +20,7 @@ flake8 social_auth_app_django==2.1.0 django-tables2==1.17.1 django-filter==1.1.0 +django_select2==6.0.1 # Production dependencies dj-database-url==0.4.1