X-Git-Url: http://git.ieval.ro/?p=gruntmaster-data.git;a=blobdiff_plain;f=lib%2FGruntmaster%2FData.pm;h=c46a358964777ec70df4fbfdb0a2b129b104de7d;hp=0b04b7b884ebb98e6a396005673971cd9ed0de1d;hb=625a7bd077ef2781d055a77bffa19dd9d6c0d1f2;hpb=751c70b56c8cbd4850821a2ecce774a01a7bd165 diff --git a/lib/Gruntmaster/Data.pm b/lib/Gruntmaster/Data.pm index 0b04b7b..c46a358 100644 --- a/lib/Gruntmaster/Data.pm +++ b/lib/Gruntmaster/Data.pm @@ -15,7 +15,7 @@ __PACKAGE__->load_namespaces; # Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-05 13:11:39 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dAEmtAexvUaNXLgYz2rNEg -our $VERSION = '5999.000_011'; +our $VERSION = '5999.000_012'; use Lingua::EN::Inflect qw/PL_N/; use JSON::MaybeXS qw/decode_json/; @@ -42,8 +42,13 @@ BEGIN { } sub user_list { - my $rs = $_[0]->users->search(undef, {order_by => 'name', columns => USER_PUBLIC_COLUMNS}); - [ map { { $_->get_columns } } $rs->all ] + my $rs = $_[0]->users->search(undef, {columns => USER_PUBLIC_COLUMNS, prefetch => [qw/problem_statuses contest_statuses/]} ); + [ sort { $b->{solved} <=> $a->{solved} or $b->{attempted} <=> $a->{attempted} } map { ## no critic (ProhibitReverseSort) + my $solved = $_->problem_statuses->count(solved => 1); + my $attempted = $_->problem_statuses->count(solved => 0); + my $contests = $_->contest_statuses->count; + +{ $_->get_columns, solved => $solved, attempted => $attempted, contests => $contests } + } $rs->all ] } sub user_entry {