}, 10
},
+ sub (/ed/:contest) {
+ forbid contest->is_running;
+ response ed => 'Editorial of ' . contest->name, db->problem_list(contest => $_{contest}, solution => 1);
+ },
+
sub (/login) {
forbid !remote_user;
},
sub (/) { redispatch_to '/index' },
+ sub (/favicon.ico) { redirect '/static/favicon.ico' },
sub (/:article) { [200, ['Content-Type' => 'text/html', 'Cache-Control' => 'public, max-age=60', 'X-Forever' => 1], [render_article $_{article}, 'en']] }
},
my $source = $prog ? read_file $prog->path : $_{source_code};
unlink $prog->path if $prog;
+ my $private = (problem->private && !$_{contest}) ? 1 : 0;
my $newjob = db->jobs->create({
maybe contest => $_{contest},
- maybe private => problem->private && !$_{contest},
+ private => $private,
date => time,
extension => FORMAT_EXTENSION->{$_{prog_format}},
format => $_{prog_format},