Description:
add 2nd level sort problem by name (not full name) show problem name before full_name in main/list
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r409:4e03b3c502cc - - 2 files changed: 2 inserted, 2 deleted

@@ -1,113 +1,113
1 1 class Problem < ActiveRecord::Base
2 2
3 3 belongs_to :description
4 4 has_and_belongs_to_many :contests, :uniq => true
5 5 has_many :test_pairs, :dependent => :delete_all
6 6
7 7 validates_presence_of :name
8 8 validates_format_of :name, :with => /^\w+$/
9 9 validates_presence_of :full_name
10 10
11 11 scope :available, :conditions => {:available => true}
12 12
13 13 DEFAULT_TIME_LIMIT = 1
14 14 DEFAULT_MEMORY_LIMIT = 32
15 15
16 16 def self.find_available_problems
17 - Problem.available.all(:order => "date_added DESC")
17 + Problem.available.all(:order => "date_added DESC, name ASC")
18 18 end
19 19
20 20 def self.create_from_import_form_params(params, old_problem=nil)
21 21 org_problem = old_problem || Problem.new
22 22 import_params, problem = Problem.extract_params_and_check(params,
23 23 org_problem)
24 24
25 25 if !problem.errors.empty?
26 26 return problem, 'Error importing'
27 27 end
28 28
29 29 problem.full_score = 100
30 30 problem.date_added = Time.new
31 31 problem.test_allowed = true
32 32 problem.output_only = false
33 33 problem.available = false
34 34
35 35 if not problem.save
36 36 return problem, 'Error importing'
37 37 end
38 38
39 39 import_to_db = params.has_key? :import_to_db
40 40
41 41 importer = TestdataImporter.new(problem)
42 42
43 43 if not importer.import_from_file(import_params[:file],
44 44 import_params[:time_limit],
45 45 import_params[:memory_limit],
46 46 import_params[:checker_name],
47 47 import_to_db)
48 48 problem.errors.add_to_base('Import error.')
49 49 end
50 50
51 51 return problem, importer.log_msg
52 52 end
53 53
54 54 def self.download_file_basedir
55 55 return "#{Rails.root}/data/tasks"
56 56 end
57 57
58 58 protected
59 59
60 60 def self.to_i_or_default(st, default)
61 61 if st!=''
62 62 result = st.to_i
63 63 end
64 64 result ||= default
65 65 end
66 66
67 67 def self.to_f_or_default(st, default)
68 68 if st!=''
69 69 result = st.to_f
70 70 end
71 71 result ||= default
72 72 end
73 73
74 74 def self.extract_params_and_check(params, problem)
75 75 time_limit = Problem.to_f_or_default(params[:time_limit],
76 76 DEFAULT_TIME_LIMIT)
77 77 memory_limit = Problem.to_i_or_default(params[:memory_limit],
78 78 DEFAULT_MEMORY_LIMIT)
79 79
80 80 if time_limit<=0 or time_limit >60
81 81 problem.errors.add_to_base('Time limit out of range.')
82 82 end
83 83
84 84 if memory_limit==0 and params[:memory_limit]!='0'
85 85 problem.errors.add_to_base('Memory limit format errors.')
86 86 elsif memory_limit<=0 or memory_limit >512
87 87 problem.errors.add_to_base('Memory limit out of range.')
88 88 end
89 89
90 90 if params[:file]==nil or params[:file]==''
91 91 problem.errors.add_to_base('No testdata file.')
92 92 end
93 93
94 94 checker_name = 'text'
95 95 if ['text','float'].include? params[:checker]
96 96 checker_name = params[:checker]
97 97 end
98 98
99 99 file = params[:file]
100 100
101 101 if !problem.errors.empty?
102 102 return nil, problem
103 103 end
104 104
105 105 problem.name = params[:name]
106 106 if params[:full_name]!=''
107 107 problem.full_name = params[:full_name]
108 108 else
109 109 problem.full_name = params[:name]
110 110 end
111 111
112 112 return [{
113 113 :time_limit => time_limit,
@@ -1,18 +1,18
1 1 <tr class="info-<%= (problem_counter%2==0) ? "even" : "odd" %>">
2 2 <td>
3 3 <%= "#{problem_counter+1}" %>
4 4 </td>
5 5 <td>
6 - <%= "#{problem.full_name} (#{problem.name})" %>
6 + <%= "(#{problem.name}) #{problem.full_name}" %>
7 7 <%= link_to_description_if_any "[#{t 'main.problem_desc'}]", problem %>
8 8 </td>
9 9 <td align="center">
10 10 <%= @prob_submissions[problem.id][:count] %>
11 11 </td>
12 12 <td>
13 13 <%= render :partial => 'submission_short',
14 14 :locals => {
15 15 :submission => @prob_submissions[problem.id][:submission],
16 16 :problem_name => problem.name }%>
17 17 </td>
18 18 </tr>
You need to be logged in to leave comments. Login now