diff --git a/app/controllers/admissions/admission_committees_controller.rb b/app/controllers/admissions/admission_committees_controller.rb
index 7227d0a5..370d381d 100644
--- a/app/controllers/admissions/admission_committees_controller.rb
+++ b/app/controllers/admissions/admission_committees_controller.rb
@@ -26,6 +26,12 @@ class Admissions::AdmissionCommitteesController < ApplicationController
config.columns[:members].show_blank_record = false
config.columns[:form_conditions].show_blank_record = false
+ config.actions << :duplicate
+ config.duplicate.link.label = "
+
+ ".html_safe
+ config.duplicate.link.method = :get
+ config.duplicate.link.position = :after
config.actions.exclude :deleted_records
end
record_select(
diff --git a/app/controllers/admissions/admission_phases_controller.rb b/app/controllers/admissions/admission_phases_controller.rb
index 5d409fc7..17bcaed0 100644
--- a/app/controllers/admissions/admission_phases_controller.rb
+++ b/app/controllers/admissions/admission_phases_controller.rb
@@ -35,6 +35,12 @@ class Admissions::AdmissionPhasesController < ApplicationController
}
config.columns[:consolidation_form].clear_link
+ config.actions << :duplicate
+ config.duplicate.link.label = "
+
+ ".html_safe
+ config.duplicate.link.method = :get
+ config.duplicate.link.position = :after
config.actions.exclude :deleted_records
end
record_select(
diff --git a/app/models/admissions/admission_committee.rb b/app/models/admissions/admission_committee.rb
index e615c4d7..4f6581b0 100644
--- a/app/models/admissions/admission_committee.rb
+++ b/app/models/admissions/admission_committee.rb
@@ -22,4 +22,10 @@ class Admissions::AdmissionCommittee < ActiveRecord::Base
def to_label
self.name
end
+
+ def initialize_dup(other)
+ super
+ self.members = other.members.map(&:dup)
+ self.form_conditions = other.form_conditions.map(&:dup)
+ end
end
diff --git a/app/models/admissions/admission_phase.rb b/app/models/admissions/admission_phase.rb
index 9ab91f6a..145b8a9f 100644
--- a/app/models/admissions/admission_phase.rb
+++ b/app/models/admissions/admission_phase.rb
@@ -37,6 +37,12 @@ def to_label
"#{self.name}"
end
+ def initialize_dup(other)
+ super
+ self.admission_phase_committees = other.admission_phase_committees.map(&:dup)
+ self.form_conditions = other.form_conditions.map(&:dup)
+ end
+
def committee_users_for_candidate(candidate, should_raise: nil)
users = {}
self.admission_committees.each do |committee|
diff --git a/app/models/admissions/admission_process.rb b/app/models/admissions/admission_process.rb
index c6a9433a..98e7a96b 100644
--- a/app/models/admissions/admission_process.rb
+++ b/app/models/admissions/admission_process.rb
@@ -39,6 +39,11 @@ class Admissions::AdmissionProcess < ActiveRecord::Base
validate :max_greater_than_min_letters
validate :simple_url_is_unique_while_open
+ def initialize_dup(other)
+ super
+ self.phases = other.phases.map(&:dup)
+ end
+
def max_edit_date
return self.end_date if self.edit_date.nil?
self.edit_date