- Fixed bug #641, where certain reports broke when 'dateformat' differed from
  'dateformat.report'.
This commit is contained in:
Paul Beckingham 2011-02-04 11:16:14 -05:00
parent a650847201
commit 783a326b11
2 changed files with 15 additions and 36 deletions

View file

@ -98,6 +98,8 @@
'edit.verbose' can be set to 'no' and eliminate the help text when using 'edit.verbose' can be set to 'no' and eliminate the help text when using
the 'task edit' command (thanks to Steve Rader). the 'task edit' command (thanks to Steve Rader).
+ Enhanced unit tests in response to bug #624 (thanks to Steve Rader). + Enhanced unit tests in response to bug #624 (thanks to Steve Rader).
+ Fixed bug #641, where certain reports broke when 'dateformat' differed from
'dateformat.report'.
+ Fixed bug #651, which broke the edit command when a task description + Fixed bug #651, which broke the edit command when a task description
contained certain tokens (like 'Due:'). contained certain tokens (like 'Due:').
+ Fixed bug #654, which broke the info command when a task had no journal + Fixed bug #654, which broke the info command when a task had no journal

View file

@ -118,9 +118,16 @@ int handleCustomReport (const std::string& report, std::string& outs)
if (context.sequence.size ()) if (context.sequence.size ())
context.filter.applySequence (tasks, context.sequence); context.filter.applySequence (tasks, context.sequence);
// Determine the output date format, which uses a hierarchy of definitions.
std::string dateformat = context.config.get ("report." + report + ".dateformat");
if (dateformat == "")
dateformat = context.config.get ("dateformat.report");
if (dateformat == "")
dateformat = context.config.get ("dateformat");
Table table; Table table;
table.setTableWidth (context.getWidth ()); table.setTableWidth (context.getWidth ());
table.setDateFormat (context.config.get ("dateformat")); table.setDateFormat (dateformat);
table.setReportName (report); table.setReportName (report);
foreach (task, tasks) foreach (task, tasks)
@ -228,12 +235,6 @@ int handleCustomReport (const std::string& report, std::string& outs)
table.setColumnWidth (columnCount, Table::minimum); table.setColumnWidth (columnCount, Table::minimum);
table.setColumnJustification (columnCount, Table::right); table.setColumnJustification (columnCount, Table::right);
std::string format = context.config.get ("report." + report + ".dateformat");
if (format == "")
format = context.config.get ("dateformat.report");
if (format == "")
format = context.config.get ("dateformat");
std::string entered; std::string entered;
for (unsigned int row = 0; row < tasks.size(); ++row) for (unsigned int row = 0; row < tasks.size(); ++row)
{ {
@ -241,7 +242,7 @@ int handleCustomReport (const std::string& report, std::string& outs)
if (entered.length ()) if (entered.length ())
{ {
Date dt (::atoi (entered.c_str ())); Date dt (::atoi (entered.c_str ()));
entered = dt.toString (format); entered = dt.toString (dateformat);
context.hooks.trigger ("format-entry", "entry", entered); context.hooks.trigger ("format-entry", "entry", entered);
table.addCell (row, columnCount, entered); table.addCell (row, columnCount, entered);
} }
@ -254,12 +255,6 @@ int handleCustomReport (const std::string& report, std::string& outs)
table.setColumnWidth (columnCount, Table::minimum); table.setColumnWidth (columnCount, Table::minimum);
table.setColumnJustification (columnCount, Table::right); table.setColumnJustification (columnCount, Table::right);
std::string format = context.config.get ("report." + report + ".dateformat");
if (format == "")
format = context.config.get ("dateformat.report");
if (format == "")
format = context.config.get ("dateformat");
std::string started; std::string started;
for (unsigned int row = 0; row < tasks.size(); ++row) for (unsigned int row = 0; row < tasks.size(); ++row)
{ {
@ -267,7 +262,7 @@ int handleCustomReport (const std::string& report, std::string& outs)
if (started.length ()) if (started.length ())
{ {
Date dt (::atoi (started.c_str ())); Date dt (::atoi (started.c_str ()));
started = dt.toString (format); started = dt.toString (dateformat);
context.hooks.trigger ("format-start", "start", started); context.hooks.trigger ("format-start", "start", started);
table.addCell (row, columnCount, started); table.addCell (row, columnCount, started);
} }
@ -280,12 +275,6 @@ int handleCustomReport (const std::string& report, std::string& outs)
table.setColumnWidth (columnCount, Table::minimum); table.setColumnWidth (columnCount, Table::minimum);
table.setColumnJustification (columnCount, Table::right); table.setColumnJustification (columnCount, Table::right);
std::string format = context.config.get ("report." + report + ".dateformat");
if (format == "")
format = context.config.get ("dateformat.report");
if (format == "")
format = context.config.get ("dateformat");
std::string ended; std::string ended;
for (unsigned int row = 0; row < tasks.size(); ++row) for (unsigned int row = 0; row < tasks.size(); ++row)
{ {
@ -293,7 +282,7 @@ int handleCustomReport (const std::string& report, std::string& outs)
if (ended.length ()) if (ended.length ())
{ {
Date dt (::atoi (ended.c_str ())); Date dt (::atoi (ended.c_str ()));
ended = dt.toString (format); ended = dt.toString (dateformat);
context.hooks.trigger ("format-end", "end", ended); context.hooks.trigger ("format-end", "end", ended);
table.addCell (row, columnCount, ended); table.addCell (row, columnCount, ended);
} }
@ -306,17 +295,11 @@ int handleCustomReport (const std::string& report, std::string& outs)
table.setColumnWidth (columnCount, Table::minimum); table.setColumnWidth (columnCount, Table::minimum);
table.setColumnJustification (columnCount, Table::left); table.setColumnJustification (columnCount, Table::left);
std::string format = context.config.get ("report." + report + ".dateformat");
if (format == "")
format = context.config.get ("dateformat.report");
if (format == "")
format = context.config.get ("dateformat");
int row = 0; int row = 0;
std::string due; std::string due;
foreach (task, tasks) foreach (task, tasks)
{ {
std::string value = getDueDate (*task, format); std::string value = getDueDate (*task, dateformat);
context.hooks.trigger ("format-due", "due", value); context.hooks.trigger ("format-due", "due", value);
table.addCell (row++, columnCount, value); table.addCell (row++, columnCount, value);
} }
@ -518,12 +501,6 @@ int handleCustomReport (const std::string& report, std::string& outs)
table.setColumnWidth (columnCount, Table::minimum); table.setColumnWidth (columnCount, Table::minimum);
table.setColumnJustification (columnCount, Table::right); table.setColumnJustification (columnCount, Table::right);
std::string format = context.config.get ("report." + report + ".dateformat");
if (format == "")
format = context.config.get ("dateformat.report");
if (format == "")
format = context.config.get ("dateformat");
int row = 0; int row = 0;
std::string wait; std::string wait;
foreach (task, tasks) foreach (task, tasks)
@ -532,7 +509,7 @@ int handleCustomReport (const std::string& report, std::string& outs)
if (wait != "") if (wait != "")
{ {
Date dt (::atoi (wait.c_str ())); Date dt (::atoi (wait.c_str ()));
wait = dt.toString (format); wait = dt.toString (dateformat);
context.hooks.trigger ("format-wait", "wait", wait); context.hooks.trigger ("format-wait", "wait", wait);
table.addCell (row++, columnCount, wait); table.addCell (row++, columnCount, wait);
} }