]> iEval git - gruntmaster-data.git/blobdiff - lib/Gruntmaster/Data/Result/Job.pm
Add table and column comments
[gruntmaster-data.git] / lib / Gruntmaster / Data / Result / Job.pm
index 1b283a3ed613c9a963ca4e8b4f01050e825940d2..dfb375e7a0a0e40786a65b4213595b3349c1bf96 100644 (file)
@@ -6,7 +6,7 @@ package Gruntmaster::Data::Result::Job;
 
 =head1 NAME
 
-Gruntmaster::Data::Result::Job
+Gruntmaster::Data::Result::Job - List of jobs
 
 =cut
 
@@ -41,26 +41,36 @@ __PACKAGE__->table("jobs");
   data_type: 'text'
   is_nullable: 1
 
+hostname:PID of daemon that last executed this job. NULL if never executed
+
 =head2 date
 
   data_type: 'bigint'
   is_nullable: 0
 
+Unix time when job was submitted
+
 =head2 errors
 
   data_type: 'text'
   is_nullable: 1
 
+Compiler errors
+
 =head2 extension
 
   data_type: 'text'
   is_nullable: 0
 
+File extension of submitted program, without a leading dot
+
 =head2 format
 
   data_type: 'text'
   is_nullable: 0
 
+Format (programming language) of submitted program
+
 =head2 private
 
   data_type: 'boolean'
@@ -78,16 +88,22 @@ __PACKAGE__->table("jobs");
   data_type: 'integer'
   is_nullable: 1
 
+Job result (integer constant from Gruntmaster::Daemon::Constants)
+
 =head2 result_text
 
   data_type: 'text'
   is_nullable: 1
 
+Job result (human-readable text)
+
 =head2 results
 
   data_type: 'text'
   is_nullable: 1
 
+Per-test results (JSON array of hashes with keys id (test number, counting from 1), result (integer constant from Gruntmaster::Daemon::Constants), result_text (human-readable text), time (execution time in decimal seconds))
+
 =head2 source
 
   data_type: 'text'
@@ -166,7 +182,7 @@ __PACKAGE__->belongs_to(
   {
     is_deferrable => 0,
     join_type     => "LEFT",
-    on_delete     => "NO ACTION",
+    on_delete     => "CASCADE",
     on_update     => "NO ACTION",
   },
 );
@@ -183,7 +199,7 @@ __PACKAGE__->belongs_to(
   "owner",
   "Gruntmaster::Data::Result::User",
   { id => "owner" },
-  { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
+  { is_deferrable => 0, on_delete => "CASCADE", on_update => "NO ACTION" },
 );
 
 =head2 problem
@@ -198,13 +214,57 @@ __PACKAGE__->belongs_to(
   "problem",
   "Gruntmaster::Data::Result::Problem",
   { id => "problem" },
-  { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
+  { is_deferrable => 0, on_delete => "CASCADE", on_update => "NO ACTION" },
+);
+
+=head2 problem_statuses
+
+Type: has_many
+
+Related object: L<Gruntmaster::Data::Result::ProblemStatus>
+
+=cut
+
+__PACKAGE__->has_many(
+  "problem_statuses",
+  "Gruntmaster::Data::Result::ProblemStatus",
+  { "foreign.job" => "self.id" },
+  { cascade_copy => 0, cascade_delete => 0 },
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-26 15:24:46
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dnYOXMU6Or/Wh0m5A1N5UA
+# Created by DBIx::Class::Schema::Loader v0.07042 @ 2014-12-19 16:54:00
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:hEAVL5heV13+nalSmgr0WA
+
+sub rawcontest { shift->get_column('contest') }
+sub rawowner { shift->get_column('owner') }
+sub rawproblem { shift->get_column('problem') }
 
+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
This page took 0.020133 seconds and 4 git commands to generate.