diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index 086ecfb7f..a44b58789 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_controller.rb
@@ -337,6 +337,19 @@ class AdminController < ApplicationController
format.html
end
end
+
+ #学校列表
+ def schools
+ @school_name = params[:school_name]
+ if @school_name
+ @schools = School.where("name like '%#{@school_name}%'")
+ else
+ @schools = School.all
+ end
+ respond_to do |format|
+ format.html
+ end
+ end
#移动端版本管理
def mobile_version
@versions = PhoneAppVersion.reorder('created_at desc')
diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb
index 5324a0d38..6f2ecef0b 100644
--- a/app/controllers/homework_common_controller.rb
+++ b/app/controllers/homework_common_controller.rb
@@ -1,6 +1,7 @@
class HomeworkCommonController < ApplicationController
require 'net/http'
require 'json'
+ require "base64"
layout "base_courses"
before_filter :find_course, :only => [:index,:new,:create,:next_step]
before_filter :find_homework, :only => [:edit,:update,:alert_anonymous_comment,:start_anonymous_comment,:stop_anonymous_comment,:destroy]
@@ -18,28 +19,28 @@ class HomeworkCommonController < ApplicationController
end
def new
- @homework_type = "1"
-
- @homework = HomeworkCommon.new
- @homework.safe_attributes = params[:homework_common]
- @homework.late_penalty = 0
- @homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
- @homework.publish_time = Time.now.strftime('%Y-%m-%d')
-
- if @homework_type == "1"
- #匿评作业相关属性
- @homework_detail_manual = HomeworkDetailManual.new
- @homework_detail_manual.ta_proportion = 0.6
- @homework_detail_manual.absence_penalty = 0
- @homework_detail_manual.evaluation_num = 3
- @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
- @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
- @homework.homework_detail_manual = @homework_detail_manual
- elsif @homework_type == "2"
- #编程作业相关属性
- @homework_detail_programing = HomeworkDetailPrograming.new
- @homework.homework_detail_programing = @homework_detail_programing
- end
+ # @homework_type = "1"
+ #
+ # @homework = HomeworkCommon.new
+ # @homework.safe_attributes = params[:homework_common]
+ # @homework.late_penalty = 0
+ # @homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
+ # @homework.publish_time = Time.now.strftime('%Y-%m-%d')
+ #
+ # if @homework_type == "1"
+ # #匿评作业相关属性
+ # @homework_detail_manual = HomeworkDetailManual.new
+ # @homework_detail_manual.ta_proportion = 0.6
+ # @homework_detail_manual.absence_penalty = 0
+ # @homework_detail_manual.evaluation_num = 3
+ # @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
+ # @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
+ # @homework.homework_detail_manual = @homework_detail_manual
+ # elsif @homework_type == "2"
+ # #编程作业相关属性
+ # @homework_detail_programing = HomeworkDetailPrograming.new
+ # @homework.homework_detail_programing = @homework_detail_programing
+ # end
respond_to do |format|
format.html
end
@@ -99,12 +100,13 @@ class HomeworkCommonController < ApplicationController
question = {title:homework.name,content:homework.description}
question[:input] = []
question[:output] = []
- if params[:input] && params[:output]
+ if params[:input] && params[:output] && params[:result]
params[:input].each do |k,v|
if params[:output].include? k
homework_test = HomeworkTest.new
homework_test.input = v
homework_test.output = params[:output][k]
+ homework_test.result = params[:result][k]
homework.homework_tests << homework_test
question[:input] << homework_test.input
question[:output] << homework_test.output
@@ -221,17 +223,19 @@ class HomeworkCommonController < ApplicationController
homework_test = HomeworkTest.find id
homework_test.destroy if homework_test
end
- if params[:input] && params[:output]
+ if params[:input] && params[:output] && params[:result]
params[:input].each do |k,v|
if params[:output].include? k
homework_test = HomeworkTest.find_by_id k
if homework_test #已存在的测试,修改
homework_test.input = v
homework_test.output = params[:output][k]
+ homework_test.result = params[:result][k]
else #不存在的测试,增加
homework_test = HomeworkTest.new
homework_test.input = v
homework_test.output = params[:output][k]
+ homework_test.result = params[:result][k]
homework_test.homework_common = @homework
end
homework_test.save
@@ -351,6 +355,23 @@ class HomeworkCommonController < ApplicationController
end
end
+ def programing_test
+ test = {language:params[:language],src:Base64.encode64(params[:src]),input:[params[:input]],output:[params[:output]]}
+ @index = params[:index]
+ uri = URI('http://192.168.80.21:8080/api/realtime.json')
+ body = test.to_json
+ res = Net::HTTP.new(uri.host, uri.port).start do |client|
+ request = Net::HTTP::Post.new(uri.path)
+ request.body = body
+ request["Content-Type"] = "application/json"
+ client.request(request)
+ end
+ result = JSON.parse(res.body)
+ result["results"].each do |re|
+ @result = re["status"]
+ end
+ end
+
private
#获取课程
def find_course
diff --git a/app/controllers/poll_controller.rb b/app/controllers/poll_controller.rb
index 758747e02..dda5b81b2 100644
--- a/app/controllers/poll_controller.rb
+++ b/app/controllers/poll_controller.rb
@@ -137,11 +137,19 @@ class PollController < ApplicationController
@poll_questions.poll_answers.new question_option
end
end
- if @poll_questions.save
- respond_to do |format|
- format.js
+ # 如果是插入的话,那么从插入的这个id以后的question_num都将要+1
+ if params[:quest_id]
+ @is_insert = true
+ @poll.poll_questions.where("question_number > #{params[:quest_num].to_i}").update_all(" question_number = question_number + 1")
+ @poll_question_num = params[:quest_num].to_i
+ @poll_questions.question_number = params[:quest_num].to_i + 1
+ end
+ if @poll_questions.save
+ respond_to do |format|
+ format.js
+ end
end
- end
+
end
#修改题目
@@ -328,6 +336,37 @@ class PollController < ApplicationController
end
end
+
+ def import_poll
+ @poll = Poll.find(params[:to_id])
+ question_num = @poll.poll_questions.select("max(question_number) question_number").first.question_number
+ import_poll = Poll.find(params[:import_id])
+ import_poll.poll_questions.each_with_index do |question,index|
+ option = {
+ :is_necessary => question.is_necessary,
+ :question_title => question.question_title,
+ :question_type => question.question_type,
+ :question_number => question_num + index+1
+ }
+ poll_questions = @poll.poll_questions.new option
+ for i in 1..question.poll_answers.count
+ answer = question.poll_answers[i-1][:answer_text]
+ question_option = {
+ :answer_position => i,
+ :answer_text => answer
+ }
+ poll_questions.poll_answers.new question_option
+ end
+ @poll.poll_questions << poll_questions
+ end
+ if @poll.save
+ @poll = Poll.find(params[:to_id])
+ respond_to do |format|
+ format.js
+ end
+ end
+ end
+
#重新发布问卷
def republish_poll
@poll.poll_questions.each do |poll_question|
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 09ae5ad79..3dfae3432 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -369,37 +369,6 @@ class ProjectsController < ApplicationController
end
end
- # dts测试工具
- def dts_dep
- render_403 unless User.current.admin?
- @dts = Dts.all
- end
-
- # dts云部署
- def yun_dep
- render_403 unless User.current.admin?
- end
-
- # 软件知识库
- def soft_knowledge
- render_403 unless User.current.admin?
- end
-
- # 在线开发平台
- def online_dev
- render_403 unless User.current.admin?
- end
-
- # 软件资源库
- def soft_file
- render_403 unless User.current.admin?
- end
-
- # 软件服务
- def soft_service
- render_403 unless User.current.admin?
- end
-
#发送邮件邀请新用户
def invite_members_by_mail
if User.current.member_of?(@project) || User.current.admin?
diff --git a/app/controllers/school_controller.rb b/app/controllers/school_controller.rb
index 008fe00fc..3e0c280ac 100644
--- a/app/controllers/school_controller.rb
+++ b/app/controllers/school_controller.rb
@@ -4,28 +4,21 @@ class SchoolController < ApplicationController
def upload
uploaded_io = params[:logo]
- school_id = 0
- schools = School.where("name = ?", params[:school])
-
- schools.each do |s|
- school_id = s.id
- end
-
+ school_id ||= params[:id]
unless uploaded_io.nil?
File.open(Rails.root.join('public', 'images', 'school', school_id.to_s+'.png'), 'wb') do |file|
file.write(uploaded_io.read)
end
-
s1 = School.find(school_id)
s1.logo_link = '/images/school/'+school_id.to_s+'.png'
s1.save
-
-
- end
+ end
+ redirect_to admin_schools_url(:school_name => params[:school_name])
end
def upload_logo
-
+ @school = School.find params[:id]
+ @school_name = params[:school_name]
end
#获取制定学校开设的课程数
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index fa5ce8405..0c5b441d4 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -112,39 +112,20 @@ class UsersController < ApplicationController
#added by young
def user_projects
-
- #add by huang
unless User.current.admin?
if !@user.active? #|| (@user != User.current && @memberships.empty? && events.empty?)
render_404
return
end
end
- #end
- # if User.current.admin?
- # @memberships = @user.memberships.all(conditions: "projects.project_type = #{Project::ProjectType_project}")
- # else
- # cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1"
- # @memberships = @user.memberships.all(:conditions => cond)
- # end
- #events = Redmine::Activity::Fetcher.new(User.current, :author => @user).events(nil, nil, :limit => 20)
- #@events_by_day = events.group_by(&:event_date)
- # @state = 0
-
- limit = 10;
- query = Project.joins("join members m on #{Project.table_name}.id=m.project_id")
- query = query.where("m.user_id = ? and #{Project.table_name}.project_type=?",@user.id,Project::ProjectType_project)
+ projects = @user.projects.visible.order("updated_on desc")
if(params[:status] == '1')
- query = query.where("#{Project.table_name}.user_id = ?",@user.id);
+ projects = projects.where("projects.user_id = ?",@user.id)
elsif(params[:status] == '2')
- query = query.where("#{Project.table_name}.user_id <> ?",@user.id);
+ projects = projects.where("projects.user_id <> ?",@user.id)
end
- @obj_count = query.count();
-
- @obj_pages = Paginator.new @obj_count,limit,params['page']
- @list = query.order("#{Project.table_name}.updated_on desc,#{Project.table_name}.id desc").limit(limit).offset(@obj_pages.offset).all();
- @params = params
-
+ @list = paginateHelper projects,10
+ @params = params[:status]
respond_to do |format|
format.html{render :layout=>'base_users_new'}
format.api
@@ -262,75 +243,33 @@ class UsersController < ApplicationController
def user_courses
unless User.current.admin?
- if !@user.active? #|| (@user != User.current && @memberships.empty? && events.empty?)
+ if !@user.active?
render_404
return
end
end
-
- #@user.coursememberships.all(:conditions => Course.visible_condition(User.current))
-
- limit = 10;
- query = Course.joins("join members m on #{Course.table_name}.id=m.course_id")
- query = query.where("m.user_id = ?",@user.id)
+ courses = @user.courses.visible.order("created_at desc")
if(params[:status] == '1')
- query = query.where("endup_time >= ? or endup_time is null or endup_time=''",Time.now);
+ courses = courses.where("endup_time >= ? or endup_time is null or endup_time=''",Time.now)
elsif(params[:status] == '2')
- query = query.where("endup_time < ?",Time.now);
+ courses = courses.where("endup_time < ?",Time.now)
end
- @obj_count = query.count();
-
- @obj_pages = Paginator.new @obj_count,limit,params['page']
- @list = query.order("#{Course.table_name}.updated_at desc,#{Course.table_name}.id desc").limit(limit).offset(@obj_pages.offset).all();
- @params = params
+ @list = paginateHelper courses,10
+ @params = params[:status]
render :layout=>'base_users_new'
-
- # if User.current == @user || User.current.admin?
- # membership = @user.coursememberships.all
- # else
- # membership = @user.coursememberships.all(:conditions => Course.visible_condition(User.current))
- # end
- #
- # membership.sort! {|older, newer| newer.created_on <=> older.created_on }
- # @memberships = []
- # membership.collect { |e|
- # @memberships.push(e)
- # }
- # ## 判断课程是否过期 [需封装]
- # @memberships_doing = []
- # @memberships_done = []
- # #now_time = Time.now.year
- # @memberships.map { |e|
- # #end_time = e.course.get_time.year
- # isDone = course_endTime_timeout?(e.course)
- # if isDone
- # @memberships_done.push e
- # else
- # @memberships_doing.push e
- # end
- # }
- # respond_to do |format|
- # format.html
- # format.api
- # end
end
# modified by fq
def user_newfeedback
- @jours = @user.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC')
- @jours.update_all(:is_readed => true, :status => false)
- @jours.each do |journal|
+ jours = @user.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC')
+ jours.update_all(:is_readed => true, :status => false)
+ jours.each do |journal|
fetch_user_leaveWord_reply(journal).update_all(:is_readed => true, :status => false)
end
-
- #@limit = 10
- #@feedback_count = @jours.count
- #@feedback_pages = Paginator.new @feedback_count, @limit, params['page']
- #@offset ||= @feedback_pages.offset
- @jour = paginateHelper @jours,10
+ @jour = paginateHelper jours,10
@state = false
+ render :layout=>'base_users_new'
end
- # end
def user_comments
@@ -482,95 +421,6 @@ class UsersController < ApplicationController
render :layout=>nil
end
- # def user_course_activities
- # @list = []
- # lastid = nil
- # if params[:lastid]!=nil && !params[:lastid].empty?
- # lastid = params[:lastid];
- # end
- #
- # user_ids = []
- # if @user == User.current
- # watcher = User.watched_by(@user)
- # watcher.push(User.current)
- # user_ids = watcher.map{|x| x.id}
- # else
- # user_ids << @user.id
- # end
- #
- # query_rec_count = 8
- # query_times = 10 #query_times次没查到query_rec_count条记录就不查了
- # query_i = 0;
- # while( true )
- # query_i = query_i+1
- # if(query_i>query_times)
- # break
- # end
- # query = Activity.where(user_id: user_ids)
- # if(lastid != nil)
- # query = query.where("id < ?",lastid)
- # end
- # lastid,item_list = query_activities(query,'course');
- # for item in item_list
- # @list << item
- # if @list.count() >= query_rec_count
- # break
- # end
- # end
- # if @list.count() >= query_rec_count
- # break
- # end
- # if lastid == nil
- # break
- # end
- # end
- # render :layout=>nil
- # end
- #
- # def user_project_activities
- # @list = []
- # lastid = nil
- # if params[:lastid]!=nil && !params[:lastid].empty?
- # lastid = params[:lastid];
- # end
- #
- # user_ids = []
- # if @user == User.current
- # watcher = User.watched_by(@user)
- # watcher.push(User.current)
- # user_ids = watcher.map{|x| x.id}
- # else
- # user_ids << @user.id
- # end
- #
- # query_rec_count = 8
- # query_times = 10 #query_times次没查到query_rec_count条记录就不查了
- # query_i = 0;
- # while( true )
- # query_i = query_i+1
- # if(query_i>query_times)
- # break
- # end
- # query = Activity.where(user_id: user_ids)
- # if(lastid != nil)
- # query = query.where("id < ?",lastid)
- # end
- # lastid,item_list = query_activities(query,'project');
- # for item in item_list
- # @list << item
- # if @list.count() >= query_rec_count
- # break
- # end
- # end
- # if @list.count() >= query_rec_count
- # break
- # end
- # if lastid == nil
- # break
- # end
- # end
- # render :action=>'user_course_activities',:layout=>nil
- # end
def user_course_activities
lastid = nil
if params[:lastid]!=nil && !params[:lastid].empty?
@@ -629,7 +479,7 @@ class UsersController < ApplicationController
query = query.where("#{Activity.table_name}.id < ?",lastid)
end
query = query.order("#{Activity.table_name}.id desc")
- @list = query_activities(query);
+ @list = query_activities(query)
render :action=>'user_course_activities',:layout=>nil
end
diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb
index 9ce107f8b..6b14db9bb 100644
--- a/app/controllers/welcome_controller.rb
+++ b/app/controllers/welcome_controller.rb
@@ -100,44 +100,6 @@ class WelcomeController < ApplicationController
@course_page = FirstPage.find_by_page_type('course')
@school_id = params[:school_id] || User.current.user_extensions.school.try(:id) || 117
@logoLink ||= logolink()
-
- ##3-8月份为查找春季课程,9-2月份为查找秋季课程
- #month_now = Time.now.strftime("%m").to_i
- #year_now = Time.new.strftime("%Y").to_i
- #(month_now >= 3 && month_now < 9) ? course_term = l(:label_spring) : course_term = l(:label_autumn)
- ##year_now -= 1 if year_now < 3
- #@school_id.nil? ? @cur_school_course = [] : @cur_school_course = find_miracle_course(10,7,@school_id, year_now, course_term)
- ##未登录或者当前学校未开设课程
- #if @cur_school_course.empty?
- # @has_course = false
- # User.current.logged? ? course_count = 9 : course_count = 10
- # @cur_school_course += find_all_new_hot_course(course_count, @school_id, year_now, course_term)
- # while @cur_school_course.count < 9 do
- # if course_term == l(:label_spring)
- # course_term = l(:label_autumn)
- # year_now -= 1
- # else
- # course_term = l(:label_spring)
- # end
- # @cur_school_course += find_all_new_hot_course((10-@cur_school_course.count), nil, year_now, course_term)
- # end
- #else
- # if @cur_school_course.count < 9
- # @has_course = false
- # @cur_school_course += find_all_new_hot_course(9-@cur_school_course.count, @school_id, year_now, course_term)
- # if @cur_school_course.count < 9
- # if course_term == l(:label_spring)
- # course_term = l(:label_autumn)
- # year_now -= 1
- # else
- # course_term = l(:label_spring)
- # end
- # @cur_school_course += find_all_new_hot_course(9-@cur_school_course.count, nil, year_now, course_term)
- # end
- # else
- # @has_course = true
- # end
- #end
end
def logolink()
diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb
index 161791954..fc723d5d5 100644
--- a/app/controllers/words_controller.rb
+++ b/app/controllers/words_controller.rb
@@ -4,7 +4,7 @@ class WordsController < ApplicationController
include ApplicationHelper
before_filter :find_user, :only => [:new, :create, :destroy, :more, :back]
def create
- if params[:new_form][:user_message].size>0
+ if params[:new_form][:user_message].size>0 && User.current.logged?
unless params[:user_id].nil?
if params[:reference_content]
message = params[:new_form][:user_message] + "\n" + params[:reference_content]
@@ -18,22 +18,13 @@ class WordsController < ApplicationController
list = User.find(refer_user_id).add_jour(User.current, message, refer_user_id)
end
@jour = list.last
- # @user.count_new_jour
- # if a_message.size > 5
- # @message = a_message[-5, 5]
- # else
- # @message = a_message
- # end
- # @message_count = a_message.count
end
end
- # @jours = @user.journals_for_messages.where('m_parent_id IS NULL').reverse
- # @jour = paginateHelper @jours,10
+ jours = @user.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC')
+ @jour = paginateHelper jours,10
respond_to do |format|
- # format.html { redirect_to_referer_or {render :text => 'Watcher added.', :layout => true}}
format.js
- #format.api { render_api_ok }
end
end
@@ -93,7 +84,6 @@ class WordsController < ApplicationController
end
respond_to do |format|
format.js
- #format.api { render_api_ok }
end
end
@@ -206,7 +196,15 @@ class WordsController < ApplicationController
flash[:error] = feedback.errors.full_messages[0]
redirect_to project_feedback_url(params[:id])
end
+ end
+ #给用户留言
+ def leave_user_message
+ @user = User.find(params[:id])
+ if params[:new_form][:user_message].size>0 && User.current.logged? && @user
+ @user.add_jour(User.current, params[:new_form][:user_message])
+ end
+ redirect_to feedback_path(@user)
end
# add by nwb
diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb
index 0b2d74ee8..49865d335 100644
--- a/app/helpers/users_helper.rb
+++ b/app/helpers/users_helper.rb
@@ -321,6 +321,7 @@ module UsersHelper
list = obj.watcher_users.order("#{Watcher.table_name}.id desc").limit(10).all
return [count,list];
end
+
def get_visitor_users(obj)
query = Visitor.where("master_id=?",obj.id)
count = query.count
@@ -332,46 +333,59 @@ module UsersHelper
end
def get_create_course_count(user)
- if user == User.current
- user.courses.count
- else
- user.courses.where("is_public = 1").count
- end
+ user.courses.visible.where("tea_id = ?",user.id).count
end
+
+ #获取加入课程数
def get_join_course_count(user)
- user.coursememberships.count - get_create_course_count(user)
+ user.courses.visible.count - get_create_course_count(user)
end
+
+ #发布作业数
def get_homework_commons_count(user)
HomeworkCommon.where("user_id = ?",user.id).count
end
+
+ #资源数
def get_projectandcourse_attachment_count(user)
Attachment.where("author_id = ? and container_type in ('Project','Course')",user.id).count
end
+
+ #创建项目数
def get_create_project_count(user)
- Project.where("user_id = ? and project_type = ?",user.id,Project::ProjectType_project).count
+ user.projects.visible.where("projects.user_id=#{user.id}").count
end
+
+ #加入项目数
def get_join_project_count(user)
- user.memberships.count(conditions: "projects.project_type = #{Project::ProjectType_project}") - get_create_project_count(user)
+ user.projects.visible.count - get_create_project_count(user)
end
+
+ #创建缺陷数
def get_create_issue_count(user)
Issue.where("author_id = ?",user.id).count
end
+
+ #解决缺陷数
def get_resolve_issue_count(user)
Issue.where("assigned_to_id = ? and status_id=3",user.id).count
end
+
+ #参与匿评数
def get_anonymous_evaluation_count(user)
StudentWorksScore.where("user_id = ? and reviewer_role=3",user.id).count
end
def query_activities(query)
- list = query.limit(8).all
- result = [];
+ list = query.limit(13).all
+ result = []
for item in list
container = get_activity_container(item)
result << { :item=>item,:e=>container }
end
- return result
+ result
end
+
def get_activity_container activity
return activity.activity_container
end
@@ -387,6 +401,7 @@ module UsersHelper
end
return str.html_safe
end
+
def get_activity_act_showname(activity)
case activity.act_type
when "HomeworkCommon"
@@ -417,6 +432,7 @@ module UsersHelper
return activity.act_type
end
end
+
def get_activity_act_createtime(activity)
case activity.act_type
when "HomeworkCommon"
@@ -427,6 +443,7 @@ module UsersHelper
return activity.act.created_on
end
end
+
def get_activity_container_url e
if !e.visible?
return "javascript:;"
@@ -437,6 +454,7 @@ module UsersHelper
end
return url_for(:controller => 'projects', :action=>"show", :id=>e.id, :host=>Setting.host_name)
end
+
def get_activity_url(activity,e)
if !e.visible?
return "javascript:;"
@@ -465,6 +483,7 @@ module UsersHelper
return 'javascript:;'
end
end
+
def get_activity_opt(activity,e)
case activity.act_type
when "HomeworkCommon"
@@ -474,14 +493,14 @@ module UsersHelper
when "Issue"
return '发表了问题'
when "Journal"
- return '回复了问题'
+ return '更新了问题'
when "JournalsForMessage"
return e.class.to_s == 'Course' ? '发表了留言' : '提交了反馈'
#return ( activity.act.reply_id == nil || activity.act.reply_id == 0 ) ? '' : ''
when "Message"
return ( activity.act.parent_id == nil || activity.act.parent_id == '' ) ? '发布了帖子' : '回复了帖子'
when "Poll"
- return '发布了问卷'
+ return '创建了问卷'
else
return '有了新动态'
end
diff --git a/app/models/homework_test.rb b/app/models/homework_test.rb
index 4ed290ecd..df2848194 100644
--- a/app/models/homework_test.rb
+++ b/app/models/homework_test.rb
@@ -1,5 +1,5 @@
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
has_many :student_work_test
diff --git a/app/models/issue.rb b/app/models/issue.rb
index c2670a0cc..147e26cef 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -235,9 +235,10 @@ class Issue < ActiveRecord::Base
base_reload(*args)
end
- def to_param
- @to_param ||= "#{id}_#{self.project.name}(#{self.project.issues.index(self).to_i+1}-#{self.project.issues.count})"#.parameterize
- end
+ # 之所以注释是以为最终以id形式显示,另外如果项目名称带点号或者纯数字会出现问题
+ # def to_param
+ # @to_param ||= "#{id}_#{self.project.name}(#{self.project.issues.index(self).to_i+1}-#{self.project.issues.count})"#.parameterize
+ # end
# Overrides Redmine::Acts::Customizable::InstanceMethods#available_custom_fields
def available_custom_fields
diff --git a/app/models/user.rb b/app/models/user.rb
index 005c394a8..2271adc18 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -418,7 +418,7 @@ class User < Principal
end
def nickname(formatter = nil)
- login
+ login.nil? || (login && login.empty?) ? "AnonymousUser" : login
end
def name(formatter = nil)
diff --git a/app/views/admin/schools.html.erb b/app/views/admin/schools.html.erb
new file mode 100644
index 000000000..0956981e8
--- /dev/null
+++ b/app/views/admin/schools.html.erb
@@ -0,0 +1,50 @@
+
+ <%=l(:label_school_plural)%>
+
+<%= form_tag({:controller => 'admin', :action => 'schools' }, :method => :get,:id=>"search_course_form") do %>
+ <%= submit_tag "搜索",:style => "float: right;margin-right: 15px;"%>
+
+<% end %>
+
+
+
+
+<% html_title(l(:label_project_plural)) -%>
diff --git a/app/views/applied_project/_set_applied.js.erb b/app/views/applied_project/_set_applied.js.erb
index 33d862d1c..472da3c09 100644
--- a/app/views/applied_project/_set_applied.js.erb
+++ b/app/views/applied_project/_set_applied.js.erb
@@ -17,6 +17,8 @@ if (window.Messenger) {
Messenger().post({
id: "label_apply_project_waiting",
message: "<%= l(:label_apply_project_waiting) %>",
- showCloseButton: true,
+ showCloseButton: true
});
};
+
+$("#applied_project_link_<%= @project.id%>").replaceWith("<%= escape_javascript(link_to "加入项目",appliedproject_path(:user_id => User.current.id,:project_id => @project.id,:project_join => true),:class => "blue_n_btn fr mt20", :remote => "true",:method => "post",:id => "applied_project_link_#{@project.id}") %>");
diff --git a/app/views/applied_project/applied_join_project.js.erb b/app/views/applied_project/applied_join_project.js.erb
index 846d2a61d..ae9d3f467 100644
--- a/app/views/applied_project/applied_join_project.js.erb
+++ b/app/views/applied_project/applied_join_project.js.erb
@@ -6,6 +6,7 @@
<% elsif @status == 2%>
alert("<%= l('project.join.tips.success') %>");
hideModal($("#popbox"));
+ $("#applied_project_link_<%= @project.id%>").replaceWith("<%=escape_javascript(link_to '取消申请',appliedproject_applied_path(:project_id => @project.id,:user_id => User.current.id),:class => "blue_n_btn fr mt20", :remote => "true",:method => "delete",:id => "applied_project_link_#{@project.id}")%>");
<% elsif @status == 3%>
alert("<%= l('project.join.tips.has') %>");
<%else%>
diff --git a/app/views/attachments/_project_file_links.html.erb b/app/views/attachments/_project_file_links.html.erb
index b644fb9fa..3b76689f5 100644
--- a/app/views/attachments/_project_file_links.html.erb
+++ b/app/views/attachments/_project_file_links.html.erb
@@ -37,7 +37,7 @@
<% if options[:length] %>
<%= link_to_short_attachment attachment, :class => ' link_file_board', :download => true,:length => options[:length] -%>
<% else %>
-
+ <%= link_to_short_attachment attachment, :class => ' link_file_board', :download => true -%>
<% end %>
<%if is_float%>
diff --git a/app/views/courses/_course.html.erb b/app/views/courses/_course.html.erb
index f2972df44..0b879f905 100644
--- a/app/views/courses/_course.html.erb
+++ b/app/views/courses/_course.html.erb
@@ -61,7 +61,7 @@
- <%= content_tag('span', link_to("#{@course_activity_count[@course.id]}", course_path(@course)), :class => "info") %>
+ <%= content_tag('span', link_to("#{course_activity_count @course}", course_path(@course)), :class => "info") %>
<%= content_tag('span', l(:label_x_activity, :count => @course_activity_count[@course.id])) %>
diff --git a/app/views/courses/_set_join.js.erb b/app/views/courses/_set_join.js.erb
index 1dc20f046..0542f2a0c 100644
--- a/app/views/courses/_set_join.js.erb
+++ b/app/views/courses/_set_join.js.erb
@@ -4,7 +4,8 @@
<% if @state %>
<% if @state == 0 %>
alert("加入成功");
- hideModal($("#popbox"));
+ hideModal($("#popbox02"));
+ $("#try_join_course_link").replaceWith(" 'index',:course=>course.id, :host=>Setting.host_course)%>' target='_blank' class='blue_n_btn fr mt20'>提交作品 ");
<% elsif @state == 1 %>
alert("密码错误");
<% elsif @state == 2 %>
diff --git a/app/views/files/create.js.erb b/app/views/files/create.js.erb
index a1c278a7a..81810344e 100644
--- a/app/views/files/create.js.erb
+++ b/app/views/files/create.js.erb
@@ -24,6 +24,8 @@ $('#upload_file_div').slideToggle('slow');
<% if @project %>
closeModal();
$("#resource_list").html('<%= j(render partial: "project_file_new" ,locals: {project: @project}) %>');
+ $("#project_files_count_info").html("<%= @all_attachments.count%>");
+ $("#project_files_count_nav").html("(<%= @all_attachments.count%>)")
// 添加文件上传成功提示
<% unless params[:attachments].nil? %>
var div = $('文件上传成功!
');
diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb
index be08dd107..22ca4cac7 100644
--- a/app/views/homework_common/_homework_detail_programing_form.html.erb
+++ b/app/views/homework_common/_homework_detail_programing_form.html.erb
@@ -78,7 +78,7 @@
标准代码:
-
+
@@ -87,16 +87,25 @@
@@ -105,19 +114,48 @@
<% end %>
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/views/homework_common/index.html.erb b/app/views/homework_common/index.html.erb
index c0f716ed7..4a804ae60 100644
--- a/app/views/homework_common/index.html.erb
+++ b/app/views/homework_common/index.html.erb
@@ -49,29 +49,31 @@
<% if homework.homework_type == 2 && homework.homework_detail_programing%>
-
-
- ">
-
- 输入
-
-
- 输出
-
-
- <% homework.homework_tests.each do |test|%>
+ <% if @is_teacher%>
+
+
">
- <%=test.input%>
+ 输入
- <%= test.output%>
+ 输出
- <% end%>
-
-
-
+ <% homework.homework_tests.each do |test|%>
+ ">
+
+ <%=test.input%>
+
+
+ <%= test.output%>
+
+
+ <% end%>
+
+
+
+ <% end%>
开发语言:
diff --git a/app/views/homework_common/new.html.erb b/app/views/homework_common/new.html.erb
index 6fc0fff0e..cdc2ceca0 100644
--- a/app/views/homework_common/new.html.erb
+++ b/app/views/homework_common/new.html.erb
@@ -1,17 +1,27 @@
-<%= javascript_include_tag "/assets/kindeditor/kindeditor" %>
-<%= error_messages_for 'homework_common' %>
<%= l(:label_course_homework_new)%>
-
- <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %>
- <%= hidden_field_tag "course",@course.id%>
- <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %>
-
提交
- <%#= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%>
- <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%>
+
+ <%= form_for("new_homework_common",:url => next_step_homework_common_index_path) do |f|%>
+
+
+ 请选择将要发布的作业类型
+
+
+
+ 人工评分的作业(支持匿名互评、灵活设置评分比例)
+
+
+
+
+ 自动评测的编程作业(支持C/C++程序的自动评分)
+
+
+
+ 下一步
+
<% end%>
diff --git a/app/views/homework_common/next_step.html.erb b/app/views/homework_common/next_step.html.erb
index 75e9f4c0a..e84d0f87a 100644
--- a/app/views/homework_common/next_step.html.erb
+++ b/app/views/homework_common/next_step.html.erb
@@ -11,7 +11,7 @@
<%= hidden_field_tag "course",@course.id%>
<%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %>
提交
- <%= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%>
+ <%#= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%>
<%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%>
<% end%>
@@ -22,7 +22,7 @@
<%= hidden_field_tag "homework_common[homework_type]","2"%>
<%= render :partial => 'homework_common/homework_detail_programing_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %>
提交
- <%= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%>
+ <%#= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%>
<%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%>
<% end%>
diff --git a/app/views/homework_common/programing_test.js.erb b/app/views/homework_common/programing_test.js.erb
new file mode 100644
index 000000000..8f76642f1
--- /dev/null
+++ b/app/views/homework_common/programing_test.js.erb
@@ -0,0 +1,2 @@
+$("#test_send_<%= @index%>").replaceWith(" fl ml5 mt1 programing_test' onclick='programing_test(<%= @index%>)' id='test_send_<%= @index%>'><%= @result == 0 ? '正确' : '错误'%> ");
+$("#test_result_<%= @index%>").val("<%= @result%>");
\ No newline at end of file
diff --git a/app/views/layouts/_user_watch_btn.html.erb b/app/views/layouts/_user_watch_btn.html.erb
index 234b81152..578319b68 100644
--- a/app/views/layouts/_user_watch_btn.html.erb
+++ b/app/views/layouts/_user_watch_btn.html.erb
@@ -1,8 +1,11 @@
-<% if(User.current.logged? && User.current!=target)%>
- <%if(target.watched_by?(User.current))%>
- 取消关注
- <% else %>
- 关注
- <% end %>
+<% if User.current.logged?%>
+ <% if User.current == target%>
+ 编辑资料
+ <%else%>
+ <%if(target.watched_by?(User.current))%>
+ 取消关注
+ <% else %>
+ 添加关注
+ <% end %>
+ <% end%>
<% end %>
\ No newline at end of file
diff --git a/app/views/layouts/_user_watch_list.html.erb b/app/views/layouts/_user_watch_list.html.erb
index 00c0cdc40..7ccc8660d 100644
--- a/app/views/layouts/_user_watch_list.html.erb
+++ b/app/views/layouts/_user_watch_list.html.erb
@@ -1,5 +1,5 @@
<% watcher_count,watcher_list = get_watcher_users(user) %>
-
+
关注 更多
diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb
index b168e5f81..74c13cc8e 100644
--- a/app/views/layouts/base_projects.html.erb
+++ b/app/views/layouts/base_projects.html.erb
@@ -100,7 +100,7 @@
|
<%= l(:project_module_attachments) %>(
<% attaments_num %>
- <%= link_to "#{attaments_num}", project_files_path(@project), :class => 'info_foot_num c_blue' %>)
+ <%= link_to "#{attaments_num}", project_files_path(@project), :class => 'info_foot_num c_blue', :id=>'project_files_count_info' %>)
<% end %>
diff --git a/app/views/layouts/base_users_new.html.erb b/app/views/layouts/base_users_new.html.erb
index 4b6bd2887..acd9c238e 100644
--- a/app/views/layouts/base_users_new.html.erb
+++ b/app/views/layouts/base_users_new.html.erb
@@ -17,6 +17,7 @@
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'public_new', 'leftside_new','users', :media => 'all' %>
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
<%= javascript_heads %>
+<%= javascript_include_tag "avatars"%>
<%= heads_for_theme %>
<%= call_hook :view_layouts_base_html_head %>
<%= yield :header_tags -%>
@@ -69,7 +70,7 @@
<% end %>
-
+
最近登录 :
<% if @user.user_extensions!=nil && @user.user_extensions.identity == 2 %>
@@ -126,40 +127,62 @@
+
+
<% if @center_flag %>
-
-
-
+
-
+
-
+
+ <% else%>
+
+
+ <% end %>
+
+ <%= link_to "留言",feedback_path(@user),:class => "f14 c_blue02"%>
+
- <% end %>
+
+
-
+
- <% if !@user.user_extensions.nil? && @user.user_extensions.identity == 0 %>
- <% if(get_create_course_count(@user)) == 0 %>
+ <% if @user.user_extensions && @user.user_extensions.identity == 0 %>
+ <% if(get_create_course_count(@user)) != 0 %>
创建课程 :
<% end %>
- <% if(get_homework_commons_count(@user)) == 0 %>
+ <% if(get_homework_commons_count(@user)) != 0 %>
发布作业 :
<% end %>
<% end %>
<% if (get_join_course_count(@user) != 0) %>
加入课程 :
<% end %>
- <% if @user.user_extensions.identity == 0 %>
+ <% if @user.user_extensions.identity == 1 %>
参加匿评 :
<% end %>
<% if (get_projectandcourse_attachment_count(@user) != 0) %>
@@ -179,18 +202,18 @@
<% end %>
- <% if !@user.user_extensions.nil? && @user.user_extensions.identity == 0 %>
- <% if(get_create_course_count(@user)) == 0 %>
+ <% if @user.user_extensions && @user.user_extensions.identity == 0 %>
+ <% if(get_create_course_count(@user)) != 0 %>
<%= get_create_course_count(@user) %>
<% end %>
- <% if(get_homework_commons_count(@user)) == 0 %>
+ <% if(get_homework_commons_count(@user)) != 0 %>
<%= get_homework_commons_count(@user) %>
<% end %>
<% end %>
<% if (get_join_course_count(@user) != 0) %>
<%= get_join_course_count(@user) %>
<% end %>
- <% if @user.user_extensions.identity == 0 %>
+ <% if @user.user_extensions.identity == 1 %>
<%= get_anonymous_evaluation_count(@user) %>
<% end %>
<% if (get_projectandcourse_attachment_count(@user) != 0) %>
@@ -214,11 +237,22 @@
+
+
+
<%= l(:label_tag)%>:
+
+
+ <%= render :partial => 'tags/project_tag', :locals => {:obj => @user,:object_flag => "1"}%>
+
+
+
+
+
<%= render :partial => 'layouts/user_watch_list', :locals => {:user => @user} %>
<%= render :partial => 'layouts/user_fans_list', :locals => {:user => @user} %>
<% visitor_count,visitor_list = get_visitor_users(@user) %>
<% if(User.current.admin?) %>
-
+
访客 更多
@@ -244,7 +278,9 @@
<%= render :partial => 'layouts/new_feedback' %>
-<%= javascript_include_tag '/javascripts/avatars.js' %>
+
+ <%= l(:label_loading) %>
+
+
+