mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-28 04:27:20 +02:00
Feature #574
- Added feature #574, default due dates (thanks to Erlan Sergaziev).
This commit is contained in:
parent
05d664cae1
commit
879f0fed78
8 changed files with 46 additions and 4 deletions
|
@ -241,6 +241,7 @@ std::string Config::defaults =
|
|||
"\n"
|
||||
"#default.project=foo # Default project for 'add' command\n"
|
||||
"#default.priority=M # Default priority for 'add' command\n"
|
||||
"#default.due=eom # Default due date for 'add' command\n"
|
||||
"default.command=list # When no arguments are specified\n"
|
||||
"\n"
|
||||
"_forcecolor=no # Forces color to be on, even for non TTY output\n"
|
||||
|
|
|
@ -87,6 +87,15 @@ int handleAdd (std::string& outs)
|
|||
context.task.set ("priority", defaultPriority);
|
||||
}
|
||||
|
||||
// Override with default.due, if not specified.
|
||||
if (context.task.get ("due") == "")
|
||||
{
|
||||
std::string defaultDue = context.config.get ("default.due");
|
||||
if (defaultDue != "" &&
|
||||
Att::validNameValue ("due", "", defaultDue))
|
||||
context.task.set ("due", defaultDue);
|
||||
}
|
||||
|
||||
// Include tags.
|
||||
foreach (tag, context.tagAdditions)
|
||||
context.task.addTag (*tag);
|
||||
|
@ -181,6 +190,15 @@ int handleLog (std::string& outs)
|
|||
context.task.set ("priority", defaultPriority);
|
||||
}
|
||||
|
||||
// Override with default.due, if not specified.
|
||||
if (context.task.get ("due") == "")
|
||||
{
|
||||
std::string defaultDue = context.config.get ("default.due");
|
||||
if (defaultDue != "" &&
|
||||
Att::validNameValue ("due", "", defaultDue))
|
||||
context.task.set ("due", defaultDue);
|
||||
}
|
||||
|
||||
// Include tags.
|
||||
foreach (tag, context.tagAdditions)
|
||||
context.task.addTag (*tag);
|
||||
|
@ -890,7 +908,7 @@ int handleShow (std::string& outs)
|
|||
"color.sync.added color.sync.changed color.sync.rejected "
|
||||
"color.undo.after confirmation curses data.location dateformat "
|
||||
"dateformat.holiday dateformat.report dateformat.annotation debug "
|
||||
"default.command default.priority default.project defaultwidth due "
|
||||
"default.command default.due default.priority default.project defaultwidth due "
|
||||
"dependency.confirmation dependency.reminder locale displayweeknumber "
|
||||
"export.ical.class echo.command fontunderline gc locking monthsperline "
|
||||
"nag next journal.time journal.time.start.annotation journal.info "
|
||||
|
|
|
@ -192,6 +192,13 @@ static void decorateTask (Task& task)
|
|||
defaultPriority != "" &&
|
||||
Att::validNameValue ("priority", "", defaultPriority))
|
||||
task.set ("priority", defaultPriority);
|
||||
|
||||
// Override with default.due, if not specified.
|
||||
std::string defaultDue = context.config.get ("default.due");
|
||||
if (!task.has ("due") &&
|
||||
defaultDue != "" &&
|
||||
Att::validNameValue ("due", "", defaultDue))
|
||||
task.set ("due", defaultDue);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More tests => 18;
|
||||
use Test::More tests => 22;
|
||||
|
||||
# Create the rc file.
|
||||
if (open my $fh, '>', 'default.rc')
|
||||
|
@ -36,7 +36,8 @@ if (open my $fh, '>', 'default.rc')
|
|||
print $fh "data.location=.\n",
|
||||
"default.command=list\n",
|
||||
"default.project=PROJECT\n",
|
||||
"default.priority=M\n";
|
||||
"default.priority=M\n",
|
||||
"default.due=eom\n";
|
||||
close $fh;
|
||||
ok (-r 'default.rc', 'Created default.rc');
|
||||
}
|
||||
|
@ -47,13 +48,15 @@ my $output = qx{../task rc:default.rc list};
|
|||
like ($output, qr/ all defaults/, 'task added');
|
||||
like ($output, qr/ PROJECT /, 'default project added');
|
||||
like ($output, qr/ M /, 'default priority added');
|
||||
like ($output, qr/\//, 'default due added');
|
||||
unlink 'pending.data';
|
||||
|
||||
qx{../task rc:default.rc add project:specific priority:L all specified};
|
||||
qx{../task rc:default.rc add project:specific priority:L due:eoy all specified};
|
||||
$output = qx{../task rc:default.rc list};
|
||||
like ($output, qr/ all specified/, 'task added');
|
||||
like ($output, qr/ specific /, 'project specified');
|
||||
like ($output, qr/ L /, 'priority specified');
|
||||
like ($output, qr/\//, 'due specified');
|
||||
unlink 'pending.data';
|
||||
|
||||
qx{../task rc:default.rc add project:specific project specified};
|
||||
|
@ -61,6 +64,7 @@ $output = qx{../task rc:default.rc list};
|
|||
like ($output, qr/ project specified/, 'task added');
|
||||
like ($output, qr/ specific /, 'project specified');
|
||||
like ($output, qr/ M /, 'default priority added');
|
||||
like ($output, qr/\//, 'default due added');
|
||||
unlink 'pending.data';
|
||||
|
||||
qx{../task rc:default.rc add priority:L priority specified};
|
||||
|
@ -68,6 +72,7 @@ $output = qx{../task rc:default.rc list};
|
|||
like ($output, qr/ priority specified/, 'task added');
|
||||
like ($output, qr/ PROJECT /, 'default project added');
|
||||
like ($output, qr/ L /, 'priority specified');
|
||||
like ($output, qr/\//, 'default due added');
|
||||
|
||||
$output = qx{../task rc:default.rc};
|
||||
like ($output, qr/1 PROJECT L .+ priority specified/, 'default command worked');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue