Show More
Commit Description:
add new branch for class 2110-101 Introduction to Computer Programming (year 2014) (java language)
Commit Description:
add new branch for class 2110-101 Introduction to Computer Programming (year 2014) (java language)
References:
File last commit:
Show/Diff file:
Action:
app/models/problem.rb | 114 lines | 2.9 KiB | text/x-ruby | RubyLexer |
pramook
initial commit...
r0 class Problem < ActiveRecord::Base
jittat
[web] refactor problem description, some styling...
r92 belongs_to :description
Jittat Fakcharoenphol
manages users in contests
r280 has_and_belongs_to_many :contests, :uniq => true
Jittat Fakcharoenphol
imports test pairs
r210 has_many :test_pairs, :dependent => :delete_all
jittat
[web] refactor problem description, some styling...
r92
jittat
added quick new problem...
r171 validates_presence_of :name
jittat
import problem replaced old one, fixed small problems...
r205 validates_format_of :name, :with => /^\w+$/
jittat
added quick new problem...
r171 validates_presence_of :full_name
jittat
small refactoring in Problem.new_from_import_form_params...
r208
Jittat Fakcharoenphol
added verify plug-in, fixed form_for, form_tag in views, changed named_scope to scope
r319 scope :available, :conditions => {:available => true}
Jittat Fakcharoenphol
shows problems availabe in contests
r278
jittat
small refactoring in Problem.new_from_import_form_params...
r208 DEFAULT_TIME_LIMIT = 1
DEFAULT_MEMORY_LIMIT = 32
Jittat Fakcharoenphol
imports task description as pdf
r271
pramook
initial commit...
r0 def self.find_available_problems
Jittat Fakcharoenphol
shows problems availabe in contests
r278 Problem.available.all(:order => "date_added DESC")
pramook
initial commit...
r0 end
Jittat Fakcharoenphol
imports test pairs
r210 def self.create_from_import_form_params(params, old_problem=nil)
Jittat Fakcharoenphol
fixed problem import from validation (thanks Witchakorn Kamolpornwijit)
r310 org_problem = old_problem || Problem.new
import_params, problem = Problem.extract_params_and_check(params,
org_problem)
jittat
added problem import...
r204
Jittat Fakcharoenphol
uses empty? instead of length to check model validation errors when importing problems
r338 if !problem.errors.empty?
Jittat Fakcharoenphol
imports test pairs
r210 return problem, 'Error importing'
jittat
small refactoring in Problem.new_from_import_form_params...
r208 end
jittat
added problem import...
r204
jittat
small refactoring in Problem.new_from_import_form_params...
r208 problem.full_score = 100
problem.date_added = Time.new
problem.test_allowed = true
problem.output_only = false
problem.available = false
Jittat Fakcharoenphol
imports test pairs
r210
if not problem.save
return problem, 'Error importing'
end
import_to_db = params.has_key? :import_to_db
importer = TestdataImporter.new(problem)
if not importer.import_from_file(import_params[:file],
import_params[:time_limit],
import_params[:memory_limit],
import_to_db)
problem.errors.add_to_base('Import error.')
end
jittat
small refactoring in Problem.new_from_import_form_params...
r208 return problem, importer.log_msg
end
Jittat Fakcharoenphol
imports task description as pdf
r271 def self.download_file_basedir
Jittat Fakcharoenphol
boots into rails 3
r318 return "#{Rails.root}/data/tasks"
Jittat Fakcharoenphol
imports task description as pdf
r271 end
jittat
small refactoring in Problem.new_from_import_form_params...
r208 protected
jittat
added problem import...
r204
jittat
small refactoring in Problem.new_from_import_form_params...
r208 def self.to_i_or_default(st, default)
if st!=''
Jittat Fakcharoenphol
fixed problem import from validation (thanks Witchakorn Kamolpornwijit)
r310 result = st.to_i
jittat
small refactoring in Problem.new_from_import_form_params...
r208 end
Jittat Fakcharoenphol
fixed problem import from validation (thanks Witchakorn Kamolpornwijit)
r310 result ||= default
end
def self.to_f_or_default(st, default)
if st!=''
result = st.to_f
end
result ||= default
jittat
small refactoring in Problem.new_from_import_form_params...
r208 end
def self.extract_params_and_check(params, problem)
Jittat Fakcharoenphol
fixed problem import from validation (thanks Witchakorn Kamolpornwijit)
r310 time_limit = Problem.to_f_or_default(params[:time_limit],
jittat
small refactoring in Problem.new_from_import_form_params...
r208 DEFAULT_TIME_LIMIT)
memory_limit = Problem.to_i_or_default(params[:memory_limit],
DEFAULT_MEMORY_LIMIT)
jittat
added problem import...
r204
Jittat Fakcharoenphol
fixed problem import from validation (thanks Witchakorn Kamolpornwijit)
r310 if time_limit<=0 or time_limit >60
jittat
added problem import...
r204 problem.errors.add_to_base('Time limit out of range.')
end
Jittat Fakcharoenphol
fixed problem import from validation (thanks Witchakorn Kamolpornwijit)
r310 if memory_limit==0 and params[:memory_limit]!='0'
jittat
added problem import...
r204 problem.errors.add_to_base('Memory limit format errors.')
elsif memory_limit<=0 or memory_limit >512
problem.errors.add_to_base('Memory limit out of range.')
end
if params[:file]==nil or params[:file]==''
problem.errors.add_to_base('No testdata file.')
end
file = params[:file]
Jittat Fakcharoenphol
uses empty? instead of length to check model validation errors when importing problems
r338 if !problem.errors.empty?
Jittat Fakcharoenphol
fixed problem import from validation (thanks Witchakorn Kamolpornwijit)
r310 return nil, problem
jittat
added problem import...
r204 end
problem.name = params[:name]
if params[:full_name]!=''
problem.full_name = params[:full_name]
else
problem.full_name = params[:name]
end
Jittat Fakcharoenphol
fixed problem import from validation (thanks Witchakorn Kamolpornwijit)
r310 return [{
:time_limit => time_limit,
:memory_limit => memory_limit,
:file => file
},
problem]
jittat
added problem import...
r204 end
pramook
initial commit...
r0 end