Add custom ranges to litepicker
This commit is contained in:
parent
2c0fafefea
commit
faf4f48e75
@ -1,3 +1,5 @@
|
|||||||
|
import json
|
||||||
|
|
||||||
from datetime import datetime, time
|
from datetime import datetime, time
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
@ -23,8 +25,56 @@ class DateRangeMixin:
|
|||||||
else:
|
else:
|
||||||
return timezone.now()
|
return timezone.now()
|
||||||
|
|
||||||
|
def get_date_ranges(self):
|
||||||
|
now = timezone.now()
|
||||||
|
return [
|
||||||
|
{'name': 'Today', 'start': now, 'end': now},
|
||||||
|
{
|
||||||
|
'name': 'Yesterday',
|
||||||
|
'start': now - timezone.timedelta(days=1),
|
||||||
|
'end': now - timezone.timedelta(days=1),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Last 7 days',
|
||||||
|
'start': now - timezone.timedelta(days=7),
|
||||||
|
'end': now,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Last 30 days',
|
||||||
|
'start': now - timezone.timedelta(days=30),
|
||||||
|
'end': now,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Last 90 days',
|
||||||
|
'start': now - timezone.timedelta(days=90),
|
||||||
|
'end': now,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'This month',
|
||||||
|
'start': now.replace(day=1),
|
||||||
|
'end': now,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Last month',
|
||||||
|
'start': now.replace(day=1, month=now.month - 1),
|
||||||
|
'end': now.replace(day=1, month=now.month) - timezone.timedelta(days=1),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'This year',
|
||||||
|
'start': now.replace(day=1, month=1),
|
||||||
|
'end': now,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Last year',
|
||||||
|
'start': now.replace(day=1, month=1, year=now.year - 1),
|
||||||
|
'end': now.replace(day=1, month=1) - timezone.timedelta(days=1),
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
data = super().get_context_data(**kwargs)
|
data = super().get_context_data(**kwargs)
|
||||||
data["start_date"] = self.get_start_date()
|
data["start_date"] = self.get_start_date()
|
||||||
data["end_date"] = self.get_end_date()
|
data["end_date"] = self.get_end_date()
|
||||||
|
data["date_ranges"] = self.get_date_ranges()
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
@ -24,6 +24,16 @@
|
|||||||
maxDate: new Date(),
|
maxDate: new Date(),
|
||||||
startDate: Date.parse(document.getElementById("startDate").getAttribute("value")),
|
startDate: Date.parse(document.getElementById("startDate").getAttribute("value")),
|
||||||
endDate: Date.parse(document.getElementById("endDate").getAttribute("value")),
|
endDate: Date.parse(document.getElementById("endDate").getAttribute("value")),
|
||||||
|
ranges: {
|
||||||
|
customRanges: {
|
||||||
|
{% for date_range in date_ranges %}
|
||||||
|
'{{ date_range.name }}': [
|
||||||
|
new Date('{{ date_range.start.isoformat }}'),
|
||||||
|
new Date('{{ date_range.end.isoformat }}')
|
||||||
|
],
|
||||||
|
{% endfor %}
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
picker.on('selected', (startDate, endDate) => {
|
picker.on('selected', (startDate, endDate) => {
|
||||||
document.getElementById("startDate").setAttribute("value", startDate.getFullYear() +
|
document.getElementById("startDate").setAttribute("value", startDate.getFullYear() +
|
||||||
|
Loading…
x
Reference in New Issue
Block a user