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