diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb
index 23abeaf77..21f781a1a 100644
--- a/app/controllers/homework_common_controller.rb
+++ b/app/controllers/homework_common_controller.rb
@@ -19,28 +19,28 @@ class HomeworkCommonController < ApplicationController
end
def new
- @homework_type = "1"
-
- @homework = HomeworkCommon.new
- @homework.safe_attributes = params[:homework_common]
- @homework.late_penalty = 0
- @homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
- @homework.publish_time = Time.now.strftime('%Y-%m-%d')
-
- if @homework_type == "1"
- #匿评作业相关属性
- @homework_detail_manual = HomeworkDetailManual.new
- @homework_detail_manual.ta_proportion = 0.6
- @homework_detail_manual.absence_penalty = 0
- @homework_detail_manual.evaluation_num = 3
- @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
- @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
- @homework.homework_detail_manual = @homework_detail_manual
- elsif @homework_type == "2"
- #编程作业相关属性
- @homework_detail_programing = HomeworkDetailPrograming.new
- @homework.homework_detail_programing = @homework_detail_programing
- end
+ # @homework_type = "1"
+ #
+ # @homework = HomeworkCommon.new
+ # @homework.safe_attributes = params[:homework_common]
+ # @homework.late_penalty = 2
+ # @homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
+ # @homework.publish_time = Time.now.strftime('%Y-%m-%d')
+ #
+ # if @homework_type == "1"
+ # #匿评作业相关属性
+ # @homework_detail_manual = HomeworkDetailManual.new
+ # @homework_detail_manual.ta_proportion = 0.6
+ # @homework_detail_manual.absence_penalty = 2
+ # @homework_detail_manual.evaluation_num = 3
+ # @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
+ # @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
+ # @homework.homework_detail_manual = @homework_detail_manual
+ # elsif @homework_type == "2"
+ # #编程作业相关属性
+ # @homework_detail_programing = HomeworkDetailPrograming.new
+ # @homework.homework_detail_programing = @homework_detail_programing
+ # end
respond_to do |format|
format.html
end
@@ -52,7 +52,7 @@ class HomeworkCommonController < ApplicationController
@homework = HomeworkCommon.new
@homework.safe_attributes = params[:homework_common]
- @homework.late_penalty = 0
+ @homework.late_penalty = 2
@homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
@homework.publish_time = Time.now.strftime('%Y-%m-%d')
@@ -60,7 +60,7 @@ class HomeworkCommonController < ApplicationController
#匿评作业相关属性
@homework_detail_manual = HomeworkDetailManual.new
@homework_detail_manual.ta_proportion = 0.6
- @homework_detail_manual.absence_penalty = 0
+ @homework_detail_manual.absence_penalty = 2
@homework_detail_manual.evaluation_num = 3
@homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
@homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
@@ -107,6 +107,7 @@ class HomeworkCommonController < ApplicationController
homework_test.input = v
homework_test.output = params[:output][k]
homework_test.result = params[:result][k]
+ homework_test.error_msg = params[:error_msg]
homework.homework_tests << homework_test
question[:input] << homework_test.input
question[:output] << homework_test.output
@@ -231,11 +232,13 @@ class HomeworkCommonController < ApplicationController
homework_test.input = v
homework_test.output = params[:output][k]
homework_test.result = params[:result][k]
+ homework_test.error_msg = params[:error_msg]
else #不存在的测试,增加
homework_test = HomeworkTest.new
homework_test.input = v
homework_test.output = params[:output][k]
homework_test.result = params[:result][k]
+ homework_test.error_msg = params[:error_msg]
homework_test.homework_common = @homework
end
homework_test.save
@@ -367,6 +370,7 @@ class HomeworkCommonController < ApplicationController
client.request(request)
end
result = JSON.parse(res.body)
+ @err_msg = result["compile_error_msg"]
result["results"].each do |re|
@result = re["status"]
end
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 165e22071..6ac3c234a 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -2378,4 +2378,26 @@ module ApplicationHelper
end
notice.html_safe
end
+
+ def stantard_code
+ "// 这是一个C语言的样例程序
+// 功能:输入两个整数,输出两者之和
+// 测试:老师可以给出以下测试集:
+// 输入1和2,输出3
+// 输入3和4,输出7
+// 那么下面这段代码将得到满分
+
+// 注意:编程作业采用命令行传参方式
+// 程序的所有输入都通过argv传入
+// 否则您的程序将被判错
+
+#include //引用必须头文件
+int main(int argc, char** argv) {
+ int a = atoi(argv[1]); //将第一个输入转成整型
+ int b = atoi(argv[2]); //将第二个输入转换为整型
+
+ printf(\"%d\",a+b); //输出a+b
+ return 0;
+}".html_safe
+ end
end
diff --git a/app/helpers/homework_common_helper.rb b/app/helpers/homework_common_helper.rb
index 49384cca4..43f815250 100644
--- a/app/helpers/homework_common_helper.rb
+++ b/app/helpers/homework_common_helper.rb
@@ -66,4 +66,31 @@ module HomeworkCommonHelper
link
end
+ #将状态转换为错误信息
+ def status_to_err_msg status
+ case status.to_i
+ when -1
+ '编译出错'
+ when -2
+ '输入和输出不匹配'
+ when -3
+ '输入和输出不匹配'
+ when 1
+ '运行出错'
+ when 2
+ '超时'
+ when 3
+ '内存超出'
+ when 4
+ '输出超出'
+ when 5
+ '禁用函数'
+ when 6
+ '其他错误'
+ when 0
+ '成功'
+ else
+ '未知错误'
+ end
+ end
end
\ No newline at end of file
diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb
index 0952630da..b60b31d8b 100644
--- a/app/views/homework_common/_homework_detail_programing_form.html.erb
+++ b/app/views/homework_common/_homework_detail_programing_form.html.erb
@@ -78,7 +78,7 @@
标准代码:
-
+
@@ -114,11 +114,11 @@
<% end %>
+
+ ">
+
+
+
+ 错误信息:
+
+
+ <% if homework.homework_tests.first && homework.homework_tests.first && homework.homework_tests.first.error_msg %>
+ <%= homework.homework_tests.first.error_msg%>
+ <% end%>
+
+
+
+
diff --git a/app/views/homework_common/new.html.erb b/app/views/homework_common/new.html.erb
index 6fc0fff0e..cdc2ceca0 100644
--- a/app/views/homework_common/new.html.erb
+++ b/app/views/homework_common/new.html.erb
@@ -1,17 +1,27 @@
-<%= javascript_include_tag "/assets/kindeditor/kindeditor" %>
-<%= error_messages_for 'homework_common' %>
<%= l(:label_course_homework_new)%>
-
- <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %>
- <%= hidden_field_tag "course",@course.id%>
- <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %>
-
提交
- <%#= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%>
- <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%>
+
+ <%= form_for("new_homework_common",:url => next_step_homework_common_index_path) do |f|%>
+
+
+ 请选择将要发布的作业类型
+
+
+
+ 人工评分的作业(支持匿名互评、灵活设置评分比例)
+
+
+
+
+ 自动评测的编程作业(支持C/C++程序的自动评分)
+
+
+
+ 下一步
+
<% end%>
diff --git a/app/views/homework_common/programing_test.js.erb b/app/views/homework_common/programing_test.js.erb
index 8f76642f1..d1643329b 100644
--- a/app/views/homework_common/programing_test.js.erb
+++ b/app/views/homework_common/programing_test.js.erb
@@ -1,2 +1,12 @@
$("#test_send_<%= @index%>").replaceWith("
fl ml5 mt1 programing_test' onclick='programing_test(<%= @index%>)' id='test_send_<%= @index%>'><%= @result == 0 ? '正确' : '错误'%> ");
-$("#test_result_<%= @index%>").val("<%= @result%>");
\ No newline at end of file
+$("#test_result_<%= @index%>").val("<%= @result%>");
+<% if @err_msg || @result != 0%>
+ $("#homework_work_test_show").show();
+ $("#homework_work_test_desc").text("<%= escape_javascript(@err_msg || status_to_err_msg(@result))%>");
+ <% if @err_msg%>
+ $("#homework_test_error_msg").val("<%= escape_javascript(@err_msg)%>");
+ <% end%>
+<% else%>
+ $("#homework_work_test_show").hide();
+ $("#homework_test_error_msg").val("");
+<% end%>
\ No newline at end of file
diff --git a/app/views/layouts/_base_footer_public.html.erb b/app/views/layouts/_base_footer_public.html.erb
new file mode 100644
index 000000000..d4fc3e7e5
--- /dev/null
+++ b/app/views/layouts/_base_footer_public.html.erb
@@ -0,0 +1,44 @@
+
+
\ No newline at end of file
diff --git a/app/views/layouts/base_courses.html.erb b/app/views/layouts/base_courses.html.erb
index 7a32cb67d..fb29439a8 100644
--- a/app/views/layouts/base_courses.html.erb
+++ b/app/views/layouts/base_courses.html.erb
@@ -180,7 +180,7 @@
- <%= render :partial => 'layouts/new_footer' %>
+ <%= render :partial => 'layouts/base_footer_public' %>
<%= render :partial => 'layouts/new_feedback' %>
diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb
index 74c13cc8e..74b876391 100644
--- a/app/views/layouts/base_projects.html.erb
+++ b/app/views/layouts/base_projects.html.erb
@@ -173,7 +173,7 @@
- <%= render :partial => 'layouts/new_footer'%>
+ <%= render :partial => 'layouts/base_footer_public'%>
diff --git a/app/views/layouts/base_users_new.html.erb b/app/views/layouts/base_users_new.html.erb
index 0d2ad0d36..18d0a1f5b 100644
--- a/app/views/layouts/base_users_new.html.erb
+++ b/app/views/layouts/base_users_new.html.erb
@@ -271,7 +271,7 @@
- <%= render :partial => 'layouts/new_footer'%>
+ <%= render :partial => 'layouts/base_footer_public'%>
diff --git a/app/views/mailer/send_for_user_activities.html.erb b/app/views/mailer/send_for_user_activities.html.erb
index 11efbe0a2..7bd1b0bc2 100644
--- a/app/views/mailer/send_for_user_activities.html.erb
+++ b/app/views/mailer/send_for_user_activities.html.erb
@@ -81,7 +81,7 @@
:style => "color:#2E8DD7; float:left;display:block; margin-right:5px; margin-left:5px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%>
<%= l(:label_course_homework) %>
- <%= link_to truncate(bid.name.html_safe,length: 30,omission: '...'), student_work_index_path(:homework => bid.id,:token => @token.value),
+ <%= link_to truncate(bid.name.html_safe,length: 30,omission: '...'), student_work_index_url(:homework => bid.id,:token => @token.value),
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
%>
diff --git a/app/views/student_work/new.html.erb b/app/views/student_work/new.html.erb
index c1e82ad25..6fbc00be0 100644
--- a/app/views/student_work/new.html.erb
+++ b/app/views/student_work/new.html.erb
@@ -54,7 +54,11 @@
<%= @homework.homework_type == 2 ? "提交代码" : "作品描述"%>
:
- <%= f.text_area "description", :class => "w620 hwork_txt ", :placeholder => "作品描述不能为空", :onkeyup => "regexStudentWorkDescription();", :value => "#include\nint main(int argc, char** argv)\n{\n\t//在此填写逻辑代码\n\treturn 0;\n}"%>
+ <% if @homework.homework_type == 2%>
+ <%= f.text_area "description", :class => "w620 hwork_txt h350", :placeholder => "作品描述不能为空", :onkeyup => "regexStudentWorkDescription();", :value => stantard_code%>
+ <% else %>
+ <%= f.text_area "description", :class => "w620 hwork_txt", :placeholder => "作品描述不能为空", :onkeyup => "regexStudentWorkDescription();"%>
+ <% end%>
diff --git a/app/views/users/user_course_activities.html.erb b/app/views/users/user_course_activities.html.erb
index eacb620f2..ed5b66ed4 100644
--- a/app/views/users/user_course_activities.html.erb
+++ b/app/views/users/user_course_activities.html.erb
@@ -10,7 +10,7 @@
<%= rec[:item].user.show_name %>
<%= get_activity_opt(rec[:item],rec[:e]) %>
- <% if( rec[:e].is_public == false || rec[:e].is_public == 0 ) %>
+ <% if(( rec[:e].is_public == false || rec[:e].is_public == 0 )&& !rec[:e].visible?)%>
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index c79e76bfe..b40359f46 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -2058,5 +2058,22 @@ zh:
lable_unset: 未设置
label_chose_group: 请选择分班
+ label_hosted_organization: 主办单位
+ label_hosted_by: 国防科学技术大学并行与分布处理国家重点实验室
+ label_sponsor: 计算机科学与技术系
+ label_partners: 合作单位
+ label_co_organizer_NUDT: 国防科学技术大学计算机学院
+ label_co_organizer_EECS: 北京大学
+ label_co_organizer_BHU: 北京航空航天大学
+ label_co_organizer_CAS: 中国科学院软件研究所
+ label_co_organizer_InforS: 中创软件
+ label_rights_reserved: Copyright 2007~2015, All Rights Riserved
+ label_about_us: 关于我们
+ label_contact_us: 联系我们
+ label_recruitment_information: 招聘信息
+ label_surpport_group: 帮助中心
+ label_forums: 论坛反馈
+ label_language: 语言
+ label_license: 湘ICP备09019772
diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css
index 5c6fd9867..fd9a4d44e 100644
--- a/public/stylesheets/courses.css
+++ b/public/stylesheets/courses.css
@@ -226,6 +226,7 @@ a:hover.ping_sub{ background:#14a8b9;}
.w430{ width:470px;}
.w557{ width:557px;}
.w350{ width:350px;}
+.h350{height: 350px !important;}
.w620{ width:480px; height:160px; border:1px solid #CCC;}
.bo{height:26px; border:1px solid #CCC; padding-left:5px; background:#fff;width:470px; }
.bo02{height:26px; border:1px solid #CCC; padding-left:5px; background:#fff;width:480px; margin-left:2px; color: #999; }
@@ -694,6 +695,9 @@ a.work_list_tit{width:580px; display:block; overflow:hidden; font-size:14px; f
.border_l{border-left:1px solid #e4e4e4;}
.border_t{ border-top:1px solid #e4e4e4;}
.td_end{border-top:1px solid #e4e4e4; height:auto; padding:5px; }
+.wl{text-align: left;}
+.vt{vertical-align: top;}
+.td_board_left{border-right: 1px solid #e4e4e4;}
.c_w{ color:#fff;}
.filename { background: url(../images/pic_file.png) 0 -25px no-repeat;color: #3ca5c6;max-width: 150px;border: none; padding-left: 20px;margin-right: 10px;margin-bottom: 5px; white-space: nowrap; text-overflow:ellipsis;}
@@ -709,6 +713,7 @@ a:hover.about_me{ color:#0781b4;}
.mb5 li{width:200px;word-wrap: break-word;
word-break: normal;
}
+#homework_work_test_show{margin-left: 35px;width: 94%;}
diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css
index 576a9da0c..704b2bf10 100644
--- a/public/stylesheets/public.css
+++ b/public/stylesheets/public.css
@@ -77,9 +77,12 @@ h4{ font-size:14px; color:#3b3b3b;}
.mr20{ margin-right:20px;}
.mr30{ margin-right:30px;}
.mr40{ margin-right:40px;}
+.mr45{margin-right: 45px;}
.mr50{margin-right: 50px;}
.mr55{margin-right: 55px;}
.mr70{margin-right: 70px;}
+.mw15{margin:0 15px;}
+.mw20{margin:0 20px;}
.mt1{margin-top: 1px;}
.mt3{ margin-top:3px;}
.mt5{ margin-top:5px;}
@@ -454,3 +457,13 @@ img,embed{max-width: 100%;}
.is_public_checkbox{margin-left: 15px;margin-right: 10px;}
.author_name{color: #3ca5c6 !important;}
.ke-container-default{max-width: 100%;}
+
+/*底部*/
+#Footer{background-color:#ffffff; margin-bottom:10px; padding-bottom:15px; color:#666666;}
+.footerAboutContainer {width:auto; border-bottom:1px solid #efefef;}
+.footerAbout{ width:585px; margin:0 auto;height:35px; line-height:35px; border-bottom:1px solid #efefef; }
+.languageBox {width:55px; height:20px; margin-left:5px; outline:none; color:#666666; border:1px solid #d9d9d9;}
+.departments{ width:890px; margin:5px auto 0 auto;height:30px;line-height:30px;}
+.copyright{ width:390px; margin:0 auto;height:20px;line-height:20px;}
+a.f_grey {color:#666666;}
+a.f_grey:hover {color:#000000;}
diff --git a/public/stylesheets/public_new.css b/public/stylesheets/public_new.css
index 361b08482..78538c07f 100644
--- a/public/stylesheets/public_new.css
+++ b/public/stylesheets/public_new.css
@@ -72,6 +72,9 @@ h4{ font-size:14px; color:#3b3b3b;}
.mr20{ margin-right:20px;}
.mr30{ margin-right:30px;}
.mr40{ margin-right:40px;}
+.mr45{margin-right: 45px;}
+.mw15{margin:0 15px;}
+.mw20{margin:0 20px;}
.mt3{ margin-top:3px;}
.mt5{ margin-top:5px;}
.mt8{ margin-top:8px;}
@@ -431,3 +434,14 @@ a.box_close{ display:block; float:right; width:16px; height:16px; background:url
a:hover.box_close{background:url(../images/img_floatbox.png) -22px 0 no-repeat;}
div.ke-statusbar{height:1px; border-top:none;}
+
+/*底部*/
+#Footer{background-color:#ffffff; margin-bottom:10px; padding-bottom:15px; color:#666666;}
+.footerAboutContainer {width:auto; border-bottom:1px solid #efefef;}
+.footerAbout{ width:585px; margin:0 auto;height:35px; line-height:35px; border-bottom:1px solid #efefef; }
+.languageBox {width:55px; height:20px; margin-left:5px; outline:none; color:#666666; border:1px solid #d9d9d9;}
+.departments{ width:890px; margin:5px auto 0 auto;height:30px;line-height:30px;}
+.copyright{ width:390px; margin:0 auto;height:20px;line-height:20px;}
+a.f_grey {color:#666666;}
+a.f_grey:hover {color:#000000;}
+