commit
d36da76685
@ -1,149 +1,149 @@
|
|||||||
module HomeworkAttachHelper
|
module HomeworkAttachHelper
|
||||||
#判断是否具有删除的权限
|
# #判断是否具有删除的权限
|
||||||
def attach_delete(project)
|
# def attach_delete(project)
|
||||||
if User.current.logged? && (User.current.admin? || (!Member.where('user_id = ? and project_id = ?', User.current.id, project.bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, project.bid.courses.first.id).first.roles&Role.where('id = ? or id = ?', 3, 7)).size >0) || project.user_id == User.current.id)
|
# if User.current.logged? && (User.current.admin? || (!Member.where('user_id = ? and project_id = ?', User.current.id, project.bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, project.bid.courses.first.id).first.roles&Role.where('id = ? or id = ?', 3, 7)).size >0) || project.user_id == User.current.id)
|
||||||
true
|
# true
|
||||||
else
|
# else
|
||||||
false
|
# false
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
#作业添加、编辑界面的tab页
|
# #作业添加、编辑界面的tab页
|
||||||
def homework_settings_tabs f
|
# def homework_settings_tabs f
|
||||||
@f = f
|
# @f = f
|
||||||
tabs = [{:name => 'info', :partial => 'homework_attach/edit_homework', :label => :label_information_plural},
|
# tabs = [{:name => 'info', :partial => 'homework_attach/edit_homework', :label => :label_information_plural},
|
||||||
{:name => 'members', :partial => 'homework_attach/homework_member', :label => :label_member_plural}
|
# {:name => 'members', :partial => 'homework_attach/homework_member', :label => :label_member_plural}
|
||||||
]
|
# ]
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
#作业可选成员列表分页
|
# #作业可选成员列表分页
|
||||||
def render_new_members_for_homework members
|
# def render_new_members_for_homework members
|
||||||
#scope = Principal.active.sorted.not_member_of(project).like(params[:q])
|
# #scope = Principal.active.sorted.not_member_of(project).like(params[:q])
|
||||||
#scope = project.members
|
# #scope = project.members
|
||||||
#principals = paginateHelper members,10
|
# #principals = paginateHelper members,10
|
||||||
#principals = members
|
# #principals = members
|
||||||
#principal_count = members.count
|
# #principal_count = members.count
|
||||||
#limit = 10
|
# #limit = 10
|
||||||
#principal_pages = Redmine::Pagination::Paginator.new principal_count, limit, params['page'] #by young
|
# #principal_pages = Redmine::Pagination::Paginator.new principal_count, limit, params['page'] #by young
|
||||||
#offset ||= principal_pages.offset
|
# #offset ||= principal_pages.offset
|
||||||
#principals = members[offset, limit]
|
# #principals = members[offset, limit]
|
||||||
users = members.map(&:user)
|
# users = members.map(&:user)
|
||||||
s = content_tag('div', member_check_box_tags_ex('membership[user_ids][]', users), :id => 'principals')
|
# s = content_tag('div', member_check_box_tags_ex('membership[user_ids][]', users), :id => 'principals')
|
||||||
links = pagination_links_full(@obj_pages, @obj_count, :per_page_links => false) {|text, parameters, options|
|
# links = pagination_links_full(@obj_pages, @obj_count, :per_page_links => false) {|text, parameters, options|
|
||||||
link_to text, get_homework_member_list_homework_attach_index_path( parameters.merge(:q => params[:q], bid_id: params[:id]||@homework)), :remote => true }
|
# link_to text, get_homework_member_list_homework_attach_index_path( parameters.merge(:q => params[:q], bid_id: params[:id]||@homework)), :remote => true }
|
||||||
return s + content_tag('div', content_tag('ul', links), :class => 'pagination_new')
|
# return s + content_tag('div', content_tag('ul', links), :class => 'pagination_new')
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
#扩展的checkbox生成
|
# #扩展的checkbox生成
|
||||||
def member_check_box_tags_ex(name, principals)
|
# def member_check_box_tags_ex(name, principals)
|
||||||
s = ''
|
# s = ''
|
||||||
principals.each do |member|
|
# principals.each do |member|
|
||||||
s << "<label>#{ check_box_tag name, member.id, false, :id => nil } #{h member.name }</label><br/>"
|
# s << "<label>#{ check_box_tag name, member.id, false, :id => nil } #{h member.name }</label><br/>"
|
||||||
end
|
# end
|
||||||
s.html_safe
|
# s.html_safe
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def paginateHelper obj, pre_size=20
|
# def paginateHelper obj, pre_size=20
|
||||||
@obj_count = obj.count
|
# @obj_count = obj.count
|
||||||
@obj_pages = Redmine::Pagination::Paginator.new @obj_count, pre_size, params['page']
|
# @obj_pages = Redmine::Pagination::Paginator.new @obj_count, pre_size, params['page']
|
||||||
if obj.kind_of? ActiveRecord::Base or obj.kind_of? ActiveRecord::Relation
|
# if obj.kind_of? ActiveRecord::Base or obj.kind_of? ActiveRecord::Relation
|
||||||
obj.limit(@obj_pages.per_page).offset(@obj_pages.offset)
|
# obj.limit(@obj_pages.per_page).offset(@obj_pages.offset)
|
||||||
elsif obj.kind_of? Array
|
# elsif obj.kind_of? Array
|
||||||
obj[@obj_pages.offset, @obj_pages.per_page]
|
# obj[@obj_pages.offset, @obj_pages.per_page]
|
||||||
else
|
# else
|
||||||
logger.error "[ApplicationController] Error : application_controller#paginateHelper ===> unknow category: #{obj.class}"
|
# logger.error "[ApplicationController] Error : application_controller#paginateHelper ===> unknow category: #{obj.class}"
|
||||||
raise RuntimeError, 'unknow type, Please input you type into this helper.'
|
# raise RuntimeError, 'unknow type, Please input you type into this helper.'
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def user_projects_option
|
# def user_projects_option
|
||||||
cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1"
|
# cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1"
|
||||||
memberships = User.current.memberships.all(:conditions => cond)
|
# memberships = User.current.memberships.all(:conditions => cond)
|
||||||
projects = memberships.map(&:project)
|
# projects = memberships.map(&:project)
|
||||||
not_have_project = []
|
# not_have_project = []
|
||||||
not_have_project << Setting.please_chose
|
# not_have_project << Setting.please_chose
|
||||||
not_have_project << 0
|
# not_have_project << 0
|
||||||
type = []
|
# type = []
|
||||||
type << not_have_project
|
# type << not_have_project
|
||||||
projects.each do |project|
|
# projects.each do |project|
|
||||||
if project != nil
|
# if project != nil
|
||||||
option = []
|
# option = []
|
||||||
option << project.name
|
# option << project.name
|
||||||
option << project.id
|
# option << project.id
|
||||||
type << option
|
# type << option
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
type
|
# type
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
#判断指定用户是不是已经赞过该作业
|
# #判断指定用户是不是已经赞过该作业
|
||||||
def is_praise_homework user_id, obj_id
|
# def is_praise_homework user_id, obj_id
|
||||||
PraiseTread.where("user_id = #{user_id} AND praise_tread_object_id = #{obj_id} AND praise_tread_object_type = 'HomeworkAttach'").empty?
|
# PraiseTread.where("user_id = #{user_id} AND praise_tread_object_id = #{obj_id} AND praise_tread_object_type = 'HomeworkAttach'").empty?
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
#获取赞的总数
|
# #获取赞的总数
|
||||||
def praise_homework_count obj_id
|
# def praise_homework_count obj_id
|
||||||
PraiseTread.where("praise_tread_object_id = #{obj_id} AND praise_tread_object_type = 'HomeworkAttach'").count
|
# PraiseTread.where("praise_tread_object_id = #{obj_id} AND praise_tread_object_type = 'HomeworkAttach'").count
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
#获取用户对作业的评分
|
# #获取用户对作业的评分
|
||||||
def get_homework_score user, homework
|
# def get_homework_score user, homework
|
||||||
temp = HomeworkAttach.find_by_sql("SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = #{homework.id} AND rater_id = #{user.id}").first
|
# temp = HomeworkAttach.find_by_sql("SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = #{homework.id} AND rater_id = #{user.id}").first
|
||||||
@m_score = temp.nil? ? 0:temp.stars.to_i
|
# @m_score = temp.nil? ? 0:temp.stars.to_i
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
#获取评分对应的评论
|
# #获取评分对应的评论
|
||||||
def get_homework_review homework,is_teacher,user
|
# def get_homework_review homework,is_teacher,user
|
||||||
homework.journals_for_messages.where("is_comprehensive_evaluation = #{is_teacher ? 1 : 2} and user_id = #{user.id}").order("created_on DESC").first
|
# homework.journals_for_messages.where("is_comprehensive_evaluation = #{is_teacher ? 1 : 2} and user_id = #{user.id}").order("created_on DESC").first
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def convert_array array
|
# def convert_array array
|
||||||
ary = "("
|
# ary = "("
|
||||||
if array.nil? || array.count == 0
|
# if array.nil? || array.count == 0
|
||||||
return "()"
|
# return "()"
|
||||||
end
|
# end
|
||||||
array.length.times do |i|
|
# array.length.times do |i|
|
||||||
if i == array.length - 1
|
# if i == array.length - 1
|
||||||
ary += array[i].id.to_s + ")"
|
# ary += array[i].id.to_s + ")"
|
||||||
else
|
# else
|
||||||
if !(array[i].nil? || array[i].id.nil? || array[i].id.to_s == "")
|
# if !(array[i].nil? || array[i].id.nil? || array[i].id.to_s == "")
|
||||||
ary += array[i].id.to_s + ","
|
# ary += array[i].id.to_s + ","
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
#array.each do |member|
|
# #array.each do |member|
|
||||||
# if member == array.last
|
# # if member == array.last
|
||||||
# ary += member.id.to_s + ")"
|
# # ary += member.id.to_s + ")"
|
||||||
# else
|
# # else
|
||||||
# ary += member.id.to_s + ","
|
# # ary += member.id.to_s + ","
|
||||||
# end
|
# # end
|
||||||
#end
|
# #end
|
||||||
ary
|
# ary
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def get_student_batch_homework_list bid,user
|
# def get_student_batch_homework_list bid,user
|
||||||
student_batch_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*,
|
# student_batch_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*,
|
||||||
(SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 1 AND stars IS NOT NULL ORDER BY updated_at DESC limit 0,1) AS t_score,
|
# (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 1 AND stars IS NOT NULL ORDER BY updated_at DESC limit 0,1) AS t_score,
|
||||||
(SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 0) AS s_score,
|
# (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 0) AS s_score,
|
||||||
(SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{User.current.id} AND is_teacher_score = 0) AS m_score
|
# (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{User.current.id} AND is_teacher_score = 0) AS m_score
|
||||||
FROM homework_attaches
|
# FROM homework_attaches
|
||||||
INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id
|
# INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id
|
||||||
WHERE homework_attaches.bid_id = #{bid.id} AND homework_evaluations.user_id = #{user.id} ORDER BY m_score DESC")
|
# WHERE homework_attaches.bid_id = #{bid.id} AND homework_evaluations.user_id = #{user.id} ORDER BY m_score DESC")
|
||||||
student_batch_homework_list
|
# student_batch_homework_list
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
#########################################################
|
# #########################################################
|
||||||
#sw
|
# #sw
|
||||||
#获取学生未进行匿评的数量
|
# #获取学生未进行匿评的数量
|
||||||
#param: bid => 作业 user => 用户
|
# #param: bid => 作业 user => 用户
|
||||||
#return 指定用户未进行匿评的作业的数量
|
# #return 指定用户未进行匿评的作业的数量
|
||||||
#user必须是学生用户
|
# #user必须是学生用户
|
||||||
#######################################################
|
# #######################################################
|
||||||
def get_student_not_batch_homework_list bid,user
|
# def get_student_not_batch_homework_list bid,user
|
||||||
HomeworkAttach.find_by_sql("SELECT * FROM(SELECT homework_attaches.*,
|
# HomeworkAttach.find_by_sql("SELECT * FROM(SELECT homework_attaches.*,
|
||||||
(SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{user.id} AND is_teacher_score = 0) AS m_score
|
# (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{user.id} AND is_teacher_score = 0) AS m_score
|
||||||
FROM homework_attaches
|
# FROM homework_attaches
|
||||||
INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id
|
# INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id
|
||||||
WHERE homework_attaches.bid_id = #{bid.id} AND homework_evaluations.user_id = #{user.id}) AS table1
|
# WHERE homework_attaches.bid_id = #{bid.id} AND homework_evaluations.user_id = #{user.id}) AS table1
|
||||||
WHERE table1.m_score IS NULL").count
|
# WHERE table1.m_score IS NULL").count
|
||||||
end
|
# end
|
||||||
end
|
end
|
@ -0,0 +1,7 @@
|
|||||||
|
class CourseActivity < ActiveRecord::Base
|
||||||
|
attr_accessible :user_id, :course_act_id,:course_act_type,:course_id
|
||||||
|
# 虚拟关联
|
||||||
|
belongs_to :course_act ,:polymorphic => true
|
||||||
|
belongs_to :course
|
||||||
|
belongs_to :user
|
||||||
|
end
|
@ -0,0 +1,12 @@
|
|||||||
|
class CourseMessage < ActiveRecord::Base
|
||||||
|
attr_accessible :course_id, :course_message_id, :course_message_type, :user_id, :viewed
|
||||||
|
|
||||||
|
# 多态 虚拟关联
|
||||||
|
belongs_to :course_message ,:polymorphic => true
|
||||||
|
belongs_to :course
|
||||||
|
belongs_to :user
|
||||||
|
validates :user_id,presence: true
|
||||||
|
validates :course_id,presence: true
|
||||||
|
validates :course_message_id,presence: true
|
||||||
|
validates :course_message_type, presence: true
|
||||||
|
end
|
@ -0,0 +1,5 @@
|
|||||||
|
class Dts < ActiveRecord::Base
|
||||||
|
attr_accessible :Category, :Defect, :Description, :File, :IPLine, :IPLineCode, :Method, :Num, :PreConditions, :Review, :StartLine, :TraceInfo, :Variable, :project_id
|
||||||
|
|
||||||
|
belongs_to :project
|
||||||
|
end
|
@ -0,0 +1,20 @@
|
|||||||
|
class ForgeMessage < ActiveRecord::Base
|
||||||
|
# 公共表中活动类型,命名规则:TYPE_OF_{类名}_ACT
|
||||||
|
TYPE_OF_ISSUE_ACT = "Issue"
|
||||||
|
TYPE_OF_MESSAGE_ACT = "Message"
|
||||||
|
TYPE_OF_ATTACHMENT_ACT = "Attachment"
|
||||||
|
TYPE_OF_DOCUMENT_ACT = "Document"
|
||||||
|
TYPE_OF_JOURNAL_ACT = "Journal"
|
||||||
|
TYPE_OF_WIKI_ACT = "Wiki"
|
||||||
|
TYPE_OF_NEWS_ACT = "News"
|
||||||
|
|
||||||
|
attr_accessible :forge_message_id, :forge_message_type, :project_id, :user_id, :viewed
|
||||||
|
|
||||||
|
belongs_to :forge_message ,:polymorphic => true
|
||||||
|
belongs_to :project
|
||||||
|
belongs_to :user
|
||||||
|
validates :user_id,presence: true
|
||||||
|
validates :project_id,presence: true
|
||||||
|
validates :forge_message_id,presence: true
|
||||||
|
validates :forge_message_type, presence: true
|
||||||
|
end
|
@ -1,5 +1,6 @@
|
|||||||
class HomeworkTest < ActiveRecord::Base
|
class HomeworkTest < ActiveRecord::Base
|
||||||
attr_accessible :input, :output, :homework_common_id
|
attr_accessible :input, :output, :homework_common_id,:result,:error_msg
|
||||||
|
|
||||||
belongs_to :homework_common
|
belongs_to :homework_common
|
||||||
|
has_many :student_work_test
|
||||||
end
|
end
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
# encoding: utf-8
|
||||||
|
class StudentWorkTest < ActiveRecord::Base
|
||||||
|
attr_accessible :student_work_id, :homework_test_id, :result, :error_msg
|
||||||
|
|
||||||
|
belongs_to :homework_test
|
||||||
|
belongs_to :student_work
|
||||||
|
|
||||||
|
def status_to_s
|
||||||
|
case self.result.to_i
|
||||||
|
when -1
|
||||||
|
'编译出错'
|
||||||
|
when -2
|
||||||
|
'答题错误'
|
||||||
|
when -3
|
||||||
|
'答案错误'
|
||||||
|
when 1
|
||||||
|
'运行出错'
|
||||||
|
when 2
|
||||||
|
'超时'
|
||||||
|
when 3
|
||||||
|
'内存超出'
|
||||||
|
when 4
|
||||||
|
'输出超出'
|
||||||
|
when 5
|
||||||
|
'禁用函数'
|
||||||
|
when 6
|
||||||
|
'其他错误'
|
||||||
|
when 0
|
||||||
|
'成功'
|
||||||
|
else
|
||||||
|
'未知错误'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_score
|
||||||
|
if self.result.to_i == 0
|
||||||
|
format("%.1f",100.0 / self.student_work.homework_common.homework_tests.count)
|
||||||
|
else
|
||||||
|
0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,3 @@
|
|||||||
|
class Visitor < ActiveRecord::Base
|
||||||
|
belongs_to :user
|
||||||
|
end
|
@ -0,0 +1,8 @@
|
|||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><%= link_to l(:label_forum), {:action => 'messages_list'}, class: "#{current_page?(messages_list_path)? 'selected' : nil }" %></li>
|
||||||
|
<li><%= link_to l(:label_borad_course), {:action => 'course_messages'}, class: "#{current_page?(course_messages_path)? 'selected' : nil }" %></li>
|
||||||
|
<li><%= link_to l(:label_borad_project), {:action => 'project_messages'}, class: "#{current_page?(project_messages_path)? 'selected' : nil }" %></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
@ -0,0 +1,66 @@
|
|||||||
|
<h3>
|
||||||
|
<%=l(:label_message_plural)%>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<%= render 'tab_messages' %>
|
||||||
|
<h4><%=l(:label_borad_course) %></h4>
|
||||||
|
<div class="autoscroll">
|
||||||
|
<table class="list" style="width: 100%;table-layout: fixed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
序号
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
来源
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
作者
|
||||||
|
</th>
|
||||||
|
<th style="width: 70px;">
|
||||||
|
时间
|
||||||
|
</th>
|
||||||
|
<th style="width: 120px;">
|
||||||
|
标题
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
回复数
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @count=0%>
|
||||||
|
<% for course in @course_ms -%>
|
||||||
|
|
||||||
|
<% @count=@count + 1 %>
|
||||||
|
<tr class="<%= cycle("odd", "even") %>">
|
||||||
|
<td style="text-align: center;">
|
||||||
|
<%= @count %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%= Board.where('id=?',course.board_id).first.course_id %>
|
||||||
|
</td>
|
||||||
|
<td align="center" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<% if course.try(:author).try(:realname) == ' '%><%= course.try(:author)%><% else %><%=course.try(:author).try(:realname) %><% end %>'>
|
||||||
|
<% if course.try(:author).try(:realname) == ' '%>
|
||||||
|
<%= link_to(course.try(:author), user_path(course.author)) %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to(course.try(:author).try(:realname), user_path(course.author)) %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td class="center">
|
||||||
|
<%= format_date(course.created_on) %>
|
||||||
|
</td>
|
||||||
|
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" title='<%=course.subject %>'>
|
||||||
|
<%= course.subject %>
|
||||||
|
</td>
|
||||||
|
<td class="center">
|
||||||
|
<%=course.replies_count %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% html_title(l(:label_message_plural)) -%>
|
@ -0,0 +1,62 @@
|
|||||||
|
<h3>
|
||||||
|
<%=l(:label_user_homework)%>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div class="autoscroll">
|
||||||
|
<table class="list" style="width: 100%;table-layout: fixed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
序号
|
||||||
|
</th>
|
||||||
|
<th style="width: 120px;">
|
||||||
|
作业名称
|
||||||
|
</th>
|
||||||
|
<th style="width: 120px;">
|
||||||
|
课程名称
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
作者
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
提交作品数
|
||||||
|
</th>
|
||||||
|
<th style="width: 70px;">
|
||||||
|
提交截止日期
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<%@count=0 %>
|
||||||
|
<% for homework in @homework do %>
|
||||||
|
<% @count+=1 %>
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<%=@count %>
|
||||||
|
</td>
|
||||||
|
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<%=homework.name%>'>
|
||||||
|
<%=link_to(homework.name, student_work_index_path(:homework => homework.id))%>
|
||||||
|
</td>
|
||||||
|
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<%=homework.course.name%>'>
|
||||||
|
<%= link_to(homework.course.name, course_path(homework.course.id)) %>
|
||||||
|
</td>
|
||||||
|
<td align="center" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<% if homework.try(:user).try(:realname) == ' '%><%= homework.try(:user)%><% else %><%=homework.try(:user).try(:realname) %><% end %>'>
|
||||||
|
<% if homework.try(:user).try(:realname) == ' '%>
|
||||||
|
<%= link_to(homework.try(:user), user_path(homework.user_id)) %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to(homework.try(:user).try(:realname), user_path(homework.user_id)) %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%=StudentWork.where('homework_common_id=?',homework.id).count %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%=format_date(homework.end_time) %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% html_title(l(:label_user_homework)) -%>
|
@ -0,0 +1,73 @@
|
|||||||
|
<h3>
|
||||||
|
<%=l(:label_latest_login_user_list)%>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div class="autoscroll">
|
||||||
|
<table class="list" style="width: 100%;table-layout: fixed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
序号
|
||||||
|
</th>
|
||||||
|
<th style="width: 70px;">
|
||||||
|
登录时间
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
用户id
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
用户姓名
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
用户昵称
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
用户身份
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @count=0 %>
|
||||||
|
<% for user in @user do %>
|
||||||
|
<tr>
|
||||||
|
<% @count +=1 %>
|
||||||
|
<td align="center">
|
||||||
|
<%=@count %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%=format_date(user.last_login_on) %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%=user.id %>
|
||||||
|
</td>
|
||||||
|
<td align="center" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<% if user.try(:realname) == ' '%><%= user.login%><% else %><%=user.try(:realname) %><% end %>'>
|
||||||
|
<% if user.try(:realname) == ' '%>
|
||||||
|
<%= link_to(user.login, user_path(user)) %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to(user.try(:realname), user_path(user)) %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%=link_to(user.login, user_path(user)) %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<% case user.user_extensions.identity %>
|
||||||
|
<% when 0 %>
|
||||||
|
<%='老师' %>
|
||||||
|
<% when 1 %>
|
||||||
|
<%='学生' %>
|
||||||
|
<% when 2 %>
|
||||||
|
<%='企业' %>
|
||||||
|
<% when 3 %>
|
||||||
|
<%='开发者' %>
|
||||||
|
<% else %>
|
||||||
|
<%='未知身份' %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% html_title(l(:label_latest_login_user_list)) -%>
|
@ -0,0 +1,79 @@
|
|||||||
|
<h3>
|
||||||
|
<%=l(:label_leave_message_list)%>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="autoscroll">
|
||||||
|
<table class="list" style="width: 100%;table-layout: fixed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
序号
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
类型
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
来源
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
留言人
|
||||||
|
</th>
|
||||||
|
<th style="width: 70px;">
|
||||||
|
留言时间
|
||||||
|
</th>
|
||||||
|
<th style="width: 120px;">
|
||||||
|
留言内容
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
回复数
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @count=0%>
|
||||||
|
<% for journal in @jour -%>
|
||||||
|
<% @count=@count + 1 %>
|
||||||
|
<tr class="<%= cycle("odd", "even") %>">
|
||||||
|
<td style="text-align: center;">
|
||||||
|
<%= @count %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%case journal.jour_type %>
|
||||||
|
<% when 'Principal' %>
|
||||||
|
<%='用户主页' %>
|
||||||
|
<% when 'Course' %>
|
||||||
|
<%='课程' %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%= journal.jour_id %>
|
||||||
|
</td>
|
||||||
|
<td align="center" title='<%= journal.try(:user).try(:realname)%>'>
|
||||||
|
<%= link_to(journal.try(:user).try(:realname).truncate(6, omission: '...'), user_path(journal.user)) %>
|
||||||
|
</td>
|
||||||
|
<td class="center">
|
||||||
|
<%= format_date(journal.created_on) %>
|
||||||
|
</td>
|
||||||
|
<td title='<%=journal.notes %>'>
|
||||||
|
<%= journal.notes.truncate(15, omission: '...') %>
|
||||||
|
</td>
|
||||||
|
<td class="center">
|
||||||
|
<% if(journal.m_reply_count) %>
|
||||||
|
<%=journal.m_reply_count%>
|
||||||
|
<% else %>
|
||||||
|
<%=0 %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="pagination">
|
||||||
|
<ul>
|
||||||
|
<%= pagination_links_full @jour_pages, @jour_count %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% html_title(l(:label_leave_message_list)) -%>
|
@ -0,0 +1,69 @@
|
|||||||
|
<h3>
|
||||||
|
<%=l(:label_message_plural)%>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<%= render 'tab_messages' %>
|
||||||
|
<h4><%=l(:label_forum) %></h4>
|
||||||
|
<div class="autoscroll">
|
||||||
|
<table class="list" style="width: 100%;table-layout: fixed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
序号
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
来源
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
作者
|
||||||
|
</th>
|
||||||
|
<th style="width: 70px;">
|
||||||
|
时间
|
||||||
|
</th>
|
||||||
|
<th style="width: 120px;">
|
||||||
|
标题
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
回复数
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @count=0%>
|
||||||
|
<% for memo in @memo -%>
|
||||||
|
<% @count=@count + 1 %>
|
||||||
|
<tr class="<%= cycle("odd", "even") %>">
|
||||||
|
<td style="text-align: center;">
|
||||||
|
<%= @count %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%= memo.forum_id %>
|
||||||
|
</td>
|
||||||
|
<td align="center" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<% if memo.try(:author).try(:realname) == ' '%><%= memo.try(:author)%><% else %><%=memo.try(:author).try(:realname) %><% end %>'>
|
||||||
|
<% if memo.try(:author).try(:realname) == ' '%>
|
||||||
|
<%= link_to(memo.try(:author), user_path(memo.author)) %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to(memo.try(:author).try(:realname), user_path(memo.author)) %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td class="center">
|
||||||
|
<%= format_date(memo.created_at) %>
|
||||||
|
</td>
|
||||||
|
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" title='<%=memo.subject %>'>
|
||||||
|
<%= memo.subject %>
|
||||||
|
</td>
|
||||||
|
<td class="center">
|
||||||
|
<%=memo.replies_count %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!--<div class="pagination">
|
||||||
|
<ul>
|
||||||
|
<#%= pagination_links_full @memo_pages, @memo_count %>
|
||||||
|
</ul>
|
||||||
|
</div>-->
|
||||||
|
|
||||||
|
<% html_title(l(:label_message_plural)) -%>
|
@ -0,0 +1,74 @@
|
|||||||
|
<h3>
|
||||||
|
<%=l(:label_notification_list)%>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div class="autoscroll">
|
||||||
|
<table class="list" style="width: 100%;table-layout: fixed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
序号
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
课程id
|
||||||
|
</th>
|
||||||
|
<th style="width: 120px;">
|
||||||
|
课程名称
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
主讲老师
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
作者
|
||||||
|
</th>
|
||||||
|
<th style="width: 70px;">
|
||||||
|
时间
|
||||||
|
</th>
|
||||||
|
<th style="width: 120px;">
|
||||||
|
标题
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
回复数
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @count=0%>
|
||||||
|
<% for news in @news -%>
|
||||||
|
<% @count=@count + 1 %>
|
||||||
|
<tr class="<%= cycle("odd", "even") %>">
|
||||||
|
<td style="text-align: center;">
|
||||||
|
<%= @count %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%=news.course_id %>
|
||||||
|
</td>
|
||||||
|
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title="<%=news.course.name %>">
|
||||||
|
<%=link_to(news.course.name, course_path(news.course)) %>
|
||||||
|
</td>
|
||||||
|
<td align="center" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title="<%=news.course.try(:teacher).try(:realname) %>">
|
||||||
|
<%=link_to(news.course.try(:teacher).try(:realname), user_path(news.course.teacher)) %>
|
||||||
|
</td>
|
||||||
|
<td align="center" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<% if news.try(:author).try(:realname) == ' '%><%= news.try(:author)%><% else %><%=news.try(:author).try(:realname) %><% end %>'>
|
||||||
|
<% if news.try(:author).try(:realname) == ' '%>
|
||||||
|
<%= link_to(news.try(:author), user_path(news.author)) %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to(news.try(:author).try(:realname), user_path(news.author)) %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td class="center">
|
||||||
|
<%= format_date(news.created_on) %>
|
||||||
|
</td>
|
||||||
|
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<%=news.title %>'>
|
||||||
|
<%= link_to(news.title, news_path(news)) %>
|
||||||
|
</td>
|
||||||
|
<td class="center">
|
||||||
|
<%=news.comments_count %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% html_title(l(:label_notification_list)) -%>
|
@ -0,0 +1,66 @@
|
|||||||
|
<h3>
|
||||||
|
<%=l(:label_message_plural)%>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<%= render 'tab_messages' %>
|
||||||
|
<h4><%=l(:label_borad_project) %></h4>
|
||||||
|
<div class="autoscroll">
|
||||||
|
<table class="list" style="width: 100%;table-layout: fixed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
序号
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
来源
|
||||||
|
</th>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
作者
|
||||||
|
</th>
|
||||||
|
<th style="width: 70px;">
|
||||||
|
时间
|
||||||
|
</th>
|
||||||
|
<th style="width: 120px;">
|
||||||
|
标题
|
||||||
|
</th>
|
||||||
|
<th style="width: 30px;">
|
||||||
|
回复数
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @count=0%>
|
||||||
|
<% for project in @project_ms -%>
|
||||||
|
|
||||||
|
<% @count=@count + 1 %>
|
||||||
|
<tr class="<%= cycle("odd", "even") %>">
|
||||||
|
<td style="text-align: center;">
|
||||||
|
<%= @count %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%= Board.where('id=?',project.board_id).first.project_id %>
|
||||||
|
</td>
|
||||||
|
<td align="center" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<% if project.try(:author).try(:realname) == ' '%><%= project.try(:author)%><% else %><%=project.try(:author).try(:realname) %><% end %>'>
|
||||||
|
<% if project.try(:author).try(:realname) == ' '%>
|
||||||
|
<%= link_to(project.try(:author), user_path(project.author)) %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to(project.try(:author).try(:realname), user_path(project.author)) %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td class="center">
|
||||||
|
<%= format_date(project.created_on) %>
|
||||||
|
</td>
|
||||||
|
<td title='<%=project.subject %>' style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name">
|
||||||
|
<%= project.subject %>
|
||||||
|
</td>
|
||||||
|
<td class="center">
|
||||||
|
<%=project.replies_count %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% html_title(l(:label_message_plural)) -%>
|
@ -0,0 +1,50 @@
|
|||||||
|
<h3 style="float: left">
|
||||||
|
<%=l(:label_school_plural)%>
|
||||||
|
</h3>
|
||||||
|
<%= form_tag({:controller => 'admin', :action => 'schools' }, :method => :get,:id=>"search_course_form") do %>
|
||||||
|
<%= submit_tag "搜索",:style => "float: right;margin-right: 15px;"%>
|
||||||
|
<input style="float: right;margin-right: 10px;" id="v_subject" placeholder="学校名称" type="text" name="school_name" value="<%= @school_name%>">
|
||||||
|
<% end %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
|
||||||
|
<div class="autoscroll" style="margin-top: 40px;">
|
||||||
|
<table class="list" style="width: 100%;table-layout: fixed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 50px;">
|
||||||
|
序号
|
||||||
|
</th>
|
||||||
|
<th style="width: 100px;">
|
||||||
|
LOGO
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
学校名称
|
||||||
|
</th>
|
||||||
|
<th style="width: 100px;"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @schools.each do |school|%>
|
||||||
|
<tr class="<%= cycle("odd", "even") %>">
|
||||||
|
<td style="text-align:center;vertical-align: middle;">
|
||||||
|
<%= school.id %>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<%= image_tag(school.logo_link,width:40,height:40) %>
|
||||||
|
</td>
|
||||||
|
<td style="text-align:center;vertical-align: middle;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<%=school.name%>'>
|
||||||
|
<span>
|
||||||
|
<%= link_to school.name,"http://#{Setting.host_course}/?school_id=#{school.id}" %>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<td class="buttons" style="vertical-align: middle;">
|
||||||
|
<%= link_to("修改", upload_logo_school_path(school.id,:school_name => @school_name), :class => 'icon icon-copy') %>
|
||||||
|
<%#= link_to(l(:button_delete), organization_path(school.id), :method => :delete,:confirm => l(:text_are_you_sure), :class => 'icon icon-del') %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end%>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% html_title(l(:label_project_plural)) -%>
|
@ -1,4 +1,8 @@
|
|||||||
|
<% if @source_type=='User' %>
|
||||||
|
var imgSpan = $("img[nhname='avatar_image']");
|
||||||
|
imgSpan.attr({"src":'<%= "#{@urlfile.to_s}?#{Time.now.to_i}" %>'});
|
||||||
|
<% else %>
|
||||||
var imgSpan = jQuery('#avatar_image');
|
var imgSpan = jQuery('#avatar_image');
|
||||||
|
|
||||||
imgSpan.attr({"src":'<%= "#{@urlfile.to_s}?#{Time.now.to_i}" %>'});
|
imgSpan.attr({"src":'<%= "#{@urlfile.to_s}?#{Time.now.to_i}" %>'});
|
||||||
|
<% end %>
|
@ -1,10 +1,10 @@
|
|||||||
<!-- huang -->
|
<!--<!– huang –>-->
|
||||||
<h3><%=l(:label_newtype_contest)%></h3>
|
<!--<h3><%=l(:label_newtype_contest)%></h3>-->
|
||||||
|
|
||||||
<%= labelled_form_for @bid, :url => {:controller => 'bids', :action => 'create_contest'} do |f| %>
|
<!--<%= labelled_form_for @bid, :url => {:controller => 'bids', :action => 'create_contest'} do |f| %>-->
|
||||||
<div class="box tabular">
|
<!--<div class="box tabular">-->
|
||||||
<%= render :partial => 'form_contest', :locals => { :f => f } %>
|
<!--<%= render :partial => 'form_contest', :locals => { :f => f } %>-->
|
||||||
<%= submit_tag l(:button_create) %>
|
<!--<%= submit_tag l(:button_create) %>-->
|
||||||
<%= javascript_tag "$('#bid_name').focus();" %>
|
<!--<%= javascript_tag "$('#bid_name').focus();" %>-->
|
||||||
<% end %>
|
<!--<% end %>-->
|
||||||
</div>
|
<!--</div>-->
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue