Skip to content

Commit 5c5f4a9

Browse files
committed
feat: add custom utils
1 parent ac44804 commit 5c5f4a9

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

app/core/utils/filters.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from datetime import datetime, time
2+
import django_filters
3+
4+
5+
class DateFilter(django_filters.FilterSet):
6+
start_date = django_filters.DateFilter(field_name="updated_at", lookup_expr="gte")
7+
end_date = django_filters.DateFilter(field_name="updated_at", method='filter_end')
8+
9+
def __init__(self, start_field="updated_at", end_field="updated_at", **kwargs):
10+
super().__init__(**kwargs)
11+
self.start_date = django_filters.DateFilter(field_name=start_field, lookup_expr="gte")
12+
self.end_date = django_filters.DateFilter(field_name=end_field, method='filter_end')
13+
14+
def filter_end(self, queryset, name, value):
15+
end_date = datetime.combine(value, time.max)
16+
f = {f"{name}__lte": end_date}
17+
return queryset.filter(**f)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from django.utils.http import urlencode
2+
from django.urls import reverse
3+
4+
5+
def reverse_querystring(
6+
view, urlconf=None, args=None, kwargs=None, current_app=None, query_kwargs=None
7+
):
8+
"""Custom reverse to handle query strings.
9+
Usage:
10+
reverse('app.views.my_view', kwargs={'pk': 123}, query_kwargs={'search': 'Bob'})
11+
"""
12+
base_url = reverse(
13+
view, urlconf=urlconf, args=args, kwargs=kwargs, current_app=current_app
14+
)
15+
if query_kwargs:
16+
return "{}?{}".format(base_url, urlencode(query_kwargs))
17+
return base_url

0 commit comments

Comments
 (0)