Now also mark the filters accordingly to URL.
This commit is contained in:
parent
0dc10d3f95
commit
13631eac93
|
@ -82,6 +82,7 @@ webSocketBridge.listen(function(payload, stream) {
|
|||
var location_parameter = findGetParameter('location')
|
||||
var locations = location_parameter != null ? location_parameter.split(',') : [];
|
||||
|
||||
toggleFilterBoxes(types, locations);
|
||||
render_schedule(types, locations);
|
||||
}
|
||||
});
|
||||
|
@ -220,3 +221,20 @@ filter.addEventListener('change', function(e) {
|
|||
render_schedule(types, event_locations);
|
||||
});
|
||||
|
||||
function toggleFilterBoxes(types, locations) {
|
||||
var type_input = Array.prototype.slice.call(document.querySelectorAll('.event-type-checkbox'));
|
||||
type_input.map(function(box) {
|
||||
if(types.includes(box.value)) {
|
||||
box.checked = !box.checked;
|
||||
}
|
||||
return box;
|
||||
});
|
||||
var location_input = Array.prototype.slice.call(document.querySelectorAll('.location-checkbox'));
|
||||
location_input.map(function(box) {
|
||||
if(locations.includes(box.value)) {
|
||||
box.checked = !box.checked;
|
||||
}
|
||||
return box;
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -33,8 +33,7 @@
|
|||
name="event-type-{{ type.slug }}"
|
||||
id="event-type-{{ type.slug }}"
|
||||
value="{{ type.slug }}"
|
||||
class="form-control event-type-checkbox"
|
||||
checked />
|
||||
class="form-control event-type-checkbox" />
|
||||
|
||||
<div class="btn-group">
|
||||
<label for="event-type-{{ type.slug }}" class="btn btn-default" style="min-width: 200px; text-align: left;">
|
||||
|
@ -60,8 +59,7 @@
|
|||
id="location-{{ location.slug }}"
|
||||
name="locations"
|
||||
value="{{ location.slug }}"
|
||||
class="form-control location-checkbox"
|
||||
checked />
|
||||
class="form-control location-checkbox" />
|
||||
|
||||
<div class="btn-group">
|
||||
<label for="location-{{ location.slug }}" class="btn btn-default" style="min-width: 200px; text-align: left;">
|
||||
|
|
|
@ -234,41 +234,6 @@ class ScheduleView(CampViewMixin, TemplateView):
|
|||
|
||||
def get_context_data(self, *args, **kwargs):
|
||||
context = super(ScheduleView, self).get_context_data(**kwargs)
|
||||
eventinstances = models.EventInstance.objects.filter(event__in=self.camp.events.all()).select_related()
|
||||
type_slug = self.request.GET.get('type', None)
|
||||
location_slug = self.request.GET.get('location', None)
|
||||
|
||||
if type_slug:
|
||||
try:
|
||||
eventtype = models.EventType.objects.get(
|
||||
slug=type_slug
|
||||
)
|
||||
except models.EventType.DoesNotExist:
|
||||
raise Http404
|
||||
|
||||
context['eventtype'] = eventtype
|
||||
context['get_string'] = '?type={}'.format(type_slug)
|
||||
eventinstances = eventinstances.filter(event__event_type=eventtype)
|
||||
|
||||
if location_slug:
|
||||
try:
|
||||
eventlocation = models.EventLocation.objects.get(
|
||||
slug=location_slug,
|
||||
camp=self.camp,
|
||||
)
|
||||
except models.EventLocation.DoesNotExist:
|
||||
raise Http404
|
||||
|
||||
context['location'] = eventlocation
|
||||
get_part = 'location={}'.format(location_slug)
|
||||
if 'get_string' in context:
|
||||
context['get_string'] = context['get_string'] + '&{}'.format(get_part)
|
||||
else:
|
||||
context['get_string'] = '?{}'.format(get_part)
|
||||
|
||||
eventinstances = eventinstances.filter(location=eventlocation)
|
||||
|
||||
context['eventinstances'] = eventinstances
|
||||
|
||||
# Do stuff if we are dealing with a day schedule
|
||||
if 'day' in kwargs:
|
||||
|
|
|
@ -153,7 +153,9 @@ footer {
|
|||
padding: 5px;
|
||||
vertical-align: top;
|
||||
margin: 5px;
|
||||
width: 200px;
|
||||
max-width: 200px;
|
||||
min-width: 200px;
|
||||
min-height: 100px;
|
||||
flex-grow: 1;
|
||||
border: 1px solid black;
|
||||
|
|
Loading…
Reference in a new issue