Merge branch 'cxt_course' into szzh
This commit is contained in:
commit
e17a72bf57
|
@ -344,7 +344,7 @@ class HomeworkCommonController < ApplicationController
|
||||||
|
|
||||||
#当前用户是不是课程的成员
|
#当前用户是不是课程的成员
|
||||||
def member_of_course
|
def member_of_course
|
||||||
render_403 unless @course.is_public || User.current.member_of_course?(@course) || User.current.admin?
|
render_403 unless @course.is_public==1 || User.current.member_of_course?(@course) || User.current.admin?
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_assigned_homeworks(student_works, n, index)
|
def get_assigned_homeworks(student_works, n, index)
|
||||||
|
|
|
@ -51,7 +51,7 @@ module ApplicationHelper
|
||||||
|
|
||||||
def link_to_user_version(version, options = {})
|
def link_to_user_version(version, options = {})
|
||||||
return '' unless version && version.is_a?(Version)
|
return '' unless version && version.is_a?(Version)
|
||||||
link_to_if version.visible?, format_version_name(version), { :controller => 'versions', :action => 'show', :id => version }, :class => " f16 fb c_dblue "
|
link_to_if version.visible?, format_version_name(version), { :controller => 'versions', :action => 'show', :id => version }, :class => "linkBlue"
|
||||||
end
|
end
|
||||||
|
|
||||||
# 判断课程是否为精品课程
|
# 判断课程是否为精品课程
|
||||||
|
|
|
@ -150,7 +150,7 @@ class Member < ActiveRecord::Base
|
||||||
|
|
||||||
#当前学生在指定作业内的得分
|
#当前学生在指定作业内的得分
|
||||||
def homework_common_score homework_common
|
def homework_common_score homework_common
|
||||||
StudentWork.select("final_score").where(:homework_common_id => homework_common.id,:user_id => self.user_id)
|
StudentWork.select("IF(final_score is null,null,final_score - absence_penalty - late_penalty) as final_score").where(:homework_common_id => homework_common.id,:user_id => self.user_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def student_work_score_avg
|
def student_work_score_avg
|
||||||
|
@ -158,7 +158,12 @@ class Member < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def student_work_score_sum
|
def student_work_score_sum
|
||||||
StudentWork.joins(:homework_common).where("student_works.user_id = #{self.user_id} and homework_commons.course_id = #{self.course_id}").sum(:final_score).try(:round, 2).to_f
|
sql_select = "SELECT (SUM(IF(student_works.final_score is null,null,student_works.final_score - student_works.absence_penalty - student_works.late_penalty))) as score
|
||||||
|
FROM student_works,homework_commons
|
||||||
|
WHERE student_works.homework_common_id = homework_commons.id
|
||||||
|
AND homework_commons.course_id = #{self.course_id}
|
||||||
|
AND student_works.user_id = #{self.user_id}"
|
||||||
|
score = StudentWork.find_by_sql(sql_select)
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<li><span class="c_blue03 w280">作业积分(总分)</span><span class="c_red w70"><%= @member_score.student_work_score_sum %></span></li>
|
<li><span class="c_blue03 w280">作业积分(总分)</span><span class="c_red w70"><%= (@member_score.student_work_score_sum).first.score %></span></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<%= form_tag( url_for(:controller => 'courses',:action => 'homework_search',:id=>course.id),
|
<%= form_tag( url_for(:controller => 'courses',:action => 'homework_search',:id=>course.id),
|
||||||
:remote=>true ,:method => 'get',:class=>'resourcesSearchloadBox',:id=>'resource_search_form') do %>
|
:remote=>true ,:method => 'get',:class=>'resourcesSearchloadBox',:id=>'resource_search_form') do %>
|
||||||
<input type="text" name="search" placeholder="输入作业关键词进行搜索" class="searchResource" />
|
<input type="text" name="search" placeholder="输入作业名称进行搜索" class="searchResource" />
|
||||||
<%= submit_tag '',:class=>'homepageSearchIcon',:onfocus=>'this.blur();',:style=>'border-style:none' %>
|
<%= submit_tag '',:class=>'homepageSearchIcon',:onfocus=>'this.blur();',:style=>'border-style:none' %>
|
||||||
<!--<a href="javascript:void(0);" onclick='this.parent.submit();return false;' class="searchIcon"></a>-->
|
<!--<a href="javascript:void(0);" onclick='this.parent.submit();return false;' class="searchIcon"></a>-->
|
||||||
<% end %>
|
<% end %>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<a href="javascript:void(0);" class="CloseBtn" title="关闭弹框"></a>
|
||||||
|
<div class="ni_con">
|
||||||
|
<p id="switch_homework_type_notice" class="fontGrey">
|
||||||
|
</p>
|
||||||
|
<div class="ni_btn">
|
||||||
|
<a href="javascript:" class="tijiao" id="switch_type" style="margin-bottom: 20px;" >
|
||||||
|
继 续
|
||||||
|
</a>
|
||||||
|
<a href="javascript:" class="tijiao" id="cancel_switch" style="margin-bottom: 20px;">
|
||||||
|
取 消
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -16,7 +16,7 @@
|
||||||
<p class="c_red">提醒:勾选后各小组必须在Trustie平台创建项目,教师可随时观察平台对各小组最新进展的实时统计。</p>
|
<p class="c_red">提醒:勾选后各小组必须在Trustie平台创建项目,教师可随时观察平台对各小组最新进展的实时统计。</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="courseSendSubmit">
|
<div class="courseSendSubmit">
|
||||||
<a href="javascript:void(0);" class="group_btn sendSourceText">确定</a>
|
<a href="javascript:void(0);" class="group_save_btn sendSourceText">确定</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="courseSendCancel">
|
<div class="courseSendCancel">
|
||||||
<a href="javascript:void(0);" class="sendSourceText linkGrey6" id="cancel_group">取消</a>
|
<a href="javascript:void(0);" class="sendSourceText linkGrey6" id="cancel_group">取消</a>
|
||||||
|
|
|
@ -72,11 +72,15 @@
|
||||||
<a href="javascript:void(0);" class="AnnexBtn fl mt3 mr15" onclick="$('#_file').click();" title="请选择文件上传">上传附件</a>
|
<a href="javascript:void(0);" class="AnnexBtn fl mt3 mr15" onclick="$('#_file').click();" title="请选择文件上传">上传附件</a>
|
||||||
<%= link_to "资源库",{:controller => 'users',:action=>'user_import_resource',:id=>User.current.id,:homework_id=>container.id},:class => "FilesBtn fl mt3 mr15",:title=>"请从资源库中选择文件作为作品的附件",:remote => true%>
|
<%= link_to "资源库",{:controller => 'users',:action=>'user_import_resource',:id=>User.current.id,:homework_id=>container.id},:class => "FilesBtn fl mt3 mr15",:title=>"请从资源库中选择文件作为作品的附件",:remote => true%>
|
||||||
<% if defined?(has_program) && has_program %>
|
<% if defined?(has_program) && has_program %>
|
||||||
<a href="javascript:void(0);" class="ProBtn fl mt3" title="请设置编程语言和输入测试集">编程</a>
|
<div id="program_setting" class="fl">
|
||||||
|
<a href="javascript:void(0);" class="ProBtn fl mt3"title="请设置编程语言和输入测试集">编程</a>
|
||||||
<span class="fl C_lgrey mt3 program_detail_info mr15"></span>
|
<span class="fl C_lgrey mt3 program_detail_info mr15"></span>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if defined?(has_group) && has_group %>
|
<% if defined?(has_group) && has_group %>
|
||||||
|
<div id="group_setting" class="fl">
|
||||||
<a href="javascript:void(0);" class="groupBtn fl mt3" title="请设置分组作业的相关参数">分组</a>
|
<a href="javascript:void(0);" class="groupBtn fl mt3" title="请设置分组作业的相关参数">分组</a>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,11 @@
|
||||||
} else {
|
} else {
|
||||||
$("#anonymous_comment").attr('checked',false);
|
$("#anonymous_comment").attr('checked',false);
|
||||||
}
|
}
|
||||||
|
<% if edit_mode && homework.is_program_homework? %>
|
||||||
$("#BluePopupBox a.BlueCirBtn").click();
|
$("#BluePopupBox a.BlueCirBtn").click();
|
||||||
|
<% end %>
|
||||||
<% if edit_mode && homework.is_group_homework? %>
|
<% if edit_mode && homework.is_group_homework? %>
|
||||||
$("#GroupPopupBox a.group_btn").click();
|
$("#GroupPopupBox a.group_save_btn").click();
|
||||||
<% end %>
|
<% end %>
|
||||||
});
|
});
|
||||||
function checked_val() {
|
function checked_val() {
|
||||||
|
@ -142,3 +144,9 @@
|
||||||
<div class="BluePopupBox" style="display:none;" id="GroupPopupBox">
|
<div class="BluePopupBox" style="display:none;" id="GroupPopupBox">
|
||||||
<%= render :partial => 'users/user_group_attr', :locals => {:edit_mode => edit_mode, :homework=>homework}%>
|
<%= render :partial => 'users/user_group_attr', :locals => {:edit_mode => edit_mode, :homework=>homework}%>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<% unless edit_mode %>
|
||||||
|
<div class="BluePopupBox" style="display:none;" id="NoticePopupBox">
|
||||||
|
<%= render :partial => 'users/homework_type_notice', :locals => {:edit_mode => edit_mode, :homework=>homework}%>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
|
@ -42,7 +42,7 @@
|
||||||
<% if activity.user == User.current || User.current.admin?%>
|
<% if activity.user == User.current || User.current.admin?%>
|
||||||
<div class="homepagePostSetting">
|
<div class="homepagePostSetting">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="homepagePostSettingIcon">
|
<li class="<%= activity.private == 1 ? 'whiteSettingIcon' : 'homepagePostSettingIcon' %>">
|
||||||
<ul class="homepagePostSettiongText">
|
<ul class="homepagePostSettiongText">
|
||||||
<li>
|
<li>
|
||||||
<%= link_to(l(:label_bid_respond_delete),
|
<%= link_to(l(:label_bid_respond_delete),
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
@ -107,6 +107,45 @@ $(function(){
|
||||||
$(this).parent().prev().first().focus();
|
$(this).parent().prev().first().focus();
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$("#NoticePopupBox").dialog({
|
||||||
|
modal: true,
|
||||||
|
autoOpen: false,
|
||||||
|
dialogClass: 'BluePopupBox',
|
||||||
|
minWidth: 500
|
||||||
|
});
|
||||||
|
$('#NoticePopupBox').parent().resizable("disable");
|
||||||
|
$('#NoticePopupBox').parent().removeClass("ui-state-disabled");
|
||||||
|
$('#NoticePopupBox').parent().css("border","3px solid #269ac9").css("padding","10px");
|
||||||
|
$('a#switch_type').live('click', function(){
|
||||||
|
if($("input[name=homework_type]").val() == "3"){
|
||||||
|
$("#NoticePopupBox" ).dialog("close");
|
||||||
|
$("input[name=homework_type]").val(1);
|
||||||
|
$('span.group_detail_info').text('');
|
||||||
|
$("#group_setting a").removeClass("fontBlue2");
|
||||||
|
$("#BluePopupBox").dialog("open");
|
||||||
|
$(".ui-dialog-titlebar").hide();
|
||||||
|
$("a.CloseBtn").on('click', function(){
|
||||||
|
$("#BluePopupBox" ).dialog("close");
|
||||||
|
});
|
||||||
|
$('#textarea_input_test').focus();
|
||||||
|
} else if($("input[name=homework_type]").val() == "2") {
|
||||||
|
$("#NoticePopupBox" ).dialog("close");
|
||||||
|
$("input[name=homework_type]").val(1);
|
||||||
|
$('span.program_detail_info').text("");
|
||||||
|
$("span.program_detail_info").removeClass("fontBlue2");
|
||||||
|
$("#program_setting a").removeClass("fontBlue2");
|
||||||
|
$("#GroupPopupBox").dialog("open");
|
||||||
|
$(".ui-dialog-titlebar").hide();
|
||||||
|
$("a.popClose").on('click', function(){
|
||||||
|
$("#GroupPopupBox" ).dialog("close");
|
||||||
|
});
|
||||||
|
$("#cancel_group").on('click', function(){
|
||||||
|
$("#GroupPopupBox" ).dialog("close");
|
||||||
|
});
|
||||||
|
$('#min_num').focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
$("#BluePopupBox").dialog({
|
$("#BluePopupBox").dialog({
|
||||||
modal: true,
|
modal: true,
|
||||||
|
@ -120,12 +159,25 @@ $(function(){
|
||||||
$('#BluePopupBox').parent().css("position","fixed");
|
$('#BluePopupBox').parent().css("position","fixed");
|
||||||
|
|
||||||
$('a.ProBtn').live('click', function(){
|
$('a.ProBtn').live('click', function(){
|
||||||
|
if($("input[name=homework_type]").val() == "3"){
|
||||||
|
$("#NoticePopupBox").dialog("open");
|
||||||
|
$(".ui-dialog-titlebar").hide();
|
||||||
|
$("a.CloseBtn").on('click', function(){
|
||||||
|
$("#NoticePopupBox" ).dialog("close");
|
||||||
|
});
|
||||||
|
$("#cancel_switch").on('click', function(){
|
||||||
|
$("#NoticePopupBox" ).dialog("close");
|
||||||
|
});
|
||||||
|
$("#switch_homework_type_notice").text("您的作业类型将改为“分组作业”,并且您的编程设置将被清除。请问是否继续?");
|
||||||
|
}
|
||||||
|
else {
|
||||||
$("#BluePopupBox").dialog("open");
|
$("#BluePopupBox").dialog("open");
|
||||||
$(".ui-dialog-titlebar").hide();
|
$(".ui-dialog-titlebar").hide();
|
||||||
$("a.CloseBtn").on('click', function(){
|
$("a.CloseBtn").on('click', function(){
|
||||||
$("#BluePopupBox" ).dialog("close");
|
$("#BluePopupBox" ).dialog("close");
|
||||||
});
|
});
|
||||||
$('#textarea_input_test').focus();
|
$('#textarea_input_test').focus();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var saveProgramAnswers = function() {
|
var saveProgramAnswers = function() {
|
||||||
|
@ -162,7 +214,9 @@ $(function(){
|
||||||
|
|
||||||
if (valid) {
|
if (valid) {
|
||||||
$("input[name=homework_type]").val(2);
|
$("input[name=homework_type]").val(2);
|
||||||
$('span.program_detail_info').text('('+language+','+test_numbers/2+'组测试)');
|
$('span.program_detail_info').text('('+language+'语言,'+test_numbers/2+'组测试)');
|
||||||
|
$("span.program_detail_info").addClass("fontBlue2");
|
||||||
|
$("#program_setting a").addClass("fontBlue2");
|
||||||
//保存js值
|
//保存js值
|
||||||
var data = {
|
var data = {
|
||||||
language_type: $('select.language_type').val(),
|
language_type: $('select.language_type').val(),
|
||||||
|
@ -213,15 +267,28 @@ $(function(){
|
||||||
$('#GroupPopupBox').parent().css("border","3px solid #269ac9").css("padding","10px");
|
$('#GroupPopupBox').parent().css("border","3px solid #269ac9").css("padding","10px");
|
||||||
|
|
||||||
$('a.groupBtn').live('click', function(){
|
$('a.groupBtn').live('click', function(){
|
||||||
|
if($("input[name=homework_type]").val() == "2"){
|
||||||
|
$("#NoticePopupBox").dialog("open");
|
||||||
|
$(".ui-dialog-titlebar").hide();
|
||||||
|
$("a.CloseBtn").on('click', function(){
|
||||||
|
$("#NoticePopupBox" ).dialog("close");
|
||||||
|
});
|
||||||
|
$("#cancel_switch").on('click', function(){
|
||||||
|
$("#NoticePopupBox" ).dialog("close");
|
||||||
|
});
|
||||||
|
$("#switch_homework_type_notice").text("您的作业类型将改为“编程作业”,并且您的分组设置将被清除。请问是否继续?");
|
||||||
|
}
|
||||||
|
else {
|
||||||
$("#GroupPopupBox").dialog("open");
|
$("#GroupPopupBox").dialog("open");
|
||||||
$(".ui-dialog-titlebar").hide();
|
$(".ui-dialog-titlebar").hide();
|
||||||
$("a.popClose").on('click', function(){
|
$("a.popClose").on('click', function () {
|
||||||
$("#GroupPopupBox" ).dialog("close");
|
$("#GroupPopupBox").dialog("close");
|
||||||
});
|
});
|
||||||
$("#cancel_group").on('click', function(){
|
$("#cancel_group").on('click', function () {
|
||||||
$("#GroupPopupBox" ).dialog("close");
|
$("#GroupPopupBox").dialog("close");
|
||||||
});
|
});
|
||||||
$('#min_num').focus();
|
$('#min_num').focus();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var saveGroupAttr = function() {
|
var saveGroupAttr = function() {
|
||||||
|
@ -245,6 +312,7 @@ $(function(){
|
||||||
if (valid) {
|
if (valid) {
|
||||||
$("input[name=homework_type]").val(3);
|
$("input[name=homework_type]").val(3);
|
||||||
$('span.group_detail_info').text('分组人数:'+min+'-'+max+' 人');
|
$('span.group_detail_info').text('分组人数:'+min+'-'+max+' 人');
|
||||||
|
$("#group_setting a").addClass("fontBlue2");
|
||||||
//保存js值
|
//保存js值
|
||||||
var data = {
|
var data = {
|
||||||
base_on_project: base_on_project,
|
base_on_project: base_on_project,
|
||||||
|
@ -259,7 +327,7 @@ $(function(){
|
||||||
return valid;
|
return valid;
|
||||||
};
|
};
|
||||||
|
|
||||||
$("#GroupPopupBox a.group_btn").live('click', function(){
|
$("#GroupPopupBox a.group_save_btn").live('click', function(){
|
||||||
if(saveGroupAttr()){
|
if(saveGroupAttr()){
|
||||||
if($( "#GroupPopupBox" ).dialog( "isOpen" )){
|
if($( "#GroupPopupBox" ).dialog( "isOpen" )){
|
||||||
$("#GroupPopupBox").dialog( "close" );
|
$("#GroupPopupBox").dialog( "close" );
|
||||||
|
|
|
@ -195,6 +195,7 @@ a.c_green{ color:#28be6c;}
|
||||||
.fontBlue {color:#3498db;}
|
.fontBlue {color:#3498db;}
|
||||||
a.underline {text-decoration:underline;}
|
a.underline {text-decoration:underline;}
|
||||||
a.fontBlue {color:#297fb8;}
|
a.fontBlue {color:#297fb8;}
|
||||||
|
.fontBlue2 {color:#269ac9 !important;}
|
||||||
a.fontGrey {color:#cecece;}
|
a.fontGrey {color:#cecece;}
|
||||||
a.fontGrey2 {color:#888888;}
|
a.fontGrey2 {color:#888888;}
|
||||||
a.linkOrange {color:#ff7143;}
|
a.linkOrange {color:#ff7143;}
|
||||||
|
@ -1456,3 +1457,6 @@ a.chooseActive {background-color:#269ac9; color:#ffffff;}
|
||||||
.subjectContent {color:#888888; line-height:18px; font-size:12px;}
|
.subjectContent {color:#888888; line-height:18px; font-size:12px;}
|
||||||
.popupClose {background:url(../images/resource_icon_list.png) 0px -40px no-repeat; width:20px; height:20px; display:inline-block; position: absolute; z-index: 1000; right:10px; top:5px;}
|
.popupClose {background:url(../images/resource_icon_list.png) 0px -40px no-repeat; width:20px; height:20px; display:inline-block; position: absolute; z-index: 1000; right:10px; top:5px;}
|
||||||
.subjectContent p,.subjectContent div,.subjectContent em, .subjectContent span{text-align: justify; text-justify:inter-ideograph; word-break: normal !important; word-wrap: break-word !important; line-height: 18px !important; color:#888888 !important; font-size:12px !important;}
|
.subjectContent p,.subjectContent div,.subjectContent em, .subjectContent span{text-align: justify; text-justify:inter-ideograph; word-break: normal !important; word-wrap: break-word !important; line-height: 18px !important; color:#888888 !important; font-size:12px !important;}
|
||||||
|
|
||||||
|
.whiteSettingIcon {background:url(../images/hwork_icon.png) -5px -302px no-repeat; width:20px; height:20px;}
|
||||||
|
.whiteSettingIcon:hover {background:url(../images/homepage_icon.png) -93px -44px no-repeat;}
|
||||||
|
|
|
@ -225,6 +225,7 @@ a.c_green{ color:#28be6c;}
|
||||||
.fontGrey3 {color:#484848;}
|
.fontGrey3 {color:#484848;}
|
||||||
.fontGrey4{color:#999999;}
|
.fontGrey4{color:#999999;}
|
||||||
.fontBlue {color:#3498db;}
|
.fontBlue {color:#3498db;}
|
||||||
|
.fontBlue2 {color:#269ac9 !important;}
|
||||||
a.underline {text-decoration:underline;}
|
a.underline {text-decoration:underline;}
|
||||||
a.fontBlue {color:#297fb8;}
|
a.fontBlue {color:#297fb8;}
|
||||||
a.fontGrey {color:#cecece;}
|
a.fontGrey {color:#cecece;}
|
||||||
|
@ -1040,3 +1041,6 @@ a.chooseActive {background-color:#269ac9; color:#ffffff;}
|
||||||
.subjectContent {color:#888888; line-height:18px; font-size:12px;}
|
.subjectContent {color:#888888; line-height:18px; font-size:12px;}
|
||||||
.popupClose {background:url(../images/resource_icon_list.png) 0px -40px no-repeat; width:20px; height:20px; display:inline-block; position: absolute; z-index: 1000; right:10px; top:5px;}
|
.popupClose {background:url(../images/resource_icon_list.png) 0px -40px no-repeat; width:20px; height:20px; display:inline-block; position: absolute; z-index: 1000; right:10px; top:5px;}
|
||||||
.subjectContent p,.subjectContent div,.subjectContent em, .subjectContent span{text-align: justify; text-justify:inter-ideograph; word-break: normal !important; word-wrap: break-word !important; line-height: 18px !important; color:#888888 !important; font-size:12px !important;}
|
.subjectContent p,.subjectContent div,.subjectContent em, .subjectContent span{text-align: justify; text-justify:inter-ideograph; word-break: normal !important; word-wrap: break-word !important; line-height: 18px !important; color:#888888 !important; font-size:12px !important;}
|
||||||
|
|
||||||
|
.whiteSettingIcon {background:url(../images/hwork_icon.png) -5px -302px no-repeat; width:20px; height:20px;}
|
||||||
|
.whiteSettingIcon:hover {background:url(../images/homepage_icon.png) -93px -44px no-repeat;}
|
||||||
|
|
Loading…
Reference in New Issue