[Rt-commit] r18899 - in rt/3.999/trunk: . lib lib/RT lib/RT/Action lib/RT/Condition lib/RT/Interface lib/RT/Model sbin share/html/Admin/Elements share/html/Approvals/Elements share/html/Elements share/html/NoAuth/iCal share/html/Ticket/Elements share/html/Tools/Reports t/api t/ticket
sartak at bestpractical.com
sartak at bestpractical.com
Fri Mar 20 16:17:16 EDT 2009
Author: sartak
Date: Fri Mar 20 16:17:15 2009
New Revision: 18899
Added:
rt/3.999/trunk/.gitignore
Removed:
rt/3.999/trunk/lib/RT/Date.pm
Modified:
rt/3.999/trunk/ (props changed)
rt/3.999/trunk/lib/RT.pm
rt/3.999/trunk/lib/RT/Action/UpdateTicket.pm
rt/3.999/trunk/lib/RT/Condition/BeforeDue.pm
rt/3.999/trunk/lib/RT/DateTime.pm
rt/3.999/trunk/lib/RT/Interface/Email.pm
rt/3.999/trunk/lib/RT/Interface/Web.pm
rt/3.999/trunk/lib/RT/Model/Ticket.pm
rt/3.999/trunk/lib/RT/Model/TicketCollection.pm
rt/3.999/trunk/lib/RT/Model/Transaction.pm
rt/3.999/trunk/lib/RT/Record.pm
rt/3.999/trunk/sbin/rt-email-digest
rt/3.999/trunk/share/html/Admin/Elements/ShowKeyInfo
rt/3.999/trunk/share/html/Approvals/Elements/PendingMyApproval
rt/3.999/trunk/share/html/Elements/SelectDate
rt/3.999/trunk/share/html/NoAuth/iCal/dhandler
rt/3.999/trunk/share/html/REST/1.0/Forms/ticket/default
rt/3.999/trunk/share/html/Ticket/Elements/Reminders
rt/3.999/trunk/share/html/Tools/Reports/CreatedByDates.html
rt/3.999/trunk/share/html/Tools/Reports/ResolvedByDates.html
rt/3.999/trunk/t/api/reminders.t
rt/3.999/trunk/t/ticket/action_linear_escalate.t
Log:
Finish DateTime merge
Added: rt/3.999/trunk/.gitignore
==============================================================================
--- (empty file)
+++ rt/3.999/trunk/.gitignore Fri Mar 20 16:17:15 2009
@@ -0,0 +1,13 @@
+META.yml
+Makefile
+Makefile.old
+MANIFEST
+MANIFEST.bak
+SIGNATURE
+blib/
+inc/
+mason*/
+pm_to_blib
+t/data/gnupg/keyrings/random_seed
+t/mailbox_*
+
Modified: rt/3.999/trunk/lib/RT.pm
==============================================================================
--- rt/3.999/trunk/lib/RT.pm (original)
+++ rt/3.999/trunk/lib/RT.pm Fri Mar 20 16:17:15 2009
@@ -51,6 +51,7 @@
package RT;
use RT::CurrentUser;
+use RT::DateTime;
use Jifty::Util;
use strict;
Modified: rt/3.999/trunk/lib/RT/Action/UpdateTicket.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Action/UpdateTicket.pm (original)
+++ rt/3.999/trunk/lib/RT/Action/UpdateTicket.pm Fri Mar 20 16:17:15 2009
@@ -31,8 +31,8 @@
if ( defined $value ) {
# convert date to be as UTC
- my $date = RT::Date->new_from_string($value);
- $self->argument_value( $field, $date->iso );
+ my $date = RT::DateTime->new_from_string($value);
+ $self->argument_value($field, $date);
}
}
Modified: rt/3.999/trunk/lib/RT/Condition/BeforeDue.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Condition/BeforeDue.pm (original)
+++ rt/3.999/trunk/lib/RT/Condition/BeforeDue.pm Fri Mar 20 16:17:15 2009
@@ -48,8 +48,6 @@
package RT::Condition::BeforeDue;
use base 'RT::Condition';
-use RT::Date;
-
use strict;
sub is_applicable {
@@ -64,8 +62,7 @@
}
my $elapse = $e{'d'} * 24 * 60 * 60 + $e{'h'} * 60 * 60 + $e{'m'} * 60 + $e{'s'};
- my $cur = RT::Date->new( RT->system_user );
- $cur->set_to_now();
+ my $cur = RT::DateTime->now;
my $due = $self->ticket_obj->due;
return (undef) if $due->epoch <= 0;
Modified: rt/3.999/trunk/lib/RT/DateTime.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/DateTime.pm (original)
+++ rt/3.999/trunk/lib/RT/DateTime.pm Fri Mar 20 16:17:15 2009
@@ -10,8 +10,6 @@
sub _stringify { shift->config_format }
-sub is_unset { shift->epoch == 0 }
-
sub age {
my $self = shift;
my $until = shift || RT::DateTime->now;
@@ -28,8 +26,8 @@
$tz = $self->current_user->user_object->time_zone;
}
- # if the user time zone is requested and the user has none, use the server's
- # time zone
+ # if the "user" time zone is requested and the user has none, use the
+ # "server" time zone
if (!$tz || lc($tz) eq 'server' || lc($tz) eq 'system') {
$tz = RT->config->get('TimeZone');
}
@@ -41,6 +39,8 @@
my $self = shift;
my %args = @_;
+ return $self->new_unset if @_ == 0;
+
$args{time_zone} = $self->_canonicalize_time_zone($args{time_zone})
if defined $args{time_zone};
@@ -68,8 +68,9 @@
my $dt = $class->SUPER::new_from_string($string, %args);
+ # always return a valid RT::DateTime object
if (!defined($dt)) {
- return RT::DateTime->from_epoch(epoch => 0);
+ return RT::DateTime->new_unset;
}
return $dt;
@@ -105,17 +106,47 @@
return $self->strftime('%a, %d %b %Y %H:%M:%S %z');
}
+sub rfc2616 {
+ my $self = _canonicalize_self(@_);
+
+ # Always in UTC!
+ my $in_utc = $self->clone;
+ $in_utc->set_time_zone('UTC');
+
+ return $in_utc->strftime('%a, %d %b %Y %H:%M:%S GMT');
+}
+
sub iso {
my $self = _canonicalize_self(@_);
return $self->strftime('%Y-%m-%d %H:%M:%S');
}
+sub iCal {
+ my $self = _canonicalize_self(@_);
+
+ # Always in UTC!
+ my $in_utc = $self->clone;
+ $in_utc->set_time_zone('UTC');
+
+ return $in_utc->strftime('%Y%m%dT%H%M%SZ');
+}
+
sub config_format {
my $self = _canonicalize_self(@_);
return $self->strftime(RT->config->get('DateTimeFormat'));
}
+sub date {
+ my $self = _canonicalize_self(@_);
+
+ return $self->ymd('-'); # XXX: should figure something out from config
+}
+
+sub is_unset { shift->epoch == 0 }
+
+sub new_unset { RT::DateTime->from_epoch(epoch => 0) }
+
1;
Modified: rt/3.999/trunk/lib/RT/Interface/Email.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Interface/Email.pm (original)
+++ rt/3.999/trunk/lib/RT/Interface/Email.pm Fri Mar 20 16:17:15 2009
@@ -359,9 +359,7 @@
}
unless ( $args{'entity'}->head->get('date') ) {
- require RT::Date;
- my $date = RT::Date->new( current_user => RT->system_user );
- $date->set_to_now;
+ my $date = RT::DateTime->now;
$args{'entity'}->head->set( 'date', $date->rfc2822( time_zone => 'server' ) );
}
Modified: rt/3.999/trunk/lib/RT/Interface/Web.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Interface/Web.pm (original)
+++ rt/3.999/trunk/lib/RT/Interface/Web.pm Fri Mar 20 16:17:15 2009
@@ -204,13 +204,12 @@
=cut
sub static_file_headers {
- my $date = RT::Date->new( current_user => RT->system_user );
-
# make cache public
$HTML::Mason::Commands::r->headers_out->{'Cache-Control'} = 'max-age=259200, public';
# Expire things in a month.
- $date->set( value => time + 30 * 24 * 60 * 60 );
+ my $date = RT::DateTime->now;
+ $date->add(months => 1);
$HTML::Mason::Commands::r->headers_out->{'Expires'} = $date->rfc2616;
# if we set 'Last-Modified' then browser request a comp using 'If-Modified-Since'
Modified: rt/3.999/trunk/lib/RT/Model/Ticket.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Model/Ticket.pm (original)
+++ rt/3.999/trunk/lib/RT/Model/Ticket.pm Fri Mar 20 16:17:15 2009
@@ -71,7 +71,6 @@
use RT::Model::Queue;
use RT::Model::User;
use RT::Model::LinkCollection;
-use RT::Date;
use RT::Model::CustomFieldCollection;
use RT::Model::TicketCollection;
use RT::Model::TransactionCollection;
@@ -336,6 +335,7 @@
starts => undef,
started => undef,
resolved => undef,
+ told => undef,
mime_obj => undef,
_record_transaction => 1,
dry_run => 0,
@@ -406,39 +406,53 @@
unless defined $args{'priority'};
# {{{ Dates
- #TODO we should see what sort of due date we're getting, rather +
- # than assuming it's in ISO format.
-
#Set the due date. if we didn't get fed one, use the queue default due in
- my $due = RT::Date->new();
+ my $due;
if ( defined $args{'due'} ) {
- $due->set( format => 'ISO', value => $args{'due'} );
+ $due = RT::DateTime->new_from_string($args{'due'});
} elsif ( my $due_in = $queue_obj->default_due_in ) {
- $due->set_to_now;
- $due->add_days($due_in);
+ $due = RT::DateTime->now;
+ $due->add(days => $due_in);
+ } else {
+ $due = RT::DateTime->new_unset;
}
- my $starts = RT::Date->new();
+ my $starts;
if ( defined $args{'starts'} ) {
- $starts->set( format => 'ISO', value => $args{'starts'} );
+ $starts = RT::DateTime->new_from_string($args{'starts'});
+ } else {
+ $starts = RT::DateTime->new_unset;
}
- my $started = RT::Date->new();
+ my $started;
if ( defined $args{'started'} ) {
- $started->set( format => 'ISO', value => $args{'started'} );
+ $started = RT::DateTime->new_from_string($args{'started'});
} elsif ( !$queue_obj->status_schema->is_initial( $args{'status'} ) ) {
- $started->set_to_now;
+ $started = RT::DateTime->now;
+ }
+ else {
+ $started = RT::DateTime->new_unset;
}
- my $Resolved = RT::Date->new();
+ my $resolved;
if ( defined $args{'resolved'} ) {
- $Resolved->set( format => 'ISO', value => $args{'resolved'} );
+ $resolved = RT::DateTime->new_from_string($args{'resolved'});
}
-
#If the status is an inactive status, set the resolved date
elsif ( $queue_obj->status_schema->is_inactive( $args{'status'} ) ) {
Jifty->log->debug( "Got a " . $args{'status'} . "(inactive) ticket with undefined resolved date. Setting to now." );
- $Resolved->set_to_now;
+ $resolved = RT::DateTime->now;
+ }
+ else {
+ $resolved = RT::DateTime->new_unset;
+ }
+
+ my $told;
+ if ( defined $args{'told'} ) {
+ $told = RT::DateTime->new_from_string($args{'told'});
+ }
+ else {
+ $told = RT::DateTime->new_unset;
}
# }}}
@@ -533,10 +547,11 @@
time_estimated => $args{'time_estimated'},
time_left => $args{'time_left'},
type => $args{'type'},
- starts => $starts->iso,
- started => $started->iso,
- resolved => $Resolved->iso,
- due => $due->iso
+ starts => $starts,
+ started => $started,
+ resolved => $resolved,
+ told => $told,
+ due => $due,
);
# Parameters passed in during an import that we probably don't want to touch, otherwise
@@ -977,11 +992,11 @@
}
#We create a date object to catch date weirdness
- my $time_obj = RT::Date->new( current_user => $self->current_user() );
+ my $time_obj;
if ($time) {
- $time_obj->set( format => 'ISO', value => $time );
+ $time_obj = RT::DateTime->new_from_string($time);
} else {
- $time_obj->set_to_now();
+ $time_obj = RT::DateTime->now;
}
#Now that we're starting, open this ticket
@@ -1013,18 +1028,9 @@
#This is not really a date object, but if we diff a number of seconds
#vs the epoch, we'll get a nice description of time worked.
- my $worked = RT::Date->new();
-
- #return the #of minutes worked turned into seconds and written as
- # a simple text string
-
- return ( $worked->duration_as_string( $self->time_worked * 60 ) );
+ return RT::DateTime::Duration->new(minutes => $self->time_worked)->as_string;
}
-
-
-
-
=head2 comment
comment on this ticket.
@@ -1987,14 +1993,13 @@
return ( 0, _('That ticket has unresolved dependencies') );
}
- my $now = RT::Date->new;
- $now->set_to_now();
+ my $now = RT::DateTime->now;
#If we're changing the status from intial to non-initial, record that we've started
if ( $schema->is_initial( $self->status ) && !$schema->is_initial( $args{status} ) ) {
$self->_set(
column => 'started',
- value => $now->iso,
+ value => $now,
record_transaction => 0
);
}
@@ -2004,7 +2009,7 @@
if ( $schema->is_inactive( $args{status} ) ) {
$self->_set(
column => 'resolved',
- value => $now->iso,
+ value => $now,
record_transaction => 0
);
}
@@ -2037,14 +2042,11 @@
return ( 0, _("Permission Denied") );
}
- my $datetold = RT::Date->new();
+ my $datetold;
if ($told) {
- $datetold->set(
- format => 'iso',
- value => $told
- );
+ $datetold = RT::DateTime->new_from_string($told);
} else {
- $datetold->set_to_now();
+ $datetold = RT::DateTime->now;
}
return (
@@ -2066,14 +2068,11 @@
sub _set_told {
my $self = shift;
- my $now = RT::Date->new();
- $now->set_to_now();
-
#use __set to get no ACLs ;)
return (
$self->__set(
column => 'told',
- value => $now->iso
+ value => RT::DateTime->now(),
)
);
}
Modified: rt/3.999/trunk/lib/RT/Model/TicketCollection.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Model/TicketCollection.pm (original)
+++ rt/3.999/trunk/lib/RT/Model/TicketCollection.pm Fri Mar 20 16:17:15 2009
@@ -533,7 +533,7 @@
# particular single day. in the database, we need to check for >
# and < the edges of that day.
- $date->truncate(to => 'day')->set_time_zone('server');
+ $date->truncate(to => 'day')->set_time_zone('UTC');
my $daystart = $date->iso;
my $dayend = $date->add(days => 1)->iso;
@@ -632,7 +632,7 @@
# particular single day. in the database, we need to check for >
# and < the edges of that day.
- $date->truncate(to => 'day')->set_time_zone('server');
+ $date->truncate(to => 'day')->set_time_zone('UTC');
my $daystart = $date->iso;
my $dayend = $date->add(days => 1)->iso;
Modified: rt/3.999/trunk/lib/RT/Model/Transaction.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Model/Transaction.pm (original)
+++ rt/3.999/trunk/lib/RT/Model/Transaction.pm Fri Mar 20 16:17:15 2009
@@ -928,23 +928,9 @@
},
told => sub {
my $self = shift;
- if ( $self->field eq 'told' ) {
- my $t1 = RT::Date->new();
- $t1->set( format => 'ISO', value => $self->new_value );
- my $t2 = RT::Date->new();
- $t2->set( format => 'ISO', value => $self->old_value );
- return _( "%1 changed from %2 to %3", $self->field, $t2->as_string, $t1->as_string );
- } else {
- return _(
- "%1 changed from %2 to %3",
- $self->field,
- ( $self->old_value
- ? "'" . $self->old_value . "'"
- : _("(no value)")
- ),
- "'" . $self->new_value . "'"
- );
- }
+ my $old = RT::DateTime->new_from_string($self->new_value);
+ my $new = RT::DateTime->new_from_string($self->old_value);
+ return _( "%1 changed from %2 to %3", $self->field, $old, $new );
},
set => sub {
my $self = shift;
@@ -960,11 +946,9 @@
# Write the date/time change at local time:
elsif ( $self->field =~ /due|starts|started/i ) {
- my $t1 = RT::Date->new();
- $t1->set( format => 'ISO', value => $self->new_value );
- my $t2 = RT::Date->new();
- $t2->set( format => 'ISO', value => $self->old_value );
- return _( "%1 changed from %2 to %3", $self->field, $t2->as_string, $t1->as_string );
+ my $old = RT::DateTime->new_from_string($self->new_value);
+ my $new = RT::DateTime->new_from_string($self->old_value);
+ return _( "%1 changed from %2 to %3", $self->field, $old, $new );
} else {
return _(
"%1 changed from %2 to %3",
Modified: rt/3.999/trunk/lib/RT/Record.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Record.pm (original)
+++ rt/3.999/trunk/lib/RT/Record.pm Fri Mar 20 16:17:15 2009
@@ -66,7 +66,6 @@
use strict;
use warnings;
-use RT::Date;
use RT::Model::User;
use RT::Model::AttributeCollection;
use RT::Model::Attribute;
@@ -400,12 +399,11 @@
sub set_last_updated {
my $self = shift;
- my $now = RT::Date->new( current_user => $self->current_user );
- $now->set_to_now();
+ my $now = RT::DateTime->now;
my ( $msg, $val ) = $self->__set(
column => 'last_updated',
- value => $now->iso
+ value => $now,
);
( $msg, $val ) = $self->__set(
column => 'last_updated_by',
Modified: rt/3.999/trunk/sbin/rt-email-digest
==============================================================================
--- rt/3.999/trunk/sbin/rt-email-digest (original)
+++ rt/3.999/trunk/sbin/rt-email-digest Fri Mar 20 16:17:15 2009
@@ -200,17 +200,16 @@
# Specify a short time for digest overlap, in case we aren't starting
# this process exactly on time.
- my $OVERLAP_HEDGE = -30;
+ my $OVERLAP_HEDGE = 30;
- my $since_date = RT::Date->new( current_user => RT->system_user );
- $since_date->set( format => 'unix', value => time() );
+ my $since_date = RT::DateTime->now;
if ( $frequency eq 'daily' ) {
- $since_date->add_days(-1);
+ $since_date->subtract(days => 1);
} else {
- $since_date->add_days(-7);
+ $since_date->subtract(days => 7);
}
- $since_date->add_seconds($OVERLAP_HEDGE);
+ $since_date->subtract(seconds => $OVERLAP_HEDGE);
return $since_date;
}
@@ -296,13 +295,7 @@
unless ($date) {
my $txn_obj = RT::Model::Transaction->new( current_user => RT->system_user );
$txn_obj->load($txn);
- my $date_obj = RT::Date->new( current_user => RT->system_user );
- $date_obj->set(
- format => 'sql',
- value => $txn_obj->created
- );
- $date = strftime( '%a, %d %b %Y %H:%M:%S %z',
- @{ [ localtime( $date_obj->unix ) ] } );
+ $date = RT::DateTime->new_from_string($txn_obj->created)->rfc2822;
}
$contents_body .= "Date: $date\n\n";
$contents_body .= $msg->content . "\n";
Modified: rt/3.999/trunk/share/html/Admin/Elements/ShowKeyInfo
==============================================================================
--- rt/3.999/trunk/share/html/Admin/Elements/ShowKeyInfo (original)
+++ rt/3.999/trunk/share/html/Admin/Elements/ShowKeyInfo Fri Mar 20 16:17:15 2009
@@ -56,16 +56,16 @@
% }
<tr><th><% _('Created') %>:</th>
-<td><% $res{'info'}{'created'}? $res{'info'}{'created'}->as_string( Time => 0 ): _('never') %></td></tr>
+<td><% $res{'info'}{'created'}? $res{'info'}{'created'}->date : _('never') %></td></tr>
<tr><th><% _('Expire') %>:</th>
-<td><% $res{'info'}{'expire'}? $res{'info'}{'expire'}->as_string( Time => 0 ): _('never') %></td></tr>
+<td><% $res{'info'}{'expire'}? $res{'info'}{'expire'}->date : _('never') %></td></tr>
% foreach my $uinfo( @{ $res{'info'}{'user'} } ) {
<tr><th><% _('User (Created - expire)') %>:</th>
<td><% $uinfo->{'string'} %>\
-(<% $uinfo->{'created'}? $uinfo->{'created'}->as_string( Time => 0 ): _('never') %> - \
-<% $uinfo->{'expire'}? $uinfo->{'expire'}->as_string( Time => 0 ): _('never') %>)
+(<% $uinfo->{'created'}? $uinfo->{'created'}->date : _('never') %> - \
+<% $uinfo->{'expire'}? $uinfo->{'expire'}->date : _('never') %>)
</td></tr>
% }
Modified: rt/3.999/trunk/share/html/Approvals/Elements/PendingMyApproval
==============================================================================
--- rt/3.999/trunk/share/html/Approvals/Elements/PendingMyApproval (original)
+++ rt/3.999/trunk/share/html/Approvals/Elements/PendingMyApproval Fri Mar 20 16:17:15 2009
@@ -76,31 +76,32 @@
my $group_tickets = RT::Model::TicketCollection->new( current_user => Jifty->web->current_user );
$group_tickets->limit_watcher( value => Jifty->web->current_user->user_object->email, type => 'admin_cc' );
-my $Created_before = RT::Date->new();
-my $Created_after = RT::Date->new();
+my $created_before = RT::DateTime->new_from_string($ARGS{'created_before'});
+my $created_after = RT::DateTime->new_from_string($ARGS{'created_after'});
foreach ($tickets, $group_tickets) {
- $_->limit( column => 'type', value => 'approval' );
+ $_->limit( column => 'type', value => 'approval' );
if ( $ARGS{'show_resolved'} ) {
- $_->limit_status( value => 'resolved' );
+ $_->limit_status( value => 'resolved' );
}
+
if ( $ARGS{'show_rejected'} ) {
- $_->limit_status( value => 'rejected' );
+ $_->limit_status( value => 'rejected' );
}
+
if ( $ARGS{'show_pending'} || ( !$ARGS{'show_rejected'} && !$ARGS{'resolved'} ) ) {
- $_->limit_status( value => 'open' );
- $_->limit_status( value => 'new' );
- $_->limit_status( value => 'stalled' );
+ $_->limit_status( value => 'open' );
+ $_->limit_status( value => 'new' );
+ $_->limit_status( value => 'stalled' );
}
- if ( $ARGS{'created_before'} ) {
- $Created_before->set( format => 'unknown', value => $ARGS{'created_before'} );
- $_->limit_created( operator => "<=", value => $Created_before->iso );
+ if ($created_before->is_set) {
+ $_->limit_created( operator => "<=", value => $created_before );
}
- if ( $ARGS{'created_after'} ) {
- $Created_after->set( format => 'unknown', value => $ARGS{'created_after'} );
- $_->limit_created( operator => ">=", value => $Created_after->iso );
+
+ if ($created_after->is_set) {
+ $_->limit_created( operator => ">=", value => $created_after );
}
}
Modified: rt/3.999/trunk/share/html/Elements/SelectDate
==============================================================================
--- rt/3.999/trunk/share/html/Elements/SelectDate (original)
+++ rt/3.999/trunk/share/html/Elements/SelectDate Fri Mar 20 16:17:15 2009
@@ -47,15 +47,15 @@
%# END BPS TAGGED BLOCK }}}
<input type="text" id="<% $name %>" name="<% $name %>" class="datetime" value="<% $value %>" size="<% $size %>" />
<%init>
-unless ((defined $default) or
- ($current <= 0)) {
- my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
- localtime($current);
- $default = sprintf("%04d-%02d-%02d %02d:%02d",
- $year+1900,$mon+1,$mday,
- $hour,$min);
+undef $default if ref($default) && !$default->is_set;
+undef $value if ref($value) && !$value->is_set;
+
+if (!defined($default) && $current > 0) {
+ $default = RT::DateTime->from_epoch($current);
}
+
$value = $value || $default;
+$value = $value->iso if ref($value);
unless ($name) {
$name = $menu_prefix. "_date";
Modified: rt/3.999/trunk/share/html/NoAuth/iCal/dhandler
==============================================================================
--- rt/3.999/trunk/share/html/NoAuth/iCal/dhandler (original)
+++ rt/3.999/trunk/share/html/NoAuth/iCal/dhandler Fri Mar 20 16:17:15 2009
@@ -90,7 +90,7 @@
my $starttime = $t->starts->epoch > 0 ? $t->starts : $t->created;
- my $now = RT::Date->new; $now->set_to_now;
+ my $now = RT::DateTime->now;
my $start = Data::ICal::Entry::Event->new;
my $end = Data::ICal::Entry::Event->new;
$_->add_properties(
Modified: rt/3.999/trunk/share/html/REST/1.0/Forms/ticket/default
==============================================================================
--- rt/3.999/trunk/share/html/REST/1.0/Forms/ticket/default (original)
+++ rt/3.999/trunk/share/html/REST/1.0/Forms/ticket/default Fri Mar 20 16:17:15 2009
@@ -92,14 +92,14 @@
if (!keys(%data)) {
# GET ticket/new: Return a suitable default form.
# We get defaults from queue/1 (XXX: What if it isn't there?).
- my $due = RT::Date->new( current_user => Jifty->web->current_user ) ;
my $queue = RT::Model::Queue->new ( current_user =>
Jifty->web->current_user ) ;
- my $starts = RT::Date->new( current_user => Jifty->web->current_user);
$queue->load(1);
- $due->set_to_now;
- $due->add_days($queue->default_due_in) if $queue->default_due_in;
- $starts->set_to_now;
+
+ my $due = RT::DateTime->now;
+ $due->add(days => $queue->default_due_in) if $queue->default_due_in;
+
+ my $starts = RT::DateTime->now;
return [
"# Required: id, Queue",
@@ -133,8 +133,7 @@
foreach my $k (keys %data) {
# flexibly parse any dates
if ($dates{lc $k}) {
- my $time = RT::Date->new( current_user => Jifty->web->current_user );
- $time->set(format => 'unknown', value => $data{$k});
+ my $time = RT::DateTime->new_from_string($data{$k});
$data{$k} = $time->iso;
}
@@ -187,7 +186,7 @@
# Now we know we're dealing with an existing ticket.
if (!keys(%data)) {
- my ($time, $key, $val, @data);
+ my ($key, $val, @data);
push @data, [ id => "ticket/".$ticket->id ];
push @data, [ queue => $ticket->queue->name ]
@@ -208,14 +207,11 @@
push @data, [ $key => [ $ticket->role_group($key eq 'requestors' ? 'requestor' : $key)->member_emails ] ];
}
- $time = RT::Date->new();
foreach $key (@dates) {
- next unless (!%$fields || (exists $fields->{lc $key}));
- $time->set(format => 'sql', value => $ticket->$key);
- push @data, [ $key => $time->as_string ];
+ next unless (!%$fields || (exists $fields->{lc $key}));
+ push @data, [ $key => $ticket->$key->iso ];
}
- $time = RT::Date->new();
foreach $key (qw(time_estimated time_worked time_left)) {
next unless (!%$fields || (exists $fields->{lc $key}));
$val = $ticket->$key || 0;
@@ -278,12 +274,11 @@
$key = $dates{$key};
$set = "set_$key";
- my $time = RT::Date->new() ;
- $time->set(format => 'sql', value => $ticket->$key);
- next if ($val =~ /^not set$/i || $val eq $time->as_string);
+ my $time = RT::DateTime->new_from_string($ticket->$key);
+ next if ($val =~ /^not set$/i || $val eq $time->iso);
- $time->set(format => 'unknown', value => $val);
- ($n, $s) = $ticket->$set($time->iso);
+ $time = RT::DateTime->new_from_string($val);
+ ($n, $s) = $ticket->$set($time);
}
elsif (exists $people{$key}) {
$key = $people{$key};
Modified: rt/3.999/trunk/share/html/Ticket/Elements/Reminders
==============================================================================
--- rt/3.999/trunk/share/html/Ticket/Elements/Reminders (original)
+++ rt/3.999/trunk/share/html/Ticket/Elements/Reminders Fri Mar 20 16:17:15 2009
@@ -83,19 +83,11 @@
}
if ( $request_args->{'NewReminder-Subject'} ) {
- my $due = RT::Date->new();
- my $date = Time::ParseDate::parsedate(
- $request_args->{'NewReminder-Due'},
- UK => RT->config->get('DateDayBeforeMonth'),
- PREFER_PAST => 0,
- PREFER_FUTURE => 1
- );
- $due->set( value => $date, format => 'unix' );
+ my $due = RT::DateTime->new_from_string($request_args->{'NewReminder-Due'});
my ( $add_id, $msg, $txnid ) = $ticket->reminders->add(
-
subject => $request_args->{'NewReminder-Subject'},
owner => $request_args->{'NewReminder-Owner'},
- due => $due->iso
+ due => $due,
);
}
Modified: rt/3.999/trunk/share/html/Tools/Reports/CreatedByDates.html
==============================================================================
--- rt/3.999/trunk/share/html/Tools/Reports/CreatedByDates.html (original)
+++ rt/3.999/trunk/share/html/Tools/Reports/CreatedByDates.html Fri Mar 20 16:17:15 2009
@@ -53,31 +53,21 @@
<%init>
my $title = _("Created tickets in period, grouped by status");
my $q = RT::Model::Queue->new( current_user => Jifty->web->current_user );
-my $before = RT::Date->new();
-my $after = RT::Date->new();
my $query = 'Status != "deleted" ';
-
-if ($created_after) {
- $after->set(format => 'unknown', value => $created_after);
- $created_after = $after->as_string;
-}
-if ($created_before) {
- $before->set(format => 'unknown', value => $created_before);
- $created_before = $before->as_string;
-}
-
+my $after = RT::DateTime->new_from_string($created_after);
+my $before = RT::DateTime->new_from_string($created_before);
$q->load_by_cols(name => $queue);
</%init>
<&| /_elements/wrapper, title => $title &>
<& /Tools/Reports/Elements/Tabs, current_tab => 'Tools/Reports/CreatedByDates.html', title => $title &>
<form method="post" action="CreatedByDates.html">
-% if ($queue|| $created_before ||$created_after) {
+% if ($queue || $before->is_set || $after->is_set) {
% # if we have a queue, do the search
% if ($queue) { $query .= " AND queue = '$queue'"}
-% if ($created_before) { $query .= " AND Created < '".$before->iso."'"; }
-% if ($created_after) { $query .= " AND Created > '".$after->iso."'"}
+% if ($before->is_set) { $query .= " AND Created < '".$before->iso."'"; }
+% if ($after->is_set) { $query .= " AND Created > '".$after->iso."'"}
% my $groupby = 'Status';
<& /Search/Elements/Chart, query => $query, primary_group_by => $groupby &>
% }
@@ -86,9 +76,9 @@
<br /><&|/l&>Queue</&>: <& /Elements/SelectQueue, name => 'queue', named_values => 1, default => $q->id &>
<br /><&|/l&>Tickets Created after</&>:
-<& /Elements/SelectDate, name => 'created_after', default => ($created_after) ? $after->iso : ''&>
+<& /Elements/SelectDate, name => 'created_after', default => $after &>
<br /><&|/l&>Tickets Created before</&>:
-<& /Elements/SelectDate, name => 'created_before', default => ($created_before) ? $before->iso : ''&>
+<& /Elements/SelectDate, name => 'created_before', default => $before &>
<& /Elements/Submit&>
</form>
Modified: rt/3.999/trunk/share/html/Tools/Reports/ResolvedByDates.html
==============================================================================
--- rt/3.999/trunk/share/html/Tools/Reports/ResolvedByDates.html (original)
+++ rt/3.999/trunk/share/html/Tools/Reports/ResolvedByDates.html Fri Mar 20 16:17:15 2009
@@ -53,32 +53,22 @@
<%init>
my $title = _("Resolved tickets in period, grouped by owner");
my $q = RT::Model::Queue->new( current_user => Jifty->web->current_user );
-my $before = RT::Date->new();
-my $after = RT::Date->new();
my $query = '';
-
-if ($resolved_after) {
- $after->set(format => 'unknown', value => $resolved_after);
- $resolved_after = $after->as_string;
-}
-if ($resolved_before) {
- $before->set(format => 'unknown', value => $resolved_before);
- $resolved_before = $before->as_string;
-}
-
+my $after = RT::DateTime->new_from_string($resolved_after);
+my $before = RT::DateTime->new_from_string($resolved_before);
$q->load_by_cols(name => $queue);
</%init>
<&| /_elements/wrapper, title => $title &>
<& /Tools/Reports/Elements/Tabs, current_tab => 'Tools/Reports/ResolvedByDates.html', title => $title &>
<form method="post" action="ResolvedByDates.html">
-% if ($queue|| $resolved_before ||$resolved_after) {
+% if ($queue || $before->is_set || $after->is_set) {
% # if we have a queue, do the search
% $query = "Status = 'resolved'";
% if ($queue) { $query .= " AND queue = '$queue'"}
-% if ($resolved_before) { $query .= " AND resolved < '".$before->iso."'"; }
-% if ($resolved_after) { $query .= " AND resolved > '".$after->iso."'"}
+% if ($before->is_set) { $query .= " AND resolved < '".$before->iso."'"; }
+% if ($after->is_set) { $query .= " AND resolved > '".$after->iso."'"}
% my $groupby = 'Owner';
<& /Search/Elements/Chart, query => $query, primary_group_by => $groupby &>
% }
@@ -87,9 +77,9 @@
<br /><&|/l&>Queue</&>: <& /Elements/SelectQueue, name => 'queue', named_values => 1, default => $q->id &>
<br /><&|/l&>Tickets resolved after</&>:
-<& /Elements/SelectDate, name => 'resolved_after', default => ($resolved_after) ? $after->iso : ''&>
+<& /Elements/SelectDate, name => 'resolved_after', default => $after &>
<br /><&|/l&>Tickets resolved before</&>:
-<& /Elements/SelectDate, name => 'resolved_before', default => ($resolved_before) ? $before->iso : ''&>
+<& /Elements/SelectDate, name => 'resolved_before', default => $before &>
<& /Elements/Submit&>
</form>
Modified: rt/3.999/trunk/t/api/reminders.t
==============================================================================
--- rt/3.999/trunk/t/api/reminders.t (original)
+++ rt/3.999/trunk/t/api/reminders.t Fri Mar 20 16:17:15 2009
@@ -33,13 +33,12 @@
isnt($id , 0, 'Success creating ticket');
# Add reminder
-my $due_obj = RT::Date->new( RT->system_user);
-$due_obj->set_to_now;
+my $due = RT::DateTime->now(current_user => RT->system_user);
ok(my ( $add_id, $add_msg, $txnid ) = $t->reminders->add(
subject => 'TestReminder',
owner => 'root',
- due => $due_obj->iso
- ), 'Add reminder');
+ due => $due,
+), 'Add reminder');
# Check that the new Reminder is here
my $reminders = $t->reminders->collection;
Modified: rt/3.999/trunk/t/ticket/action_linear_escalate.t
==============================================================================
--- rt/3.999/trunk/t/ticket/action_linear_escalate.t (original)
+++ rt/3.999/trunk/t/ticket/action_linear_escalate.t Fri Mar 20 16:17:15 2009
@@ -66,10 +66,9 @@
sub create_ticket_as_ok {
my $user = shift;
- my $created = RT::Date->new( current_user => RT->system_user );
- $created->unix(time() - ( 7 * 24 * 60**2 ));
- my $due = RT::Date->new( current_user => RT->system_user );
- $due->unix(time() + ( 7 * 24 * 60**2 ));
+ my $one_week_ago = time() - (7 * 24 * 60 * 60);
+ my $created = RT::DateTime->from_epoch(epoch => $one_week_ago);
+ my $due = RT::DateTime->from_epoch(epoch => $one_week_ago);
my $ticket = RT::Model::Ticket->new( current_user => $user);
($id, $msg) = $ticket->create( queue => $q->id,
More information about the Rt-commit
mailing list