dav_registrations: Fixed filter stuff on event list page for family
All checks were successful
buildbot/django-dav-events--test Build done.
All checks were successful
buildbot/django-dav-events--test Build done.
events
This commit is contained in:
@@ -58,6 +58,7 @@
|
|||||||
<img src="{% static icon %}" width="48px"
|
<img src="{% static icon %}" width="48px"
|
||||||
alt="{{ event.get_sport_display }}" title="{{ event.get_sport_display }}">
|
alt="{{ event.get_sport_display }}" title="{{ event.get_sport_display }}">
|
||||||
<span class="hidden">{{ event.get_sport_display }}</span>
|
<span class="hidden">{{ event.get_sport_display }}</span>
|
||||||
|
<span class="hidden">{{ event.get_level_display }}</span>
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
</div>
|
</div>
|
||||||
@@ -126,33 +127,36 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function filter_sport(table, sport) {
|
function filter_table(table, sport, level) {
|
||||||
const choices = ["All", "B", "K", "M", "S", "W"];
|
const sport_choices = ["B", "K", "M", "S", "W"];
|
||||||
var search = sport;
|
const level_choices = ["beginner", "advanced", "family"];
|
||||||
|
|
||||||
for(let i in choices) {
|
if(sport != "*")
|
||||||
if(sport != choices[i])
|
$("#btn-filter-" + sport).removeClass("btn-white");
|
||||||
$("#btn-filter-" + choices[i]).addClass("btn-white");
|
if(level != "*")
|
||||||
|
$("#btn-filter-" + level).removeClass("btn-white");
|
||||||
|
|
||||||
|
if(sport == "*" && level == "*")
|
||||||
|
$("#btn-filter-All").removeClass("btn-white");
|
||||||
|
else
|
||||||
|
$("#btn-filter-All").addClass("btn-white");
|
||||||
|
|
||||||
|
for(let i in sport_choices) {
|
||||||
|
if(sport != sport_choices[i])
|
||||||
|
$("#btn-filter-" + sport_choices[i]).addClass("btn-white");
|
||||||
}
|
}
|
||||||
$("#btn-filter-" + sport).removeClass("btn-white");
|
for(let i in level_choices) {
|
||||||
|
if(level != level_choices[i])
|
||||||
if(sport == "All")
|
$("#btn-filter-" + level_choices[i]).addClass("btn-white");
|
||||||
search = "";
|
|
||||||
table.column(0).search(search).draw();
|
|
||||||
};
|
|
||||||
function filter_level(table, level) {
|
|
||||||
const choices = ["All", "beginner", "advanced", "family"];
|
|
||||||
var search = level;
|
|
||||||
|
|
||||||
for(let i in choices) {
|
|
||||||
if(level != choices[i])
|
|
||||||
$("#btn-filter-" + choices[i]).addClass("btn-white");
|
|
||||||
}
|
}
|
||||||
$("#btn-filter-" + level).removeClass("btn-white");
|
|
||||||
|
|
||||||
if(level == "All")
|
if(sport == "*")
|
||||||
search = "";
|
sport = ""
|
||||||
table.column(1).search(search).draw();
|
table.column(0).search(sport).draw();
|
||||||
|
|
||||||
|
if(level == "*")
|
||||||
|
level = ""
|
||||||
|
table.column(1).search(level).draw();
|
||||||
};
|
};
|
||||||
$(document).ready( function () {
|
$(document).ready( function () {
|
||||||
var table = $("#objects_table").DataTable( {
|
var table = $("#objects_table").DataTable( {
|
||||||
@@ -169,38 +173,31 @@
|
|||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
$("#btn-filter-All").on("click", function() {
|
$("#btn-filter-All").on("click", function() {
|
||||||
filter_sport(table, "All");
|
filter_table(table, "*", "*");
|
||||||
filter_level(table, "All");
|
|
||||||
} );
|
} );
|
||||||
$("#btn-filter-B").on("click", function() {
|
$("#btn-filter-B").on("click", function() {
|
||||||
filter_level(table, "All");
|
filter_table(table, "B", "*")
|
||||||
filter_sport(table, "B");
|
|
||||||
} );
|
} );
|
||||||
$("#btn-filter-K").on("click", function() {
|
$("#btn-filter-K").on("click", function() {
|
||||||
filter_level(table, "All");
|
filter_table(table, "K", "*")
|
||||||
filter_sport(table, "K");
|
|
||||||
} );
|
} );
|
||||||
$("#btn-filter-M").on("click", function() {
|
$("#btn-filter-M").on("click", function() {
|
||||||
filter_level(table, "All");
|
filter_table(table, "M", "*")
|
||||||
filter_sport(table, "M");
|
|
||||||
} );
|
} );
|
||||||
$("#btn-filter-S").on("click", function() {
|
$("#btn-filter-S").on("click", function() {
|
||||||
filter_level(table, "All");
|
filter_table(table, "S", "*")
|
||||||
filter_sport(table, "S");
|
|
||||||
} );
|
} );
|
||||||
$("#btn-filter-W").on("click", function() {
|
$("#btn-filter-W").on("click", function() {
|
||||||
filter_level(table, "All");
|
filter_table(table, "W", "*")
|
||||||
filter_sport(table, "W");
|
|
||||||
} );
|
} );
|
||||||
$("#btn-filter-family").on("click", function() {
|
$("#btn-filter-family").on("click", function() {
|
||||||
filter_sport(table, "All");
|
filter_table(table, "*", "family")
|
||||||
filter_level(table, "family");
|
|
||||||
} );
|
} );
|
||||||
$("#searchfield").on( "keyup change", function() {
|
$("#searchfield").on( "keyup change", function() {
|
||||||
table.column(2).search( this.value ).draw();
|
table.column(2).search( this.value ).draw();
|
||||||
} );
|
} );
|
||||||
$("#objects_table_filter").hide();
|
$("#objects_table_filter").hide();
|
||||||
filter_sport(table, "{{ init_sport_filter|default:'All' }}");
|
filter_table(table, "{{ init_sport_filter|default:'*' }}", "{{ init_level_filter|default:'*' }}");
|
||||||
} );
|
} );
|
||||||
</script>
|
</script>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from django.urls import reverse_lazy
|
|||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from django.views import generic
|
from django.views import generic
|
||||||
|
|
||||||
from dav_events.choices import SPORT_CHOICES
|
from dav_events.choices import SPORT_CHOICES, LEVEL_CHOICES
|
||||||
from dav_events.models.event import Event
|
from dav_events.models.event import Event
|
||||||
|
|
||||||
from .forms import RegistrationForm
|
from .forms import RegistrationForm
|
||||||
@@ -49,6 +49,8 @@ class EventListView(generic.ListView):
|
|||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
if hasattr(self, 'init_sport_filter'):
|
if hasattr(self, 'init_sport_filter'):
|
||||||
context['init_sport_filter'] = self.init_sport_filter
|
context['init_sport_filter'] = self.init_sport_filter
|
||||||
|
if hasattr(self, 'init_level_filter'):
|
||||||
|
context['init_level_filter'] = self.init_level_filter
|
||||||
return context
|
return context
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
@@ -56,6 +58,10 @@ class EventListView(generic.ListView):
|
|||||||
sport = request.GET['sport']
|
sport = request.GET['sport']
|
||||||
if (sport, 'Bogus') in SPORT_CHOICES:
|
if (sport, 'Bogus') in SPORT_CHOICES:
|
||||||
self.init_sport_filter = sport
|
self.init_sport_filter = sport
|
||||||
|
if 'level' in request.GET:
|
||||||
|
level = request.GET['level']
|
||||||
|
if (level, 'Bogus') in LEVEL_CHOICES:
|
||||||
|
self.init_level_filter = level
|
||||||
return super().get(request, *args, **kwargs)
|
return super().get(request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user