diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb
index 652025fc3..20ae4c54e 100644
--- a/app/controllers/homework_attach_controller.rb
+++ b/app/controllers/homework_attach_controller.rb
@@ -1,4 +1,5 @@
class HomeworkAttachController < ApplicationController
+ include CoursesHelper
###############################
#判断当前角色权限时需先找到当前操作的project
before_filter :find_project_by_bid_id, :only => [:new]
@@ -241,6 +242,9 @@ class HomeworkAttachController < ApplicationController
@offset ||= @feedback_pages.offset
@jour = @jours[@offset, @limit]
@comprehensive_evaluation = @homework.journals_for_messages.where("is_comprehensive_evaluation is not null").order("created_on DESC")
+
+ @totle_score = score_for_homework @homework
+ @teaher_score = teacher_score_for_homework @homework
else
render_403 :message => :notice_not_authorized
end
diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb
index 0602e52d2..96ea4e28c 100644
--- a/app/helpers/courses_helper.rb
+++ b/app/helpers/courses_helper.rb
@@ -182,4 +182,28 @@ module CoursesHelper
def users_for_homework homework
homework.nil? ? [] : (homework.users + [homework.user])
end
+
+ #获取指定作业的最终评分
+ #最终评分 = 学生评分的平均分 * 0.4 +教师评分 * 0.6
+ def score_for_homework homework
+ return format("%.2f",(teacher_score_for_homework(homework).to_f * 0.6 + student_score_for_homework(homework).to_f * 0.4))
+ end
+
+ #获取作业的互评得分
+ def student_score_for_homework homework
+ member = searchPeopleByRoles(homework.bid.courses.first,TeacherRoles).first
+ student_stars = homework.rates(:quality).where("rater_id <> #{member.user_id}").select("stars")
+ student_stars_count = 0
+ student_stars.each do |star|
+ student_stars_count = student_stars_count + star.stars
+ end
+ return format("%.2f",student_stars_count / (student_stars.count == 0 ? 1 : student_stars.count))
+ end
+
+ #获取作业的教师评分
+ def teacher_score_for_homework homework
+ member = searchPeopleByRoles(homework.bid.courses.first,TeacherRoles).first
+ teacher_stars = homework.rates(:quality).where("rater_id = #{member.user_id}").select("stars").first
+ return format("%.2f",teacher_stars == nil ? 0 : teacher_stars.stars)
+ end
end
diff --git a/app/views/bids/_app_link.html.erb b/app/views/bids/_app_link.html.erb
new file mode 100644
index 000000000..645fe94f9
--- /dev/null
+++ b/app/views/bids/_app_link.html.erb
@@ -0,0 +1,8 @@
+<% for attachment in attachments %>
+ <%= link_to_attachment attachment, :class => 'icon icon-attachment', :download => true -%>
+ <% if attachment.is_text? %>
+ <%= link_to image_tag('magnifier.png'),
+ :controller => 'attachments', :action => 'show',
+ :id => attachment, :filename => attachment.filename %>
+ <% end %>
+<% end -%>
\ No newline at end of file
diff --git a/app/views/bids/_homework_list.html.erb b/app/views/bids/_homework_list.html.erb
index 42d6460a1..e1ca9e0fd 100644
--- a/app/views/bids/_homework_list.html.erb
+++ b/app/views/bids/_homework_list.html.erb
@@ -72,7 +72,7 @@
参与人员:
<% homework_users = "" %>
<% homework.users.each do |user| %>
- <% homework_users = homework_users + user.name %>
+ <% homework_users = homework_users + (is_teacher ? user.realname : user.name) %>
<% if user != homework.users.last %>
<% homework_users = homework_users + "、" %>
<% end %>
@@ -101,35 +101,49 @@
项目得分:
- <% if homework.project != nil %>
- 0分
- <% else %>
- 0分
- <% end %>
+
+ <% if homework.project != nil %>
+ 0分
+ <% else %>
+ 0分
+ <% end %>
+
|
提交文件:
- <%= link_to "打包下载", :controller => "zipdown", :action => "download_user_homework",:homework => homework%>
+ <% if is_evaluation %>
+ <%= link_to "打包下载", :controller => "zipdown", :action => "download_user_homework",:homework => homework%>
+ <% else %>
+ 未开启互评功能作业不允许下载
+ <% end %>
|
互评得分:
- <%= format("%.2f", homework.rate_averages.first.try(:avg).to_f ) %>分
- <%= link_to "学生互评>>",homework_attach_path(homework) %>
+ <%= student_score_for_homework(homework) %>分
+ <% if is_evaluation && is_student && (!users_for_homework(homework).include? User.current)%>
+ <%= link_to "学生互评>>",homework_attach_path(homework) %>
+ <% end %>
+
|
-
-
+ |
+ <% if is_evaluation %>
+ <%= render :partial => 'app_link', :locals => {:attachments => homework.attachments} %>
+ <% end %>
|
综评得分:
- <%= format("%.2f", homework.rate_averages.first.try(:avg).to_f ) %>分
- <%= link_to "教师评分>>",homework_attach_path(homework) %>
+ <%= score_for_homework homework %>分
+ <% if is_teacher %>
+ <%= link_to "教师评分>>",homework_attach_path(homework) %>
+ <% end %>
+
|
diff --git a/app/views/homework_attach/_comprehensive_evaluation.html.erb b/app/views/homework_attach/_comprehensive_evaluation.html.erb
index 08db30542..786659d95 100644
--- a/app/views/homework_attach/_comprehensive_evaluation.html.erb
+++ b/app/views/homework_attach/_comprehensive_evaluation.html.erb
@@ -1,23 +1,9 @@
<% is_teacher = is_course_teacher User.current,homework.bid.courses.first %>
<% if comprehensive_evaluation != nil && comprehensive_evaluation.count > 0 %>
- <% stars = homework.rates(:quality).where("rater_id = #{comprehensive_evaluation.first.user.id}").select("stars").first %>
作业综评:
-
-
- <% if stars != nil %>
-
- <% else %>
-
- <% end %>
-
-
-
-
-
+ <%= render :partial => 'show_score', locals: {:stars => teaher_score} %>
<%= comprehensive_evaluation.first.notes%>
diff --git a/app/views/homework_attach/_show_score.html.erb b/app/views/homework_attach/_show_score.html.erb
new file mode 100644
index 000000000..7c2403e10
--- /dev/null
+++ b/app/views/homework_attach/_show_score.html.erb
@@ -0,0 +1,14 @@
+
+
+ <% if stars != nil %>
+
+ <% else %>
+
+ <% end %>
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/homework_attach/show.html.erb b/app/views/homework_attach/show.html.erb
index 4ab6141dc..915485fee 100644
--- a/app/views/homework_attach/show.html.erb
+++ b/app/views/homework_attach/show.html.erb
@@ -49,7 +49,7 @@
平均评分:
- <%= rating_for @homework, :static => true, dimension: :quality, class: 'rateable div_inline' %>
+ <%= render :partial => 'show_score', :locals => {:stars => @totle_score} %>
|
发布时间:<%=format_time @homework.created_at %> |
@@ -110,17 +110,12 @@
- <% score = @homework.average(:quality).try(:avg).try(:round, 2).to_s %>
最终得分
- <% if score == "" %>
- 0分
- <% else %>
- <%= score %>分
- <% end %>
+ <%= @totle_score %>分
- <%= rating_for @homework, :static => true, dimension: :quality, class: 'rateable div_inline' %>
+ <%= render :partial => 'show_score', :locals => {:stars => @totle_score} %>
@@ -137,7 +132,7 @@
- <%= render :partial => 'comprehensive_evaluation', :locals => {:comprehensive_evaluation => @comprehensive_evaluation,:homework => @homework} %>
+ <%= render :partial => 'comprehensive_evaluation', :locals => {:comprehensive_evaluation => @comprehensive_evaluation,:homework => @homework, :teaher_score => @teaher_score} %>