mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-30 23:39:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {% extends "member/base.html" %}
 | |
| {% comment %}
 | |
| SPDX-License-Identifier: GPL-3.0-or-later
 | |
| {% endcomment %}
 | |
| {% load i18n %}
 | |
| {% load render_table from django_tables2 %}
 | |
| 
 | |
| {% block profile_content %}
 | |
| <div class="card bg-light">
 | |
|     <h3 class="card-header text-center">
 | |
|         {{ title }}
 | |
|     </h3>
 | |
|     <div class="card-body">
 | |
|         <input id="searchbar" type="text" class="form-control" placeholder="Nom/prénom/note…">
 | |
|         <div class="form-check">
 | |
|             <label class="form-check-label" for="only_active">
 | |
|                 <input type="checkbox" class="checkboxinput form-check-input" id="only_active"
 | |
|                     {% if only_active %}checked{% endif %}>
 | |
|                 {% trans "Display only active memberships" %}
 | |
|             </label>
 | |
|         </div>
 | |
|         <div id="div_id_roles">
 | |
|             <label for="roles" class="col-form-label">{% trans "Filter roles:" %}</label>
 | |
|             <select name="roles" class="selectmultiple form-control" id="roles" multiple="">
 | |
|                 {% for role in applicable_roles %}
 | |
|                 <option value="{{ role.id }}" selected>{{ role.name }}</option>
 | |
|                 {% endfor %}
 | |
|             </select>
 | |
|         </div>
 | |
|     </div>
 | |
|     <div id="memberships_table">
 | |
|         {% if table.data %}
 | |
|         {% render_table table %}
 | |
|         {% else %}
 | |
|         <div class="alert alert-warning">
 | |
|             {% trans "There is no membership found with this pattern." %}
 | |
|         </div>
 | |
|         {% endif %}
 | |
|     </div>
 | |
| </div>
 | |
| {% endblock %}
 | |
| 
 | |
| {% block extrajavascript %}
 | |
| <script type="text/javascript">
 | |
|     $(document).ready(function () {
 | |
|         let searchbar_obj = $("#searchbar");
 | |
|         let only_active_obj = $("#only_active");
 | |
|         let roles_obj = $("#roles");
 | |
| 
 | |
|         function reloadTable() {
 | |
|             let pattern = searchbar_obj.val();
 | |
| 
 | |
|             let roles = [];
 | |
|             $("#roles option:selected").each(function () {
 | |
|                 roles.push($(this).val());
 | |
|             });
 | |
|             let roles_str = roles.join(',');
 | |
| 
 | |
|             $("#memberships_table").load(location.pathname + "?search=" + pattern.replace(" ", "%20") +
 | |
|                 "&only_active=" + (only_active_obj.is(':checked') ? '1' : '0') +
 | |
|                 "&roles=" + roles_str + " #memberships_table");
 | |
|         }
 | |
| 
 | |
|         searchbar_obj.keyup(reloadTable);
 | |
|         only_active_obj.change(reloadTable);
 | |
|         roles_obj.change(reloadTable);
 | |
|     });
 | |
| </script>
 | |
| {% endblock %} |