Description:
fixed submission bug: forgot to set problem attribute in case that the problem is set in the submission code. git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@100 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r48:0bbd9fb65914 - - 1 file changed: 2 inserted, 0 deleted

@@ -62,59 +62,61
62 return words[1]
62 return words[1]
63 end
63 end
64 i = i + 1
64 i = i + 1
65 if i==10
65 if i==10
66 return nil
66 return nil
67 end
67 end
68 end
68 end
69 return nil
69 return nil
70 end
70 end
71
71
72 def self.find_language_in_source(source)
72 def self.find_language_in_source(source)
73 langopt = find_option_in_source(/^LANG:/,source)
73 langopt = find_option_in_source(/^LANG:/,source)
74 if language = Language.find_by_name(langopt)
74 if language = Language.find_by_name(langopt)
75 return language
75 return language
76 elsif language = Language.find_by_pretty_name(langopt)
76 elsif language = Language.find_by_pretty_name(langopt)
77 return language
77 return language
78 else
78 else
79 return nil
79 return nil
80 end
80 end
81 end
81 end
82
82
83 def self.find_problem_in_source(source)
83 def self.find_problem_in_source(source)
84 prob_opt = find_option_in_source(/^TASK:/,source)
84 prob_opt = find_option_in_source(/^TASK:/,source)
85 if problem = Problem.find_by_name(prob_opt)
85 if problem = Problem.find_by_name(prob_opt)
86 return problem
86 return problem
87 else
87 else
88 return nil
88 return nil
89 end
89 end
90 end
90 end
91
91
92 # validation codes
92 # validation codes
93 def must_specify_language
93 def must_specify_language
94 return if self.source==nil
94 return if self.source==nil
95 self.language = Submission.find_language_in_source(self.source)
95 self.language = Submission.find_language_in_source(self.source)
96 errors.add_to_base("must specify programming language") unless self.language!=nil
96 errors.add_to_base("must specify programming language") unless self.language!=nil
97 end
97 end
98
98
99 def must_have_valid_problem
99 def must_have_valid_problem
100 return if self.source==nil
100 return if self.source==nil
101 if self.problem_id!=-1
101 if self.problem_id!=-1
102 problem = Problem.find(self.problem_id)
102 problem = Problem.find(self.problem_id)
103 else
103 else
104 problem = Submission.find_problem_in_source(self.source)
104 problem = Submission.find_problem_in_source(self.source)
105 end
105 end
106 if problem==nil
106 if problem==nil
107 errors.add_to_base("must specify problem")
107 errors.add_to_base("must specify problem")
108 elsif !problem.available
108 elsif !problem.available
109 errors.add_to_base("must specify valid problem")
109 errors.add_to_base("must specify valid problem")
110 + else
111 + self.problem = problem
110 end
112 end
111 end
113 end
112
114
113 # callbacks
115 # callbacks
114 def assign_latest_number_if_new_recond
116 def assign_latest_number_if_new_recond
115 return if !self.new_record?
117 return if !self.new_record?
116 latest = Submission.find_last_by_user_and_problem(self.user_id, self.problem_id)
118 latest = Submission.find_last_by_user_and_problem(self.user_id, self.problem_id)
117 self.number = (latest==nil) ? 1 : latest.number + 1;
119 self.number = (latest==nil) ? 1 : latest.number + 1;
118 end
120 end
119
121
120 end
122 end
You need to be logged in to leave comments. Login now