@@ -4,30 +4,32 @@ use Mojo::Base 'WeBWorK::AchievementItems', -signatures;
44# Item to extend the close date on a test
55
66use WeBWorK::Utils qw( x) ;
7- use WeBWorK::Utils::DateTime qw( before between) ;
7+ use WeBWorK::Utils::DateTime qw( before between getExtensionTime ) ;
88
9- use constant ONE_DAY => 86400;
9+ sub new ($class , $c ) {
10+ my ($time , $timeText ) = getExtensionTime($c , 1);
1011
11- sub new ($class ) {
1212 return bless {
1313 id => ' ExtendDueDateGW' ,
14- name => x(' Amulet of Extension' ),
15- description => x(' Extends the close date of a test by 24 hours.' )
14+ name => $c -> maketext(' Amulet of Extension' ),
15+ description => $c -> maketext(' Extends the close date of a test by [_1].' , $timeText ),
16+ time => $time ,
17+ timeText => $timeText ,
1618 }, $class ;
1719}
1820
1921sub can_use ($self , $set , $records , $c ) {
2022 return
2123 $set -> assignment_type =~ / gateway/
2224 && $set -> set_id !~ / ,v\d +$ /
23- && between($set -> open_date, $set -> due_date + ONE_DAY );
25+ && between($set -> open_date, $set -> due_date + $self -> { time } );
2426}
2527
2628sub print_form ($self , $set , $records , $c ) {
2729 if ($set -> enable_reduced_scoring) {
28- if (before($set -> reduced_scoring_date + ONE_DAY )) {
30+ if (before($set -> reduced_scoring_date + $self -> { time } )) {
2931 return $c -> c(
30- $c -> tag(' p' , $c -> maketext(' Extend the deadline by 24 hours. ' )),
32+ $c -> tag(' p' , $c -> maketext(' Extend the deadline by [_1]. ' , $self -> { timeText } )),
3133 $c -> tag(
3234 ' ul' ,
3335 $c -> c(
@@ -36,7 +38,7 @@ sub print_form ($self, $set, $records, $c) {
3638 $c -> maketext(
3739 ' You will be able to receive full credit until [_1].' ,
3840 $c -> formatDateTime(
39- $set -> reduced_scoring_date + ONE_DAY ,
41+ $set -> reduced_scoring_date + $self -> { time } ,
4042 $c -> ce-> {studentDateDisplayFormat }
4143 )
4244 )
@@ -45,7 +47,10 @@ sub print_form ($self, $set, $records, $c) {
4547 ' li' ,
4648 $c -> maketext(
4749 ' You will be able to receive reduced credit until [_1].' ,
48- $c -> formatDateTime($set -> due_date + ONE_DAY, $c -> ce-> {studentDateDisplayFormat })
50+ $c -> formatDateTime(
51+ $set -> due_date + $self -> {time },
52+ $c -> ce-> {studentDateDisplayFormat }
53+ )
4954 )
5055 )
5156 )-> join (' ' )
@@ -56,8 +61,9 @@ sub print_form ($self, $set, $records, $c) {
5661 $c -> tag(
5762 ' p' ,
5863 $c -> maketext(
59- ' Extend the reduced credit deadline of this assignment to [_1] (an additional 24 hours).' ,
60- $c -> formatDateTime($set -> due_date + ONE_DAY, $c -> ce-> {studentDateDisplayFormat })
64+ ' Extend the reduced credit deadline of this assignment to [_1] (an additional [_2]).' ,
65+ $c -> formatDateTime($set -> due_date + $self -> {time }, $c -> ce-> {studentDateDisplayFormat }),
66+ $self -> {timeText }
6167 )
6268 ),
6369 $c -> tag(
@@ -74,8 +80,9 @@ sub print_form ($self, $set, $records, $c) {
7480 return $c -> tag(
7581 ' p' ,
7682 $c -> maketext(
77- ' Extend the close date of this assignment to [_1] (an additional 24 hours).' ,
78- $c -> formatDateTime($set -> due_date + ONE_DAY, $c -> ce-> {studentDateDisplayFormat })
83+ ' Extend the close date of this assignment to [_1] (an additional [_2]).' ,
84+ $c -> formatDateTime($set -> due_date + $self -> {time }, $c -> ce-> {studentDateDisplayFormat }),
85+ $self -> {timeText }
7986 )
8087 );
8188 }
@@ -87,12 +94,12 @@ sub use_item ($self, $set, $records, $c) {
8794
8895 # Add time to the reduced scoring date, due date, and answer date.
8996 if ($set -> reduced_scoring_date) {
90- $set -> reduced_scoring_date($set -> reduced_scoring_date + ONE_DAY );
97+ $set -> reduced_scoring_date($set -> reduced_scoring_date + $self -> { time } );
9198 $userSet -> reduced_scoring_date($set -> reduced_scoring_date);
9299 }
93- $set -> due_date($set -> due_date + ONE_DAY );
100+ $set -> due_date($set -> due_date + $self -> { time } );
94101 $userSet -> due_date($set -> due_date);
95- $set -> answer_date($set -> answer_date + ONE_DAY );
102+ $set -> answer_date($set -> answer_date + $self -> { time } );
96103 $userSet -> answer_date($set -> answer_date);
97104 $db -> putUserSet($userSet );
98105
@@ -102,15 +109,15 @@ sub use_item ($self, $set, $records, $c) {
102109 # my @versions = $db->listSetVersions($userName, $setID);
103110 # for my $version (@versions) {
104111 # $set = $db->getSetVersion($userName, $setID, $version);
105- # $set->reduced_scoring_date($set->reduced_scoring_date() + ONE_DAY )
112+ # $set->reduced_scoring_date($set->reduced_scoring_date() + $self->{time} )
106113 # if defined($set->reduced_scoring_date()) && $set->reduced_scoring_date();
107- # $set->due_date($set->due_date() + ONE_DAY );
108- # $set->answer_date($set->answer_date() + ONE_DAY );
114+ # $set->due_date($set->due_date() + $self->{time} );
115+ # $set->answer_date($set->answer_date() + $self->{time} );
109116 # $db->putSetVersion($set);
110117 # }
111118
112- return $c -> maketext(' Close date of this test extended by 24 hours to [_1 ].' ,
113- $c -> formatDateTime($set -> due_date, $c -> ce-> {studentDateDisplayFormat }));
119+ return $c -> maketext(' Close date of this test extended by [_1] to [_2 ].' ,
120+ $self -> { timeText }, $ c-> formatDateTime($set -> due_date, $c -> ce-> {studentDateDisplayFormat }));
114121}
115122
1161231;
0 commit comments