From bcf947a1624848c9dee1204d3d4f7b005ae706ed Mon Sep 17 00:00:00 2001 From: Jan Mach <jan.mach@cesnet.cz> Date: Thu, 20 Feb 2020 19:32:32 +0100 Subject: [PATCH] Added more convenient quicksearch time window options. --- lib/hawat/base.py | 23 +++++++++++++----- lib/hawat/const.py | 59 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 72 insertions(+), 10 deletions(-) diff --git a/lib/hawat/base.py b/lib/hawat/base.py index 52dfcf2f..da4e24b0 100644 --- a/lib/hawat/base.py +++ b/lib/hawat/base.py @@ -1425,13 +1425,24 @@ class BaseSearchView(RenderableView, HawatUtils): """ quicksearch_list = [] for item in ( - ['14d', gettext('Search for last 14 days')], - ['4w', gettext('Search for last 4 weeks')], + [ '1h', gettext('Search for last hour')], + [ '2h', gettext('Search for last 2 hours')], + [ '3h', gettext('Search for last 3 hours')], + [ '4h', gettext('Search for last 4 hours')], + [ '6h', gettext('Search for last 6 hours')], + ['12h', gettext('Search for last 12 hours')], + [ '1d', gettext('Search for last day')], + [ '2d', gettext('Search for last 2 days')], + [ '3d', gettext('Search for last 3 days')], + [ '1w', gettext('Search for last week')], + [ '2w', gettext('Search for last 2 weeks')], + [ '4w', gettext('Search for last 4 weeks')], ['12w', gettext('Search for last 12 weeks')], - ['td', gettext('Search for today')], - ['tw', gettext('Search for this week')], - ['tm', gettext('Search for this month')], - ['ty', gettext('Search for this year')], + + [ 'td', gettext('Search for today')], + [ 'tw', gettext('Search for this week')], + [ 'tm', gettext('Search for this month')], + [ 'ty', gettext('Search for this year')], ): try: dt_from = cls.get_datetime_window( diff --git a/lib/hawat/const.py b/lib/hawat/const.py index 6badbdc5..c821fede 100644 --- a/lib/hawat/const.py +++ b/lib/hawat/const.py @@ -342,10 +342,60 @@ that are used in this application. """ TIME_WINDOWS = { - '14d': { - 'current': lambda x: (x - datetime.timedelta(days = 14)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), - 'previous': lambda x: (x - datetime.timedelta(days = 14)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), - 'next': lambda x: (x + datetime.timedelta(days = 14)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None) + '1h': { + 'current': lambda x: (x - datetime.timedelta(hours = 1)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(hours = 1)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(hours = 1)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None) + }, + '2h': { + 'current': lambda x: (x - datetime.timedelta(hours = 2)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(hours = 2)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(hours = 2)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None) + }, + '3h': { + 'current': lambda x: (x - datetime.timedelta(hours = 3)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(hours = 3)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(hours = 3)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None) + }, + '4h': { + 'current': lambda x: (x - datetime.timedelta(hours = 4)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(hours = 4)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(hours = 4)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None) + }, + '6h': { + 'current': lambda x: (x - datetime.timedelta(hours = 6)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(hours = 6)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(hours = 6)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None) + }, + '12h': { + 'current': lambda x: (x - datetime.timedelta(hours = 12)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(hours = 12)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(hours = 12)).replace(minute = 0, second = 0, microsecond = 0, tzinfo = None) + }, + '1d': { + 'current': lambda x: (x - datetime.timedelta(days = 1)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(days = 1)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(days = 1)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None) + }, + '2d': { + 'current': lambda x: (x - datetime.timedelta(days = 2)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(days = 2)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(days = 2)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None) + }, + '3d': { + 'current': lambda x: (x - datetime.timedelta(days = 3)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(days = 3)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(days = 3)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None) + }, + '1w': { + 'current': lambda x: (x - datetime.timedelta(weeks = 1)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(weeks = 1)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(weeks = 1)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None) + }, + '2w': { + 'current': lambda x: (x - datetime.timedelta(weeks = 2)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'previous': lambda x: (x - datetime.timedelta(weeks = 2)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), + 'next': lambda x: (x + datetime.timedelta(weeks = 2)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None) }, '4w': { 'current': lambda x: (x - datetime.timedelta(weeks = 4)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), @@ -357,6 +407,7 @@ TIME_WINDOWS = { 'previous': lambda x: (x - datetime.timedelta(weeks = 12)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), 'next': lambda x: (x + datetime.timedelta(weeks = 12)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None) }, + 'td': { 'current': lambda x: x.replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), 'previous': lambda x: (x - datetime.timedelta(days = 1)).replace(hour = 0, minute = 0, second = 0, microsecond = 0, tzinfo = None), -- GitLab