Description:
problems sorted by update time
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r258:1821e2e3aeb0 - - 4 files changed: 15 inserted, 3 deleted

@@ -0,0 +1,9
1 + class AddTimestampToProblems < ActiveRecord::Migration
2 + def self.up
3 + add_column :problems, :updated_at, :timestamp
4 + end
5 +
6 + def self.down
7 + remove_column :problems, :updated_at
8 + end
9 + end
@@ -28,25 +28,27
28 28 def random_test_pair(forbidden_numbers=nil)
29 29 if forbidden_numbers.length < test_pair_count
30 30 begin
31 31 test_num = 1 + rand(test_pair_count)
32 32 end while forbidden_numbers!=nil and forbidden_numbers.include? test_num
33 33 else
34 34 test_num = 1 + rand(test_pair_count)
35 35 end
36 36 test_pairs.find_by_number test_num
37 37 end
38 38
39 39 def self.find_available_problems
40 - find(:all, :conditions => {:available => true}, :order => "date_added DESC")
40 + find(:all,
41 + :conditions => {:available => true},
42 + :order => "updated_at DESC")
41 43 end
42 44
43 45 # TODO: may try to optimize this using cache
44 46 def self.available_problem_count
45 47 return Problem.find_available_problems.length
46 48 end
47 49
48 50 def self.create_from_import_form_params(params, old_problem=nil)
49 51 problem = old_problem || Problem.new
50 52 import_params = Problem.extract_params_and_check(params, problem)
51 53
52 54 if not problem.valid?
@@ -28,15 +28,15
28 28 = render :partial => 'problem', :collection => @problems
29 29
30 30 %br{:clear=>'both'}/
31 31 %hr/
32 32
33 33 %script{:type => 'text/javascript'}
34 34 = "Announcement.refreshUrl = '#{url_for :controller => 'main', :action => 'announcements'}';"
35 35 Announcement.registerRefreshEventTimer();
36 36 = render :partial => 'submission_timeouts'
37 37 CodejomTimeout.updateProblemMessages();
38 38 CodejomTimeout.registerRefreshEvent();
39 39
40 - = periodically_call_remote(:url => { :action => 'problems' }, :update => 'problem-list')
40 + = periodically_call_remote(:url => { :action => 'problems' }, :update => 'problem-list', :frequency => '3')
41 41
42 42
@@ -1,24 +1,24
1 1 # This file is auto-generated from the current state of the database. Instead of editing this file,
2 2 # please use the migrations feature of Active Record to incrementally modify your database, and
3 3 # then regenerate this schema definition.
4 4 #
5 5 # Note that this schema.rb definition is the authoritative source for your database schema. If you need
6 6 # to create the application database on another system, you should be using db:schema:load, not running
7 7 # all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
8 8 # you'll amass, the slower it'll run and the greater likelihood for issues).
9 9 #
10 10 # It's strongly recommended to check this file into your version control system.
11 11
12 - ActiveRecord::Schema.define(:version => 20100209145331) do
12 + ActiveRecord::Schema.define(:version => 20100210012432) do
13 13
14 14 create_table "announcements", :force => true do |t|
15 15 t.string "author"
16 16 t.text "body"
17 17 t.boolean "published"
18 18 t.datetime "created_at"
19 19 t.datetime "updated_at"
20 20 t.boolean "frontpage", :default => false
21 21 t.boolean "contest_only", :default => false
22 22 t.string "title"
23 23 end
24 24
@@ -85,24 +85,25
85 85
86 86 create_table "problems", :force => true do |t|
87 87 t.string "name", :limit => 30
88 88 t.string "full_name"
89 89 t.integer "full_score"
90 90 t.date "date_added"
91 91 t.boolean "available"
92 92 t.string "url"
93 93 t.integer "description_id"
94 94 t.boolean "test_allowed"
95 95 t.boolean "output_only"
96 96 t.integer "level", :default => 0
97 + t.datetime "updated_at"
97 98 end
98 99
99 100 create_table "rights", :force => true do |t|
100 101 t.string "name"
101 102 t.string "controller"
102 103 t.string "action"
103 104 end
104 105
105 106 create_table "rights_roles", :id => false, :force => true do |t|
106 107 t.integer "right_id"
107 108 t.integer "role_id"
108 109 end
You need to be logged in to leave comments. Login now