diff --git a/app/controllers/myshixuns_controller.rb b/app/controllers/myshixuns_controller.rb index 7d4c4e960..85041be40 100644 --- a/app/controllers/myshixuns_controller.rb +++ b/app/controllers/myshixuns_controller.rb @@ -23,18 +23,18 @@ class MyshixunsController < ApplicationController git_rep = g.delete_project(@myshixun.gpid) logger.info("### delete repository result is #{git_rep}") if git_rep != true - raise("版本库删除异常") + raise("实训云平台繁忙(繁忙等级:87)") end end params = {:jobName => "#{myshixun_job}"} uri = URI("#{jenkins_shixuns}/jenkins-exec/game/deleteJob") res = uri_exec uri, params if (res && res['code'] != 0) - raise("Job删除失败") + raise("实训云平台繁忙(繁忙等级:89)") end redirect_to shixun_exec_shixun_path(shixun) rescue Exception => e - flash[:error] = "实训重置失败,请稍后重试}" + flash[:error] = "实训云平台繁忙(繁忙等级:89)" redirect_to myshixun_path(@myshixun) logger.error("myshixun reset failed #{e}") raise ActiveRecord::Rollback diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index d2820559a..7e90a11d7 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -354,6 +354,7 @@ class UsersController < ApplicationController case @type when 'HomeworkCommon' @root = HomeworkCommon.find reply.jour_id + @homework = @root options = {:notes => params[:reply_message], :reply_id => reply.user_id,:user_id => User.current.id,:m_parent_id => params[:reply_id].to_i,:m_reply_id => params[:reply_id].to_i, :root_id => reply.root_id} comment = HomeworkCommon.add_homework_jour(User.current, params[:reply_message], reply.jour_id, reply.root_id, options) @root.update_column('updated_at', Time.now) diff --git a/app/helpers/api_helper.rb b/app/helpers/api_helper.rb index f322fdb8c..b5c8ce236 100644 --- a/app/helpers/api_helper.rb +++ b/app/helpers/api_helper.rb @@ -205,6 +205,38 @@ module ApiHelper end + # 获取当前时间 + def time_from_future time + lastUpdateTime = time.to_i*1000 + + currentTime = Time.now.to_i*1000 + timePassed = lastUpdateTime - currentTime; + timeIntoFormat = 0 + updateAtValue = "" + if timePassed < 0 + updateAtValue = "马上" + elsif timePassed < ONE_MINUTE + updateAtValue = "1分钟" + elsif timePassed < ONE_HOUR + timeIntoFormat = timePassed / ONE_MINUTE + updateAtValue = timeIntoFormat.to_s + "分钟" + elsif (timePassed < ONE_DAY) + timeIntoFormat = timePassed / ONE_HOUR + updateAtValue = timeIntoFormat.to_s + "小时" + elsif (timePassed < ONE_MONTH) + timeIntoFormat = timePassed / ONE_DAY + updateAtValue = timeIntoFormat.to_s + "天" + elsif (timePassed < ONE_YEAR) + timeIntoFormat = timePassed / ONE_MONTH + updateAtValue = timeIntoFormat.to_s + "个月" + else + timeIntoFormat = timePassed / ONE_YEAR + updateAtValue = timeIntoFormat.to_s + "年" + end + updateAtValue + + end + #日期转换为时间 def convert_to_time date, num if num == 0 diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index f76bb6e04..8353edd29 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -283,32 +283,109 @@ module ApplicationHelper end end + # 作业不同状态的不同样式 + def homework_status_color status + style = "" + case status + when '挂起' + style = 'edu-filter-btn-yellow' + when '提交中' + style = 'edu-filter-btn-blue' + when '补交中' + style = 'edu-filter-btn-orange' + when '匿评中' + style = 'edu-filter-btn-green' + when '申诉中' + style = 'edu-filter-btn-red' + when '评阅中' + style = 'edu-filter-btn-green' + when '已结束' + style = 'edu-filter-btn' + end + end + # 判断作业有多少人提交了 # def had_commit_studentwork_count homework_common - if homework_common.homework_type == 3 - homework_common.student_works.count - else - StudentWork.where("work_status !=? and homework_common_id=?",0, homework_common.id).count - end + StudentWork.where("work_status !=? and homework_common_id=?",0, homework_common.id).count end # 未提交作品数统计 def had_uncommit_studentwork_count homework_common - if homework_common.homework_type == 3 - homework_common.course.student.count - homework_common.student_works.count - else - StudentWork.where(:homework_common_id => homework_common.id, :work_status => 0).count - end + homework_common.course.student.count - homework_common.student_works.where("work_status !=?", 0).count end # 未评阅 def had_unevaluate_count homework_common - count = StudentWorksScore.find_by_sql("SELECT distinct student_work_id as count FROM student_works_scores sws, student_works sw, homework_commons hc where hc.id =#{homework_common.id} and sw.homework_common_id=hc.id and sws.student_work_id = sw.id and sws.user_id=#{User.current.id};").first.try(:count).to_i + count = StudentWorksScore.find_by_sql("SELECT count(distinct student_work_id) as count FROM student_works_scores sws, student_works sw, homework_commons hc where hc.id =#{homework_common.id} and sw.homework_common_id=hc.id and sws.student_work_id = sw.id and sws.user_id=#{User.current.id};").first.try(:count).to_i student_count = homework_common.course.student.count return student_count - count end + # 该阶段还有多长时间结束/距下一阶段还有多长时间 + def homework_curr_time homework_common + result = {} + status = "" + time = "" + ho_detail_manual = homework_common.homework_detail_manual + case ho_detail_manual.comment_status + when 0 + status = "挂起" + if homework_common.publish_time && homework_common.publish_time > Time.now + time = time_from_future(homework_common.publish_time).to_s + "后发布" + end + when 1 + status = "提交中" + if homework_common.end_time && homework_common.end_time > Time.now + time = time_from_future(homework_common.end_time).to_s + "后结束" + elsif !homework_common.allow_late && homework_common.anonymous_comment == 0 + if ho_detail_manual.evaluation_start && ho_detail_manual.evaluation_start >= Time.now + status = "匿评中" + time = time_from_future(ho_detail_manual.evaluation_start).to_s + "后开始" + end + elsif !homework_common.allow_late && homework_common.anonymous_comment == 1 + if homework_common.archive_time && homework_common.archive_time >= Time.now + status = "评阅中" + time = time_from_future(homework_common.archive_time).to_s + "后结束" + end + end + when 2 + status = "补交中" + if homework_common.late_time && homework_common.late_time >= Time.now + time = time_from_future(homework_common.late_time).to_s + "后结束" + elsif homework_common.anonymous_comment == 0 + if ho_detail_manual.evaluation_start && ho_detail_manual.evaluation_start >= Time.now + status = "匿评中" + time = time_from_future(ho_detail_manual.evaluation_start).to_s + "后开始" + end + end + when 3 + status = "匿评中" + if ho_detail_manual.evaluation_end && ho_detail_manual.evaluation_end > Time.now + time = time_from_future(ho_detail_manual.evaluation_end).to_s + "后结束" + elsif homework_common.anonymous_appeal && ho_detail_manual.appeal_time && ho_detail_manual.appeal_time >= Time.now + status = "申诉" + time = time_from_future(ho_detail_manual.appeal_time).to_s + "后开始" + end + when 4 + status = "申诉中" + if ho_detail_manual.appeal_time && ho_detail_manual.appeal_time > Time.now + time = time_from_future(ho_detail_manual.appeal_time).to_s + "后结束" + end + when 5 + status = "评阅中" + if homework_common.archive_time && homework_common.archive_time > Time.now + time = time_from_future(homework_common.archive_time).to_s + "后结束" + end + when 6 + status = "已结束" + time = format_time homework_common.archive_time + end + result[:status] = status + result[:time] = time + result + end + # 公共分页 def paginator_list objs, objs_count, limit, is_remote @is_remote = is_remote @@ -2652,7 +2729,7 @@ module ApplicationHelper # Returns the javascript tags that are included in the html layout head def javascript_heads - tags = javascript_include_tag('jquery-1.8.3-ui-1.9.2-ujs-2.0.3', 'application', 'jquery.colorbox-min') + tags = javascript_include_tag('jquery-1.8.3-ui-1.9.2-ujs-2.0.3', 'application', 'jquery.colorbox-min', 'baiduTemplate') unless User.current.pref.warn_on_leaving_unsaved == '0' tags << "\n".html_safe + javascript_tag("$(window).load(function(){ warnLeavingUnsaved('#{escape_javascript l(:text_warn_on_leaving_unsaved)}'); });") end diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb index 3df296aac..ecda55cd7 100644 --- a/app/models/homework_common.rb +++ b/app/models/homework_common.rb @@ -60,6 +60,8 @@ class HomeworkCommon < ActiveRecord::Base type = "编程" when 3 type = "分组" + when 4 + type = "实训" end type end diff --git a/app/models/shixun.rb b/app/models/shixun.rb index cdbbff68e..9af1fc08b 100644 --- a/app/models/shixun.rb +++ b/app/models/shixun.rb @@ -1,7 +1,7 @@ # status 控制实训的状态,0:未开启;1: 已开启(TPM); 2:已认证 # 实训云平台繁忙(繁忙等级:116) # 繁忙等级参数:80发布实训失败,返回code为-1;81:实训开启的时候fork失败;83:job创建失败;84:jenkins系统异常,post数据不成功 -# 85:challenge创建的时候Jenkins处理异常;86:实训评测失败,jenkins返回错误结果; 88:点击评测失败 +# 85:challenge创建的时候Jenkins处理异常;86:实训评测失败,jenkins返回错误结果; 87:版本库删除异常;88:点击评测失败;89:重置失败 class Shixun < ActiveRecord::Base attr_accessible :description, :is_public, :name, :changeset_num, :status, :user_id, :gpid, :language, :identifier, :authentication, :myshixun_count, :propaedeutics diff --git a/app/views/courses/settings/_members.html.erb b/app/views/courses/settings/_members.html.erb index 55123c375..5e872e4ee 100644 --- a/app/views/courses/settings/_members.html.erb +++ b/app/views/courses/settings/_members.html.erb @@ -49,15 +49,20 @@ - <% @teachers.each do |teacher| %> + <% @teachers.each_with_index do |teacher, index| %> + <% user = teacher.user %> - 2 - <%= teacher.user.try(:show_name) %> - <%= teacher.user.try(:login) %> - 管理员 + <%= index + 1 %> + + <%= link_to user.show_name, user_path(user), :target => '_blank', :class => 'edu-txt-w140 task-hide mt5' %> + + <%= user.try(:login) %> + <%= zh_course_role(h teacher.roles.where("name != 'Student'").first.name) %> <% if User.current == @course.teacher && user.id == @course.tea_id %> - 更换管理员 + 更换管理员 + <% else %> + 删除 <% end %> @@ -65,43 +70,6 @@ - <% if false %> -
- -
-

- 序号 - 姓名 - 用户ID - 角色 - 操作 -

- -
-
- <% end %> diff --git a/app/views/homework_common/_homework_index_list.html.erb b/app/views/homework_common/_homework_index_list.html.erb index b33f27bb1..eea28fd40 100644 --- a/app/views/homework_common/_homework_index_list.html.erb +++ b/app/views/homework_common/_homework_index_list.html.erb @@ -2,19 +2,21 @@ <% homework_commons.each_with_index do |homework_common, index|%>
+ <% homework_curr_status = homework_curr_time(homework_common) %> <%= link_to homework_common.name.to_s, student_work_index_path(:homework => homework_common.id,:host=> Setting.host_course), :class => "edu-class-inner-list fl"%> - <%= new_homework_common_status homework_common.homework_detail_manual.try(:comment_status) %> + <%= homework_curr_status[:status] %>

- # <%= index + 1 %> - 创建于<%=time_from_now homework_common.created_at %> - <% if [1,2,4,5,6].include?(homework_common.homework_detail_manual.try(:comment_status)) %> - <%= had_commit_studentwork_count homework_common %>已交 - <%= had_uncommit_studentwork_count homework_common %>未交 + # <%= index + 1 %> + 创建于<%=time_from_now homework_common.created_at %> + <%=homework_common.homework_type_ch %> + <% if [1,2,3,4,5,6].include?(homework_common.homework_detail_manual.try(:comment_status)) %> + <%= had_commit_studentwork_count homework_common %>已交 + <%= had_uncommit_studentwork_count homework_common %>未交 <% if @is_teacher %> - <%= had_unevaluate_count homework_common %>未评 + <%= had_unevaluate_count homework_common %>未评 <% end %> - + <%= homework_curr_status[:time] %> <% end %>

diff --git a/app/views/myshixuns/_myshixun_top.html.erb b/app/views/myshixuns/_myshixun_top.html.erb index bb7c9733b..e6920ac2a 100644 --- a/app/views/myshixuns/_myshixun_top.html.erb +++ b/app/views/myshixuns/_myshixun_top.html.erb @@ -6,7 +6,7 @@
- <%= sum_final_score %> + <%= User.current.grade %>
diff --git a/app/views/praise_tread/praise_minus.js.erb b/app/views/praise_tread/praise_minus.js.erb index b3e7ed9c6..46544e44b 100644 --- a/app/views/praise_tread/praise_minus.js.erb +++ b/app/views/praise_tread/praise_minus.js.erb @@ -6,7 +6,7 @@ $('#praise_count_<%=@user_activity_id %>').html('<%=j(render :partial=> "praise_tread/praise", :locals => {:activity=>@obj, :user_activity_id=>@user_activity_id,:type=>"activity"})%>'); <% end %> <% else @type.to_s == 'reply' %> - <% if @obj_type == 'HomeworkCommon' && @obj_id == @user_activity_id %> + <% if @obj_type == 'JournalsForMessage' && @obj_id == @user_activity_id && @obj.jour_type == 'HomeworkCommon' %> $('.reply_praise_count_<%=@user_activity_id %>').html('<%=j(render :partial=> "praise_tread/edu_praise", :locals => {:activity=>@obj, :user_activity_id=>@user_activity_id,:type=>"activity"})%>'); <% else %> $('.reply_praise_count_<%=@user_activity_id %>').html('<%=j(render :partial=> "praise_tread/praise", :locals => {:activity=>@obj, :user_activity_id=>@user_activity_id,:type=>"reply"})%>'); diff --git a/app/views/praise_tread/praise_plus.js.erb b/app/views/praise_tread/praise_plus.js.erb index 2e6e7a4d6..8b49a9cf1 100644 --- a/app/views/praise_tread/praise_plus.js.erb +++ b/app/views/praise_tread/praise_plus.js.erb @@ -6,8 +6,8 @@ $('#praise_count_<%=@user_activity_id %>').html('<%=j(render :partial=> "praise_tread/praise", :locals => {:activity=>@obj, :user_activity_id=>@user_activity_id,:type=>"activity"})%>'); <% end %> <% else @type.to_s == 'reply' %> - <% if @obj_type == 'HomeworkCommon' && @obj_id == @user_activity_id %> - $('.reply_praise_count_<%=@user_activity_id %>').html('<%=j(render :partial=> "praise_tread/edu_praise", :locals => {:activity=>@obj, :user_activity_id=>@user_activity_id,:type=>"activity"})%>'); + <% if @obj_type == 'JournalsForMessage' && @obj_id == @user_activity_id && @obj.jour_type == 'HomeworkCommon' %> + $('.reply_praise_count_<%=@user_activity_id %>').html('<%=j(render :partial=> "praise_tread/edu_praise", :locals => {:activity=>@obj, :user_activity_id=>@user_activity_id,:type=>"reply"})%>'); <% else %> $('.reply_praise_count_<%=@user_activity_id %>').html('<%=j(render :partial=> "praise_tread/praise", :locals => {:activity=>@obj, :user_activity_id=>@user_activity_id,:type=>"reply"})%>'); <% end %> diff --git a/app/views/student_work/_homework_reply_detail.html.erb b/app/views/student_work/_homework_reply_detail.html.erb index 8c75830dd..54ca4c8f1 100644 --- a/app/views/student_work/_homework_reply_detail.html.erb +++ b/app/views/student_work/_homework_reply_detail.html.erb @@ -13,23 +13,23 @@
<%= comment.content_detail.html_safe %>
-
- - - - - - - - - - - - - - - -
-

+
+

+ + <%=render :partial=> "praise_tread/edu_praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%> + + <%= link_to('回复'.html_safe, + {:controller => 'users', + :action => 'reply_to_comment', + :reply_id => comment.id, + :type => type, + :user_activity_id => user_activity_id, + :parent_id => parent_id}, + :remote => true, + :method => 'get', + :title => l(:button_reply)) %> +

+
+

\ No newline at end of file diff --git a/app/views/student_work/_student_work_replies.html.erb b/app/views/student_work/_student_work_replies.html.erb index 67d0b9082..cfb21818a 100644 --- a/app/views/student_work/_student_work_replies.html.erb +++ b/app/views/student_work/_student_work_replies.html.erb @@ -1,9 +1,10 @@ <% count=@homework.journals_for_messages.count %> <% comments = @homework.journals_for_messages.reorder("created_on desc") %> <% no_children_comments = get_no_children_comments_all comments %> +<% is_teacher = User.current.allowed_to?(:as_teacher, @homework.course) || User.current.admin? %>
-
全部回复<%= count %>
+

全部回复<%= count %>

<%= render :partial => 'praise_tread/edu_praise', :locals => {:activity=>@homework, :user_activity_id=>@homework.id,:type=>"activity"} %> @@ -37,9 +38,9 @@ <% parents_rely = [] %> <% parents_rely = get_reply_parents parents_rely, comment %> <% length = parents_rely.length %> -

+
<% if length <= 5 %> - <%=render :partial => 'homework_reply', :locals => {:comment => comment.parent, :parent_id => comment.id, :user_activity_id => @homework.id, :type => 'HomeworkCommon'} %> + <%=render :partial => 'student_work/homework_reply', :locals => {:comment => comment.parent, :parent_id => comment.id, :user_activity_id => @homework.id, :type => 'HomeworkCommon'} %> <% else %>
@@ -48,7 +49,6 @@
<%=render :partial => 'student_work/homework_reply_detail', :locals => {:comment => parents_rely[length - 1], :type => 'HomeworkCommon', :user_activity_id => @homework.id, :parent_id => comment.id} %>
-
点击展开隐藏楼层
<%= link_to '点击展开隐藏楼层', show_all_replies_users_path(:comment => comment, :type => comment.class, :user_activity_id => @homework.id, :parent_id => comment.id),:remote=>true, :class => '' %> @@ -64,26 +64,26 @@ <% end %>
<% end %> -
+
<%= comment.content_detail.html_safe %>
- - - - - - - - - - - - - - - - - - +
+

+ <% if is_teacher || comment.user == User.current%> + 删除 + <% end %> + + <%=render :partial=> "praise_tread/edu_praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%> + + <%= link_to( + '回复'.html_safe, + {:controller => 'users' ,:action => 'reply_to', :reply_id => comment.id, :type => 'HomeworkCommon', :user_activity_id => @homework.id}, + :remote => true, + :method => 'get', + :title => l(:button_reply)) %> +

+
+

+
diff --git a/app/views/users/_reply_to.html.erb b/app/views/users/_reply_to.html.erb index 4244d22a0..db2024011 100644 --- a/app/views/users/_reply_to.html.erb +++ b/app/views/users/_reply_to.html.erb @@ -1,6 +1,6 @@
<% if User.current.logged? %> -
<%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(User.current), :alt => "用户头像" %>
+
<%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(User.current), :alt => "用户头像" %>
<% if @type == 'HomeworkCommon' %> @@ -9,7 +9,7 @@
- +

<% end%> @@ -19,7 +19,7 @@
- +

<% end%> @@ -33,7 +33,7 @@ <%= hidden_field_tag 'activity_id',params[:activity_id],:value =>@activity_id %>
- +
<% end%> <% elsif @type == 'Message' %> @@ -43,7 +43,7 @@ <%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %>
- +

<% end%> @@ -54,7 +54,7 @@ <%= hidden_field_tag 'parent_id', params[:parent_id], :value => reply.id %>
- +

<% end%> @@ -64,7 +64,7 @@ <%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %>
- +

<% end%> @@ -73,7 +73,7 @@ <%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %>
- +

<% end%> @@ -83,7 +83,7 @@ <%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %>
- +

<% end %> @@ -92,7 +92,7 @@
- +

<% end%> diff --git a/app/views/users/_reply_to_comment.html.erb b/app/views/users/_reply_to_comment.html.erb index 31b01f3f1..6c83ff75a 100644 --- a/app/views/users/_reply_to_comment.html.erb +++ b/app/views/users/_reply_to_comment.html.erb @@ -6,7 +6,7 @@ <%= form_for('new_form',:url => {:controller => 'users', :action => 'reply_detail', :reply_id => reply.id, :type => @type, :is_project => @is_project, :user_activity_id => @user_activity_id},:method => "post", :remote => true) do |f| %>
- +

<% end%> diff --git a/app/views/users/reply_detail.js.erb b/app/views/users/reply_detail.js.erb index fbc19d04d..e3b21a71d 100644 --- a/app/views/users/reply_detail.js.erb +++ b/app/views/users/reply_detail.js.erb @@ -11,9 +11,8 @@ window.location.href = "<%=board_message_path(@root.board_id, @root) %>"; <% end %> <% elsif @type == 'HomeworkCommon' %> -<% @homework = @root %> -<% if @user_activity_id == @homework.id %> -$("#student_work_replies_box").replaceWith("<%= escape_javascript(render :partial => 'student_work/student_work_replies') %>"); +<% if @user_activity_id.to_i == @homework.id %> +$("#student_work_replies_box").html("<%= escape_javascript(render :partial => 'student_work/student_work_replies') %>"); <% else %> $("#homework_post_reply_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/homework_post_reply', :locals => {:activity => @root, :user_activity_id => @user_activity_id, :is_teacher => @is_teacher}) %>"); <% end %> diff --git a/app/views/users/show_all_replies.js.erb b/app/views/users/show_all_replies.js.erb index b02cb0add..1fe692a84 100644 --- a/app/views/users/show_all_replies.js.erb +++ b/app/views/users/show_all_replies.js.erb @@ -1,6 +1,13 @@ <% unless @comment.parent.nil? %> <% if params[:type] == 'JournalsForMessage' && (@comment.jour_type == 'Principal' || @comment.jour_type == 'Course') %> $('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'users/journal_comment_reply', :locals => {:comment => @comment.parent, :type => params[:type], :user_activity_id => @user_activity_id, :parent_id => @parent_id})%>"); + <% elsif params[:type] == 'JournalsForMessage' && @comment.jour_type == 'HomeworkCommon' %> + <% @homework = @comment.jour %> + <% if @homework.id == @user_activity_id.to_i %> + $('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'student_work/homework_reply', :locals => {:comment => @comment.parent, :type => params[:type], :user_activity_id => @user_activity_id, :parent_id => @parent_id})%>"); + <% else %> + $('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'users/comment_reply', :locals => {:comment => @comment.parent, :type => params[:type], :user_activity_id => @user_activity_id, :parent_id => @parent_id})%>"); + <% end %> <% elsif params[:type] == 'is_project_message' %> $('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'projects/journal_comment_reply', :locals => {:comment => @comment.parent, :user_activity_id => @user_activity_id, :parent_id => @parent_id})%>"); <% elsif params[:type] == 'is_project_issue' %> diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 2499a27a0..ca5051c70 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -73,7 +73,7 @@
  • <%= shixun.challenges.count %>
  • -
  • <%= shixun.myshixuns.count %>
  • +
  • <%= shixun.myshixuns.count %>
<% end %> @@ -96,7 +96,7 @@
  • <%= welcome_course_file_count course %>
  • -
  • <%= welcome_course_message_count course.id %>
  • +
  • <%= welcome_course_message_count course.id %>
  • <%= course.members.count %>
diff --git a/app/views/words/destroy.js.erb b/app/views/words/destroy.js.erb index 49a8dc966..7b8c1cbf8 100644 --- a/app/views/words/destroy.js.erb +++ b/app/views/words/destroy.js.erb @@ -36,11 +36,12 @@ <% elsif @user && @jours_count%> $('#jour_count').html("<%= @jours_count %>"); <% elsif @homework%> - $("#homework_post_reply_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/homework_post_reply', :locals => {:activity => @homework, :user_activity_id => @user_activity_id, :is_teacher => @is_teacher}) %>"); - <% if @user_activity_id != @homework.id %> - sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity"); + <% if @user_activity_id.to_i != @homework.id %> + $("#homework_post_reply_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/homework_post_reply', :locals => {:activity => @homework, :user_activity_id => @user_activity_id, :is_teacher => @is_teacher}) %>"); + sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity"); <% else %> - sd_create_editor_from_data(<%= @homework.id%>,"","100%", "<%=@homework.class.to_s%>"); + $("#student_work_replies_box").html("<%= escape_javascript(render :partial => 'student_work/student_work_replies') %>"); + sd_create_editor_from_data(<%= @homework.id%>,"","100%", "<%=@homework.class.to_s%>"); <% end %> <% elsif @work%> $("#homework_post_reply_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/contest_work_post_reply', :locals => {:activity => @work, :user_activity_id => @user_activity_id, :is_teacher => @is_teacher}) %>"); diff --git a/app/views/words/reply_to_homework.js.erb b/app/views/words/reply_to_homework.js.erb index 393dd3e9e..4a1a36008 100644 --- a/app/views/words/reply_to_homework.js.erb +++ b/app/views/words/reply_to_homework.js.erb @@ -2,6 +2,6 @@ $("#homework_post_reply_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/homework_post_reply', :locals => {:activity => @homework, :user_activity_id => @user_activity_id, :is_teacher => @is_teacher}) %>"); sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity"); <% else %> -$("#student_work_replies_box").replaceWith("<%= escape_javascript(render :partial => 'student_work/student_work_replies') %>"); +$("#student_work_replies_box").html("<%= escape_javascript(render :partial => 'student_work/student_work_replies') %>"); sd_create_editor_from_data(<%= @homework.id%>,"","100%", "<%=@homework.class.to_s%>"); <% end %> \ No newline at end of file diff --git a/lib/tasks/course_end.rake b/lib/tasks/course_end.rake new file mode 100644 index 000000000..76ff83e3a --- /dev/null +++ b/lib/tasks/course_end.rake @@ -0,0 +1,8 @@ +#coding=utf-8 +namespace :course do + desc "course end" + task :end => :environment do + courses = Course.where("end_date <= '#{Date.today}' and is_end = 0") + courses.update_attributes(:is_end => true) + end +end \ No newline at end of file diff --git a/lib/tasks/homework_evaluation.rake b/lib/tasks/homework_evaluation.rake index 0525b6038..a4bbc3ddf 100644 --- a/lib/tasks/homework_evaluation.rake +++ b/lib/tasks/homework_evaluation.rake @@ -10,10 +10,10 @@ namespace :homework_evaluation do task :start_evaluation => :environment do Rails.logger.info("log--------------------------------start_evaluation start") puts "--------------------------------start_evaluation start" - homework_detail_manuals = HomeworkDetailManual.where("evaluation_start = '#{Date.today}'") + homework_detail_manuals = HomeworkDetailManual.where("evaluation_start <= '#{Time.now}' and (homework_detail_manuals.comment_status = 1 or homework_detail_manuals.comment_status = 2)") homework_detail_manuals.each do |homework_detail_manual| homework_common = homework_detail_manual.homework_common - if homework_common.anonymous_comment == 0 && homework_detail_manual.comment_status == 1 #新建状态才可开启匿评 + if homework_common.anonymous_comment == 0 #新建状态才可开启匿评 student_works = homework_common.student_works.has_committed if student_works && student_works.size >= 2 if homework_common.homework_type == 3 @@ -53,7 +53,7 @@ namespace :homework_evaluation do course_statistics.update_attribute('un_evaluation_work_num', course_statistics.un_evaluation_work_num + n) if course_statistics end end - homework_detail_manual.update_column('comment_status', 2) + homework_detail_manual.update_column('comment_status', 3) # 匿评开启消息邮件通知,# 所有人 #send_message_anonymous_comment(homework_common, 2) course = homework_common.course @@ -84,10 +84,10 @@ namespace :homework_evaluation do #自动关闭匿评的任务 task :end_evaluation => :environment do - homework_detail_manuals = HomeworkDetailManual.where("evaluation_end = '#{Date.today}'") + homework_detail_manuals = HomeworkDetailManual.where("evaluation_end <= '#{Time.now}' and homework_detail_manuals.comment_status = 3") homework_detail_manuals.each do |homework_detail_manual| homework_common = homework_detail_manual.homework_common - if homework_common.anonymous_comment == 0 && homework_detail_manual.comment_status == 2 #开启匿评状态才可关闭匿评 + if homework_common.anonymous_comment == 0 #开启匿评状态才可关闭匿评 #计算缺评扣分 参与匿评 work_ids = "(" + homework_common.student_works.has_committed.map(&:id).join(",") + ")" @@ -97,6 +97,7 @@ namespace :homework_evaluation do student_work.save #更新CourseHomeworkStatistics中该学生的待匿评数和缺评数 + absence_penalty_count = absence_penalty_count > 0 ? absence_penalty_count : 0 course_statistics = CourseHomeworkStatistics.find_by_course_id_and_user_id(homework_common.course_id, student_work.user_id) course_statistics.update_attribute('un_evaluation_work_num', (course_statistics.un_evaluation_work_num - absence_penalty_count) < 0 ? 0 : (course_statistics.un_evaluation_work_num - absence_penalty_count)) if course_statistics course_statistics.update_attribute('absence_evaluation_work_num', course_statistics.absence_evaluation_work_num + absence_penalty_count) if course_statistics @@ -115,7 +116,11 @@ namespace :homework_evaluation do end end - homework_detail_manual.update_column('comment_status', 3) + if homework_common.anonymous_appeal + homework_detail_manual.update_column('comment_status', 4) + else + homework_detail_manual.update_column('comment_status', 5) + end # 匿评关闭消息通知 给所有人发 course = homework_common.course course.members.each do |m| @@ -126,4 +131,10 @@ namespace :homework_evaluation do end end end + + #自动关闭申诉的任务 + task :end_appeal => :environment do + homework_detail_manuals = HomeworkDetailManual.where("appeal_time <= '#{Time.now}' and homework_detail_manuals.comment_status = 4") + homework_detail_manuals.update_attributes(:comment_status => 5) + end end diff --git a/lib/tasks/homework_publishtime.rake b/lib/tasks/homework_publishtime.rake index e86c2189e..17249cbf4 100644 --- a/lib/tasks/homework_publishtime.rake +++ b/lib/tasks/homework_publishtime.rake @@ -3,62 +3,62 @@ namespace :homework_publishtime do desc "start publish homework and end homework" task :publish => :environment do - puts "--------------------------------homework_publish start" Rails.logger.info("log--------------------------------homework_publish start") - homework_commons = HomeworkCommon.includes(:homework_detail_manual).where("publish_time < '#{Time.now}' and homework_detail_manuals.comment_status = 0") + homework_commons = HomeworkCommon.includes(:homework_detail_manual).where("publish_time <= '#{Time.now}' and homework_detail_manuals.comment_status = 0") homework_commons.each do |homework| homework_detail_manual = homework.homework_detail_manual - if homework_detail_manual.comment_status == 0 - homework_detail_manual.update_column('comment_status', 1) - students = homework.course.student - if !homework.course.nil? && !students.empty? - name = homework.name - name_str = name + "的作品提交" - str = "" - students.each do |student| - if str != "" - str += "," - end - str += "('#{name_str}',#{homework.id},#{student.student_id}, '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}', '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}')" + homework_detail_manual.update_column('comment_status', 1) + students = homework.course.student + if !homework.course.nil? && !students.empty? + name = homework.name + name_str = name + "的作品提交" + str = "" + students.each do |student| + if str != "" + str += "," end - sql = "insert into student_works (name, homework_common_id,user_id, created_at, updated_at) values" + str - ActiveRecord::Base.connection.execute sql + str += "('#{name_str}',#{homework.id},#{student.student_id}, '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}', '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}')" end - - #更新CourseHomeworkStatistics中每个学生的未交作品数 - homework.course.student.each do |student| - course_statistics = CourseHomeworkStatistics.find_by_course_id_and_user_id(homework.course_id, student.student_id) - course_statistics.update_attribute('un_commit_work_num', course_statistics.un_commit_work_num + 1) if course_statistics - end - - course = homework.course - course.members.each do |m| - homework.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => course.id, :viewed => false, :status => nil) - end - if homework.course_acts.size == 0 - homework.course_acts << CourseActivity.new(:user_id => homework.user_id,:course_id => homework.course_id) - end - # 邮件通知 - # Mailer.run.homework_added(homework) + sql = "insert into student_works (name, homework_common_id,user_id, created_at, updated_at) values" + str + ActiveRecord::Base.connection.execute sql end + + #更新CourseHomeworkStatistics中每个学生的未交作品数 + homework.course.student.each do |student| + course_statistics = CourseHomeworkStatistics.find_by_course_id_and_user_id(homework.course_id, student.student_id) + course_statistics.update_attribute('un_commit_work_num', course_statistics.un_commit_work_num + 1) if course_statistics + end + + course = homework.course + course.members.each do |m| + homework.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => course.id, :viewed => false, :status => nil) + end + if homework.course_acts.size == 0 + homework.course_acts << CourseActivity.new(:user_id => homework.user_id,:course_id => homework.course_id) + end + # 邮件通知 + # Mailer.run.homework_added(homework) end Rails.logger.info("log--------------------------------homework_publish end") - puts "--------------------------------homework_publish end" end - # task :end => :environment do - # puts "--------------------------------homework_publish_end start" - # Rails.logger.info("log--------------------------------homework_publish_end start") - # homework_commons = HomeworkCommon.where("end_time = '#{Date.today}'") - # homework_commons.each do |homework| - # if homework.anonymous_comment == 1 - # homework_detail_manual = homework.homework_detail_manual - # if homework_detail_manual.comment_status == 1 - # homework_detail_manual.update_column('comment_status', 3) - # end - # end - # end - # Rails.logger.info("log--------------------------------homework_publish_end end") - # puts "--------------------------------homework_publish_end end" - # end + task :end => :environment do + Rails.logger.info("log--------------------------------homework_publish_end start") + homework_commons = HomeworkCommon.includes(:homework_detail_manual).where("end_time <= '#{Time.now}' and allow_late = 1 and homework_detail_manuals.comment_status = 1") + homework_commons.each do |homework| + homework_detail_manual = homework.homework_detail_manual + homework_detail_manual.update_column('comment_status', 2) + end + Rails.logger.info("log--------------------------------homework_publish_end end") + end + + task :archive => :environment do + Rails.logger.info("log--------------------------------homework_archive start") + homework_commons = HomeworkCommon.includes(:homework_detail_manual).where("archive_time <= '#{Time.now}' and homework_detail_manuals.comment_status != 6") + homework_commons.each do |homework| + homework_detail_manual = homework.homework_detail_manual + homework_detail_manual.update_column('comment_status', 6) + end + Rails.logger.info("log--------------------------------homework_archive end") + end end \ No newline at end of file diff --git a/public/stylesheets/css/edu-public.css b/public/stylesheets/css/edu-public.css index 76d986455..0f0c30864 100644 --- a/public/stylesheets/css/edu-public.css +++ b/public/stylesheets/css/edu-public.css @@ -120,7 +120,8 @@ a.panel-name-small{ display: inline-block; max-width:100px; color:#29bd8b; font- .panel-comment_item .comment_reply_link:link,.comment_reply_link:visited{color:#333;text-decoration: none;} .panel-comment_item .comment_content{ color:#666;} .panel-comment_item .t_txt{ margin-top:10px;} -.panel-comment_item .orig_reply_box{border-top:1px solid #e3e3e3; width:100%;} +.panel-comment_item .orig_reply_box{border-top:1px solid #e3e3e3; width:100%;padding: 15px 0px 15px 0;} +.panel-comment_item .orig_textarea{width:90%; margin-bottom:10px;} .panel-comment_item .orig_textarea02{ border:1px solid #ccc; background-color:#fff; width:92%; margin-bottom:10px;} .panel-comment_item .orig_sub{ float:right; background-color:#269ac9; color:#fff; height:25px; line-height:25px; text-align:center; width:80px; border:none;} .panel-comment_item .orig_sub:hover{ background:#297fb8;}