mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Feature #1256 Follow-up
- Extended unit tests to cover 'add' failures. - Removed whitespace at EOL. - Updated ChangeLog, AUTHORS, NEWS. - Updated taskrc.5.in. - Updated CmdShow to allow new config settings.
This commit is contained in:
parent
56eab7da0d
commit
157699cbde
8 changed files with 33 additions and 18 deletions
1
AUTHORS
1
AUTHORS
|
@ -86,6 +86,7 @@ The following submitted code, packages or analysis, and deserve special thanks:
|
|||
Russell Steicke
|
||||
YBSAR
|
||||
Tullio Facchinetti
|
||||
Thomas Sullivan
|
||||
|
||||
Thanks to the following, who submitted detailed bug reports and excellent
|
||||
suggestions:
|
||||
|
|
|
@ -11,6 +11,7 @@ Features
|
|||
+ #1227 A new 'verify_l10n' utility ensures the localizations are in sync (thanks to
|
||||
Wim Schuermann).
|
||||
+ #1250 Support out-of-tree test runs (thanks to Jakub Wilk).
|
||||
+ #1256 Supports default values for UDA fields (thanks to Thomas Sullivan).
|
||||
+ Stores un-synched transactions in <data.location>/backlog.data.
|
||||
+ Adds a new 'synchronize' command to sync data with a task server.
|
||||
+ Adds a new 'sync' verbosity token, which will reminds when a backlog builds
|
||||
|
|
1
NEWS
1
NEWS
|
@ -5,6 +5,7 @@ New Features in taskwarrior 2.3.0
|
|||
- New shell with Readline support.
|
||||
- The 'dateformat' settings now default to the ISO-8601 standard of 'Y-M-D'.
|
||||
- Italian translation.
|
||||
- UDA fields now allow default values.
|
||||
|
||||
New commands in taskwarrior 2.3.0
|
||||
|
||||
|
|
|
@ -1139,6 +1139,13 @@ Provides a default due date for the
|
|||
.I task add
|
||||
command, if you don't specify one. The default is blank.
|
||||
|
||||
.TP
|
||||
.B
|
||||
uda.<name>.default=...
|
||||
Provides default values for UDA fields when using the
|
||||
.I task add
|
||||
command, if you don't specify values. The default is blank.
|
||||
|
||||
.TP
|
||||
.B
|
||||
default.command=next
|
||||
|
|
25
src/Task.cpp
25
src/Task.cpp
|
@ -1260,14 +1260,15 @@ void Task::validate (bool applyDefault /* = true */)
|
|||
context.columns["due"]->validate (defaultDue))
|
||||
set ("due", Date (defaultDue).toEpoch ());
|
||||
}
|
||||
|
||||
// If a UDA has a default value in the configuration,
|
||||
// override with uda.(uda).default, if not specified
|
||||
|
||||
// If a UDA has a default value in the configuration,
|
||||
// override with uda.(uda).default, if not specified.
|
||||
if (applyDefault)
|
||||
{ // Gather a list of all UDAs with a .default value
|
||||
{
|
||||
// Gather a list of all UDAs with a .default value
|
||||
std::vector <std::string> names;
|
||||
context.config.all (names);
|
||||
|
||||
|
||||
std::vector <std::string> udas;
|
||||
std::vector <std::string>::iterator name;
|
||||
for (name = names.begin (); name != names.end (); ++name)
|
||||
|
@ -1280,9 +1281,10 @@ void Task::validate (bool applyDefault /* = true */)
|
|||
udas.push_back (name->substr (4, period - 4));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (udas.size ())
|
||||
{ // For each of those, setup the default value on the task now,
|
||||
{
|
||||
// For each of those, setup the default value on the task now,
|
||||
// of course only if we don't have one on the command line already
|
||||
std::vector <std::string>::iterator uda;
|
||||
for (uda = udas.begin (); uda != udas.end (); ++uda)
|
||||
|
@ -1291,12 +1293,11 @@ void Task::validate (bool applyDefault /* = true */)
|
|||
std::string defVal = context.config.get ("uda." + *uda + ".default");
|
||||
|
||||
// If the default is empty, and we already have a value, skip it
|
||||
if (defVal != "" && get (*uda) == "")
|
||||
set(*uda,defVal);
|
||||
if (defVal != "" && get (*uda) == "")
|
||||
set (*uda, defVal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 2) To provide suitable warnings about odd states
|
||||
|
||||
|
@ -1457,7 +1458,7 @@ float Task::urgency_c () const
|
|||
value += fabsf (urgencyBlockingCoefficient) > epsilon ? (urgency_blocking () * urgencyBlockingCoefficient) : 0.0;
|
||||
value += fabsf (urgencyAgeCoefficient) > epsilon ? (urgency_age () * urgencyAgeCoefficient) : 0.0;
|
||||
|
||||
/*
|
||||
/*
|
||||
// Very useful for debugging urgency problems.
|
||||
std::cout << "# Urgency for " << get ("uuid") << ":\n"
|
||||
<< "# pri " << (urgency_priority () * urgencyPriorityCoefficient) << "\n"
|
||||
|
|
|
@ -238,6 +238,7 @@ int CmdShow::execute (std::string& output)
|
|||
i->substr (0, 5) != "pull." &&
|
||||
i->substr (0, 6) != "merge." &&
|
||||
i->substr (0, 4) != "uda." &&
|
||||
i->substr (0, 4) != "default." &&
|
||||
i->substr (0, 21) != "urgency.user.project." &&
|
||||
i->substr (0, 17) != "urgency.user.tag." &&
|
||||
i->substr (0, 12) != "urgency.uda.")
|
||||
|
|
|
@ -85,7 +85,7 @@ int CmdUDAs::execute (std::string& output)
|
|||
view.add (Column::factory ("string", STRING_COLUMN_LABEL_TYPE));
|
||||
view.add (Column::factory ("string", STRING_COLUMN_LABEL_LABEL));
|
||||
view.add (Column::factory ("string", STRING_COLUMN_LABEL_VALUES));
|
||||
view.add (Column::factory ("string", STRING_COLUMN_LABEL_DEFAULT));
|
||||
view.add (Column::factory ("string", STRING_COLUMN_LABEL_DEFAULT));
|
||||
view.add (Column::factory ("string", STRING_COLUMN_LABEL_UDACOUNT));
|
||||
|
||||
std::vector <std::string>::iterator uda;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More tests => 5;
|
||||
use Test::More tests => 8;
|
||||
|
||||
# Create the rc file.
|
||||
if (open my $fh, '>', 'uda.rc')
|
||||
|
@ -50,15 +50,18 @@ if (open my $fh, '>', 'uda.rc')
|
|||
}
|
||||
|
||||
# Add task with nondefault UDA
|
||||
qx{../src/task rc:uda.rc add one smell:strong 2>&1};
|
||||
my $output = qx{../src/task rc:uda.rc add one smell:strong 2>&1};
|
||||
like ($output, qr/Created task 1/, 'Add 1 - no errors');
|
||||
|
||||
# Add task without a UDA value, checking for usage of the default
|
||||
qx{../src/task rc:uda.rc add two 2>&1};
|
||||
$output = qx{../src/task rc:uda.rc add two 2>&1};
|
||||
like ($output, qr/Created task 2/, 'Add 2 - no errors');
|
||||
|
||||
# Add a task with a UDA that has no default, ensure it is entered fine
|
||||
qx{../src/task rc:uda.rc add three size:10 2>&1};
|
||||
$output = qx{../src/task rc:uda.rc add three size:10 2>&1};
|
||||
like ($output, qr/Created task 3/, 'Add 3 - no errors');
|
||||
|
||||
my $output = qx{../src/task rc:uda.rc uda 2>&1};
|
||||
$output = qx{../src/task rc:uda.rc uda 2>&1};
|
||||
like ($output, qr/1\s+strong\s+one/, 'UDA nondefault stored');
|
||||
like ($output, qr/2\s+weak\s+two/, 'UDA default stored');
|
||||
like ($output, qr/3\s+weak\s+10\s+three/, 'UDA without default stored');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue