diff --git a/acdh_django_widgets/templates/acdh_django_widgets/range_datepicker_widget.html b/acdh_django_widgets/templates/acdh_django_widgets/range_datepicker_widget.html
new file mode 100644
index 0000000..b439db7
--- /dev/null
+++ b/acdh_django_widgets/templates/acdh_django_widgets/range_datepicker_widget.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/acdh_django_widgets/widgets.py b/acdh_django_widgets/widgets.py
index 2c69c87..059dc20 100644
--- a/acdh_django_widgets/widgets.py
+++ b/acdh_django_widgets/widgets.py
@@ -1,6 +1,7 @@
import django_filters
from django.template.loader import render_to_string
from django.utils.safestring import mark_safe
+import django_filters.widgets
class RangeSliderWidget(django_filters.widgets.RangeWidget):
@@ -23,3 +24,16 @@ def render(self, name, value, attrs=None, renderer=None):
context = {"name": name, "value": value, "attrs": self.attrs}
rendered = render_to_string(self.template_name, context)
return mark_safe(rendered)
+
+
+class DateRangePickerWidget(django_filters.widgets.DateRangeWidget):
+ """Renders date range input fields as date picker fields
+ """
+ template_name = "acdh_django_widgets/range_datepicker_widget.html"
+
+ def render(self, name, value, attrs=None, renderer=None):
+ if value[0] is None:
+ value = [self.attrs.get("min", 0), self.attrs.get("max", 100)]
+ context = {"name": name, "value": value, "attrs": self.attrs}
+ rendered = render_to_string(self.template_name, context)
+ return mark_safe(rendered)
diff --git a/archiv/filters.py b/archiv/filters.py
index b7a3cff..a39b305 100644
--- a/archiv/filters.py
+++ b/archiv/filters.py
@@ -6,7 +6,7 @@
from django.contrib.postgres.search import SearchRank
from django.db.utils import ProgrammingError
-from acdh_django_widgets.widgets import RangeSliderWidget
+from acdh_django_widgets.widgets import RangeSliderWidget, DateRangePickerWidget
from .models import Court
from .models import CourtDecission
@@ -199,12 +199,10 @@ class CourtDecissionListFilter(django_filters.FilterSet):
url="archiv-ac:person-autocomplete", forward=["partial_legal_system"]
),
)
- decission_date__year = django_filters.RangeFilter(
- help_text="Year of Decision.",
+ decission_date = django_filters.DateFromToRangeFilter(
+ help_text=CourtDecission._meta.get_field("decission_date").help_text,
label=CourtDecission._meta.get_field("decission_date").verbose_name,
- widget=RangeSliderWidget(
- attrs={"min": "1900", "max": "2030", "hide_input_fileds": False}
- ),
+ widget=DateRangePickerWidget
)
def search_fulltext(self, queryset, field_name, value):
@@ -256,7 +254,7 @@ class Meta:
"ft_search",
"partial_legal_system",
"court",
- "decission_date__year",
+ "decission_date",
"file_number",
"party",
"location",
diff --git a/archiv/forms.py b/archiv/forms.py
index 5fb4175..64e0ae0 100644
--- a/archiv/forms.py
+++ b/archiv/forms.py
@@ -119,7 +119,7 @@ def __init__(self, *args, **kwargs):
"ft_search",
"partial_legal_system",
"court",
- "decission_date__year",
+ "decission_date",
"keyword",
"tag",
css_id="basic",