Skip to content

Commit

Permalink
Updated failing migrations
Browse files Browse the repository at this point in the history
  • Loading branch information
Naman Shrimali committed Mar 10, 2022
1 parent 22bba83 commit d212645
Show file tree
Hide file tree
Showing 22 changed files with 815 additions and 852 deletions.
9 changes: 0 additions & 9 deletions db/migrate/038_update_review_mappings.rb
@@ -1,19 +1,10 @@
<<<<<<< HEAD
class UpdateReviewMappings < ActiveRecord::Migration[4.2]
def self.up
add_column "review_mappings","round",:integer

execute "update review_mappings set round = -1"

end
=======
class UpdateReviewMappings < ActiveRecord::Migration
def self.up
add_column 'review_mappings', 'round', :integer

execute 'update review_mappings set round = -1'
end
>>>>>>> 81deb907b3ee7c4805798510a756fd42a7f8cc1b

def self.down
remove_column 'review_mappings', 'round'
Expand Down
5 changes: 0 additions & 5 deletions db/migrate/040_update_review_feedbacks.rb
@@ -1,10 +1,5 @@
<<<<<<< HEAD
class UpdateReviewFeedbacks < ActiveRecord::Migration[4.2]
def self.up
=======
class UpdateReviewFeedbacks < ActiveRecord::Migration
def self.up
>>>>>>> 81deb907b3ee7c4805798510a756fd42a7f8cc1b
rename_column :review_feedbacks, :user_id, :author_id
rename_column :review_feedbacks, :txt, :additional_comment
end
Expand Down
10 changes: 5 additions & 5 deletions db/migrate/067_update_participant_types.rb
Expand Up @@ -22,11 +22,11 @@ def self.up
participant.save
end

course_users = CoursesUsers.all
course_users.each do |user|
CourseParticipant.create(user_id: user.user_id, parent_id: user.course_id)
end
drop_table :courses_users
# course_users = CoursesUsers.all
# course_users.each do |user|
# CourseParticipant.create(user_id: user.user_id, parent_id: user.course_id)
# end
# drop_table :courses_users
end

def self.down
Expand Down
6 changes: 3 additions & 3 deletions db/migrate/108_create_questionnaire_folder_nodes.rb
Expand Up @@ -52,9 +52,9 @@ def self.up
fnode = TreeFolder.create(name: 'Course Evaluation', child_type: 'QuestionnaireNode')
pfNode = FolderNode.create(parent_id: pNode.id, node_object_id: fnode.id)

CourseEvaluationQuestionnaire.find_each do |questionnaire|
QuestionnaireNode.create(parent_id: pfNode.id, node_object_id: questionnaire.id)
end
# CourseEvaluationQuestionnaire.find_each do |questionnaire|
# QuestionnaireNode.create(parent_id: pfNode.id, node_object_id: questionnaire.id)
# end

folders = TreeFolder.where(child_type: 'QuestionnaireNode')
folders.each do |folder|
Expand Down
259 changes: 128 additions & 131 deletions db/migrate/112_create_response_maps.rb
@@ -1,175 +1,172 @@
class CreateResponseMaps < ActiveRecord::Migration[4.2]
def self.up
create_table :response_maps do |t|
t.column :reviewed_object_id, :integer, :null => false
t.column :reviewer_id, :integer, :null => false
t.column :reviewee_id, :integer, :null => false
t.column :type, :string, :null => false
end
t.column :reviewed_object_id, :integer, null: false
t.column :reviewer_id, :integer, null: false
t.column :reviewee_id, :integer, null: false
t.column :type, :string, null: false
end

# reviewee can't be constrained since it maps to either a participant or a team
# a better design might allow for teams to be and have participants.

execute 'ALTER TABLE `response_maps`
ADD CONSTRAINT fk_response_map_reviewer
FOREIGN KEY (reviewer_id) REFERENCES participants(id)'
FOREIGN KEY (reviewer_id) REFERENCES participants(id)'

create_table :responses do |t|
t.column :map_id, :integer, :null => false
t.column :additional_comment, :string, :null => true
t.column :created_at, :datetime, :null => true
t.column :updated_at, :datetime, :null => true
t.column :map_id, :integer, null: false
t.column :additional_comment, :string, null: true
t.column :created_at, :datetime, null: true
t.column :updated_at, :datetime, null: true
end


execute 'ALTER TABLE `responses`
ADD CONSTRAINT fk_response_response_map
FOREIGN KEY (map_id) REFERENCES response_maps(id)'
add_column :scores, :response_id, :integer, :null => true
FOREIGN KEY (map_id) REFERENCES response_maps(id)'

add_column :scores, :response_id, :integer, null: true

execute 'ALTER TABLE `scores`
ADD CONSTRAINT fk_score_response
FOREIGN KEY (response_id) REFERENCES responses(id)'
ActiveRecord::Base.connection.select_all("select * from review_of_review_mappings").each{
| map |
rmap = ActiveRecord::Base.connection.select_all("select * from review_mappings where id = #{map['reviewed_object_id']}")
assignment = Assignment.find(rmap[0]['reviewed_object_id'].to_i)
create_response_map(map,"review_of_reviews","MetareviewResponseMap", "MetareviewQuestionnaire",assignment)
}
ActiveRecord::Base.connection.select_all("select * from feedback_mappings").each{
| map |
review = ActiveRecord::Base.connection.select_all("select * from reviews where id = #{map['reviewed_object_id']}")
rmap = ActiveRecord::Base.connection.select_all("select * from review_mappings where id = #{review[0]['mapping_id']}")
assignment = Assignment.find(rmap[0]['reviewed_object_id'].to_i)
create_response_map(map,"review_feedbacks","FeedbackResponseMap", "AuthorFeedbackQuestionnaire",assignment)
}
ActiveRecord::Base.connection.select_all("select * from teammate_review_mappings").each{
| map |
assignment = Assignment.find(map['reviewed_object_id'].to_i)
create_response_map(map,"teammate_reviews","TeammateReviewResponseMap", "TeammateReviewQuestionnaire",assignment)
}
FOREIGN KEY (response_id) REFERENCES responses(id)'

ActiveRecord::Base.connection.select_all('select * from review_of_review_mappings').each do
|map|
rmap = ActiveRecord::Base.connection.select_all("select * from review_mappings where id = #{map['reviewed_object_id']}")
assignment = Assignment.find(rmap[0]['reviewed_object_id'].to_i)
create_response_map(map, 'review_of_reviews', 'MetareviewResponseMap', 'MetareviewQuestionnaire', assignment)
end

ActiveRecord::Base.connection.select_all('select * from feedback_mappings').each do
|map|
review = ActiveRecord::Base.connection.select_all("select * from reviews where id = #{map['reviewed_object_id']}")
rmap = ActiveRecord::Base.connection.select_all("select * from review_mappings where id = #{review[0]['mapping_id']}")
assignment = Assignment.find(rmap[0]['reviewed_object_id'].to_i)
create_response_map(map, 'review_feedbacks', 'FeedbackResponseMap', 'AuthorFeedbackQuestionnaire', assignment)
end

ActiveRecord::Base.connection.select_all('select * from teammate_review_mappings').each do
|map|
assignment = Assignment.find(map['reviewed_object_id'].to_i)
create_response_map(map, 'teammate_reviews', 'TeammateReviewResponseMap', 'TeammateReviewQuestionnaire', assignment)
end

# create response mappings as associate to a given review object
ActiveRecord::Base.connection.select_all("select * from review_mappings").each{
| map |

assignment = Assignment.find(map['reviewed_object_id'].to_i)

review = ActiveRecord::Base.connection.select_all("select * from reviews where mapping_id = #{map['id']}")
if map['type'] = 'ParticipantReviewMapping'
map_type = "ParticipantReviewResponseMap"
else
map_type = "TeamReviewResponseMap"
end
rmap, response = create_response_map(map,"reviews",map_type, "ReviewQuestionnaire",assignment)

MetareviewResponseMap.where(reviewed_object_id: map['id'].to_i).each{
| metamap |
if rmap != nil
metamap.update_attribute('reviewed_object_id',rmap.id)
else
cleanup(metamap)
end
}

if review.length > 0 && review[0] != nil
FeedbackResponseMap.find_all_by_reviewed_object_id(review[0]['id'].to_i).each{
| fmap |
if response != nil
fmap.update_attribute('reviewed_object_id',response.id)
else
ActiveRecord::Base.connection.select_all('select * from review_mappings').each do
|map|

assignment = Assignment.find(map['reviewed_object_id'].to_i)

review = ActiveRecord::Base.connection.select_all("select * from reviews where mapping_id = #{map['id']}")
map_type = if map['type'] = 'ParticipantReviewMapping'
'ParticipantReviewResponseMap'
else
'TeamReviewResponseMap'
end
rmap, response = create_response_map(map, 'reviews', map_type, 'ReviewQuestionnaire', assignment)

MetareviewResponseMap.where(reviewed_object_id: map['id'].to_i).each do
|metamap|
if !rmap.nil?
metamap.update_attribute('reviewed_object_id', rmap.id)
else
cleanup(metamap)
end
end

next unless !review.empty? && !review[0].nil?

FeedbackResponseMap.find_all_by_reviewed_object_id(review[0]['id'].to_i).each do
|fmap|
if !response.nil?
fmap.update_attribute('reviewed_object_id', response.id)
else
cleanup(fmap)
end
}
end
}

Score.delete_all("response_id is null")

end
end
end

# Score.delete_all('response_id is null')

remove_column :scores, :instance_id
drop_table :review_of_reviews

drop_table :review_of_reviews
drop_table :review_of_review_mappings
drop_table :review_feedbacks
drop_table :feedback_mappings
drop_table :teammate_reviews
drop_table :teammate_review_mappings
drop_table :teammate_review_mappings
drop_table :reviews
drop_table :review_mappings

end

def self.cleanup(map)
response = Response.find_by_map_id(map.id)
if response != nil
Score.delete_all(["instance_id = ?", response.id])
response.destroy
response = Response.find_by_map_id(map.id)
unless response.nil?
Score.delete_all(['instance_id = ?', response.id])
response.destroy
end
map.destroy
map.destroy
end

def self.create_response_map(map, review_type, map_type, questionnaire_type, assignment)
response = nil
rmap = nil
today = Time.now
oldest_allowed_time = Time.local(today.year - 1,today.month,today.day,0,0,0)
review = ActiveRecord::Base.connection.select_all("select * from #{review_type} where mapping_id = #{map['id']}")
rmap = Object.const_get(map_type).create(
:reviewed_object_id => map['reviewed_object_id'].to_i,
:reviewer_id => map['reviewer_id'].to_i,
:reviewee_id => map['reviewee_id'].to_i)
if review[0] != nil
questionnaire = assignment.questionnaires.find_by_type(questionnaire_type)
if questionnaire != nil
response = create_response(review[0], rmap, questionnaire.questions)
end
end
rmap = nil

today = Time.now
oldest_allowed_time = Time.local(today.year - 1, today.month, today.day, 0, 0, 0)
review = ActiveRecord::Base.connection.select_all("select * from #{review_type} where mapping_id = #{map['id']}")

rmap = Object.const_get(map_type).create(
reviewed_object_id: map['reviewed_object_id'].to_i,
reviewer_id: map['reviewer_id'].to_i,
reviewee_id: map['reviewee_id'].to_i
)
unless review[0].nil?
questionnaire = assignment.questionnaires.find_by_type(questionnaire_type)
unless questionnaire.nil?
response = create_response(review[0], rmap, questionnaire.questions)
end
return rmap, response
end

[rmap, response]
end

def self.create_response(review, response_map, questions)
response = Response.create(:map_id => response_map.id, :additional_comment => review['additional_comment'])
Response.record_timestamps = false
response.update_attribute('created_at',review['created_at'])
response.update_attribute('updated_at',review['updated_at'])
Response.record_timestamps = true
score_found = false
questions.each{
| question |
score = Score.where(instance_id: review['id'].to_i, question_id: question.id).first
if score != nil
score_found = true
score.update_attribute('response_id',response.id)
end
}
unless score_found
response.destroy

def self.create_response(review, response_map, questions)
response = Response.create(map_id: response_map.id, additional_comment: review['additional_comment'])
Response.record_timestamps = false
response.update_attribute('created_at', review['created_at'])
response.update_attribute('updated_at', review['updated_at'])
Response.record_timestamps = true
score_found = false
questions.each do |question|
score = Score.where(instance_id: review['id'].to_i, question_id: question.id).first
unless score.nil?
score_found = true
score.update_attribute('response_id', response.id)
end
return response
end
response.destroy unless score_found
response
end

def self.down
def self.down
begin
execute "ALTER TABLE `scores`
execute "ALTER TABLE `scores`
DROP FOREIGN KEY `fk_score_response`"
rescue
rescue StandardError
end

begin
execute "ALTER TABLE `scores`
execute "ALTER TABLE `scores`
DROP INDEX `fk_score_response`"
rescue
rescue StandardError
end

remove_column :scores, :response_id

drop_table :responses
drop_table :response_maps
drop_table :response_maps
end
end
10 changes: 5 additions & 5 deletions db/migrate/128_create_leaderboards.rb
Expand Up @@ -5,11 +5,11 @@ def self.up
t.column :name, :string
t.column :qtype, :string
end
Leaderboard.create(questionnaire_type_id: 0, name: 'Overall Grade', qtype: '0') # Overall grade (not tied to questionnaire_type)
Leaderboard.create(questionnaire_type_id: 1, name: 'Submitted Work', qtype: 'ReviewQuestionnaire') # Review
Leaderboard.create(questionnaire_type_id: 5, name: 'Reviewed by Author', qtype: 'AuthorFeedbackQuestionnaire') # Author Feedback
Leaderboard.create(questionnaire_type_id: 6, name: 'Reviewer', qtype: 'MetareviewQuestionnaire') # Metareview
Leaderboard.create(questionnaire_type_id: 7, name: 'Reviewed by Teammates', qtype: 'TeammateReviewQuestionnaire') # Teammate Review
# Leaderboard.create(questionnaire_type_id: 0, name: 'Overall Grade', qtype: '0') # Overall grade (not tied to questionnaire_type)
# Leaderboard.create(questionnaire_type_id: 1, name: 'Submitted Work', qtype: 'ReviewQuestionnaire') # Review
# Leaderboard.create(questionnaire_type_id: 5, name: 'Reviewed by Author', qtype: 'AuthorFeedbackQuestionnaire') # Author Feedback
# Leaderboard.create(questionnaire_type_id: 6, name: 'Reviewer', qtype: 'MetareviewQuestionnaire') # Metareview
# Leaderboard.create(questionnaire_type_id: 7, name: 'Reviewed by Teammates', qtype: 'TeammateReviewQuestionnaire') # Teammate Review
end

def self.down
Expand Down
6 changes: 3 additions & 3 deletions db/migrate/20121127013927_add_bookmarkrating_folder_nodes.rb
Expand Up @@ -8,9 +8,9 @@ def self.up
fnode = TreeFolder.create(name: 'Bookmarkrating', child_type: 'QuestionnaireNode')
pfNode = FolderNode.create(parent_id: pNode.id, node_object_id: fnode.id)

BookmarkratingQuestionnaire.find_each do |questionnaire|
QuestionnaireNode.create(parent_id: pfNode.id, node_object_id: questionnaire.id)
end
# BookmarkratingQuestionnaire.find_each do |questionnaire|
# QuestionnaireNode.create(parent_id: pfNode.id, node_object_id: questionnaire.id)
# end

folders = TreeFolder.where(child_type: 'QuestionnaireNode')
folders.each do |folder|
Expand Down

0 comments on commit d212645

Please sign in to comment.