Merge remote-tracking branch 'origin/master' into exercise-anomaly-detection
# Conflicts: # db/schema.rb
This commit is contained in:
@ -0,0 +1,5 @@
|
||||
class RemoveExpectedWorkingTime < ActiveRecord::Migration
|
||||
def change
|
||||
remove_column :exercises, :expected_worktime_seconds
|
||||
end
|
||||
end
|
@ -0,0 +1,6 @@
|
||||
class AddTimestampsToUserExerciseFeedbacks < ActiveRecord::Migration
|
||||
def up
|
||||
add_column :user_exercise_feedbacks, :created_at, :datetime, null: false, default: Time.now
|
||||
add_column :user_exercise_feedbacks, :updated_at, :datetime, null: false, default: Time.now
|
||||
end
|
||||
end
|
27
db/schema.rb
27
db/schema.rb
@ -128,19 +128,18 @@ ActiveRecord::Schema.define(version: 20171210172208) do
|
||||
create_table "exercises", force: :cascade do |t|
|
||||
t.text "description"
|
||||
t.integer "execution_environment_id"
|
||||
t.string "title", limit: 255
|
||||
t.string "title", limit: 255
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.integer "user_id"
|
||||
t.text "instructions"
|
||||
t.boolean "public"
|
||||
t.string "user_type", limit: 255
|
||||
t.string "token", limit: 255
|
||||
t.string "user_type", limit: 255
|
||||
t.string "token", limit: 255
|
||||
t.boolean "hide_file_tree"
|
||||
t.boolean "allow_file_creation"
|
||||
t.boolean "allow_auto_completion", default: false
|
||||
t.integer "expected_worktime_seconds", default: 60
|
||||
t.integer "expected_difficulty", default: 1
|
||||
t.boolean "allow_auto_completion", default: false
|
||||
t.integer "expected_difficulty", default: 1
|
||||
end
|
||||
|
||||
add_index "exercises", ["id"], name: "index_exercises_on_id", using: :btree
|
||||
@ -355,13 +354,15 @@ ActiveRecord::Schema.define(version: 20171210172208) do
|
||||
end
|
||||
|
||||
create_table "user_exercise_feedbacks", force: :cascade do |t|
|
||||
t.integer "exercise_id", null: false
|
||||
t.integer "user_id", null: false
|
||||
t.string "user_type", null: false
|
||||
t.integer "difficulty"
|
||||
t.integer "working_time_seconds"
|
||||
t.string "feedback_text"
|
||||
t.integer "user_estimated_worktime"
|
||||
t.integer "exercise_id", null: false
|
||||
t.integer "user_id", null: false
|
||||
t.string "user_type", null: false
|
||||
t.integer "difficulty"
|
||||
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
|
||||
end
|
||||
|
||||
create_table "user_exercise_interventions", force: :cascade do |t|
|
||||
|
@ -1,5 +1,5 @@
|
||||
def find_factories_by_class(klass)
|
||||
FactoryGirl.factories.select do |factory|
|
||||
FactoryBot.factories.select do |factory|
|
||||
factory.instance_variable_get(:@class_name) == klass || factory.instance_variable_get(:@name) == klass.model_name.singular.to_sym
|
||||
end
|
||||
end
|
||||
@ -9,7 +9,7 @@ module ActiveRecord
|
||||
[:build, :create].each do |strategy|
|
||||
define_singleton_method("#{strategy}_factories") do |attributes = {}|
|
||||
find_factories_by_class(self).map(&:name).map do |factory_name|
|
||||
FactoryGirl.send(strategy, factory_name, attributes)
|
||||
FactoryBot.send(strategy, factory_name, attributes)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,9 +1,9 @@
|
||||
# consumers
|
||||
FactoryGirl.create(:consumer)
|
||||
FactoryGirl.create(:consumer, name: 'openSAP')
|
||||
FactoryBot.create(:consumer)
|
||||
FactoryBot.create(:consumer, name: 'openSAP')
|
||||
|
||||
# users
|
||||
[:admin, :external_user, :teacher].each { |factory_name| FactoryGirl.create(factory_name) }
|
||||
[:admin, :external_user, :teacher].each { |factory_name| FactoryBot.create(factory_name) }
|
||||
|
||||
# execution environments
|
||||
ExecutionEnvironment.create_factories
|
||||
@ -12,7 +12,7 @@ ExecutionEnvironment.create_factories
|
||||
Error.create_factories
|
||||
|
||||
# exercises
|
||||
@exercises = find_factories_by_class(Exercise).map(&:name).map { |factory_name| [factory_name, FactoryGirl.create(factory_name)] }.to_h
|
||||
@exercises = find_factories_by_class(Exercise).map(&:name).map { |factory_name| [factory_name, FactoryBot.create(factory_name)] }.to_h
|
||||
|
||||
# file types
|
||||
FileType.create_factories
|
||||
@ -21,4 +21,4 @@ FileType.create_factories
|
||||
Hint.create_factories
|
||||
|
||||
# submissions
|
||||
FactoryGirl.create(:submission, exercise: @exercises[:fibonacci])
|
||||
FactoryBot.create(:submission, exercise: @exercises[:fibonacci])
|
||||
|
@ -1,7 +1,7 @@
|
||||
require 'highline/import'
|
||||
|
||||
# consumers
|
||||
FactoryGirl.create(:consumer)
|
||||
FactoryBot.create(:consumer)
|
||||
|
||||
# users
|
||||
email = ask('Enter admin email: ')
|
||||
@ -11,7 +11,7 @@ passwords = ['password', 'password confirmation'].map do |attribute|
|
||||
end
|
||||
|
||||
if passwords.uniq.length == 1
|
||||
FactoryGirl.create(:admin, email: email, name: 'Administrator', password: passwords.first)
|
||||
FactoryBot.create(:admin, email: email, name: 'Administrator', password: passwords.first)
|
||||
else
|
||||
abort('Passwords do not match!')
|
||||
end
|
||||
|
Reference in New Issue
Block a user