]> iEval git - gruntmaster-page.git/blobdiff - lib/Plack/App/Gruntmaster.pm
Pass query parameters to response
[gruntmaster-page.git] / lib / Plack / App / Gruntmaster.pm
index 4f2d6e18f3d9a6d3f11c0dc14ebaab6604c346a9..7f9c21f4803c61f6bf46adf9bd3363065e5d1c33 100644 (file)
@@ -79,6 +79,7 @@ sub response {
                $title = 'No title';
        }
        $params->{time} = time;
+       $params->{args} = {%_};
        bless {template => $template, title => $title, params => $params, maxage => ($maxage // 1)}, __PACKAGE__.'::Response'
 }
 
@@ -144,7 +145,10 @@ sub dispatch_request{
                sub (/st/:contest) {
                        response st => 'Standings', {
                                st => [ contest->standings ],
-                               problems => [map { $_->problem } contest->contest_problems],
+                               problems => [
+                                       map { [$_->id, $_->name] }
+                                       sort { $a->value <=> $b->value }
+                                       map { $_->problem } contest->contest_problems],
                        }, 10
                },
 
@@ -161,7 +165,7 @@ sub dispatch_request{
                sub (/ct/  + ?:owner~)                            { response ct => 'Contests', db->contest_list(%_) },
                sub (/log/ + ?:contest~&:owner~&:page~&:problem~&:private~) {
                        forbid $_{private};
-                       response log => 'Job list', {%{db->job_list(%_)}, maybe contest => $_{contest}}
+                       response log => 'Job list', {%{db->job_list(%_)}, maybe contest => $_{contest},}
                },
                sub (/pb/  + ?:owner~&:contest~&:private~)                  {
                        forbid $_{private};
@@ -183,7 +187,7 @@ sub dispatch_request{
                                forbid !remote_user;
                                $privacy = 'private';
                        }
-                       response pb_entry => problem->name, db->problem_entry($_{problem}, $_{contest}, remote_user && remote_user->id);
+                       response pb_entry => problem->name, {%{db->problem_entry($_{problem}, $_{contest}, remote_user && remote_user->id)}, maybe contest => $_{contest}};
                },
                sub (/sol/:problem) {
                        forbid !problem->is_in_archive;
This page took 0.026762 seconds and 4 git commands to generate.