Number of tests
+=head2 precnt
+
+ data_type: 'integer'
+ is_nullable: 1
+
+Number of pretests. NULL indicates full feedback.
+
=head2 tests
data_type: 'text'
{ data_type => "text", is_nullable => 0 },
"testcnt",
{ data_type => "integer", is_nullable => 0 },
+ "precnt",
+ { data_type => "integer", is_nullable => 1 },
"tests",
{ data_type => "text", is_nullable => 1 },
"timeout",
{ cascade_copy => 0, cascade_delete => 0 },
);
+=head2 limits
+
+Type: has_many
+
+Related object: L<Gruntmaster::Data::Result::Limit>
+
+=cut
+
+__PACKAGE__->has_many(
+ "limits",
+ "Gruntmaster::Data::Result::Limit",
+ { "foreign.problem" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+
=head2 opens
Type: has_many
__PACKAGE__->many_to_many("contests", "contest_problems", "contest");
-# Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:54:00
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QZHyWOWaPmTm/EQ5M22CGA
+# Created by DBIx::Class::Schema::Loader v0.07042 @ 2015-03-16 17:16:58
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:N7cuqDEGSn5rf8V5GovRQQ
use Class::Method::Modifiers qw/after/;
my ($self) = @_;
Gruntmaster::Data::purge '/pb/';
Gruntmaster::Data::purge '/pb/' . $self->id;
+ Gruntmaster::Data::purge '/sol/' . $self->id;
};
-sub is_private {
- my ($self, $time) = @_;
- return 1 if $self->private;
- grep { $_->contest->is_pending($time) } $self->contest_problems;
-}
-
-sub is_in_archive {
- my ($self, $time) = @_;
- 0 == grep { $_->contest->is_running($time) } $self->contest_problems;
-}
-
sub rerun {
$_->rerun for shift->jobs
}
=head1 METHODS
-=head2 is_private(I<[$time]>)
-
-Returns true if the problem is private at time I<$time> (which defaults to C<time>).
-
-=head2 is_in_archive(I<[$time]>)
-
-Returns true if the problem is in the archive at time I<$time> (which defaults to C<time>).
-
=head2 rerun
Reruns all jobs for this problem.