Specify ranges without ':' in configuration

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
This commit is contained in:
Thomas Lauf 2023-04-02 18:02:11 +02:00
parent edfabcc1e5
commit c6130157c6
6 changed files with 17 additions and 18 deletions

View file

@ -23,10 +23,10 @@ If the extension produces no output and a non-zero rc, then 255 is returned.
**reports.range**:: **reports.range**::
Sets the default date range for all reports. Sets the default date range for all reports.
The value has to be a range hint, see timew-hints(7). The value has to correspond to a range hint, see timew-hints(7).
Defaults to `:all` Defaults to `all`
**reports.**__<name>__**.range**:: **reports.**__<name>__**.range**::
Set the date range for report _name_, used if no _range_ is given on the command line. Set the date range for report _name_, used if no _range_ is given on the command line.
Here, _name_ is the name of the report executable without its extension (i.e. a report executable 'foo.py' is referred to by 'foo'). Here, _name_ is the name of the report executable without its extension (i.e. a report executable 'foo.py' is referred to by 'foo').
The value has to be a range hint, see timew-hints(7). The value has to correspond to a range hint, see timew-hints(7).

View file

@ -63,8 +63,8 @@ Default value is 'yes'.
**reports.summary.range**:: **reports.summary.range**::
Set the date range for the summary report. Set the date range for the summary report.
The value has to be a range hint, see timew-hints(7). The value has to correspond to a range hint, see timew-hints(7).
Default value is ':day' Default value is 'day'
**reports.summary.weekdays**:: **reports.summary.weekdays**::
Determines whether the weekday column is shown in the summary. Determines whether the weekday column is shown in the summary.

View file

@ -48,11 +48,11 @@ int CmdChartDay (
Rules& rules, Rules& rules,
Database& database) Database& database)
{ {
auto default_hint = rules.get ("reports.range", ":day"); auto default_hint = rules.get ("reports.range", "day");
auto report_hint = rules.get ("reports.day.range", default_hint); auto report_hint = rules.get ("reports.day.range", default_hint);
Range default_range = {}; Range default_range = {};
expandIntervalHint (report_hint, default_range); expandIntervalHint (":" + report_hint, default_range);
// Create a filter, and if empty, choose the current day. // Create a filter, and if empty, choose the current day.
auto filter = cli.getFilter (default_range); auto filter = cli.getFilter (default_range);
@ -66,11 +66,11 @@ int CmdChartWeek (
Rules& rules, Rules& rules,
Database& database) Database& database)
{ {
auto default_hint = rules.get ("reports.range", ":week"); auto default_hint = rules.get ("reports.range", "week");
auto report_hint = rules.get ("reports.week.range", default_hint); auto report_hint = rules.get ("reports.week.range", default_hint);
Range default_range = {}; Range default_range = {};
expandIntervalHint (report_hint, default_range); expandIntervalHint (":" + report_hint, default_range);
// Create a filter, and if empty, choose the current week. // Create a filter, and if empty, choose the current week.
auto filter = cli.getFilter (default_range); auto filter = cli.getFilter (default_range);
@ -84,11 +84,11 @@ int CmdChartMonth (
Rules& rules, Rules& rules,
Database& database) Database& database)
{ {
auto default_hint = rules.get ("reports.range", ":month"); auto default_hint = rules.get ("reports.range", "month");
auto report_hint = rules.get ("reports.month.range", default_hint); auto report_hint = rules.get ("reports.month.range", default_hint);
Range default_range = {}; Range default_range = {};
expandIntervalHint (report_hint, default_range); expandIntervalHint (":" + report_hint, default_range);
// Create a filter, and if empty, choose the current month. // Create a filter, and if empty, choose the current month.
auto filter = cli.getFilter (default_range); auto filter = cli.getFilter (default_range);

View file

@ -128,11 +128,11 @@ int CmdReport (
} }
auto script_name = getScriptName (script_path); auto script_name = getScriptName (script_path);
auto default_hint = rules.get ("reports.range", ":all"); auto default_hint = rules.get ("reports.range", "all");
auto report_hint = rules.get (format ("reports.{1}.range", script_name), default_hint); auto report_hint = rules.get (format ("reports.{1}.range", script_name), default_hint);
Range default_range = {}; Range default_range = {};
expandIntervalHint (report_hint, default_range); expandIntervalHint (":" + report_hint, default_range);
// Create a filter, and if empty, choose the current week. // Create a filter, and if empty, choose the current week.
auto filter = cli.getFilter (default_range); auto filter = cli.getFilter (default_range);

View file

@ -47,12 +47,11 @@ int CmdSummary (
{ {
const bool verbose = rules.getBoolean ("verbose"); const bool verbose = rules.getBoolean ("verbose");
// Create a filter, and if empty, choose 'today'. auto default_hint = rules.get ("reports.range", "day");
auto default_hint = rules.get ("reports.range", ":day");
auto report_hint = rules.get ("reports.summary.range", default_hint); auto report_hint = rules.get ("reports.summary.range", default_hint);
Range default_range = {}; Range default_range = {};
expandIntervalHint (report_hint, default_range); expandIntervalHint (":" + report_hint, default_range);
auto filter = cli.getFilter (default_range); auto filter = cli.getFilter (default_range);

View file

@ -61,7 +61,7 @@ class TestExtensions(TestCase):
"""Default range is applied when no range is given on the command line""" """Default range is applied when no range is given on the command line"""
self.t.add_default_extension("debug.py") self.t.add_default_extension("debug.py")
self.t.config("reports.debug.range", "':day'") self.t.config("reports.debug.range", "'day'")
now = datetime.now() now = datetime.now()
now_utc = now.utcnow() now_utc = now.utcnow()
@ -85,7 +85,7 @@ class TestExtensions(TestCase):
"""Default range is overridden when range is given on the command line""" """Default range is overridden when range is given on the command line"""
self.t.add_default_extension("debug.py") self.t.add_default_extension("debug.py")
self.t.config("reports.debug.range", "':day'") self.t.config("reports.debug.range", "'day'")
now = datetime.now() now = datetime.now()
now_utc = now.utcnow() now_utc = now.utcnow()