X-Git-Url: http://git.ieval.ro/?p=gruntmaster-page.git;a=blobdiff_plain;f=lib%2FGruntmaster%2FPage%2FSubmit.pm;h=5f7d7279006a0d0804c04e28fd537537e6d07d8e;hp=5eed07c379314bd80333a2a554389c41319e8d50;hb=a46fb222e6ce50102b7c61a95af435afc74f5e33;hpb=58a0ba09590653e5afceb39431f7fa893d26c86f diff --git a/lib/Gruntmaster/Page/Submit.pm b/lib/Gruntmaster/Page/Submit.pm index 5eed07c..5f7d727 100644 --- a/lib/Gruntmaster/Page/Submit.pm +++ b/lib/Gruntmaster/Page/Submit.pm @@ -16,6 +16,8 @@ sub generate{ my ($self, $frm, $env) = @_; my $r = Plack::Request->new($env); my ($problem, $format, $contest, $private, $prog) = map {scalar $r->param($_)} 'problem', 'prog_format', 'contest', 'private', 'source_code'; + $problem //= $env->{'gruntmaster.problem'}; + $contest //= $env->{'gruntmaster.contest'}; my $upload = $r->upload('prog'); if (defined $upload) { my $temp = read_file $upload->path; @@ -26,7 +28,7 @@ sub generate{ return reply 'A required parameter was not supplied' if grep { !defined } $problem, $format, $prog; return reply 'Maximum source size is 10KB' if length $prog > 25 * 1024; return reply 'You must wait 30 seconds between jobs' unless time > db($env)->user($r->user)->lastjob + 30; - db($env)->user($r->user)->lastjob(time)->update; + db($env)->user($r->user)->update({lastjob => time}); db($env)->jobs->create({ defined $contest ? (contest => $contest) : (), @@ -34,9 +36,9 @@ sub generate{ extension => FORMAT_EXTENSION->{$format}, format => $format, defined $private ? (private => $private) : (), - probem => $problem, + problem => $problem, source => $prog, - user => $r->user + owner => $r->user }); $contest //= '';