Changeset 2500
- Timestamp:
- 06/04/08 01:21:49 (21 months ago)
- Location:
- branches/release-39
- Files:
-
- 15 modified
-
lib/MT/ArchiveType/AuthorDaily.pm (modified) (1 diff)
-
lib/MT/ArchiveType/AuthorMonthly.pm (modified) (1 diff)
-
lib/MT/ArchiveType/AuthorWeekly.pm (modified) (1 diff)
-
lib/MT/ArchiveType/AuthorYearly.pm (modified) (1 diff)
-
lib/MT/ArchiveType/CategoryDaily.pm (modified) (1 diff)
-
lib/MT/ArchiveType/CategoryMonthly.pm (modified) (1 diff)
-
lib/MT/ArchiveType/CategoryWeekly.pm (modified) (1 diff)
-
lib/MT/ArchiveType/CategoryYearly.pm (modified) (1 diff)
-
lib/MT/ArchiveType/Daily.pm (modified) (1 diff)
-
lib/MT/ArchiveType/Monthly.pm (modified) (1 diff)
-
lib/MT/ArchiveType/Weekly.pm (modified) (1 diff)
-
lib/MT/ArchiveType/Yearly.pm (modified) (1 diff)
-
lib/MT/Object.pm (modified) (1 diff)
-
lib/MT/ObjectDriver/Driver/DBI.pm (modified) (1 diff)
-
t/driver-tests.pl (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/release-39/lib/MT/ArchiveType/AuthorDaily.pm
r2401 r2500 130 130 "extract(day from authored_on)" 131 131 ], 132 'sort' => "extract(year from authored_on) $order, 133 extract(month from authored_on) $order, 134 extract(day from authored_on) $order" 132 'sort' => [ 133 { column => 'extract(year from authored_on)', desc => $order }, 134 { column => 'extract(month from authored_on)', desc => $order }, 135 { column => 'extract(day from authored_on)', desc => $order } 136 ], 135 137 } 136 138 ) or return $ctx->error("Couldn't get monthly archive list"); -
branches/release-39/lib/MT/ArchiveType/AuthorMonthly.pm
r2399 r2500 130 130 "extract(month from authored_on)" 131 131 ], 132 'sort' => "extract(year from authored_on) $order, 133 extract(month from authored_on) $order" 132 'sort' => [ 133 { column => "extract(year from authored_on)", desc => $order }, 134 { column => "extract(month from authored_on)", desc => $order } 135 ], 134 136 } 135 137 ) or return $ctx->error("Couldn't get monthly archive list"); -
branches/release-39/lib/MT/ArchiveType/AuthorWeekly.pm
r2399 r2500 130 130 ( $ts && $tsend ? ( range_incl => { authored_on => 1 } ) : () ), 131 131 group => ["week_number"], 132 'sort' => "week_number $order"132 'sort' => [ { column => "week_number", desc => $order } ] 133 133 } 134 134 ) or return $ctx->error("Couldn't get weekly archive list"); -
branches/release-39/lib/MT/ArchiveType/AuthorYearly.pm
r2401 r2500 123 123 { 124 124 group => ["extract(year from authored_on)"], 125 'sort' => "extract(year from authored_on) $order"125 'sort' => [ { column => "extract(year from authored_on)", desc => $order } ] 126 126 } 127 127 ) or return $ctx->error("Couldn't get monthly archive list"); -
branches/release-39/lib/MT/ArchiveType/CategoryDaily.pm
r2399 r2500 127 127 "extract(day from authored_on)" 128 128 ], 129 sort => "extract(year from authored_on) $order, 130 extract(month from authored_on) $order, 131 extract(day from authored_on) $order", 129 sort => [ 130 { column => "extract(year from authored_on)", desc => $order }, 131 { column => "extract(month from authored_on)", desc => $order }, 132 { column => "extract(day from authored_on)", desc => $order }, 133 ], 132 134 'join' => 133 135 [ 'MT::Placement', 'entry_id', { category_id => $c->id } ] -
branches/release-39/lib/MT/ArchiveType/CategoryMonthly.pm
r2399 r2500 127 127 "extract(month from authored_on)" 128 128 ], 129 sort => "extract(year from authored_on) $order, 130 extract(month from authored_on) $order", 129 sort => [ 130 { column => "extract(year from authored_on)", desc => $order }, 131 { column => "extract(month from authored_on)", desc => $order }, 132 ], 131 133 'join' => 132 134 [ 'MT::Placement', 'entry_id', { category_id => $c->id } ] -
branches/release-39/lib/MT/ArchiveType/CategoryWeekly.pm
r2399 r2500 128 128 ( $ts && $tsend ? ( range_incl => { authored_on => 1 } ) : () ), 129 129 group => ["week_number"], 130 sort => "week_number $order",130 sort => [ { column => "week_number", desc => $order } ], 131 131 'join' => 132 132 [ 'MT::Placement', 'entry_id', { category_id => $c->id } ] -
branches/release-39/lib/MT/ArchiveType/CategoryYearly.pm
r2399 r2500 120 120 { 121 121 group => ["extract(year from authored_on)"], 122 sort => "extract(year from authored_on) $order",122 sort => [ { column => "extract(year from authored_on)", desc => $order } ], 123 123 'join' => 124 124 [ 'MT::Placement', 'entry_id', { category_id => $c->id } ] -
branches/release-39/lib/MT/ArchiveType/Daily.pm
r1741 r2500 103 103 ], 104 104 $args->{lastn} ? ( limit => $args->{lastn} ) : (), 105 sort => "extract(year from authored_on) $order, 106 extract(month from authored_on) $order, 107 extract(day from authored_on) $order" 105 sort => [ 106 { column => "extract(year from authored_on)", desc => $order }, 107 { column => "extract(month from authored_on)", desc => $order }, 108 { column => "extract(day from authored_on)", desc => $order } 109 ], 108 110 } 109 111 ) or return $ctx->error("Couldn't get daily archive list"); -
branches/release-39/lib/MT/ArchiveType/Monthly.pm
r1741 r2500 105 105 ], 106 106 $args->{lastn} ? ( limit => $args->{lastn} ) : (), 107 sort => "extract(year from authored_on) $order, 108 extract(month from authored_on) $order" 107 sort => [ 108 { column => "extract(year from authored_on)", desc => $order }, 109 { column => "extract(month from authored_on)", desc => $order } 110 ], 109 111 } 110 112 ) or return $ctx->error("Couldn't get monthly archive list"); -
branches/release-39/lib/MT/ArchiveType/Weekly.pm
r1741 r2500 101 101 group => [ "week_number" ], 102 102 $args->{lastn} ? ( limit => $args->{lastn} ) : (), 103 sort => "week_number $order"103 sort => [ { column => "week_number", desc => $order } ], 104 104 } 105 105 ) or return $ctx->error("Couldn't get weekly archive list"); -
branches/release-39/lib/MT/ArchiveType/Yearly.pm
r1741 r2500 103 103 group => ["extract(year from authored_on)"], 104 104 $args->{lastn} ? ( limit => $args->{lastn} ) : (), 105 sort => "extract(year from authored_on) $order"105 sort => [ { column => "extract(year from authored_on)", desc => $order } ], 106 106 } 107 107 ) or return $ctx->error("Couldn't get yearly archive list"); -
branches/release-39/lib/MT/Object.pm
r2483 r2500 1781 1781 1782 1782 sort => [ 1783 { column => "column_1", desc => " descend" },1783 { column => "column_1", desc => "DESC" }, 1784 1784 { column => "column_2", } # default direction is 'ascend' 1785 1785 ] -
branches/release-39/lib/MT/ObjectDriver/Driver/DBI.pm
r2475 r2500 137 137 my $order = delete $args->{sort}; 138 138 my $direction = delete $args->{direction}; 139 if ( $order =~ /\sdesc|asc/i ) { 140 my @new_order; 141 while ($order =~ /(?:\s*([\w\s\(\)]+?)\s(desc|asc))/ig) { 142 push @new_order, { column => $1, desc => $2 }; 143 } 144 $order = \@new_order if @new_order; 145 } 139 146 my $limit = exists $args->{limit} ? delete $args->{limit} : undef; 140 147 my $offset = exists $args->{offset} ? delete $args->{offset} : undef; -
branches/release-39/t/driver-tests.pl
r2475 r2500 33 33 } 34 34 35 plan tests => 1 84;35 plan tests => 197; 36 36 37 37 package Zot; … … 400 400 sleep(2); ## Sleep to ensure created_on timestamps are unique 401 401 402 # legacy way of specifying sort direction 402 403 my $cgb_iter = Bar->count_group_by({ 403 404 status => '0', 404 405 }, { 405 406 group => [ 'foo_id' ], 406 sort => 'foo_id', 407 direction => 'descend', 407 sort => 'foo_id desc', 408 408 }); 409 409 my ($count, $bfid, $month); … … 417 417 ok(!$cgb_iter->(), 'no $iter'); 418 418 419 $cgb_iter = Bar->count_group_by(undef, { 419 # new way of specifying sort direction 420 my $cgb_iter2 = Bar->count_group_by({ 421 status => '0', 422 }, { 423 group => [ 'foo_id' ], 424 sort => 'foo_id', 425 direction => 'descend' 426 }); 427 428 isa_ok($cgb_iter2, 'CODE'); 429 ok(($count, $bfid) = $cgb_iter2->(), 'set'); 430 is($bfid, $bar[1]->id, 'id'); 431 is($count, 1, 'count4'); 432 ok(($count, $bfid) = $cgb_iter2->(), 'set'); 433 is($bfid, $bar[0]->id, 'id'); 434 is($count, 1, 'count5'); 435 ok(!$cgb_iter2->(), 'no $iter'); 436 437 # legacy way of specifying sort direction 438 my $cgb_iter3 = Bar->count_group_by(undef, { 420 439 group => [ 'extract(month from created_on)' ], 421 sort => 'extract(month from created_on)', 422 direction => 'descend', 440 sort => 'extract(month from created_on) desc', 423 441 }); 424 isa_ok($cgb_iter , 'CODE');425 ok(($count, $month) = $cgb_iter ->(), 'set');442 isa_ok($cgb_iter3, 'CODE'); 443 ok(($count, $month) = $cgb_iter3->(), 'set'); 426 444 use POSIX qw(strftime); 427 445 is(int($month), int(strftime("%m", localtime)), 'month'); 428 446 is($count, 3, 'count6'); 429 ok(!$cgb_iter->(), 'no $iter'); 447 ok(!$cgb_iter3->(), 'no $iter'); 448 449 # new way of specifying sort direction 450 my $cgb_iter4 = Bar->count_group_by(undef, { 451 group => [ 'extract(month from created_on)' ], 452 sort => [{ column => 'extract(month from created_on)', 453 desc => 'desc' }] 454 }); 455 isa_ok($cgb_iter4, 'CODE'); 456 ok(($count, $month) = $cgb_iter4->(), 'set'); 457 is(int($month), int(strftime("%m", localtime)), 'month'); 458 is($count, 3, 'count6'); 459 ok(!$cgb_iter4->(), 'no $iter'); 430 460 431 461 ## Get a count of all Foo objects in order of most recently
