Add date range filtering to exams with jQuery UI datepicker support
This commit is contained in:
@@ -163,3 +163,23 @@
|
|||||||
.btn-light { background: #111827; color: #e6eef6; border-color: rgba(255,255,255,0.04); }
|
.btn-light { background: #111827; color: #e6eef6; border-color: rgba(255,255,255,0.04); }
|
||||||
.filter-card label { color: #e6eef6; }
|
.filter-card label { color: #e6eef6; }
|
||||||
</style>
|
</style>
|
||||||
|
<!-- jQuery UI for calendar datepickers (only for the filter panel) -->
|
||||||
|
<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
|
||||||
|
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script>
|
||||||
|
<script>
|
||||||
|
(function($){
|
||||||
|
$(function(){
|
||||||
|
// Initialize jQuery UI datepicker on inputs marked with .datepicker
|
||||||
|
$('.datepicker').each(function(){
|
||||||
|
// ensure keyboard-friendly placeholder
|
||||||
|
if(!$(this).attr('placeholder')) $(this).attr('placeholder','dd/mm/yyyy');
|
||||||
|
$(this).datepicker({
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
changeMonth: true,
|
||||||
|
changeYear: true,
|
||||||
|
showAnim: 'fadeIn'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})(jQuery);
|
||||||
|
</script>
|
||||||
+19
-1
@@ -43,7 +43,13 @@ from django.views.generic.edit import CreateView, UpdateView, DeleteView
|
|||||||
from django.views.generic.list import ListView
|
from django.views.generic.list import ListView
|
||||||
from django.views.generic.detail import DetailView
|
from django.views.generic.detail import DetailView
|
||||||
from django_filters.views import FilterView
|
from django_filters.views import FilterView
|
||||||
from django_filters import FilterSet, OrderingFilter, ModelMultipleChoiceFilter
|
from django_filters import (
|
||||||
|
FilterSet,
|
||||||
|
OrderingFilter,
|
||||||
|
ModelMultipleChoiceFilter,
|
||||||
|
DateFromToRangeFilter,
|
||||||
|
)
|
||||||
|
from django_filters.widgets import DateRangeWidget
|
||||||
from django_tables2.views import SingleTableMixin
|
from django_tables2.views import SingleTableMixin
|
||||||
from reversion.views import RevisionMixin
|
from reversion.views import RevisionMixin
|
||||||
from atlas.models import CaseCollection, CaseDetail
|
from atlas.models import CaseCollection, CaseDetail
|
||||||
@@ -733,6 +739,18 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
fields=(("name", "name"), ("exam_mode", "exam_mode"))
|
fields=(("name", "name"), ("exam_mode", "exam_mode"))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Allow filtering by start/end date ranges (render as paired date inputs)
|
||||||
|
start_date = DateFromToRangeFilter(
|
||||||
|
field_name="start_date",
|
||||||
|
label="Start date",
|
||||||
|
widget=DateRangeWidget(attrs={"class": "datepicker", "autocomplete": "off", "placeholder": "dd/mm/yyyy"}),
|
||||||
|
)
|
||||||
|
end_date = DateFromToRangeFilter(
|
||||||
|
field_name="end_date",
|
||||||
|
label="End date",
|
||||||
|
widget=DateRangeWidget(attrs={"class": "datepicker", "autocomplete": "off", "placeholder": "dd/mm/yyyy"}),
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = exam
|
model = exam
|
||||||
fields = {
|
fields = {
|
||||||
|
|||||||
Reference in New Issue
Block a user