diff --git a/app/controllers/activity_notifys_controller.rb b/app/controllers/activity_notifys_controller.rb index ad9818fcc..06f3ff86d 100644 --- a/app/controllers/activity_notifys_controller.rb +++ b/app/controllers/activity_notifys_controller.rb @@ -22,6 +22,9 @@ class ActivityNotifysController < ApplicationController list = query.order('is_read,id desc').limit(limit).offset(@obj_pages.offset).all(); events=[]; for item in list + if item.activity.nil? + next + end event = item.activity; event.set_notify_id(item.id) event.set_notify_is_read(item.is_read) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 9e06ea83c..a0a61786c 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -838,7 +838,7 @@ class CoursesController < ApplicationController sql_select = "" if groupid == 0 sql_select = "SELECT members.*,( - SELECT AVG(student_works.final_score) + SELECT SUM(student_works.final_score) FROM student_works,homework_commons WHERE student_works.homework_common_id = homework_commons.id AND homework_commons.course_id = #{@course.id} @@ -850,7 +850,7 @@ class CoursesController < ApplicationController WHERE members.course_id = #{@course.id} ORDER BY score #{score_sort_by}" else sql_select = "SELECT members.*,( - SELECT AVG(student_works.final_score) + SELECT SUM(student_works.final_score) 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/controllers/forums_controller.rb b/app/controllers/forums_controller.rb index 253e1d28d..2b44d51de 100644 --- a/app/controllers/forums_controller.rb +++ b/app/controllers/forums_controller.rb @@ -86,7 +86,7 @@ class ForumsController < ApplicationController order(sort_clause). preload(:author, {:last_reply => :author}). all - + @memos flash.now[:error] = "#{l :label_memo_create_fail}: #{@memo.errors.full_messages[0]}" # back_error_page = @memo.parent_id.nil? ? forum_path(@forum) : forum_memo_path(@forum, @memo.parent_id) format.html { render action: :show, layout: 'base_forums' }#, error: "#{l :label_memo_create_fail}: #{@memo.errors.full_messages[0]}" } @@ -122,14 +122,14 @@ class ForumsController < ApplicationController @topic_count = @forum.topics.count @topic_pages = Paginator.new @topic_count, per_page_option, params['page'] @memos = @forum.topics. - reorder("#{Memo.table_name}.sticky DESC"). + # reorder("#{Memo.table_name}.sticky DESC"). includes(:last_reply). limit(@topic_pages.per_page). offset(@topic_pages.offset). order(sort_clause). preload(:author, {:last_reply => :author}). all - + @memos # @offset, @limit = api_offset_and_limit({:limit => 10}) # @forum = Forum.find(params[:id]) # @memos_all = @forum.topics diff --git a/app/controllers/organization_controller.rb b/app/controllers/organization_controller.rb index 62e6b85f6..748fc1732 100644 --- a/app/controllers/organization_controller.rb +++ b/app/controllers/organization_controller.rb @@ -1,5 +1,5 @@ class OrganizationController < ApplicationController - layout 'base_projects' + # layout 'base_projects' before_filter :require_admin, :except => [:index] def index diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 23053a48e..0655c323b 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -104,13 +104,20 @@ class UsersController < ApplicationController #added by young def user_projects - 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 + @memberships = @memberships.sort {|a,b| b.created_on.to_i <=> a.created_on.to_i} + # unless @memberships.nil? + # @user_projects = [] + # @memberships.each do |membership| + # @user_projects << membership.project + # end + # @user_projects = @user_projects.sort {|a,b| b.created_on.to_i <=> a.created_on.to_i} + # 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 @@ -256,9 +263,7 @@ class UsersController < ApplicationController membership.sort! {|older, newer| newer.created_on <=> older.created_on } @memberships = [] - membership.collect { |e| - @memberships.push(e) - } + membership.collect { |e| @memberships.push(e)} ## 判断课程是否过期 [需封装] @memberships_doing = [] @memberships_done = [] diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index a67259efd..597d5749c 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -550,8 +550,9 @@ module CoursesHelper end if cur_course_term == "秋季学期" && course.time == (year_now + 1) && course.term == "春季学期" is_next_term = true - elsif cur_course_term == "春季学期" && course.time == year_now && course.term == "秋季学期" + elsif cur_course_term == "春季学期" && course.time == year_now && course.term == "夏季学期" is_next_term = true + elsif cur_course_term == "夏季学期" && course.time == year_now && course.term == "秋季学期" end is_current_term || is_next_term end diff --git a/app/helpers/homework_common_helper.rb b/app/helpers/homework_common_helper.rb index 465df62da..a2ff6dbab 100644 --- a/app/helpers/homework_common_helper.rb +++ b/app/helpers/homework_common_helper.rb @@ -3,7 +3,8 @@ module HomeworkCommonHelper #迟交扣分下拉框 def late_penalty_option type = [] - for i in (0..5) + type << l(:lable_unset) + for i in (1..5) option = [] option << i option << i @@ -29,7 +30,8 @@ module HomeworkCommonHelper #缺评扣分 def absence_penalty_option type = [] - i = 0 + i = 1 + type << l(:lable_unset) while i <= 5 option = [] option << i @@ -50,4 +52,32 @@ module HomeworkCommonHelper end link end + + #评分规则显示 + def scoring_rules late_penalty,homework_id,is_teacher,absence_penalty=nil + if absence_penalty + if late_penalty.to_i == 0 && absence_penalty.to_i == 0 + notice = "尚未设置评分规则" + if is_teacher + notice += ",请 " + link_to("设置",edit_homework_common_path(homework_id),:class => "c_green") + end + elsif late_penalty.to_i != 0 && absence_penalty.to_i == 0 + notice = "迟交扣#{late_penalty}分,缺评扣分未设置" + elsif late_penalty.to_i == 0 && absence_penalty.to_i != 0 + notice = "迟交扣分未设置,缺评一个作品扣#{absence_penalty}分" + elsif late_penalty.to_i != 0 && absence_penalty.to_i != 0 + notice = "迟交扣#{late_penalty}分,缺评一个作品扣#{absence_penalty}分" + end + else + if late_penalty.to_i == 0 + notice = "尚未设置评分规则" + if is_teacher + notice += ",请 " + link_to("设置",edit_homework_common_path(homework_id),:class => "c_green") + end + else + notice = "迟交扣#{late_penalty}分" + end + end + notice.html_safe + end end \ No newline at end of file diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 4f0821449..873760562 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -83,21 +83,24 @@ module IssuesHelper end end - # 获取优先级样式 + # 获取优先级样式 value值1 2 低 def get_issue_priority(value) issuetype = [] - if value == "紧急" || value == 1 + if value == "紧急" || value == 4 issuetype << "red_btn_cir ml10" issuetype << "紧急" - elsif value == "正常" || value == 3 + elsif value == "正常" || value == 2 issuetype << "green_btn_cir ml10" issuetype << "正常" - elsif value == "高" || value == 4 + elsif value == "高" || value == 3 issuetype << "orange_btn_cir ml10" issuetype << "高" - else + elsif value == "低" || value == 1 issuetype << "bgreen_btn_cir ml10" issuetype << "低" + else + issuetype << "red_btn_cir ml10" + issuetype << "立刻" end end diff --git a/app/models/member.rb b/app/models/member.rb index 057ea9570..292dd2034 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -143,6 +143,10 @@ class Member < ActiveRecord::Base StudentWork.joins(:homework_common).where("student_works.user_id = #{self.user_id} and homework_commons.course_id = #{self.course_id}").average(:final_score).try(:round, 2).to_f end + def student_work_score_sum + StudentWork.joins(:homework_common).where("student_works.user_id = #{self.user_id} and homework_commons.course_id = #{self.course_id}").sum(:final_score).try(:round, 2).to_f + end + protected def validate_role diff --git a/app/models/user.rb b/app/models/user.rb index b4723cceb..005c394a8 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -66,9 +66,9 @@ class User < Principal #每日一报、一事一报、不报 MAIL_NOTIFICATION_OPTIONS = [ - ['all', :label_user_mail_option_all], #['week', :label_user_mail_option_week], ['day', :label_user_mail_option_day], + ['all', :label_user_mail_option_all], ['none', :label_user_mail_option_none] ] diff --git a/app/views/boards/_course_show.html.erb b/app/views/boards/_course_show.html.erb index 3e1530e3f..b8bbf3d63 100644 --- a/app/views/boards/_course_show.html.erb +++ b/app/views/boards/_course_show.html.erb @@ -32,33 +32,31 @@
讨论区共有<%= @topic_count %>个帖子
+讨论区共有<%= @topic_count %>个帖子
<% if @topics.any? %> <% @topics.each do |topic| %>