}
1;
+
+__END__
+
+=encoding utf-8
+
+=head1 NAME
+
+Gruntmaster::Data - Gruntmaster 6000 Online Judge -- database interface and tools
+
+=head1 SYNOPSIS
+
+ my $db = Gruntmaster::Data->connect('dbi:Pg:');
+ # Typical DBIC stuff here
+
+=head1 DESCRIPTION
+
+No documentation (yet)
+
+=head1 AUTHOR
+
+Marius Gavrilescu E<lt>marius@ieval.roE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014 by Marius Gavrilescu
+
+This library is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+
+=cut
# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-06 12:41:16
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:T5tUpU1TOahLKzx9iVie3A
+sub is_pending {
+ my ($self, $time) = @_;
+ $self->start > ($time // time)
+}
+
+sub is_finished {
+ my ($self, $time) = @_;
+ $self->stop <= ($time // time)
+}
+
+sub is_running {
+ my ($self, $time) = @_;
+ !$self->is_pending($time) && !$self->is_finished($time)
+}
-# You can replace this text with custom code or comments, and it will be preserved on regeneration
1;
+
+__END__
+
+=head1 METHODS
+
+=head2 is_pending(I<[$time]>)
+
+Returns true if the contest is pending at time I<$time> (which defaults to C<time>).
+
+=head2 is_finished(I<[$time]>)
+
+Returns true if the contest is finished at time I<$time> (which defaults to C<time>).
+
+=head2 is_running(I<[$time]>)
+
+Returns true if the contest is running at time I<$time> (which defaults to C<time>).
+
+=head1 AUTHOR
+
+Marius Gavrilescu E<lt>marius@ieval.roE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014 by Marius Gavrilescu
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.18.1 or,
+at your option, any later version of Perl 5 you may have available.
+
+
+=cut
# You can replace this text with custom code or comments, and it will be preserved on regeneration
1;
+
+__END__
+
+=head1 AUTHOR
+
+Marius Gavrilescu E<lt>marius@ieval.roE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014 by Marius Gavrilescu
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.18.1 or,
+at your option, any later version of Perl 5 you may have available.
+
+
+=cut
# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-26 15:24:46
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dnYOXMU6Or/Wh0m5A1N5UA
+sub rerun {
+ shift->update({daemon => undef, result => -2, result_text => undef});
+}
-# You can replace this text with custom code or comments, and it will be preserved on regeneration
1;
+
+__END__
+
+=head1 METHODS
+
+=head2 rerun
+
+Reruns this job.
+
+=head1 AUTHOR
+
+Marius Gavrilescu E<lt>marius@ieval.roE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014 by Marius Gavrilescu
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.18.1 or,
+at your option, any later version of Perl 5 you may have available.
+
+
+=cut
# You can replace this text with custom code or comments, and it will be preserved on regeneration
1;
+
+__END__
+
+=head1 AUTHOR
+
+Marius Gavrilescu E<lt>marius@ieval.roE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014 by Marius Gavrilescu
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.18.1 or,
+at your option, any later version of Perl 5 you may have available.
+
+
+=cut
# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-30 12:59:34
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ujwyMJ5Pup1i5NKXkPkg2g
+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
+}
-# You can replace this text with custom code or comments, and it will be preserved on regeneration
1;
+
+__END__
+
+=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.
+
+=head1 AUTHOR
+
+Marius Gavrilescu E<lt>marius@ieval.roE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014 by Marius Gavrilescu
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.18.1 or,
+at your option, any later version of Perl 5 you may have available.
+
+
+=cut
# You can replace this text with custom code or comments, and it will be preserved on regeneration
1;
+
+__END__
+
+=head1 AUTHOR
+
+Marius Gavrilescu E<lt>marius@ieval.roE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2014 by Marius Gavrilescu
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.18.1 or,
+at your option, any later version of Perl 5 you may have available.
+
+
+=cut