add column full_score_reached, fill it accordingly and show information in the rfc index
This commit is contained in:
@ -47,6 +47,14 @@ module SubmissionScoring
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
submission.update(score: score)
|
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
|
outputs
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -20,7 +20,7 @@ class RequestForCommentsController < ApplicationController
|
|||||||
.group('request_for_comments.id, request_for_comments.user_id, request_for_comments.exercise_id,
|
.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.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.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')
|
.select('request_for_comments.*, max(comments.updated_at) as last_comment')
|
||||||
.search(params[:q])
|
.search(params[:q])
|
||||||
@request_for_comments = @search.result.order('created_at DESC').paginate(page: params[:page], total_entries: @search.result.length)
|
@request_for_comments = @search.result.order('created_at DESC').paginate(page: params[:page], total_entries: @search.result.length)
|
||||||
|
@ -52,6 +52,6 @@ class RequestForComment < ActiveRecord::Base
|
|||||||
|
|
||||||
private
|
private
|
||||||
def self.row_number_user_sql
|
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
|
||||||
end
|
end
|
||||||
|
@ -27,6 +27,9 @@ h1 = RequestForComment.model_name.human(count: 2)
|
|||||||
- if request_for_comment.solved?
|
- if request_for_comment.solved?
|
||||||
td
|
td
|
||||||
span class="fa fa-check" aria-hidden="true"
|
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
|
- else
|
||||||
td = ''
|
td = ''
|
||||||
td = link_to(request_for_comment.exercise.title, request_for_comment)
|
td = link_to(request_for_comment.exercise.title, request_for_comment)
|
||||||
|
@ -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.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
|
17
db/schema.rb
17
db/schema.rb
@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# 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
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
@ -270,16 +270,17 @@ ActiveRecord::Schema.define(version: 20171120153705) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
create_table "request_for_comments", force: :cascade do |t|
|
create_table "request_for_comments", force: :cascade do |t|
|
||||||
t.integer "user_id", null: false
|
t.integer "user_id", null: false
|
||||||
t.integer "exercise_id", null: false
|
t.integer "exercise_id", null: false
|
||||||
t.integer "file_id", null: false
|
t.integer "file_id", null: false
|
||||||
t.datetime "created_at"
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
t.string "user_type", limit: 255
|
t.string "user_type", limit: 255
|
||||||
t.text "question"
|
t.text "question"
|
||||||
t.boolean "solved", default: false
|
t.boolean "solved", default: false
|
||||||
t.integer "submission_id"
|
t.integer "submission_id"
|
||||||
t.text "thank_you_note"
|
t.text "thank_you_note"
|
||||||
|
t.boolean "full_score_reached", default: false
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "searches", force: :cascade do |t|
|
create_table "searches", force: :cascade do |t|
|
||||||
@ -354,8 +355,8 @@ ActiveRecord::Schema.define(version: 20171120153705) do
|
|||||||
t.integer "working_time_seconds"
|
t.integer "working_time_seconds"
|
||||||
t.string "feedback_text"
|
t.string "feedback_text"
|
||||||
t.integer "user_estimated_worktime"
|
t.integer "user_estimated_worktime"
|
||||||
t.datetime "created_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: '2017-11-20 18:20:25', null: false
|
t.datetime "updated_at", default: '2018-01-30 17:39:22', null: false
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "user_exercise_interventions", force: :cascade do |t|
|
create_table "user_exercise_interventions", force: :cascade do |t|
|
||||||
|
Reference in New Issue
Block a user