Show More
Commit Description:
add 2nd level sort problem by name (not full name)...
Commit Description:
add 2nd level sort problem by name (not full name) show problem name before full_name in main/list
References:
File last commit:
Show/Diff file:
Action:
app/models/problem.rb | 121 lines | 3.2 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
add 2nd level sort problem by name (not full name)...
r409 Problem.available.all(:order => "date_added DESC, name ASC")
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],
add selectable checker (for now, only 'text' and 'float') in the problem import
r402 import_params[:checker_name],
Jittat Fakcharoenphol
imports test pairs
r210 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
add selectable checker (for now, only 'text' and 'float') in the problem import
r402 checker_name = 'text'
if ['text','float'].include? params[:checker]
checker_name = params[:checker]
end
jittat
added problem import...
r204 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,
add selectable checker (for now, only 'text' and 'float') in the problem import
r402 :file => file,
:checker_name => checker_name
Jittat Fakcharoenphol
fixed problem import from validation (thanks Witchakorn Kamolpornwijit)
r310 },
problem]
jittat
added problem import...
r204 end
pramook
initial commit...
r0 end