From 27a30d44be0726630ff2911a34eeebc7e74f4dac Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Tue, 27 May 2014 20:01:21 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=88=A4=E6=96=AD=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E7=94=A8=E6=88=B7=E6=98=AF=E4=B8=8D=E6=98=AF=E4=B8=BA?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E8=80=81=E5=B8=88=E7=9A=84=E6=96=B9=E6=B3=95?= =?UTF-8?q?=202.=E5=A2=9E=E5=8A=A0=E4=BD=9C=E4=B8=9A=E7=BB=BC=E8=AF=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=203.=E5=85=B6=E4=BB=96=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E7=9A=84=E5=AD=A6=E7=94=9F=E6=98=AF=E4=B8=8D=E8=83=BD=E4=BA=92?= =?UTF-8?q?=E8=AF=84=E7=9A=84=EF=BC=8C=E5=8F=AA=E6=9C=89=E6=9C=AC=E9=97=A8?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=9A=84=E5=AD=A6=E7=94=9F=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E4=BA=92=E8=AF=84=204.=E4=BF=AE=E6=94=B9=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=AF=84=E8=AE=BA=E6=96=B9=E6=B3=95=205.=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=BD=93=E4=BD=9C=E4=B8=9A=E6=97=A0=E4=BA=BA=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=BD=9C=E4=B8=9A=E6=9C=80=E7=BB=88=E5=BE=97?= =?UTF-8?q?=E5=88=86=E5=8F=AA=E6=98=BE=E7=A4=BA=E4=B8=80=E4=B8=AA=E5=88=86?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_attach_controller.rb | 8 +-- app/helpers/bids_helper.rb | 21 ++++++++ app/helpers/courses_helper.rb | 24 ++++++--- app/models/homework_attach.rb | 4 +- app/views/bids/_homework_list.html.erb | 20 +++++--- app/views/homework_attach/_addjour.html.erb | 1 + .../_comprehensive_evaluation.html.erb | 50 ++++++++++++++++++ app/views/homework_attach/_showjour.html.erb | 27 +++++++++- app/views/homework_attach/addjours.js.erb | 13 +++-- app/views/homework_attach/show.html.erb | 51 +++++++++---------- ...coloum_to_homework_journals_for_message.rb | 5 ++ 11 files changed, 172 insertions(+), 52 deletions(-) create mode 100644 app/views/homework_attach/_comprehensive_evaluation.html.erb create mode 100644 db/migrate/20140527060344_add_coloum_to_homework_journals_for_message.rb diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb index 8eae8b855..64bfe5c40 100644 --- a/app/controllers/homework_attach_controller.rb +++ b/app/controllers/homework_attach_controller.rb @@ -102,11 +102,12 @@ class HomeworkAttachController < ApplicationController percent_m.to_s + "%" end @limit = 10 - @jours = @homework.journals_for_messages.order("created_on DESC") + @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation is null").order("created_on DESC") @feedback_count = @jours.count @feedback_pages = Paginator.new @feedback_count, @limit, params['page'] @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") end #删除留言 @@ -127,13 +128,14 @@ class HomeworkAttachController < ApplicationController #添加留言 def addjours @homework = HomeworkAttach.find(params[:jour_id]) - @homework.addjours User.current.id, params[:new_form][:user_message],0 - @jours = @homework.journals_for_messages.order("created_on DESC") + @add_jour = @homework.addjours User.current.id, params[:new_form][:user_message],0,params[:is_comprehensive_evaluation] + @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation is null").order("created_on DESC") @limit = 10 @feedback_count = @jours.count @feedback_pages = Paginator.new @feedback_count, @limit, params['page'] @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") respond_to do |format| format.js end diff --git a/app/helpers/bids_helper.rb b/app/helpers/bids_helper.rb index 721b30361..8b03d74cd 100644 --- a/app/helpers/bids_helper.rb +++ b/app/helpers/bids_helper.rb @@ -145,6 +145,27 @@ module BidsHelper people.include?(User.current) end + # 当前用户是否加入了此课程(包括教师) + def is_cur_course_user? bid + people = [] + #people << bid.author + course = bid.courses.first + course.members.each do |member| + people << member.user + end + people.include?(User.current) + end + #当前用户是不是指定课程的学生 + def is_cur_course_student? course + people = [] + course.members.each do |member| + if [5,10].include? member.roles.first.id + people << member.user + end + end + people.include?(User.current) + end + # def select_option_helper option # tmp = Hash.new # option.each do |project| diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index 45ebaf247..959d36cb0 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -137,14 +137,24 @@ module CoursesHelper Course.find_by_extra(try(extra)) end #判断制定用户是不是当前课程的老师 - def is_course_teacher user,project - is_teacher = false - searchTeacherAndAssistant(project).each do |teacher| - if user == teacher - is_teacher = true - break + def is_course_teacher user,course + people = [] + course.members.each do |member| + role_id = member.roles.first.id + if TeacherRoles.include? role_id + people << member.user + end + end + people.include?(user) + end + #当前用户是不是指定课程的学生 + def is_cur_course_student? course + people = [] + course.members.each do |member| + if StudentRoles.include? member.roles.first.id + people << member.user end end - is_teacher + people.include?(User.current) end end diff --git a/app/models/homework_attach.rb b/app/models/homework_attach.rb index ac285e606..ad59d107d 100644 --- a/app/models/homework_attach.rb +++ b/app/models/homework_attach.rb @@ -13,8 +13,8 @@ class HomeworkAttach < ActiveRecord::Base "user_id" acts_as_attachable - def addjours user_id,message,status = 0 - jfm = self.journals_for_messages.build(:user_id => user_id,:notes =>message,:status => status) + def addjours user_id,message,status = 0,is_comprehensive_evaluation = 0 + jfm = self.journals_for_messages.build(:user_id => user_id,:notes =>message,:status => status,:is_comprehensive_evaluation => is_comprehensive_evaluation) jfm.save jfm end diff --git a/app/views/bids/_homework_list.html.erb b/app/views/bids/_homework_list.html.erb index f7db8a375..48cc16c6e 100644 --- a/app/views/bids/_homework_list.html.erb +++ b/app/views/bids/_homework_list.html.erb @@ -1,13 +1,15 @@ -<% is_teacher = is_course_teacher User.current,@bid.courses.first.project %> +<% is_student = is_cur_course_student? @bid.courses.first %> +<% is_teacher = is_course_teacher User.current,@bid.courses.first %> + <%= form_tag(:controller => 'bids', :action => "show_project", :method => :get) do %>
<%= l(:label_task_plural)%>(<%= @homework_list.count%>) <%= link_to "作业打包下载", zipdown_assort_path(obj_class: @bid.class, obj_id: @bid), remote: false, class: "button_submit button_submit_font_white", style: "margin: 5px 10px;line-height: 20px;height: 20px;display: inline-block;" if( - User.current.admin? || - !(User.current.roles_for_project(@bid.courses.first).map(&:id) & ([7,9])).empty? ) || + User.current.admin? || + !(User.current.roles_for_project(@bid.courses.first).map(&:id) & ([7,9])).empty? ) || (Rails.env.development?) %> @@ -25,8 +27,8 @@ <% @homework_list.each do |homework|%> <% if homework.attachments.any?%> - - + +
<%= image_tag(url_to_avatar(homework.user), :class => "avatar")%>
<%= image_tag(url_to_avatar(homework.user), :class => "avatar")%> @@ -44,8 +46,12 @@ <% end %> @@ -71,7 +77,7 @@ diff --git a/app/views/homework_attach/_addjour.html.erb b/app/views/homework_attach/_addjour.html.erb index a5e7bed66..6cb35bccc 100644 --- a/app/views/homework_attach/_addjour.html.erb +++ b/app/views/homework_attach/_addjour.html.erb @@ -56,6 +56,7 @@ :url => {:controller => 'homework_attach', :action => 'addjours', :jour_id => homework_attach.id, + :is_comprehensive_evaluation => is_comprehensive_evaluation, :sta => sta}) do |f|%>
diff --git a/app/views/homework_attach/_comprehensive_evaluation.html.erb b/app/views/homework_attach/_comprehensive_evaluation.html.erb new file mode 100644 index 000000000..df0c03b21 --- /dev/null +++ b/app/views/homework_attach/_comprehensive_evaluation.html.erb @@ -0,0 +1,50 @@ +<% 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.stars * 2 * 10 %> +
+
+ 作业综评: + +
+
+
+
+
+
+
+
+
+
<%= comprehensive_evaluation.first.notes%>
+
+ <% if is_teacher %> +
评分: + <%= rating_for homework, dimension: :quality, class: 'rateable div_inline' %> + (您可以重新打分,打分结果以最后一次打分为主!) +
+ <% end %> +
+<% else %> + <% if is_teacher %> +
+
+ 作业综评: +
+
评分: + <%= rating_for homework, dimension: :quality, class: 'rateable div_inline' %> + (您可以重新打分,打分结果以最后一次打分为主!) +
+
+ <%= render :partial => 'addjour', :locals => {:homework_attach => homework, :sta => 0,:is_comprehensive_evaluation => 1} %> +
+
+ <% else %> +
+
+ 作业综评: +
+
老师还未进行评价!
+
+ <% end %> +<% end %> \ No newline at end of file diff --git a/app/views/homework_attach/_showjour.html.erb b/app/views/homework_attach/_showjour.html.erb index 939deff3b..529767138 100644 --- a/app/views/homework_attach/_showjour.html.erb +++ b/app/views/homework_attach/_showjour.html.erb @@ -38,10 +38,25 @@ <% if jour.size > 0 %>
    <% for journal in jour%> + <% seems = homework.rates(:quality).where("rater_id = #{journal.user.id}").select("stars").first %>
  • <%= image_tag(url_to_avatar(journal.user), :class => "avatar") %> - <%= link_to journal.user, user_path(journal.user)%> + + <%= link_to journal.user, user_path(journal.user)%> + + <% label = l(:label_contest_requirement) %>
    <%= textilizable journal.notes%>
    <%= l(:label_bids_published) %> @@ -70,4 +85,12 @@
  • <% end %>
-<% end %> \ No newline at end of file +<% end %> + + + + \ No newline at end of file diff --git a/app/views/homework_attach/addjours.js.erb b/app/views/homework_attach/addjours.js.erb index e463237e5..ed5887a7f 100644 --- a/app/views/homework_attach/addjours.js.erb +++ b/app/views/homework_attach/addjours.js.erb @@ -1,4 +1,9 @@ -$('#message').html('<%= escape_javascript(render(:partial => 'showjour', :locals => {:jour =>@jour, :state => false} )) %>'); -$('#pre_show').html('<%= escape_javascript(render(:partial => 'pre_show', :locals => {:content => nil})) %>'); -$('#new_form_user_message').val(""); -$('#new_form_reference_user_id').val(""); \ No newline at end of file +<% if @add_jour.is_comprehensive_evaluation == 1 %> + $('#comprehensive_evaluation').html('<%= escape_javascript(render(:partial => 'comprehensive_evaluation', + :locals => {:comprehensive_evaluation => @comprehensive_evaluation,:homework => @homework} )) %>'); +<% else %> + $('#message').html('<%= escape_javascript(render(:partial => 'showjour', :locals => {:jour =>@jour, :state => false,:homework => @homework} )) %>'); + $('#pre_show').html('<%= escape_javascript(render(:partial => 'pre_show', :locals => {:content => nil})) %>'); + $('#new_form_user_message').val(""); + $('#new_form_reference_user_id').val(""); +<% 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 f2c37d9ac..9c39e84f1 100644 --- a/app/views/homework_attach/show.html.erb +++ b/app/views/homework_attach/show.html.erb @@ -6,6 +6,9 @@ height: 200px; } +<% is_student = is_cur_course_student? @homework.bid.courses.first %> +<% is_teacher = is_course_teacher User.current,@homework.bid.courses.first %> +

<%= notice %>

@@ -93,10 +96,14 @@
+ <% score = @homework.average(:quality).try(:avg).try(:round, 2).to_s %>
最终得分
- <%= @homework.average(:quality).try(:avg).try(:round, 2).to_s %> - 分 + <% if score == "" %> + 0分 + <% else %> + <%= score %>分 + <% end %>
<%= rating_for @homework, :static => true, dimension: :quality, class: 'rateable div_inline' %> @@ -114,42 +121,32 @@
- +
+ <%= render :partial => 'comprehensive_evaluation', :locals => {:comprehensive_evaluation => @comprehensive_evaluation,:homework => @homework} %>
-
---> +
作业评论:
-
评分: - <%= rating_for @homework, dimension: :quality, class: 'rateable div_inline' %> - (您可以重新打分,打分结果以最后一次打分为主!) -
- + <% if is_student %> +
评分: + <%= rating_for @homework, dimension: :quality, class: 'rateable div_inline' %> + (您可以重新打分,打分结果以最后一次打分为主!) +
+ <% end %>
+<% if !is_teacher %> -
- <%= render :partial => 'addjour', :locals => {:homework_attach => @homework, :sta => 0} %> +
+ <%= render :partial => 'addjour', :locals => {:homework_attach => @homework, :sta => 0, :is_comprehensive_evaluation => nil} %>
+<% end %>
- <%= render :partial => 'showjour', :locals => {:jour => @jour} %> -
- - -
diff --git a/db/migrate/20140527060344_add_coloum_to_homework_journals_for_message.rb b/db/migrate/20140527060344_add_coloum_to_homework_journals_for_message.rb new file mode 100644 index 000000000..744a09d31 --- /dev/null +++ b/db/migrate/20140527060344_add_coloum_to_homework_journals_for_message.rb @@ -0,0 +1,5 @@ +class AddColoumToHomeworkJournalsForMessage < ActiveRecord::Migration + def change + add_column :journals_for_messages, :is_comprehensive_evaluation, :integer + end +end
- <% if display_id %> + <% if is_student %> <%= link_to "互评>>" , homework_attach_path(homework)%> + <% else %> + <% if is_teacher %> + <%= link_to "综评>>" , homework_attach_path(homework)%> + <% end %> <% end %>
  - <% if display_id %> + <% if is_cur_course_user? @bid %> <%= l(:label_bidding_user_studentcode) %>  : <%= homework.user.user_extensions.student_id%> <% end %>