diff --git a/aleksis/apps/alsijil/static/css/alsijil/person.css b/aleksis/apps/alsijil/static/css/alsijil/person.css index 2b056ba2a6c17d03a7176100bcbeed3ea4a63dd7..9e3c7b17865880a28133f843006744707117709a 100644 --- a/aleksis/apps/alsijil/static/css/alsijil/person.css +++ b/aleksis/apps/alsijil/static/css/alsijil/person.css @@ -66,4 +66,11 @@ td.material-icons { top: 50%; left: 50%; transform: translate(-50%, 50%); +} + +.medium-high-right { + position: relative; + top: 50%; + right: 0; + transform: translate(0%, 50%); } \ No newline at end of file diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/person.html b/aleksis/apps/alsijil/templates/alsijil/class_register/person.html index 14c4f85fee5bb02ac3602d92d386c7c96544c031..1fc16f8e7f687c675a6b4e710ee12c3c7459527b 100644 --- a/aleksis/apps/alsijil/templates/alsijil/class_register/person.html +++ b/aleksis/apps/alsijil/templates/alsijil/class_register/person.html @@ -63,18 +63,47 @@ <div class="col s12" id="overview"> <h5>{% trans "Relevant personal notes" %}</h5> - <form action="" method="post" class="row"> - {% csrf_token %} - <div class="col s11 m8 l6 xl5"> - {% form form=action_form %}{% endform %} + <form class="modal" id="filter-modal"> + <div class="modal-content"> + <h4>{% trans "Filter personal notes" %}</h4> + {% form form=personal_note_filter_form %}{% endform %} </div> - <div class="col s1"> - <button type="submit" class="btn waves-effect waves-light medium-high"> - Run <i class="material-icons right">send</i> + <div class="modal-footer"> + <button type="button" class="btn-flat secondary-color-text waves-effect waves-ripple" id="remove-filters"> + <i class="material-icons left">clear</i>{% trans "Clear all filters" %} + </button> + <button type="button" class="modal-close btn-flat red-text waves-effect waves-ripple waves-red"> + <i class="material-icons left">cancel</i>{% trans "Close" %} + </button> + <button type="submit" class="modal-close btn-flat primary-color-text waves-effect waves-ripple waves-light"> + {% trans "Filter" %} <i class="material-icons left">filter_alt</i> </button> </div> - {% render_table personal_notes_table %} </form> + <div class="row"> + <div class="col s12 m3 l5 push-m9 push-l7"> + <button + class="modal-trigger right btn primary-color waves-effect waves-light medium-high-right" + data-target="filter-modal" + type="button"> + Filter results ({{ num_filters }})<i class="material-icons right">filter_alt</i> + </button> + </div> + <form action="" method="post" class=""> + {% csrf_token %} + <div class="col s12 m9 l7 pull-m3 pull-l5 row"> + <div class="col s12 m10"> + {% form form=action_form %}{% endform %} + </div> + <div class="col s10 m2"> + <button type="submit" class="btn waves-effect waves-light medium-high"> + Run <i class="material-icons right">send</i> + </button> + </div> + </div> + {% render_table personal_notes_table %} + </form> + </div> </div> </div> diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index f8bff464572474685d52e981c321269255d64163..2d4889f6c52eab31cb84c588312712a46d4c427f 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -812,6 +812,8 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp personal_note_filter_object = PersonalNoteFilter(request.GET, queryset=personal_notes) filtered_personal_notes = personal_note_filter_object.qs context["personal_note_filter_form"] = personal_note_filter_object.form + used_filters = list(personal_note_filter_object.data.values()) + context["num_filters"] = len(used_filters) - used_filters.count("") - used_filters.count("unknown") personal_notes_list = [] for note in personal_notes: