Merge branch 'develop' of https://bdgit.trustie.net/hushasha/bigdata into develop

This commit is contained in:
daiao 2017-05-24 16:53:48 +08:00
commit c678387e1c
24 changed files with 297 additions and 188 deletions

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -60,6 +60,8 @@ class HomeworkCommon < ActiveRecord::Base
type = "编程"
when 3
type = "分组"
when 4
type = "实训"
end
type
end

View File

@ -1,7 +1,7 @@
# status 控制实训的状态0未开启1: 已开启TPM; 2已认证
# 实训云平台繁忙繁忙等级116
# 繁忙等级参数80发布实训失败返回code为-181实训开启的时候fork失败;83job创建失败84jenkins系统异常post数据不成功
# 85challenge创建的时候Jenkins处理异常;86实训评测失败jenkins返回错误结果; 88点击评测失败
# 85challenge创建的时候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

View File

@ -49,15 +49,20 @@
</tr>
</thead>
<tbody>
<% @teachers.each do |teacher| %>
<% @teachers.each_with_index do |teacher, index| %>
<% user = teacher.user %>
<tr>
<td>2</td>
<td><a href="#" class="edu-txt-w140 task-hide mt5" ><%= teacher.user.try(:show_name) %></a></td>
<td><span class="edu-txt-w140 task-hide mt5"><%= teacher.user.try(:login) %></span></td>
<td>管理员</td>
<td><%= index + 1 %></td>
<td>
<%= link_to user.show_name, user_path(user), :target => '_blank', :class => 'edu-txt-w140 task-hide mt5' %>
</td>
<td><span class="edu-txt-w140 task-hide mt5"><%= user.try(:login) %></span></td>
<td><%= zh_course_role(h teacher.roles.where("name != 'Student'").first.name) %></td>
<td>
<% if User.current == @course.teacher && user.id == @course.tea_id %>
<a href="javascript:void(0);" class="link-color-grey" onclick="change_manager();">更换管理员</a>
<a href="javascript:void(0);" class="span5 changeadmin" onclick="change_manager();">更换管理员</a>
<% else %>
<a href="javascript:void(0);" class="span5 delete" onclick="delete_confirm_box_2('<%=membership_path(teacher, :type => 1) %>', '确定要从教师列表中删除吗?')">删除</a>
<% end %>
</td>
</tr>
@ -65,43 +70,6 @@
</tbody>
</table>
</div>
<% if false %>
<div class="person">
<!-------------教师----------------->
<div class="teacher">
<p>
<span class="span1" style="text-indent:10px;">序号</span>
<span class="pl20">姓名</span>
<span>用户ID</span>
<span>角色</span>
<span class="span5">操作</span>
</p>
<ul class="pl20 pr20 color-grey">
<% @teachers.each_with_index do |teacher, index| %>
<% user = teacher.user %>
<li class="clearfix" id="setting_member_<%= teacher.id %>">
<span class="span1"><%= index + 1 %></span>
<%= link_to user.show_name, user_path(user), :target => '_blank' %>
<span><%= user.login %></span>
<span><%= zh_course_role(h teacher.roles.where("name != 'Student'").first.name) %></span>
<% if User.current == @course.teacher && user.id == @course.tea_id %>
<a href="javascript:void(0);" class="span5 changeadmin" onclick="change_manager();">更换管理员</a>
<% else %>
<a href="javascript:void(0);" class="span5 delete" onclick="delete_confirm_box_2('<%=membership_path(teacher, :type => 1) %>', '确定要从教师列表中删除吗?')">删除</a>
<% end %>
</li>
<% end %>
<!--<li>-->
<!--<span class="span1">2</span>-->
<!--<span>凌冰</span>-->
<!--<span>w24585415</span>-->
<!--<span>教师</span>-->
<!--<span class="span5"><i>同意</i>&nbsp; <i>拒绝</i></span>-->
<!--</li>-->
</ul>
</div>
</div>
<% end %>
</div>
</div>

View File

@ -2,19 +2,21 @@
<% homework_commons.each_with_index do |homework_common, index|%>
<div class=" clearfix edu-class-con-list">
<div class="fl ml15 task-form-90 ">
<% 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"%>
<span class="edu-filter-btn edu-filter-btn-yellow ml10 fl mt3"><%= new_homework_common_status homework_common.homework_detail_manual.try(:comment_status) %></span>
<span class="edu-filter-btn <%= homework_status_color homework_curr_status[:status] %> ml10 fl mt3"><%= homework_curr_status[:status] %></span>
<div class="cl"></div>
<p class="color-grey font-12">
<span class=" "># <%= index + 1 %></span>
<span class=" ml30">创建于<%=time_from_now homework_common.created_at %></span>
<% if [1,2,4,5,6].include?(homework_common.homework_detail_manual.try(:comment_status)) %>
<span class=" ml30"><a class="link-color-grey mr5"><%= had_commit_studentwork_count homework_common %></a>已交</span>
<span class=" ml30"><a class="link-color-grey mr5"><%= had_uncommit_studentwork_count homework_common %></a>未交</span>
<span class=""># <%= index + 1 %></span>
<span class="ml30">创建于<%=time_from_now homework_common.created_at %></span>
<span class="ml30"><%=homework_common.homework_type_ch %></span>
<% if [1,2,3,4,5,6].include?(homework_common.homework_detail_manual.try(:comment_status)) %>
<span class="ml30"><a class="link-color-grey mr5"><%= had_commit_studentwork_count homework_common %></a>已交</span>
<span class="ml30"><a class="link-color-grey mr5"><%= had_uncommit_studentwork_count homework_common %></a>未交</span>
<% if @is_teacher %>
<span class=" ml30"><a class="link-color-grey mr5"><%= had_unevaluate_count homework_common %></a>未评</span>
<span class="ml30"><a class="link-color-grey mr5"><%= had_unevaluate_count homework_common %></a>未评</span>
<% end %>
<!--<span class=" ml30 color-orange">10 天 5 小时 12 分</span>-->
<span class="ml30 color-orange"><%= homework_curr_status[:time] %></span>
<% end %>
</p>
</div>

View File

@ -6,7 +6,7 @@
<div class="-layout-h mr10 fr mt3 -header-right-box">
<div class="-header-right clearfix">
<img src="/images/task/coin.png" class="fl" width="30" height="30">
<span class="ml5 color-white fl"><%= sum_final_score %></span>
<span class="ml5 color-white fl"><%= User.current.grade %></span>
</div>
<!--<div class="-header-right-info ">-->
<!--<font></font>-->

View File

@ -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"})%>');

View File

@ -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 %>

View File

@ -13,23 +13,23 @@
<div class="orig_content" id="reply_content_<%= comment.id %>">
<%= comment.content_detail.html_safe %>
</div>
<div class="cl"></div>
<!--<p class="fr mr10 orig_reply">-->
<!--<span class="reply_praise_count_<%#=comment.id %>">-->
<!--<%#=render :partial=> "praise_tread/edu_praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%>-->
<!--</span>-->
<!--<%#= link_to('<i class="fa fa-comments-o mr5"></i>回复'.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)) %>-->
<!--</p>-->
<div class="cl"></div>
<p id="reply_message_<%= comment.id%>"></p>
</div>
<div class="cl"></div>
<p class="fr mr10 orig_reply">
<span class="reply_praise_count_<%=comment.id %>">
<%=render :partial=> "praise_tread/edu_praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%>
</span>
<%= link_to('<i class="fa fa-comments-o mr5"></i>回复'.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)) %>
</p>
<div class="cl"></div>
<p id="reply_message_<%= comment.id%>"></p>
<div class="cl"></div>

View File

@ -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? %>
<div class="panel-mes-head clearfix">
<h6 class="fl">全部回复<span class="ml5"><%= count %></span></h6>
<h4 class="fl">全部回复<span class="ml5"><%= count %></span></h4>
<p class="fr mr15">
<span id="praise_count_<%=@homework.id %>">
<%= 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 %>
<div id="comment_reply_<%= comment.id %>">
<div id="comment_reply_<%= comment.id %>">
<% 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 %>
<div class="orig_cont clearfix">
<div class="orig_cont clearfix">
@ -48,7 +49,6 @@
<div class="orig_cont clearfix">
<%=render :partial => 'student_work/homework_reply_detail', :locals => {:comment => parents_rely[length - 1], :type => 'HomeworkCommon', :user_activity_id => @homework.id, :parent_id => comment.id} %>
</div>
<div class="orig_cont_hide clearfix"><i class="fa fa-long-arrow-down mr5 " ></i>点击展开隐藏楼层</div>
<div class="orig_cont_hide clearfix">
<i class="fa fa-long-arrow-down mr5"></i>
<%= 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 %>
</div>
<% end %>
<div class="comment_content clearfix">
<div class="comment_content clearfix" onmouseover="$('#delete_reply_<%=@homework.id %>_<%=comment.id %>').show();" onmouseout="$('#delete_reply_<%=@homework.id %>_<%=comment.id %>').hide();">
<div class="t_txt"><%= comment.content_detail.html_safe %></div>
<!--<div class="">-->
<!--<p class="fr mr10 orig_reply">-->
<!--<%# if User.current.admin? || @is_teacher || comment.user == User.current%>-->
<!--<a href="javascript:void(0);" class="mr5" onclick="delete_confirm_box_2('<%#= {:controller => 'words', :action => 'destroy', :object_id => comment, :user_id => comment.user, :user_activity_id => @homework.id} %>'), '确定要删除该条回复吗?'"><i class="fa fa-trash-o mr5"></i>删除</a>-->
<!--<%# end %>-->
<!--<span class="reply_praise_count_<%#= comment.id %>">-->
<!--<%#=render :partial=> "praise_tread/edu_praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%>-->
<!--</span>-->
<!--<%#= link_to(-->
<!--'<i class="fa fa-comments-o mr5"></i>回复'.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)) %>-->
<!--</p>-->
<!--<div class="cl"></div>-->
<!--<p id="reply_message_<%#= comment.id%>"></p>-->
<!--</div>-->
<div class="">
<p class="fr mr10 orig_reply">
<% if is_teacher || comment.user == User.current%>
<a href="javascript:void(0);" class="mr5 none" id="delete_reply_<%=@homework.id %>_<%=comment.id %>" onclick="delete_confirm_box_2('<%= words_destroy_path(:object_id => comment, :user_id => comment.user, :user_activity_id => @homework.id) %>', '确定要删除该条回复吗?')"><i class="fa fa-trash-o mr5"></i>删除</a>
<% end %>
<span class="reply_praise_count_<%= comment.id %>">
<%=render :partial=> "praise_tread/edu_praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%>
</span>
<%= link_to(
'<i class="fa fa-comments-o mr5"></i>回复'.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)) %>
</p>
<div class="cl"></div>
<p id="reply_message_<%= comment.id%>"></p>
</div>
</div>
<!--回复end-->
</div>

View File

@ -1,6 +1,6 @@
<div class="<%= User.current.logged? ? 'orig_reply_box' : 'orig_reply_box2' %> borderBottomNone" id="reply_to_message_<%= reply.id%>">
<% if User.current.logged? %>
<div class="homepagePostReplyPortrait mr15 imageFuzzy" style="width: 90%" id="reply_image_<%= reply.id%>"><%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(User.current), :alt => "用户头像" %></div>
<div class="homepagePostReplyPortrait mr15 imageFuzzy" id="reply_image_<%= reply.id%>"><%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(User.current), :alt => "用户头像" %></div>
<div class="orig_textarea mb10 fl">
<div nhname='new_message_<%= reply.id%>'>
<% if @type == 'HomeworkCommon' %>
@ -9,7 +9,7 @@
<input type="hidden" name="reply[subject]" id="reply_subject">
<div nhname='toolbar_container_<%= reply.id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="reply_message"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="task-btn task-btn-blue fr" style="display:none;margin-top:6px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>'></p>
<% end%>
@ -19,7 +19,7 @@
<input type="hidden" name="reply[subject]" id="reply_subject">
<div nhname='toolbar_container_<%= reply.id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="reply_message"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="task-btn task-btn-blue fr" style="display:none;margin-top:6px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>'></p>
<% end%>
@ -33,7 +33,7 @@
<%= hidden_field_tag 'activity_id',params[:activity_id],:value =>@activity_id %>
<div nhname='toolbar_container_<%= reply.id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="user_notes"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="task-btn task-btn-blue fr" style="display:none;margin-top:6px;">发送</a>
<div class="cl"></div>
<% end%>
<% elsif @type == 'Message' %>
@ -43,7 +43,7 @@
<%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %>
<div nhname='toolbar_container_<%= reply.id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="content"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="task-btn task-btn-blue fr" style="display:none;margin-top:6px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>'></p>
<% end%>
@ -54,7 +54,7 @@
<%= hidden_field_tag 'parent_id', params[:parent_id], :value => reply.id %>
<div nhname='toolbar_container_<%= reply.id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="blog_comment[content]"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:2px;">发送</a>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="task-btn task-btn-blue fr" style="display:none;margin-top:2px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>'></p>
<% end%>
@ -64,7 +64,7 @@
<%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %>
<div nhname='toolbar_container_<%= reply.id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="org_document_comment[content]"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:2px;">发送</a>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="task-btn task-btn-blue fr" style="display:none;margin-top:2px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>'></p>
<% end%>
@ -73,7 +73,7 @@
<%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %>
<div nhname='toolbar_container_<%= reply.id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="content"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:2px;">发送</a>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="task-btn task-btn-blue fr" style="display:none;margin-top:2px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>'></p>
<% end%>
@ -83,7 +83,7 @@
<%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %>
<div nhname='toolbar_container_<%= reply.id%>' ></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="content"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="task-btn task-btn-blue fr" style="display:none;margin-top:6px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>' class="fl"></p>
<% end %>
@ -92,7 +92,7 @@
<input type="hidden" name="reply[subject]" id="reply_subject">
<div nhname='toolbar_container_<%= reply.id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="reply_message"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="task-btn task-btn-blue fr" style="display:none;margin-top:6px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>'></p>
<% end%>

View File

@ -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| %>
<div nhname='toolbar_container_<%= reply.id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="reply_message"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="task-btn task-btn-blue fr" style="display:none;margin-top:6px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>'></p>
<% end%>

View File

@ -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 %>

View File

@ -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' %>

View File

@ -73,7 +73,7 @@
<ul class="edu-index-list-bottom clearfix">
<li><i class="fa fa-gamepad mr5" title="实训任务"></i><span><%= shixun.challenges.count %></span></li>
<!--<li><i class="fa fa-comments-o mr5 "></i><span>1255</span></li>-->
<li><i class="fa fa-users mr5" title="实训任务"></i><span><%= shixun.myshixuns.count %></span></li>
<li><i class="fa fa-users mr5" title="已开启实训"></i><span><%= shixun.myshixuns.count %></span></li>
</ul>
</div>
<% end %>
@ -96,7 +96,7 @@
</div>
<ul class="edu-index-list-bottom clearfix">
<li><i class="fa fa-cubes mr5" title="资源"></i><span><%= welcome_course_file_count course %></span></li>
<li><i class="fa fa-map mr5" title="讨论"></i><span><%= welcome_course_message_count course.id %></span></li>
<li><i class="fa fa-map mr5" title="题库"></i><span><%= welcome_course_message_count course.id %></span></li>
<li><i class="fa fa-users mr5" title="成员"></i><span><%= course.members.count %></span></li>
</ul>
</div>

View File

@ -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}) %>");

View File

@ -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 %>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;}