Description:
[web] normalize full_score to 100, more hints on how to submit questions, hint on the disabling to test interface during the last 30 minutes
git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@253 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r125:89874907db3e - - 5 files changed: 24 inserted, 3 deleted
@@ -11,43 +11,47 | |||
|
11 | 11 | def self.register(host,pid,mode) |
|
12 | 12 | grader = GraderProcess.find_by_host_and_pid(host,pid) |
|
13 | 13 | if grader |
|
14 | 14 | grader.mode = mode |
|
15 | 15 | grader.active = nil |
|
16 | 16 | grader.task_id = nil |
|
17 | 17 | grader.task_type = nil |
|
18 | 18 | grader.save |
|
19 | 19 | else |
|
20 | 20 | grader = GraderProcess.create(:host => host, |
|
21 | 21 | :pid => pid, |
|
22 | 22 | :mode => mode) |
|
23 | 23 | end |
|
24 | 24 | grader |
|
25 | 25 | end |
|
26 | 26 | |
|
27 | 27 | def self.find_stalled_process() |
|
28 | 28 | GraderProcess.find(:all, |
|
29 | 29 | :conditions => ["active AND updated_at < ?", |
|
30 | 30 | Time.now.gmtime - GraderProcess.stalled_time]) |
|
31 | 31 | end |
|
32 | 32 | |
|
33 | 33 | def report_active(task=nil) |
|
34 | 34 | self.active = true |
|
35 | + if task!=nil | |
|
35 | 36 | self.task_id = task.id |
|
37 | + else | |
|
38 | + self.task_id = nil | |
|
39 | + end | |
|
36 | 40 | self.task_type = task.class.to_s |
|
37 | 41 | self.save |
|
38 | 42 | end |
|
39 | 43 | |
|
40 | 44 | def report_inactive() |
|
41 | 45 | self.active = false |
|
42 | 46 | self.task_id = nil |
|
43 | 47 | self.task_type = nil |
|
44 | 48 | self.save |
|
45 | 49 | end |
|
46 | 50 | |
|
47 | 51 | protected |
|
48 | 52 | |
|
49 | 53 | def self.stalled_time() |
|
50 | 54 | return 1.minute |
|
51 | 55 | end |
|
52 | 56 | |
|
53 | 57 | end |
@@ -1,18 +1,18 | |||
|
1 | 1 | |
|
2 | 2 | %tr{:class => ((submission_counter%2==0) ? "info-even" : "info-odd")} |
|
3 | 3 | %td.info{:align => "center"} |
|
4 | 4 | = submission_counter+1 |
|
5 | 5 | %td.info= format_short_time(submission.submitted_at) |
|
6 | 6 | %td.info{:align => "center"} |
|
7 | 7 | = link_to('[load]',{:action => 'source', :id => submission.id}) |
|
8 | 8 | %td.info |
|
9 | 9 | - if submission.graded_at!=nil |
|
10 | 10 | = "Graded at #{format_short_time(submission.graded_at)}." |
|
11 | 11 | %br/ |
|
12 | - = "Score: #{submission.points} " if Configuration['ui.show_score'] | |
|
12 | + = "Score: #{(submission.points*100/submission.problem.full_score).to_i} " if Configuration['ui.show_score'] | |
|
13 | 13 | = " [" |
|
14 | 14 | %tt |
|
15 | 15 | = submission.grader_comment |
|
16 | 16 | = "]" |
|
17 | 17 | %td.info |
|
18 | 18 | = render :partial => 'compiler_message', :locals => {:compiler_message => submission.compiler_message } |
@@ -1,20 +1,20 | |||
|
1 | 1 | |
|
2 | 2 | - if submission==nil |
|
3 | 3 | = "-" |
|
4 | 4 | - else |
|
5 | 5 | - if submission.graded_at==nil |
|
6 | 6 | Submitted at |
|
7 | 7 | = format_short_time(submission.submitted_at) |
|
8 | 8 | - else |
|
9 | 9 | = "Graded at #{format_short_time(submission.graded_at)}, " |
|
10 | - = "score: #{submission.points} " if Configuration['ui.show_score'] | |
|
10 | + = "score: #{(submission.points*100/submission.problem.full_score).to_i} " if Configuration['ui.show_score'] | |
|
11 | 11 | = " [" |
|
12 | 12 | %tt |
|
13 | 13 | = submission.grader_comment |
|
14 | 14 | = "]" |
|
15 | 15 | = " | " |
|
16 | 16 | = link_to('[msg]', {:action => 'compiler_msg', :id => submission.id}, {:popup => true}) |
|
17 | 17 | = " | " |
|
18 | 18 | = link_to('[source]',{:action => 'source', :id => submission.id}) |
|
19 | 19 | = " | " |
|
20 | 20 | = link_to '[submissions]', :action => 'submission', :id => problem_name |
@@ -1,14 +1,26 | |||
|
1 | 1 | = user_title_bar(@user) |
|
2 | 2 | |
|
3 | - %h3 Your Messages | |
|
3 | + .announcementbox | |
|
4 | + %span{:class => 'title'} | |
|
5 | + How to submit clarification requests | |
|
6 | + .announcement | |
|
7 | + %p | |
|
8 | + :markdown | |
|
9 | + The clarification requests should be phrased as yes/no questions. | |
|
10 | + The answers will be one of the following: | |
|
11 | + (1) **YES**, | |
|
12 | + (2) <b>NO</b>, | |
|
13 | + (3) **ANSWERED IN TASK DESCRIPTION (EXPLICITLY OR IMPLICITLY)**, | |
|
14 | + (4) **INVALID QUESTION**, and | |
|
15 | + (5) **NO COMMENT**. | |
|
4 | 16 | |
|
5 | 17 | - form_for 'message', nil, :url => { :action => 'create'} do |f| |
|
6 | 18 | %p |
|
7 | 19 | %b New clarification request |
|
8 | 20 | = submit_tag "Post" |
|
9 | 21 | %br/ |
|
10 | 22 | = f.text_area :body, :rows => 5, :cols => 100 |
|
11 | 23 | |
|
12 | 24 | %hr/ |
|
13 | 25 | |
|
14 | 26 | = render :partial => 'message', :collection => @messages, :locals => {:reply => false} |
@@ -1,28 +1,33 | |||
|
1 | 1 | <%= user_title_bar(@user) %> |
|
2 | 2 | |
|
3 | 3 | <h2>Test Interface</h2> |
|
4 | 4 | |
|
5 | + <p> | |
|
6 | + <b>Note:</b> Test interface will be disabled in the last 30 minutes | |
|
7 | + of the contest time on your site. | |
|
8 | + </p> | |
|
9 | + | |
|
5 | 10 | <% if @problems.length==0 %> |
|
6 | 11 | There is no submission |
|
7 | 12 | <% else %> |
|
8 | 13 | |
|
9 | 14 | <script type="text/javascript"> |
|
10 | 15 | var submissionCount = new Array(); |
|
11 | 16 | <% @submissions.each do |submission| %> |
|
12 | 17 | submissionCount[<%= submission.problem_id %>]=<%= submission.number %>; |
|
13 | 18 | <% end %> |
|
14 | 19 | |
|
15 | 20 | function updateSubmissionList() { |
|
16 | 21 | currentProb = document.getElementById("test_request_problem_id").value; |
|
17 | 22 | count = submissionCount[currentProb]; |
|
18 | 23 | submissionSelect = document.getElementById("test_request_submission_number"); |
|
19 | 24 | old_len = submissionSelect.length; |
|
20 | 25 | // clear the box |
|
21 | 26 | for(i=0; i<old_len; i++) |
|
22 | 27 | submissionSelect.remove(0); |
|
23 | 28 | for(i=count; i>=1; i--) { |
|
24 | 29 | try { |
|
25 | 30 | submissionSelect.add(new Option(""+i,""+i,false,false),null); |
|
26 | 31 | } catch(ex) { |
|
27 | 32 | submissionSelect.add(new Option(""+i,""+i,false,false)); |
|
28 | 33 | } |
You need to be logged in to leave comments.
Login now