Merge pull request #143 from openHPI/rfc_soft_solved

Rfc soft solved
This commit is contained in:
rteusner
2018-01-31 15:15:55 +01:00
committed by GitHub
6 changed files with 37 additions and 10 deletions

View File

@ -47,6 +47,14 @@ module SubmissionScoring
end
end
submission.update(score: score)
if submission.normalized_score == 1.0
Thread.new do
RequestForComment.where(exercise_id: submission.exercise_id, user_id: submission.user_id, user_type: submission.user_type).each{ |rfc|
rfc.full_score_reached = true
rfc.save
}
end
end
outputs
end
end

View File

@ -20,7 +20,7 @@ class RequestForCommentsController < ApplicationController
.group('request_for_comments.id, request_for_comments.user_id, request_for_comments.exercise_id,
request_for_comments.file_id, request_for_comments.question, request_for_comments.created_at,
request_for_comments.updated_at, request_for_comments.user_type, request_for_comments.solved,
request_for_comments.submission_id, request_for_comments.row_number') # ugly, but rails wants it this way
request_for_comments.full_score_reached, request_for_comments.submission_id, request_for_comments.row_number') # ugly, but rails wants it this way
.select('request_for_comments.*, max(comments.updated_at) as last_comment')
.search(params[:q])
@request_for_comments = @search.result.order('created_at DESC').paginate(page: params[:page], total_entries: @search.result.length)

View File

@ -52,6 +52,6 @@ class RequestForComment < ActiveRecord::Base
private
def self.row_number_user_sql
select("id, user_id, exercise_id, file_id, question, created_at, updated_at, user_type, solved, submission_id, row_number() OVER (PARTITION BY user_id ORDER BY created_at DESC) as row_number").to_sql
select("id, user_id, exercise_id, file_id, question, created_at, updated_at, user_type, solved, full_score_reached, submission_id, row_number() OVER (PARTITION BY user_id ORDER BY created_at DESC) as row_number").to_sql
end
end

View File

@ -27,6 +27,9 @@ h1 = RequestForComment.model_name.human(count: 2)
- if request_for_comment.solved?
td
span class="fa fa-check" aria-hidden="true"
- elsif request_for_comment.full_score_reached
td
span class="fa fa-check" style="color:darkgrey" aria-hidden="true"
- else
td = ''
td = link_to(request_for_comment.exercise.title, request_for_comment)

View File

@ -0,0 +1,15 @@
class AddReachedFullScoreToRequestForComment < ActiveRecord::Migration
def up
add_column :request_for_comments, :full_score_reached, :boolean, default: false
RequestForComment.all.each { |rfc|
if (rfc.submission.present? && rfc.submission.exercise.has_user_solved(rfc.user))
rfc.full_score_reached = true
rfc.save
end
}
end
def down
remove_column :request_for_comments, :full_score_reached
end
end

View File

@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20171120153705) do
ActiveRecord::Schema.define(version: 20180130172021) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -270,16 +270,17 @@ ActiveRecord::Schema.define(version: 20171120153705) do
end
create_table "request_for_comments", force: :cascade do |t|
t.integer "user_id", null: false
t.integer "exercise_id", null: false
t.integer "file_id", null: false
t.integer "user_id", null: false
t.integer "exercise_id", null: false
t.integer "file_id", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.string "user_type", limit: 255
t.string "user_type", limit: 255
t.text "question"
t.boolean "solved", default: false
t.boolean "solved", default: false
t.integer "submission_id"
t.text "thank_you_note"
t.boolean "full_score_reached", default: false
end
create_table "searches", force: :cascade do |t|
@ -354,8 +355,8 @@ ActiveRecord::Schema.define(version: 20171120153705) do
t.integer "working_time_seconds"
t.string "feedback_text"
t.integer "user_estimated_worktime"
t.datetime "created_at", default: '2017-11-20 18:20:25', null: false
t.datetime "updated_at", default: '2017-11-20 18:20:25', null: false
t.datetime "created_at", default: '2018-01-30 17:39:22', null: false
t.datetime "updated_at", default: '2018-01-30 17:39:22', null: false
end
create_table "user_exercise_interventions", force: :cascade do |t|