Save submission alongside structured error

This commit is contained in:
Maximilian Grundke
2018-01-30 11:28:29 +01:00
parent 7768d34275
commit 40fe5c4e69
5 changed files with 24 additions and 14 deletions

View File

@@ -202,17 +202,6 @@ class SubmissionsController < ApplicationController
tubesock.close
end
def extract_errors
unless @raw_output.blank?
@submission.exercise.execution_environment.error_templates.each do |template|
pattern = Regexp.new(template.signature).freeze
if pattern.match(@raw_output)
StructuredError.create_from_template(template, @raw_output)
end
end
end
end
def handle_message(message, tubesock, container)
@raw_output ||= ''
@run_output ||= ''
@@ -289,6 +278,17 @@ class SubmissionsController < ApplicationController
end
end
def extract_errors
unless @raw_output.blank?
@submission.exercise.execution_environment.error_templates.each do |template|
pattern = Regexp.new(template.signature).freeze
if pattern.match(@raw_output)
StructuredError.create_from_template(template, @raw_output, @submission)
end
end
end
end
def score
hijack do |tubesock|
Thread.new { EventMachine.run } unless EventMachine.reactor_running? && EventMachine.reactor_thread.alive?

View File

@@ -1,9 +1,10 @@
class StructuredError < ActiveRecord::Base
belongs_to :error_template
belongs_to :submission
belongs_to :file, class_name: 'CodeOcean::File'
def self.create_from_template(template, message_buffer)
instance = self.create(error_template: template)
def self.create_from_template(template, message_buffer, submission)
instance = self.create(error_template: template, submission: submission)
template.error_template_attributes.each do |attribute|
StructuredErrorAttribute.create_from_template(attribute, instance, message_buffer)
end

View File

@@ -8,6 +8,7 @@ class Submission < ActiveRecord::Base
belongs_to :exercise
has_many :testruns
has_many :structured_errors
has_many :comments, through: :files
delegate :execution_environment, to: :exercise