1.老师创建作业增加功能:是否启用互评,以及该功能的修改。对不启用互评的作业,学生不可下载作业,不可互相打分,但可以留言;老师可以进行评分、下载作业等操作。启用互评作业功能和现在一样

2.对启用互评的作业,每个用户只可以进行一次打分,打分后不可修改
This commit is contained in:
sw 2014-06-05 14:00:18 +08:00
parent b0a88eb5ac
commit 81a97f6a5e
14 changed files with 81 additions and 24 deletions

View File

@ -176,7 +176,8 @@ class BidsController < ApplicationController
@homework.budget = 0
@homework.author_id = User.current.id
@homework.commit = 0
@homework.homework_type = params[:bid][:homework_type]
@homework.homework_type = 1
@homework.is_evaluation = params[:bid][:is_evaluation]
@homework.parent_id = @bid.id
@homework.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads]))
# @bid.
@ -408,6 +409,7 @@ class BidsController < ApplicationController
if @bid.homework_type == 1
@homework = HomeworkAttach.new
#@homework_list = @bid.homeworks
#增加作业按评分排序,
@homework_list = HomeworkAttach.find_by_sql("SELECT homework_attaches.*,
(SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id) AS score
FROM homework_attaches WHERE bid_id = #{@bid.id} ORDER BY score DESC")
@ -692,6 +694,7 @@ class BidsController < ApplicationController
@bid = Bid.new
@bid.name = params[:bid][:name]
@bid.description = params[:bid][:description]
@bid.is_evaluation = params[:bid][:is_evaluation]
@bid.reward_type = 3
# @bid.budget = params[:bid][:budget]
@bid.deadline = params[:bid][:deadline]

View File

@ -128,6 +128,10 @@ class HomeworkAttachController < ApplicationController
@stars_status_map["star#{star_status.stars.to_i}".to_sym] =
percent_m.to_s + "%"
end
#是否已经进行过评价
@has_evaluation = stars_reates.where("rater_id = ?",User.current).count > 0
#是否开启互评功能
@is_evaluation = @homework.bid.is_evaluation == 1 || @homework.bid.is_evaluation == nil
@limit = 10
@jours = @homework.journals_for_messages.where("is_comprehensive_evaluation is null").order("created_on DESC")
@feedback_count = @jours.count

View File

@ -162,4 +162,10 @@ module CoursesHelper
cur_user_homework = HomeworkAttach.where("user_id = ? and bid_id = ?",User.current,bid.id)
cur_user_homework
end
#判断当前用户对指定作业是否已经评价过
def has_evaluation? homework
seem_count = homework.rates(:quality).where("rater_id = ?",User.current).count
seem_count > 0
end
end

View File

@ -227,6 +227,19 @@ module ProjectsHelper
type << option2
end
#是否启动互评下拉框
def is_evaluation_option
type = []
option1 = []
option2 = []
option1 << l(:lable_start_mutual_evaluation)
option1 << 1
option2 << l(:lable_close_mutual_evaluation)
option2 << 2
type << option1
type << option2
end
# 用来判断用户是否是项目的管理员
# added by william
def is_manager?(user_id,project_id)

View File

@ -19,6 +19,7 @@
<p><%= f.select :homework_type, homework_type_option %>
</p>
-->
<p><%= f.select :is_evaluation, is_evaluation_option %>
<fieldset><legend><%= l(:label_attachment_plural) %></legend>
<p><%= render :partial => 'attachments/form', :locals => {:container => @homework} %></p>
</fieldset>

View File

@ -36,6 +36,7 @@
<p><%= f.select :homework_type, homework_type_option %>
</p>
-->
<p><%= f.select :is_evaluation, is_evaluation_option %>
<p><%= hidden_field_tag 'course_id', @project_id %>
</p>
<fieldset><legend><%= l(:label_attachment_plural) %></legend>

View File

@ -1,6 +1,8 @@
<!-- fq -->
<% is_student = is_cur_course_student? @bid.courses.first %>
<% is_teacher = is_course_teacher User.current,@bid.courses.first %>
<!-- 当is_evaluation为1或者null(null主要是为了兼容前面数据)时代表启用互评功能2表示未启用 -->
<% is_evaluation = @bid.is_evaluation == 1 || @bid.is_evaluation == nil %>
<%= form_tag(:controller => 'bids', :action => "show_project", :method => :get) do %>
<div class="project-search-block">
@ -53,11 +55,21 @@
<% else %>
<% homework_filename = homework.name %>
<% end %>
<strong><%= link_to homework_filename, :controller => "zipdown", :action => "download_user_homework",:obj_class => @bid.class,:obj_id => @bid, :user_id =>homework.user%></strong>
<strong>
<% if is_evaluation || is_teacher%>
<%= link_to homework_filename, :controller => "zipdown", :action => "download_user_homework",:obj_class => @bid.class,:obj_id => @bid, :user_id =>homework.user%>
<% else %>
<%= homework_filename %>
<% end %>
</strong>
</td>
<td style="vertical-align: top">
<% if is_student %>
<%= link_to "互评>>" , homework_attach_path(homework)%>
<% if is_evaluation %>
<%= link_to "互评>>" , homework_attach_path(homework)%>
<% else %>
<%= link_to "查看详细" , homework_attach_path(homework)%>
<% end %>
<% else %>
<% if is_teacher %>
<%= link_to "综评>>" , homework_attach_path(homework)%>

View File

@ -22,12 +22,6 @@
<div style="font-size: 14px;">
<div style="margin-left: 20px;margin-bottom: 10px;margin-top: 10px;"> <%= comprehensive_evaluation.first.notes%> </div>
</div>
<% if is_teacher %>
<div style="text-align: center;">评分:
<%= rating_for homework, dimension: :quality, class: 'rateable div_inline' %>
<span style="font-size: 11px">(您可以重新打分,打分结果以最后一次打分为主!)</span>
</div>
<% end %>
</div>
<% else %>
<% if is_teacher %>
@ -35,10 +29,7 @@
<div style="font-size: 15px">
<strong>作业综评:</strong>
</div>
<div style="text-align: center;">评分:
<%= rating_for homework, dimension: :quality, class: 'rateable div_inline' %>
<span style="font-size: 11px">(您可以重新打分,打分结果以最后一次打分为主!)</span>
</div>
<%= render :partial => 'evaluation', :locals => {:homework => homework} %>
<div>
<%= render :partial => 'addjour', :locals => {:homework_attach => homework, :sta => 0,:is_comprehensive_evaluation => 1} %>
</div>

View File

@ -0,0 +1,4 @@
<div style="text-align: center;">评分:
<%= rating_for homework, dimension: :quality, class: 'rateable div_inline' %>
<span style="font-size: 11px">(每个用户对每份作业只能进行一次评价!)</span>
</div>

View File

@ -8,7 +8,6 @@
</style>
<% is_student = is_cur_course_student? @homework.bid.courses.first %>
<% is_teacher = is_course_teacher User.current,@homework.bid.courses.first %>
<p id="notice"><%= notice %></p>
<!-- <%= image_tag(url_to_avatar(@user), :class => "avatar2") %> -->
<div style="height: auto; padding-bottom: 10px">
@ -29,8 +28,12 @@
<tr>
<td style="padding-left: 40px">
<span>作业下载:</span>
<% options = {:author => true } %>
<%= render :partial => 'app_link', :locals => {:attachments => @homework.attachments, :options => options} %>
<% if @is_evaluation || is_teacher%>
<% options = {:author => true } %>
<%= render :partial => 'app_link', :locals => {:attachments => @homework.attachments, :options => options} %>
<% else %>
<%= l(:label_cant_download) %>
<% end %>
</td>
<td style="width: 240px; word-wrap: break-word; word-break: break-all">
所属任务:<%= link_to(@homework.bid.name, project_for_bid_path(@homework.bid))%>
@ -133,10 +136,19 @@
<div style="height: 50px">
<div style="font-size: 15px"><strong>作业评论:</strong></div>
<% if is_student %>
<div style="text-align: center;">评分:
<%= rating_for @homework, dimension: :quality, class: 'rateable div_inline' %>
<span style="font-size: 11px">(您可以重新打分,打分结果以最后一次打分为主!)</span>
</div>
<% if @is_evaluation %>
<% if @has_evaluation %>
<div style="text-align: center;">
<%= l(:lable_has_evaluation)%>
</div>
<% else %>
<%= render :partial => 'evaluation', :locals => {:homework => @homework} %>
<% end %>
<% else %>
<div style="text-align: center;">
<%= l(:lable_close_evaluation)%>
</div>
<% end %>
<% end %>
</div>

View File

@ -32,10 +32,8 @@
</p> -->
<p><%= f.text_field :deadline, :required => true, :size => 60, :style => "width:150px;" %><%= calendar_for('bid_deadline')%>
</p>
<!--
<p><%= f.select :homework_type, homework_type_option %>
<p><%= f.select :is_evaluation, is_evaluation_option %>
</p>
-->
<p><%= hidden_field_tag 'course_id', @project.id %>
</p>
<fieldset><legend><%= l(:label_attachment_plural) %></legend>

View File

@ -1546,6 +1546,7 @@ zh:
label_bids_credit_number:
field_budget: 奖励
field_deadline: 截止日期
field_is_evaluation: 是否启动互评
label_tags_selected: 已选标签
label_tags_related: 相关标签
button_project_tags_add: 增加
@ -1600,6 +1601,9 @@ zh:
label_have_feedback: 有了
label_of_feedback:
label_welcome_participate: 参与了
label_cant_download: 未开启互评功能作业不允许下载
lable_close_evaluation: 该作业未开启互评功能
lable_has_evaluation: 您已进行过评价
#modify by men
label_x_welcome_participate:
zero: 参与了
@ -1789,6 +1793,8 @@ zh:
label_new_join_order: 请输入课程密码
label_task_submit_form_accessory: 作业最终以附件形式提交
label_task_submit_form_project: 作业最终以项目形式提交
lable_start_mutual_evaluation: 启动互评
lable_close_mutual_evaluation: 关闭互评
label_has_been: 已经被
label_course_userd_by: 个课程引用

View File

@ -0,0 +1,5 @@
class AddEvaluationToBid < ActiveRecord::Migration
def change
add_column :bids, :is_evaluation, :integer
end
end

View File

@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20140527060344) do
ActiveRecord::Schema.define(:version => 20140605025247) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@ -105,6 +105,7 @@ ActiveRecord::Schema.define(:version => 20140527060344) do
t.integer "homework_type"
t.integer "parent_id"
t.string "password"
t.integer "is_evaluation"
end
create_table "boards", :force => true do |t|