Add StudyGroup to RemoteEvaluationMapping

This commit is contained in:
Sebastian Serth
2021-04-26 16:40:34 +02:00
parent 91a0e4a7d5
commit 4958f5b9a9
7 changed files with 20 additions and 2 deletions

View File

@ -74,6 +74,7 @@ class RemoteEvaluationController < ApplicationController
submission_params = remote_evaluation_params.except(:validation_token)
submission_params[:exercise_id] = remote_evaluation_mapping.exercise_id
submission_params[:user_id] = remote_evaluation_mapping.user_id
submission_params[:study_group_id] = remote_evaluation_mapping.study_group_id
submission_params[:cause] = cause
submission_params[:user_type] = remote_evaluation_mapping.user_type
submission_params[:files_attributes] = reject_illegal_file_attributes(remote_evaluation_mapping.exercise, files_attributes)

View File

@ -450,7 +450,11 @@ class SubmissionsController < ApplicationController
user = @submission.user
exercise_id = @submission.exercise_id
remote_evaluation_mapping = RemoteEvaluationMapping.create(user: user, exercise_id: exercise_id)
remote_evaluation_mapping = RemoteEvaluationMapping.create(
user: user,
exercise_id: exercise_id,
study_group_id: session[:study_group_id]
)
# create .co file
path = "tmp/" + user.id.to_s + ".co"

View File

@ -3,6 +3,7 @@ class RemoteEvaluationMapping < ApplicationRecord
before_create :generate_token, unless: :validation_token?
belongs_to :exercise
belongs_to :user, polymorphic: true
belongs_to :study_group, optional: true
def generate_token
self.validation_token = SecureRandom.urlsafe_base64

View File

@ -5,6 +5,7 @@ class StudyGroup < ApplicationRecord
has_many :external_users, through: :study_group_memberships, source_type: 'ExternalUser', source: :user
has_many :internal_users, through: :study_group_memberships, source_type: 'InternalUser', source: :user
has_many :submissions, dependent: :nullify
has_many :remote_evaluation_mappings, dependent: :nullify
belongs_to :consumer
def users

View File

@ -13,6 +13,7 @@ class User < ApplicationRecord
has_many :user_proxy_exercise_exercises, as: :user
has_many :user_exercise_interventions, as: :user
has_many :interventions, through: :user_exercise_interventions
has_many :remote_evaluation_mappings, as: :user
has_one :codeharbor_link, dependent: :destroy
accepts_nested_attributes_for :user_proxy_exercise_exercises

View File

@ -0,0 +1,7 @@
# frozen_string_literal: true
class AddStudyGroupToRemoteEvaluationMapping < ActiveRecord::Migration[5.2]
def change
add_reference :remote_evaluation_mappings, :study_group, index: true, null: true, foreign_key: true
end
end

View File

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2020_12_10_113500) do
ActiveRecord::Schema.define(version: 2021_04_26_113125) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_trgm"
@ -317,6 +317,8 @@ ActiveRecord::Schema.define(version: 2020_12_10_113500) do
t.datetime "created_at"
t.datetime "updated_at"
t.string "user_type"
t.bigint "study_group_id"
t.index ["study_group_id"], name: "index_remote_evaluation_mappings_on_study_group_id"
end
create_table "request_for_comments", id: :serial, force: :cascade do |t|
@ -480,6 +482,7 @@ ActiveRecord::Schema.define(version: 2020_12_10_113500) do
add_foreign_key "exercise_tips", "exercises"
add_foreign_key "exercise_tips", "tips"
add_foreign_key "request_for_comments", "submissions", name: "request_for_comments_submissions_id_fk"
add_foreign_key "remote_evaluation_mappings", "study_groups"
add_foreign_key "submissions", "study_groups"
add_foreign_key "tips", "file_types"
add_foreign_key "user_exercise_feedbacks", "submissions"