diff --git a/Gemfile b/Gemfile index c739e1085..2b12860f0 100644 --- a/Gemfile +++ b/Gemfile @@ -17,7 +17,7 @@ gem 'daemons' gem 'grape', '~> 0.9.0' gem 'grape-entity' gem 'seems_rateable', '~> 1.0.13' -gem "rails", "3.2.13" +gem "rails", "~> 3.2.13" gem "jquery-rails", "~> 2.0.2" gem "i18n", "~> 0.6.0" gem 'coderay', '~> 1.1.0' diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 90981b52a..c7aa42b9e 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -24,7 +24,7 @@ class AdminController < ApplicationController before_filter :require_admin helper :sort helper :Users - helper :Settings + helper :Settings,SchoolHelper include SortHelper def index @@ -40,12 +40,16 @@ class AdminController < ApplicationController @projects = scope.where(project_type: Project::ProjectType_project).reorder("created_on desc").all =end @projects = Project.like(@name).order('created_on desc') + @projects = paginateHelper @projects,30 + @page = (params['page'] || 1).to_i - 1 render :action => "projects", :layout => false if request.xhr? end def courses @name = params[:name] @courses = Course.like(@name).order('created_at desc') + @courses = paginateHelper @courses,30 + @page = (params['page'] || 1).to_i - 1 respond_to do |format| format.html end @@ -61,7 +65,17 @@ class AdminController < ApplicationController #管理员界面课程资源列表 def course_resource_list - @resource = Attachment.where(:container_type => 'Course') + + if params[:sort] == 'file_size' + @resource = Attachment.where(:container_type => 'Course').order("filesize desc") + elsif params[:sort] == 'file_upload' + @resource = Attachment.where(:container_type => 'Course').order("created_on desc") + elsif params[:sort] == 'file_download_times' + @resource = Attachment.where(:container_type => 'Course').order("downloads desc") + else + @resource = Attachment.where(:container_type => 'Course').order("created_on desc") + end + @resource = paginateHelper @resource,30 @page = (params['page'] || 1).to_i - 1 @@ -72,7 +86,17 @@ class AdminController < ApplicationController #管理员界面項目资源列表 def project_resource_list - @pro_resource = Attachment.where(:container_type => 'Project') + + if params[:sort] == 'file_size' + @pro_resource = Attachment.where(:container_type => 'Project').order("filesize desc") + elsif params[:sort] == 'file_upload' + @pro_resource = Attachment.where(:container_type => 'Project').order("created_on desc") + elsif params[:sort] == 'file_download_times' + @pro_resource = Attachment.where(:container_type => 'Project').order("downloads desc") + else + @pro_resource = Attachment.where(:container_type => 'Project').order("created_on desc") + end + @pro_resource = paginateHelper @pro_resource,30 @page = (params['page'] || 1).to_i - 1 @@ -88,9 +112,9 @@ class AdminController < ApplicationController case params[:format] when 'xml', 'json' - @offset, @limit = api_offset_and_limit({:limit => 15}) + @offset, @limit = api_offset_and_limit({:limit => 50}) else - @limit = 15#per_page_option + @limit = 50 #per_page_option end @status = params[:status] || 1 @@ -370,7 +394,13 @@ class AdminController < ApplicationController #组织 def organization - @organizations = Organization.all + @organizations = Organization.find_by_sql("SELECT * FROM organizations ORDER BY created_at DESC") + #@organizations = Organization.all.order("created_at desc") + @organization_count = @organizations.count + @organization_pages = Paginator.new @organization_count, 30, params['page'] || 1 + @organizations = paginateHelper @organizations,30 + + @page = (params['page'] || 1).to_i - 1 respond_to do |format| format.html end @@ -378,17 +408,14 @@ class AdminController < ApplicationController #学校列表 def schools - @school_name = params[:school_name] - if @school_name && @school_name != '' - @schools = School.where("name like '%#{@school_name}%'") - elsif @school_name.nil? - @schools = [] - else @school_name && @school_name == ' ' - @schools = School.where('1=1') - end + + @schools = School.find_by_sql("SELECT * FROM schools ORDER BY created_at DESC") @school_count = @schools.count - @school_pages = Paginator.new @school_count, 100, params['page'] || 1 - @schools = paginateHelper @schools,100 + + @school_pages = Paginator.new @school_count, 30, params['page'] || 1 + @schools = paginateHelper @schools,30 + + @page = (params['page'] || 1).to_i - 1 respond_to do |format| format.html end diff --git a/app/controllers/at_controller.rb b/app/controllers/at_controller.rb index 456306c64..fe16385f4 100644 --- a/app/controllers/at_controller.rb +++ b/app/controllers/at_controller.rb @@ -8,6 +8,15 @@ class AtController < ApplicationController users = find_at_users(params[:type], params[:id]) @users = users @users = users.uniq { |u| u.id }.delete_if { |u| u.id == User.current.id }.sort{|x,y| to_pinyin(x.show_name) <=> to_pinyin(y.show_name)} if users + + #加上all + if @users.size > 0 + allUser = Struct.new(:id, :name).new + allUser.id = @users.map{|u| u.id}.join(",") + allUser.name = "all" + @users.insert(0, allUser) + end + @users end private diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb index e974f26b4..9853b4dc1 100644 --- a/app/controllers/attachments_controller.rb +++ b/app/controllers/attachments_controller.rb @@ -103,6 +103,9 @@ class AttachmentsController < ApplicationController direct_download_history end else + # 记录用户行为 + record_user_actions(params[:id]) + # 直接下载历史版本 direct_download_history end end @@ -113,6 +116,14 @@ class AttachmentsController < ApplicationController redirect_to "http://" + (Setting.host_name.to_s) +"/file_not_found.html" end + def record_user_actions id + if params[:action] == "download_history" + UserActions.create(:action_id => id, :action_type => "AttachmentHistory", :user_id => User.current.id) unless id.nil? + elsif params[:action] == "download" + UserActions.create(:action_id => id, :action_type => "Attachment", :user_id => User.current.id) unless id.nil? + end + end + def download # modify by nwb # 下载添加权限设置 @@ -135,6 +146,8 @@ class AttachmentsController < ApplicationController direct_download end else + # 记录用户行为 + record_user_actions(params[:id]) direct_download end end diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 24f5fd52c..dfa30915e 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -7,6 +7,7 @@ class CoursesController < ApplicationController helper :members helper :words helper :attachments + helper :files helper :activity_notifys before_filter :auth_login1, :only => [:show, :course_activity, :feedback] diff --git a/app/controllers/files_controller.rb b/app/controllers/files_controller.rb index b6ac99f11..7ae1b85f8 100644 --- a/app/controllers/files_controller.rb +++ b/app/controllers/files_controller.rb @@ -207,8 +207,7 @@ class FilesController < ApplicationController sort = "created_on DESC" end if keywords != "%%" - resultSet = Attachment.where("attachments.container_type = 'Course' And attachments.container_id = '#{course.id}' AND filename LIKE :like ", like: "%#{keywords}%"). - reorder(sort) + resultSet = Attachment.where("attachments.container_type = 'Course' And attachments.container_id = '#{course.id}' AND filename LIKE :like ", like: "%#{keywords}%").reorder(sort) else resultSet = Attachment.where("attachments.container_type = 'Course' And attachments.container_id = '#{course.id}' "). reorder(sort) end diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 3532a9e4c..091e2b86b 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -17,9 +17,9 @@ class HomeworkCommonController < ApplicationController @page = params[:page] ? params[:page].to_i + 1 : 0 @is_teacher = User.current.logged? && (User.current.admin? || User.current.allowed_to?(:as_teacher,@course)) if @is_teacher - @homeworks = @course.homework_commons.order("updated_at desc").limit(10).offset(@page * 10) + @homeworks = @course.homework_commons.order("created_at desc").limit(10).offset(@page * 10) else - @homeworks = @course.homework_commons.where("publish_time <= '#{Date.today}'").order("updated_at desc").limit(10).offset(@page * 10) + @homeworks = @course.homework_commons.where("publish_time <= '#{Date.today}'").order("created_at desc").limit(10).offset(@page * 10) end @is_student = User.current.logged? && (User.current.admin? || (User.current.member_of_course?(@course) && !@is_teacher)) @is_new = params[:is_new] @@ -51,8 +51,14 @@ class HomeworkCommonController < ApplicationController @user = User.current @is_in_course = params[:is_in_course].to_i @course_activity = params[:course_activity].to_i - respond_to do |format| - format.html{render :layout => 'new_base_user'} + if @is_in_course == 1 || @course_activity == 1 + respond_to do |format| + format.html{render :layout => 'base_courses'} + end + else + respond_to do |format| + format.html{render :layout => 'new_base_user'} + end end end diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index 239253d82..da0eb8009 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -225,7 +225,7 @@ class OrganizationsController < ApplicationController condition = "%#{params[:name].strip}%".gsub(" ","") end sql = "select courses.* from courses inner join members on courses.id = members.course_id where members.user_id = #{User.current.id} and courses.name like '#{condition}'"+ - "and courses.id not in (select distinct org_courses.course_id from org_courses where org_courses.organization_id = #{@organization.id})" + "and courses.id not in (select distinct org_courses.course_id from org_courses where org_courses.organization_id = #{@organization.id}) and courses.is_delete=0" #user_courses = Course.find_by_sql(sql) @courses = Course.find_by_sql(sql) # @added_course_ids = @organization.courses.map(&:id) @@ -269,7 +269,7 @@ class OrganizationsController < ApplicationController condition = "%#{params[:name].strip}%".gsub(" ","") end sql = "select projects.* from projects inner join members on projects.id = members.project_id where members.user_id = #{User.current.id} and projects.status != 9 and projects.name like '#{condition}'" + - " and projects.id not in (select org_projects.project_id from org_projects where organization_id = #{@organization.id})" + " and projects.id not in (select org_projects.project_id from org_projects where organization_id = #{@organization.id}) and status=1" #user_projects = Course.find_by_sql(sql) @projects = Course.find_by_sql(sql) # @added_course_ids = @organization.projects.map(&:id) diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index aa77e2d51..9cdb1fc07 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -1,3 +1,4 @@ +#encoding: utf-8 class StudentWorkController < ApplicationController layout "base_courses" include StudentWorkHelper @@ -62,6 +63,13 @@ class StudentWorkController < ApplicationController homework_message.update_attributes(:viewed => true) if homework_message.viewed == 0 end end + + #修改作品提示消息更新 + student_work_messages = CourseMessage.where("user_id =? and course_id =? and course_message_type =? and viewed =?", User.current.id, @homework.course, StudentWork.name, 0) + student_work_messages.each do |message| + message.update_attribute(:viewed, true) + end + # 作品打分消息状态更新 studentworks_scores = CourseMessage.where("user_id =? and course_id =? and course_message_type =? and viewed =?", User.current.id, @homework.course, "StudentWorksScore", 0) studentworks_scores.each do |studentworks_score| @@ -282,7 +290,7 @@ class StudentWorkController < ApplicationController @submit_result = true student_work = StudentWork.find(params[:student_work_id]) if params[:student_work_id] student_work ||= StudentWork.new - student_work.name = params[:student_work][:name] + student_work.name = params[:student_work][:name] == "#{@homework.name}的作品提交(可修改)" ? "#{@homework.name}的作品提交" : params[:student_work][:name] student_work.description = params[:student_work][:description] student_work.homework_common_id = @homework.id student_work.user_id = User.current.id @@ -368,6 +376,8 @@ class StudentWorkController < ApplicationController @work.save_attachments(params[:attachments]) render_attachment_warning_if_needed(@work) if @work.save + #如果学生作品被打分后修改,应该给老师提示 + send_message_to_teacher(@work) if @homework.homework_type == 3 @student_work_project = @homework.student_work_projects.where("user_id=?",User.current.id).first student_work_projects = @homework.student_work_projects.where("student_work_id=? and is_leader =?",@work.id,0) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 33b6e8643..d9a0709b9 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -573,8 +573,8 @@ class UsersController < ApplicationController @r_sort = @b_sort == "desc" ? "asc" : "desc" @user = User.current search = params[:name].to_s.strip.downcase - type_ids = params[:property] ? "(" + params[:property] + ")" : "(1, 2, 3)" - if(params[:type].blank? || params[:type] == "1") #全部 + type_ids = params[:property]=="" || params[:property].nil? ? "(1, 2, 3)" : "(" + params[:property] + ")" + if(params[:type].blank? || params[:type] == "1") #全部 visible_course = Course.where("is_public = 1 && is_delete = 0") visible_course_ids = visible_course.empty? ? "(-1)" : "(" + visible_course.map{|course| course.id}.join(",") + ")" all_homeworks = HomeworkCommon.where("course_id in #{visible_course_ids} and publish_time <= '#{Date.today}'") @@ -717,6 +717,7 @@ class UsersController < ApplicationController end student_work.save + send_message_to_teacher(student_work) homework.update_attributes(:updated_at => Time.now) update_course_activity(homework.class,homework.id) update_user_activity(homework.class,homework.id) @@ -2473,13 +2474,13 @@ class UsersController < ApplicationController # 资源库 分为全部 课程资源 项目资源 附件 def user_resource - @order, @b_sort = params[:order] || "created_on", params[:sort] || "asc" - @score = @b_sort == "desc" ? "asc" : "desc" # 别人的资源库是没有权限去看的 if User.current.id.to_i != params[:id].to_i render_403 return end + @order, @b_sort = params[:order] || "created_on", params[:sort] || "asc" + @score = @b_sort == "desc" ? "asc" : "desc" user_course_ids = User.current.courses.map { |c| c.id} user_project_ids = User.current.projects.map {|p| p.id} # user_org_ids = User.current.organizations.map {|o| o.id} @@ -2533,6 +2534,8 @@ class UsersController < ApplicationController render_403 return end + @resource_id = params[:project_id].nil? ? (params[:course_id].nil? ? params[:subfield_file_id] : params[:course_id]) : params[:project_id] + @resource_type = params[:project_id].nil? ? (params[:course_id].nil? ? "SubfieldFile" : "Course") : "Project" @user = User.find(params[:id]) @order, @b_sort = params[:order] || "created_on", params[:sort] || "asc" @score = @b_sort == "desc" ? "asc" : "desc" @@ -2561,16 +2564,18 @@ class UsersController < ApplicationController end def import_resources_search + if User.current.id.to_i != params[:id].to_i + render_403 + return + end + @resource_id = params[:mul_id] + @resource_type = params[:mul_type] @order, @b_sort = params[:order] || "created_on", params[:sort] || "asc" @score = @b_sort == "desc" ? "asc" : "desc" @user = User.current @switch_search = params[:name].nil? ? " " : params[:name] search = "%#{@switch_search.strip.downcase}%" # 别人的资源库是没有权限去看的 - if User.current.id.to_i != params[:id].to_i - render_403 - return - end if(params[:type].blank? || params[:type] == "1") # 我的资源 # 修正:我的资源库的话,那么应该是我上传的所有资源加上,我加入的课程、项目、组织的所有资源 user_course_ids = User.current.courses.map { |c| c.id} diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 0c2b14277..7e463f5f4 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2137,6 +2137,20 @@ module ApplicationHelper end + #如果学生作品被打分后修改,应该给老师提示 + def send_message_to_teacher student_work + if StudentWork === student_work + if student_work.student_works_scores.any? + course = student_work.homework_common.course + course.members.map(&:user_id).uniq.each do|user_id| + if User.find(user_id).allowed_to?(:as_teacher, course) + student_work.course_messages << CourseMessage.new(:user_id => user_id, :course_id => course.id, :viewed => false, :status => 1) + end + end + end + end + end + private def wiki_helper diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index d98de27f6..37c7deb4c 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -865,7 +865,7 @@ module CoursesHelper # 学生按作业总分排序,取前8个 def hero_homework_score(course, score_sort_by) sql_select = "SELECT members.*,( - SELECT SUM(IF(student_works.final_score is null,null,student_works.final_score - student_works.absence_penalty - student_works.late_penalty)) + SELECT SUM(IF(student_works.final_score is null,null,IF(student_works.final_score = 0, 0, student_works.final_score - student_works.absence_penalty - student_works.late_penalty))) FROM student_works,homework_commons WHERE student_works.homework_common_id = homework_commons.id AND homework_commons.course_id = #{course.id} diff --git a/app/helpers/school_helper.rb b/app/helpers/school_helper.rb index 0528cb7ac..075d2b039 100644 --- a/app/helpers/school_helper.rb +++ b/app/helpers/school_helper.rb @@ -1,2 +1,15 @@ module SchoolHelper + def schoolMember_num school + count = student_num(school) + teacher_num(school) + count.to_s + end + + def student_num school + UserExtensions.find_by_sql("SELECT * FROM user_extensions WHERE occupation = '#{school.name}' AND identity = '1'").count + end + + def teacher_num school + UserExtensions.find_by_sql("SELECT * FROM user_extensions AS ue, schools AS s WHERE ue.school_id = s.id AND s.name = '#{school.name}' AND ue.identity = '0'").count + end + end diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index bdd34d80d..44b919121 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -62,7 +62,7 @@ module UsersHelper when 'Course' result = current_time_and_term_resource content when 'Project' - result = content.name + "(" + content.id.to_s + ")" + result = content.name when 'Issue' result = content.subject when 'Message' diff --git a/app/models/course_activity.rb b/app/models/course_activity.rb index a02eb750c..96ec6e355 100644 --- a/app/models/course_activity.rb +++ b/app/models/course_activity.rb @@ -66,8 +66,8 @@ class CourseActivity < ActiveRecord::Base # 发布新课导语 # 导语要放置在课程创建信息之后 - # 导语 def add_course_lead + # 避免空数据迁移报错问题 if self.course_act_type == "Course" and Message.where("id=12440").any? lead_message = Message.find(12440) name = lead_message.subject @@ -75,7 +75,7 @@ class CourseActivity < ActiveRecord::Base # message的status状态为0为正常,为1表示创建课程时发送的message # author_id 默认为课程使者创建 message = Message.create(:subject => name, :content => content, :board_id => self.course.boards.first.id, :author_id => 1 , :sticky => true, :status => true ) - # 更新的目的是为了排序,因为该条动态的时间可能与课程创建的动态创建时间一直 + # 更新的目的是为了排序,因为该条动态的时间可能与课程创建的动态创建时间一致 message.course_acts.first.update_attribute(:updated_at, message.course_acts.first.updated_at + 1) if message.course_acts.first end end diff --git a/app/models/issue.rb b/app/models/issue.rb index c82f6f0be..0d72407ba 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -84,7 +84,9 @@ class Issue < ActiveRecord::Base attr_reader :current_journal # fq - after_create :act_as_activity,:be_user_score_new_issue,:act_as_forge_activity, :act_as_forge_message, :act_as_at_message, :add_issues_count + after_create :act_as_activity,:be_user_score_new_issue,:act_as_forge_activity, :act_as_forge_message, + act_as_at_message(:description, :author_id), :add_issues_count + after_update :be_user_score,:update_activity after_destroy :down_user_score, :decrease_issues_count # after_create :be_user_score @@ -165,12 +167,12 @@ class Issue < ActiveRecord::Base end # at 功能添加消息提醒 - def act_as_at_message - users = self.description.scan //m - users && users.flatten.uniq.each do |uid| - self.at_messages << AtMessage.new(user_id: uid, sender_id: self.author_id) - end - end + # def act_as_at_message + # users = self.description.scan //m + # users && users.flatten.uniq.each do |uid| + # self.at_messages << AtMessage.new(user_id: uid, sender_id: self.author_id) + # end + # end # 创建issue的时候,issues_count加1 def add_issues_count diff --git a/app/models/journal.rb b/app/models/journal.rb index c37b8d2c5..fd67e8a62 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -51,7 +51,7 @@ class Journal < ActiveRecord::Base before_create :split_private_notes, :add_journals_count # fq - after_save :act_as_activity,:be_user_score, :act_as_forge_message, :act_as_at_message + after_save :act_as_activity,:be_user_score, :act_as_forge_message, act_as_at_message(:notes, :user_id) after_create :update_issue_time # end #after_destroy :down_user_score @@ -186,13 +186,6 @@ class Journal < ActiveRecord::Base end end - def act_as_at_message - users = self.notes.scan //m - users && users.flatten.uniq.each do |uid| - self.at_messages << AtMessage.new(user_id: uid, sender_id: self.user_id) - end - end - # 更新用户分数 -by zjc def be_user_score #新建了缺陷留言且留言不为空,不为空白 diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb index dae779b65..fa5beb813 100644 --- a/app/models/journals_for_message.rb +++ b/app/models/journals_for_message.rb @@ -68,7 +68,9 @@ class JournalsForMessage < ActiveRecord::Base has_many :at_messages, as: :at_message, dependent: :destroy validates :notes, presence: true, if: :is_homework_jour? - after_create :act_as_activity, :act_as_course_activity, :act_as_course_message, :act_as_at_message, :act_as_user_feedback_message, :act_as_principal_activity, :act_as_student_score + after_create :act_as_activity, :act_as_course_activity, :act_as_course_message, + act_as_at_message(:notes, :user_id), :act_as_user_feedback_message, + :act_as_principal_activity, :act_as_student_score after_create :reset_counters! #after_update :update_activity after_destroy :reset_counters! @@ -253,12 +255,7 @@ class JournalsForMessage < ActiveRecord::Base end end - def act_as_at_message - users = self.notes.scan //m - users && users.flatten.uniq.each do |uid| - self.at_messages << AtMessage.new(user_id: uid, sender_id: self.user_id) - end - end + # 用户留言消息通知 def act_as_user_feedback_message # 主留言 diff --git a/app/models/message.rb b/app/models/message.rb index 0ddc6f8e0..d697db236 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -81,7 +81,8 @@ class Message < ActiveRecord::Base after_update :update_messages_board, :update_activity after_destroy :reset_counters!,:down_user_score,:delete_kindeditor_assets, :decrease_boards_count, :down_course_score - after_create :act_as_activity,:act_as_course_activity,:be_user_score,:act_as_forge_activity, :act_as_system_message, :send_mail, :act_as_student_score, :act_as_at_message + after_create :act_as_activity,:act_as_course_activity,:be_user_score,:act_as_forge_activity, + :act_as_system_message, :send_mail, :act_as_student_score, act_as_at_message(:content, :author_id) #before_save :be_user_score scope :visible, lambda {|*args| @@ -287,13 +288,6 @@ class Message < ActiveRecord::Base end end - def act_as_at_message - users = self.content.scan //m - users && users.flatten.uniq.each do |uid| - self.at_messages << AtMessage.new(user_id: uid, sender_id: self.author_id) - end - end - #更新用户分数 -by zjc def be_user_score #新建message且无parent的为发帖 diff --git a/app/models/principal.rb b/app/models/principal.rb index dd376f609..2c8465538 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -42,9 +42,9 @@ class Principal < ActiveRecord::Base if q.blank? where({}) else - pattern = "%#{q}%" + pattern = "%#{q}%".gsub("/","//").gsub("_","/_") # sql = %w(login firstname lastname mail).map {|column| "LOWER(#{table_name}.#{column}) LIKE LOWER(:p)"}.join(" OR ") - sql= "LOWER(concat(lastname,firstname)) LIKE LOWER(:p) or LOWER(login) LIKE LOWER(:p) or LOWER(mail) LIKE LOWER(:p)" + sql= "LOWER(concat(lastname,firstname)) LIKE LOWER(:p) or LOWER(login) LIKE LOWER(:p) or LOWER(mail) LIKE LOWER(:p) escape '/'" params = {:p => pattern} if q =~ /^(.+)\s+(.+)$/ a, b = "#{$1}%", "#{$2}%" diff --git a/app/models/user_actions.rb b/app/models/user_actions.rb new file mode 100644 index 000000000..de2388911 --- /dev/null +++ b/app/models/user_actions.rb @@ -0,0 +1,4 @@ +class UserActions < ActiveRecord::Base + attr_accessible :action_id, :action_type, :user_id + has_many :users +end diff --git a/app/views/admin/course_resource_list.html.erb b/app/views/admin/course_resource_list.html.erb index 4316555f7..2e83a96aa 100644 --- a/app/views/admin/course_resource_list.html.erb +++ b/app/views/admin/course_resource_list.html.erb @@ -10,16 +10,16 @@ 资源名称 - 资源大小 + <%= link_to "资源大小",admin_course_resource_list_path(:sort => "file_size") %> 资源类型 - 上传时间 + <%= link_to "上传时间",admin_course_resource_list_path(:sort => "file_upload") %> - 下载次数 + <%= link_to "下载次数",admin_course_resource_list_path(:sort => "file_download_times") %> 上传者 @@ -61,4 +61,6 @@ \ No newline at end of file + + +<% html_title(l(:label_course_resource_list)) -%> \ No newline at end of file diff --git a/app/views/admin/courses.html.erb b/app/views/admin/courses.html.erb index 1615bccbc..2505b3d06 100644 --- a/app/views/admin/courses.html.erb +++ b/app/views/admin/courses.html.erb @@ -73,4 +73,8 @@ + + <% html_title(l(:label_course_all)) -%> diff --git a/app/views/admin/excellent_courses.html.erb b/app/views/admin/excellent_courses.html.erb index e21ba32aa..59426455a 100644 --- a/app/views/admin/excellent_courses.html.erb +++ b/app/views/admin/excellent_courses.html.erb @@ -72,4 +72,6 @@ <% end %> - \ No newline at end of file + + +<% html_title(l(:label_excellent_courses_list)) -%> \ No newline at end of file diff --git a/app/views/admin/latest_login_teachers.html.erb b/app/views/admin/latest_login_teachers.html.erb index 05f20ba8d..c1889bce1 100644 --- a/app/views/admin/latest_login_teachers.html.erb +++ b/app/views/admin/latest_login_teachers.html.erb @@ -45,6 +45,9 @@ 用户身份 + + 用户单位 + @@ -59,7 +62,7 @@ <%=format_time(teacher.last_login_on) %> - <%=teacher.user_id %> + <%= teacher.user_id %> <%= teacher.login%><% else %><%=teacher.try(:realname) %><% end %>'> <% if teacher.try(:realname) == ' '%> @@ -69,11 +72,14 @@ <% end %> - <%=link_to(teacher.login, user_path(teacher.user_id)) %> + <%= link_to(teacher.login, user_path(teacher.user_id)) %> 老师 + + <%= teacher.school_id.nil? ? "" : (School.find teacher.school_id).try(:name) %> + <% end %> @@ -82,3 +88,5 @@ + +<% html_title(l(:label_latest_login_teacher_list)) -%> \ No newline at end of file diff --git a/app/views/admin/latest_login_users.html.erb b/app/views/admin/latest_login_users.html.erb index 17680a8c8..a9e8e2feb 100644 --- a/app/views/admin/latest_login_users.html.erb +++ b/app/views/admin/latest_login_users.html.erb @@ -46,6 +46,9 @@ 用户身份 + + 用户单位 + @@ -88,6 +91,17 @@ <% end %> <% end%> + + <% unless user.user_extensions.nil? %> + <% if user.user_extensions.identity.to_i == 0 %> + + <% occupation = user.user_extensions.school_id.nil? ? "" : (School.where("id =?", user.user_extensions.school_id)).first.try(:name) %> + <%= occupation.blank? ? user.user_extensions.occupation : occupation %> + <% else %> + <%= user.user_extensions.occupation %> + <% end %> + <% end %> + <% end %> diff --git a/app/views/admin/organization.html.erb b/app/views/admin/organization.html.erb index 582b8b44a..02b897f80 100644 --- a/app/views/admin/organization.html.erb +++ b/app/views/admin/organization.html.erb @@ -40,4 +40,8 @@ -<% html_title(l(:label_project_plural)) -%> +
    + <%= pagination_links_full @organization_pages, @organization_count ,:per_page_links => true, :remote => false, :flag => true %> +
+ + diff --git a/app/views/admin/project_resource_list.html.erb b/app/views/admin/project_resource_list.html.erb index c245f73b8..8e8bd8c92 100644 --- a/app/views/admin/project_resource_list.html.erb +++ b/app/views/admin/project_resource_list.html.erb @@ -10,16 +10,16 @@ 资源名称 - 资源大小 + <%= link_to "资源大小",admin_project_resource_list_path(:sort => "file_size") %> 资源类型 - 上传时间 + <%= link_to "上传时间",admin_project_resource_list_path(:sort => "file_upload") %> - 下载次数 + <%= link_to "下载次数",admin_project_resource_list_path(:sort => "file_download_times") %> 上传者 @@ -61,4 +61,6 @@ \ No newline at end of file + + +<% html_title(l(:label_project_resource_list)) -%> \ No newline at end of file diff --git a/app/views/admin/projects.html.erb b/app/views/admin/projects.html.erb index d12e85856..5e3a927da 100644 --- a/app/views/admin/projects.html.erb +++ b/app/views/admin/projects.html.erb @@ -73,6 +73,10 @@ + + <% html_title(l(:label_project_plural)) -%> -
+
编辑作业
diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index 4b82f8665..67bb4d59d 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -9,7 +9,8 @@ $(function(){ $("#RSide").removeAttr("id"); $("#Container").css("width","1000px"); - if(<%= @is_edit %>) { + is_edit = <%= @is_edit.present? && @is_edit == true %> + if(is_edit) { issueEditShow(); } }); diff --git a/app/views/layouts/base_org.html.erb b/app/views/layouts/base_org.html.erb index f2ece1f35..faf141600 100644 --- a/app/views/layouts/base_org.html.erb +++ b/app/views/layouts/base_org.html.erb @@ -90,8 +90,8 @@ <% end%>
-
- <%= link_to @organization.name, organization_path(@organization.id), :class=>"pr_info_name fl c_dark fb break_word" %> +
+ <%= link_to truncate(@organization.name,:length => 26), organization_path(@organization.id), :class=>"pr_info_name c_dark fb break_word" %> <% if User.current.logged? %> <% if @organization.is_public? %> <%= l(:label_public)%> diff --git a/app/views/org_document_comments/new.html.erb b/app/views/org_document_comments/new.html.erb index fea89459b..679b35e5b 100644 --- a/app/views/org_document_comments/new.html.erb +++ b/app/views/org_document_comments/new.html.erb @@ -32,7 +32,10 @@ location.href = document.referrer; } -
+
+
<%= OrgSubfield.try(:find, params[:field_id]).try(:name) %>
+
+
<%= form_tag organization_org_document_comments_path(:organization_id => @organization.id, :field_id => params[:field_id]), :id => 'new_org_document_form' do |f| %>
diff --git a/app/views/organizations/_org_left_subfield_list.html.erb b/app/views/organizations/_org_left_subfield_list.html.erb index 53003c85a..7e49d1780 100644 --- a/app/views/organizations/_org_left_subfield_list.html.erb +++ b/app/views/organizations/_org_left_subfield_list.html.erb @@ -63,7 +63,7 @@
    - <%= render :partial => 'layouts/org_courses',:locals=>{:courses=>organization.courses.reorder('created_at').uniq.limit(5),:org_id=>organization.id,:page=>1}%> + <%= render :partial => 'layouts/org_courses',:locals=>{:courses=>organization.courses.where("is_delete=0").reorder('created_at').uniq.limit(5),:org_id=>organization.id,:page=>1}%>
@@ -77,7 +77,7 @@
    - <%= render :partial => 'layouts/org_projects',:locals=>{:projects=>organization.projects.reorder('created_at').uniq.limit(5),:org_id=>organization.id,:page=>1}%> + <%= render :partial => 'layouts/org_projects',:locals=>{:projects=>organization.projects.where("status=1").reorder('created_at').uniq.limit(5),:org_id=>organization.id,:page=>1}%>
diff --git a/app/views/organizations/_show_org_document.html.erb b/app/views/organizations/_show_org_document.html.erb index e3ed492a0..cf68d71f5 100644 --- a/app/views/organizations/_show_org_document.html.erb +++ b/app/views/organizations/_show_org_document.html.erb @@ -10,6 +10,9 @@ TO  <%= link_to document.organization.name, organization_path(document.organization), :class => "newsBlue" %> | <%= document.org_subfield_id.nil? ? "组织文章" :"#{OrgSubfield.find(document.org_subfield_id).name}" %> + <% if @organization.home_id == document.id %> + 已设为首页 + <% end %>
<%= link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id) %>
diff --git a/app/views/organizations/setting.html.erb b/app/views/organizations/setting.html.erb index ce02a0557..c0ca2cfe4 100644 --- a/app/views/organizations/setting.html.erb +++ b/app/views/organizations/setting.html.erb @@ -19,8 +19,11 @@ '<%= check_uniq_organizations_path%>'+'?org_name='+$("#organization_name").val().trim()+"&config_page=Y" + "&org_id="+id ) } - function update_org(id){ - check_uniq(id); + function update_org(id, old_value, input_value){ + if (old_value == input_value) + { + check_uniq(id); + } if( $checkName){ $("#edit_organization_"+id).submit(); } @@ -77,7 +80,7 @@  允许游客下载 <%= @organization.is_public? ? "" : "(私有组织不允许游客下载资源)" %>
- 保存 + 保存 <% end %>
diff --git a/app/views/student_work/_student_work_list.html.erb b/app/views/student_work/_student_work_list.html.erb index f9f55456b..8b2f57723 100644 --- a/app/views/student_work/_student_work_list.html.erb +++ b/app/views/student_work/_student_work_list.html.erb @@ -46,8 +46,8 @@ <% end%>