From 4c932b443c96f5fa539d38980165297f627fde16 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Sun, 5 Jan 2025 11:50:44 +0000 Subject: [PATCH 01/15] Update freecen_csv_entry.rb Do not update Notes field during propagation if the record notes already includes the propagation notes text --- app/models/freecen_csv_entry.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/models/freecen_csv_entry.rb b/app/models/freecen_csv_entry.rb index cec8b1c28..3563dc89c 100644 --- a/app/models/freecen_csv_entry.rb +++ b/app/models/freecen_csv_entry.rb @@ -1883,12 +1883,14 @@ def propagate_note(scope, userid) need_review_message = 'Warning: Notes field has been adjusted and needs review.
' if scope == 'ED' FreecenCsvEntry.where(freecen_csv_file_id: freecen_csv_file_id, enumeration_district: enumeration_district, verbatim_birth_county: verbatim_birth_county, verbatim_birth_place: verbatim_birth_place).no_timeout.each do |entry| - next if entry.id == _id + next if entry.id == _id || entry.notes.upcase.include?(notes.upcase) + warning_message = entry.warning_messages + need_review_message add_notes = entry.notes.present? ? entry.notes + ' ' + notes : notes @warnings_adjustment += 1 if entry.warning_messages.blank? entry.update_attributes(notes: add_notes, warning_messages: warning_message) + end else FreecenCsvEntry.where(freecen_csv_file_id: freecen_csv_file_id, verbatim_birth_county: verbatim_birth_county, verbatim_birth_place: verbatim_birth_place).no_timeout.each do |entry| @@ -1915,7 +1917,7 @@ def propagate_both(scope, userid) notes_need_review_message = 'Warning: Notes field has been adjusted and needs review.
' if scope == 'ED' FreecenCsvEntry.where(freecen_csv_file_id: freecen_csv_file_id, enumeration_district: enumeration_district, verbatim_birth_county: verbatim_birth_county, verbatim_birth_place: verbatim_birth_place).no_timeout.each do |entry| - next if entry.id == _id + next if entry.id == _id || entry.notes.upcase.include?(notes.upcase) _adjustment, updated_warnings = remove_pob_warning_messages(entry.warning_messages) new_warning_message = updated_warnings + notes_need_review_message @@ -1925,7 +1927,7 @@ def propagate_both(scope, userid) end else FreecenCsvEntry.where(freecen_csv_file_id: freecen_csv_file_id, verbatim_birth_county: verbatim_birth_county, verbatim_birth_place: verbatim_birth_place).no_timeout.each do |entry| - next if entry.id == _id + next if entry.id == _id || entry.notes.upcase.include?(notes.upcase) _adjustment, updated_warnings = remove_pob_warning_messages(entry.warning_messages) new_warning_message = updated_warnings + notes_need_review_message From d0643249de3d239f6152417f7e5f2e2c5729eb40 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Sun, 5 Jan 2025 12:05:04 +0000 Subject: [PATCH 02/15] Update freecen_csv_prevalidator.rb Do not propogate a note if that note txr already exits on the CSV entry record --- lib/freecen_csv_prevalidator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/freecen_csv_prevalidator.rb b/lib/freecen_csv_prevalidator.rb index b21d65d52..15b34599c 100644 --- a/lib/freecen_csv_prevalidator.rb +++ b/lib/freecen_csv_prevalidator.rb @@ -32,7 +32,7 @@ def update_from_propagations(csv_entry) warning_message = csv_entry.warning_messages + "Warning: Alternate fields have been adjusted and need review.
" csv_entry.update_attributes(birth_county: propagation_match.new_birth_county, birth_place: propagation_match.new_birth_place, warning_messages: warning_message) end - if propagation_match.propagate_notes + if propagation_match.propagate_notes && !(csv_entry.notes.present? && csv_entry.notes.upcase.include?(propagation_match.new_notes.upcase)) the_notes = csv_entry.notes.blank? ? propagation_match.new_notes : "#{csv_entry.notes} #{propagation_match.new_notes}" warning_message = csv_entry.warning_messages + "Warning: Notes field has been adjusted and needs review.
" csv_entry.update_attributes(notes: the_notes, warning_messages: warning_message) From a63e9157e1604f9755366b4aefc2accfb0d3ea7a Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Sun, 5 Jan 2025 12:43:44 +0000 Subject: [PATCH 03/15] Update freecen_csv_entry.rb Correction after first testing --- app/models/freecen_csv_entry.rb | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/models/freecen_csv_entry.rb b/app/models/freecen_csv_entry.rb index 3563dc89c..d84130f8a 100644 --- a/app/models/freecen_csv_entry.rb +++ b/app/models/freecen_csv_entry.rb @@ -1894,7 +1894,7 @@ def propagate_note(scope, userid) end else FreecenCsvEntry.where(freecen_csv_file_id: freecen_csv_file_id, verbatim_birth_county: verbatim_birth_county, verbatim_birth_place: verbatim_birth_place).no_timeout.each do |entry| - next if entry.id == _id + next if entry.id == _id || entry.notes.upcase.include?(notes.upcase) warning_message = entry.warning_messages + need_review_message add_notes = entry.notes.present? ? entry.notes + ' ' + notes : notes @@ -1917,21 +1917,29 @@ def propagate_both(scope, userid) notes_need_review_message = 'Warning: Notes field has been adjusted and needs review.
' if scope == 'ED' FreecenCsvEntry.where(freecen_csv_file_id: freecen_csv_file_id, enumeration_district: enumeration_district, verbatim_birth_county: verbatim_birth_county, verbatim_birth_place: verbatim_birth_place).no_timeout.each do |entry| - next if entry.id == _id || entry.notes.upcase.include?(notes.upcase) + next if entry.id == _id _adjustment, updated_warnings = remove_pob_warning_messages(entry.warning_messages) new_warning_message = updated_warnings + notes_need_review_message - add_notes = entry.notes.present? ? entry.notes + ' ' + notes : notes + if entry.notes.present? && entry.notes.upcase.include?(notes.upcase) + add_notes = entry.notes + else + add_notes = entry.notes.present? ? entry.notes + ' ' + notes : notes + end @warnings_adjustment += 1 if entry.warning_messages.blank? entry.update_attributes( birth_county: birth_county, birth_place: birth_place, notes: add_notes, warning_messages: new_warning_message) end else FreecenCsvEntry.where(freecen_csv_file_id: freecen_csv_file_id, verbatim_birth_county: verbatim_birth_county, verbatim_birth_place: verbatim_birth_place).no_timeout.each do |entry| - next if entry.id == _id || entry.notes.upcase.include?(notes.upcase) + next if entry.id == _id _adjustment, updated_warnings = remove_pob_warning_messages(entry.warning_messages) new_warning_message = updated_warnings + notes_need_review_message - add_notes = entry.notes.present? ? entry.notes + ' ' + notes : notes + if entry.notes.present? && entry.notes.upcase.include?(notes.upcase) + add_notes = entry.notes + else + add_notes = entry.notes.present? ? entry.notes + ' ' + notes : notes + end @warnings_adjustment += 1 if entry.warning_messages.blank? entry.update_attributes( birth_county: birth_county, birth_place: birth_place, notes: add_notes, warning_messages: new_warning_message) end From bcfe78d913b51d8e96b37d235873d7a32098af27 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Tue, 7 Jan 2025 09:28:05 +0000 Subject: [PATCH 04/15] Update freecen_csv_entries_helper.rb Check that record has Notes before offering propagation of Notes --- app/helpers/freecen_csv_entries_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/helpers/freecen_csv_entries_helper.rb b/app/helpers/freecen_csv_entries_helper.rb index fce298745..b8b94cce3 100644 --- a/app/helpers/freecen_csv_entries_helper.rb +++ b/app/helpers/freecen_csv_entries_helper.rb @@ -62,7 +62,7 @@ def propagate_alternate def propagate_note return if session[:propagate_alternate] == session[:propagated_alternate] || @freecen_csv_file.incorporated - if session[:propagate_note].present? && session[:propagate_note] == @freecen_csv_entry.id && @freecen_csv_entry.record_valid.downcase == 'true' + if session[:propagate_note].present? && session[:propagate_note] == @freecen_csv_entry.id && @freecen_csv_entry.record_valid.downcase == 'true' && @freecen_csv_entry.notes.present? link_to 'Propagate Notes Field', propagate_pob_freecen_csv_entry_path(id: @freecen_csv_entry._id, propagation_fields: 'Notes'), method: :get, class: "btn btn--small", title: 'Allows you to specify the scope of Propagation the Notes fields', data: { confirm: 'Are you sure you want to Propagate the Notes of this entry' } @@ -72,7 +72,7 @@ def propagate_note def propagate_both return if session[:propagate_alternate] == session[:propagated_alternate] || @freecen_csv_file.incorporated - if session[:propagate_alternate].present? && session[:propagate_note].present? && session[:propagate_alternate] == @freecen_csv_entry.id && @year != '1841' && @freecen_csv_entry.record_valid.downcase == 'true' + if session[:propagate_alternate].present? && session[:propagate_note].present? && session[:propagate_alternate] == @freecen_csv_entry.id && @year != '1841' && @freecen_csv_entry.record_valid.downcase == 'true' && @freecen_csv_entry.notes.present? link_to 'Propagate POB and Notes Field', propagate_pob_freecen_csv_entry_path(id: @freecen_csv_entry._id, propagation_fields: 'Both'), method: :get, class: "btn btn--small", title: 'Allows you to specify the scope of Propagation the alternative POB and Notes fields', data: { confirm: 'Are you sure you want to Propagate the Alternate POB and Notes of this entry' } From b676d6e5db78996a9a6c3c9361dbe86a94cc0f23 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Fri, 10 Jan 2025 12:46:28 +0000 Subject: [PATCH 05/15] Update application_controller.rb Delete session parameters for POB propagation when new session or change of county --- app/controllers/application_controller.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index f102db3b6..f59540499 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -301,6 +301,9 @@ def clean_session session.delete(:contents_id) session.delete(:contents_county_description) session.delete(:contents_place_description) + session.delete(:propagate_alternate) + session.delete(:propagate_note) + session.delete(:propagated_alternate) end def clean_session_for_county @@ -355,6 +358,9 @@ def clean_session_for_county session.delete(:move_old_place) session.delete(:move_new_county) session.delete(:move_new_place) + session.delete(:propagate_alternate) + session.delete(:propagate_note) + session.delete(:propagated_alternate) end def clean_session_for_images From 3b05bac7d631cc84cd4b6a7e497e1f2b0c74edd1 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Wed, 15 Jan 2025 08:49:37 +0000 Subject: [PATCH 06/15] Update to replace Freecen1VldEntryPropagation with FreecenPobPropagation Updates are #1790 deployed --- app/models/freecen_csv_entry.rb | 6 +++--- lib/freecen_csv_prevalidator.rb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/freecen_csv_entry.rb b/app/models/freecen_csv_entry.rb index d84130f8a..6243634c6 100644 --- a/app/models/freecen_csv_entry.rb +++ b/app/models/freecen_csv_entry.rb @@ -1870,7 +1870,7 @@ def propagate_alternate(scope, userid) end if scope == 'All' propagate_pob, propagate_notes = propagation_flags('Alternative') - ok = Freecen1VldEntryPropagation.create_new_propagation('ALL', 'ALL', verbatim_birth_county, verbatim_birth_place, birth_county, birth_place, notes, propagate_pob, propagate_notes, userid) + ok = FreecenPobPropagation.create_new_propagation('ALL', 'ALL', verbatim_birth_county, verbatim_birth_place, birth_county, birth_place, notes, propagate_pob, propagate_notes, userid) message = ok ? '' : 'Propagation successful for File but please note Propagation record for Collection already exists.' end [@warnings_adjustment, success, message] @@ -1904,7 +1904,7 @@ def propagate_note(scope, userid) end if scope == 'All' propagate_pob, propagate_notes = propagation_flags('Notes') - ok = Freecen1VldEntryPropagation.create_new_propagation('ALL', 'ALL', verbatim_birth_county, verbatim_birth_place, birth_county, birth_place, notes, propagate_pob, propagate_notes, userid) + ok = FreecenPobPropagation.create_new_propagation('ALL', 'ALL', verbatim_birth_county, verbatim_birth_place, birth_county, birth_place, notes, propagate_pob, propagate_notes, userid) message = ok ? '' : 'Propagation successful for File but please note Propagation record for Collection already exists.' end [@warnings_adjustment, success, message] @@ -1946,7 +1946,7 @@ def propagate_both(scope, userid) end if scope == 'All' propagate_pob, propagate_notes = propagation_flags('Both') - ok = Freecen1VldEntryPropagation.create_new_propagation('ALL', 'ALL', verbatim_birth_county, verbatim_birth_place, birth_county, birth_place, notes, propagate_pob, propagate_notes, userid) + ok = FreecenPobPropagation.create_new_propagation('ALL', 'ALL', verbatim_birth_county, verbatim_birth_place, birth_county, birth_place, notes, propagate_pob, propagate_notes, userid) message = ok ? '' : 'Propagation successful for File but Propagation record for Whole Collection not created as it already exists.' end [@warnings_adjustment, success, message] diff --git a/lib/freecen_csv_prevalidator.rb b/lib/freecen_csv_prevalidator.rb index 15b34599c..1ed6157b6 100644 --- a/lib/freecen_csv_prevalidator.rb +++ b/lib/freecen_csv_prevalidator.rb @@ -26,7 +26,7 @@ def process_csv_file(csv_file, userid) def update_from_propagations(csv_entry) match_found = false - propagation_match = Freecen1VldEntryPropagation.where(match_verbatim_birth_county: csv_entry.verbatim_birth_county, match_verbatim_birth_place: csv_entry.verbatim_birth_place, scope_year: 'ALL', scope_county: 'ALL').first + propagation_match = FreecenPobPropagation.where(match_verbatim_birth_county: csv_entry.verbatim_birth_county, match_verbatim_birth_place: csv_entry.verbatim_birth_place, scope_year: 'ALL', scope_county: 'ALL').first if propagation_match.present? if propagation_match.propagate_pob warning_message = csv_entry.warning_messages + "Warning: Alternate fields have been adjusted and need review.
" From 7af2ba94dd8ced5302def1407fb3812930481a74 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Wed, 15 Jan 2025 11:35:32 +0000 Subject: [PATCH 07/15] Update freecen_csv_entry.rb Update calculation of Previous and Next List Entry buttons to account for current record no longer being in the Error or Warning List as it has been accepted or edited --- app/models/freecen_csv_entry.rb | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/models/freecen_csv_entry.rb b/app/models/freecen_csv_entry.rb index 6243634c6..17baa5e11 100644 --- a/app/models/freecen_csv_entry.rb +++ b/app/models/freecen_csv_entry.rb @@ -2616,11 +2616,22 @@ def next_and_previous_list_entries(type) return [nil, nil] if list_of_records.blank? current_index = list_of_records.find_index(_id) - return [nil, nil] if current_index.blank? - number_records = list_of_records.length - next_entry = (current_index + 1) <= number_records ? FreecenCsvEntry.find_by(_id: list_of_records[current_index + 1]) : nil - previous_entry = (current_index - 1) < 0 ? nil : FreecenCsvEntry.find_by(_id: list_of_records[current_index - 1]) + if current_index.present? + next_index = current_index + 1 + previous_index = current_index - 1 + else + previous_index = -1 + next_index = number_records + list_of_records.each_with_index do |list_id, idx| + next_index = idx + break if list_id > _id + + previous_index = idx + end + end + next_entry = next_index < number_records && next_index != previous_index ? FreecenCsvEntry.find_by(_id: list_of_records[next_index]) : nil + previous_entry = previous_index.negative? ? nil : FreecenCsvEntry.find_by(_id: list_of_records[previous_index]) [next_entry, previous_entry] end From ecfe74b3d2652fe084114d656c6dc21b7fca9e7d Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Wed, 15 Jan 2025 11:40:41 +0000 Subject: [PATCH 08/15] Update freecen_csv_entry.rb Add change to resolve issue #1825 --- app/models/freecen_csv_entry.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/freecen_csv_entry.rb b/app/models/freecen_csv_entry.rb index 17baa5e11..71df103b8 100644 --- a/app/models/freecen_csv_entry.rb +++ b/app/models/freecen_csv_entry.rb @@ -1746,7 +1746,7 @@ def acknowledge end def add_address(freecen_csv_file_id, dwelling) - first_individual = FreecenCsvEntry.find_by(freecen_csv_file_id: freecen_csv_file_id, dwelling_number: dwelling) + first_individual = FreecenCsvEntry.find_by(freecen_csv_file_id: freecen_csv_file_id, dwelling_number: dwelling, sequence_in_household: 1) if first_individual.present? self.folio_number = first_individual.folio_number self.page_number = first_individual.page_number From 68781ace8e5eb054a45f96843eb4a54b8dbc46ed Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Mon, 17 Mar 2025 14:24:59 +0000 Subject: [PATCH 09/15] Adjustment to propagation scope of records that have not been edited If the record is not edited the propagation options entry can only be propagated up to the file level. --- app/controllers/application_controller.rb | 2 ++ app/controllers/freecen_csv_entries_controller.rb | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index f59540499..90344fa3a 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -304,6 +304,7 @@ def clean_session session.delete(:propagate_alternate) session.delete(:propagate_note) session.delete(:propagated_alternate) + session.delete(:propagation_scope) end def clean_session_for_county @@ -361,6 +362,7 @@ def clean_session_for_county session.delete(:propagate_alternate) session.delete(:propagate_note) session.delete(:propagated_alternate) + session.delete(:propagation_scope) end def clean_session_for_images diff --git a/app/controllers/freecen_csv_entries_controller.rb b/app/controllers/freecen_csv_entries_controller.rb index 8193a8fda..4099c88f9 100644 --- a/app/controllers/freecen_csv_entries_controller.rb +++ b/app/controllers/freecen_csv_entries_controller.rb @@ -64,6 +64,7 @@ def accept @freecen_csv_file.update_total_warning_messages session[:propagate_alternate] = @freecen_csv_entry.id unless verbatim_place_of_birth_matches_place_of_birth(@freecen_csv_entry) session[:propagate_note] = @freecen_csv_entry.id if @freecen_csv_entry.notes.present? + session[:propagation_scope] = 'File' flash[:notice] = 'The acceptance was successful' redirect_to(freecen_csv_entry_path(@freecen_csv_entry)) && return end @@ -185,6 +186,7 @@ def edit get_user_info_from_userid session.delete(:propagate_alternate) session.delete(:propagate_note) + session.delete(:propagation_scope) end def index @@ -244,6 +246,7 @@ def propagate_pob original_warning_count = @freecen_csv_file.total_warnings @freecen_csv_file.adjust_total_warning_messages_and_lock(original_warning_count, warnings_adjustment) flash[:notice] = success ? 'Propagation processed successfully, the file is now locked against replacement until it has been downloaded.' : message + session[:propagation_scope] = 'Collection' redirect_to freecen_csv_entry_path(@freecen_csv_entry) else @freecen_csv_entry = FreecenCsvEntry.find(params[:id]) if params[:id].present? @@ -254,7 +257,11 @@ def propagate_pob @propagation_fields = params[:propagation_fields] @freecen_csv_file = @freecen_csv_entry.freecen_csv_file @chapman_code = @freecen_csv_file.chapman_code - @scope = FreecenCsvEntry.propagation_scope(@freecen_csv_entry, @chapman_code) + if session[:propagation_scope].present? && session[:propagation_scope] == 'File' + @scope == 'File' + else + @scope = FreecenCsvEntry.propagation_scope(@freecen_csv_entry, @chapman_code) + end end redirect_to freecen_csv_entry_path(@freecen_csv_entry) && return end From 04fbef68d9b073b1aa4cd83a29a5cebad63d1a89 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Wed, 19 Mar 2025 12:19:24 +0000 Subject: [PATCH 10/15] Attempts to sort Testing log issues R30 and R50 Attempts to sort Testing log issues R30 and R50 --- app/helpers/freecen_csv_entries_helper.rb | 7 +++++-- app/views/freecen_csv_entries/show.html.erb | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/helpers/freecen_csv_entries_helper.rb b/app/helpers/freecen_csv_entries_helper.rb index b8b94cce3..4cfac482b 100644 --- a/app/helpers/freecen_csv_entries_helper.rb +++ b/app/helpers/freecen_csv_entries_helper.rb @@ -59,8 +59,11 @@ def propagate_alternate end end - def propagate_note - return if session[:propagate_alternate] == session[:propagated_alternate] || @freecen_csv_file.incorporated + def propagate_notes + + return if @freecen_csv_file.incorporated + + return if session[:propagate_note].present? && session[:propagated_alternate].present? && session[:propagate_note] == session[:propagated_alternate] if session[:propagate_note].present? && session[:propagate_note] == @freecen_csv_entry.id && @freecen_csv_entry.record_valid.downcase == 'true' && @freecen_csv_entry.notes.present? link_to 'Propagate Notes Field', propagate_pob_freecen_csv_entry_path(id: @freecen_csv_entry._id, propagation_fields: 'Notes'), method: :get, class: "btn btn--small", diff --git a/app/views/freecen_csv_entries/show.html.erb b/app/views/freecen_csv_entries/show.html.erb index 073133568..00aa10886 100644 --- a/app/views/freecen_csv_entries/show.html.erb +++ b/app/views/freecen_csv_entries/show.html.erb @@ -12,7 +12,7 @@
<%= edit_entry %> <%= propagate_alternate%> - <%= propagate_note%> + <%= propagate_notes%> <%= propagate_both%> <%= accept_entry %> <%= reject_entry %> From fb032c3015c15d1be15572430ed58bb1c4da1740 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Wed, 19 Mar 2025 12:20:36 +0000 Subject: [PATCH 11/15] Attempts to sort Testing log issues R30 and R50 Attempts to sort Testing log issues R30 and R50 --- app/controllers/freecen_csv_entries_controller.rb | 5 +++-- app/models/freecen_csv_entry.rb | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/controllers/freecen_csv_entries_controller.rb b/app/controllers/freecen_csv_entries_controller.rb index 4099c88f9..8282c1a16 100644 --- a/app/controllers/freecen_csv_entries_controller.rb +++ b/app/controllers/freecen_csv_entries_controller.rb @@ -237,9 +237,10 @@ def propagate_pob get_user_info_from_userid warnings_adjustment, success, message = @freecen_csv_entry.propagate_pob(@propagation_fields, @propagation_scope, @user.userid) if success - session[:propagated_alternate] = session[:propagate_alternate] + session[:propagated_alternate] = @propagation_fields == 'Notes' ? session[:propagate_note] : session[:propagate_alternate] else session.delete(:propagate_alternate) + session.delete(:propagate_note) end @freecen_csv_entry.reload @freecen_csv_file = @freecen_csv_entry.freecen_csv_file @@ -319,7 +320,7 @@ def update else flash[:notice] = 'The change in entry contents was successful, the file is now locked against replacement until it has been downloaded.' end - redirect_to freecen_csv_entry_path(@freecen_csv_entry) + redirect_to(freecen_csv_entry_path(@freecen_csv_entry)) && return end end diff --git a/app/models/freecen_csv_entry.rb b/app/models/freecen_csv_entry.rb index 71df103b8..05c307485 100644 --- a/app/models/freecen_csv_entry.rb +++ b/app/models/freecen_csv_entry.rb @@ -1824,6 +1824,8 @@ def propagate?(parameters) return false unless freecen_csv_file.validation + return false if birth_county.blank? && birth_place.blank? + return true if parameters[:birth_county].present? && parameters[:birth_county] != birth_county return true if parameters[:birth_place].present? && parameters[:birth_place] != birth_place From b9bf75b12163a19c5981a86bf428fe9269868dc0 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Wed, 19 Mar 2025 14:10:44 +0000 Subject: [PATCH 12/15] Update freecen_csv_entries_controller.rb includes some AEV comments that need to be removed --- app/controllers/freecen_csv_entries_controller.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/controllers/freecen_csv_entries_controller.rb b/app/controllers/freecen_csv_entries_controller.rb index 8282c1a16..06a95d1b7 100644 --- a/app/controllers/freecen_csv_entries_controller.rb +++ b/app/controllers/freecen_csv_entries_controller.rb @@ -64,7 +64,7 @@ def accept @freecen_csv_file.update_total_warning_messages session[:propagate_alternate] = @freecen_csv_entry.id unless verbatim_place_of_birth_matches_place_of_birth(@freecen_csv_entry) session[:propagate_note] = @freecen_csv_entry.id if @freecen_csv_entry.notes.present? - session[:propagation_scope] = 'File' + session[:propagation_scope] = 'File' unless session[:propagation_scope] == 'Collection' flash[:notice] = 'The acceptance was successful' redirect_to(freecen_csv_entry_path(@freecen_csv_entry)) && return end @@ -247,7 +247,8 @@ def propagate_pob original_warning_count = @freecen_csv_file.total_warnings @freecen_csv_file.adjust_total_warning_messages_and_lock(original_warning_count, warnings_adjustment) flash[:notice] = success ? 'Propagation processed successfully, the file is now locked against replacement until it has been downloaded.' : message - session[:propagation_scope] = 'Collection' + session.delete(:propagation_scope) + # AEV session[:propagation_scope] = 'Collection' redirect_to freecen_csv_entry_path(@freecen_csv_entry) else @freecen_csv_entry = FreecenCsvEntry.find(params[:id]) if params[:id].present? @@ -320,6 +321,8 @@ def update else flash[:notice] = 'The change in entry contents was successful, the file is now locked against replacement until it has been downloaded.' end + session.delete(:propagation_scope) + # AEV session[:propagation_scope] = 'Collection' redirect_to(freecen_csv_entry_path(@freecen_csv_entry)) && return end end From 2b608b7e52b3247978a838d899132b5b26582830 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Mon, 24 Mar 2025 14:55:49 +0000 Subject: [PATCH 13/15] Remove use of session param propagation_scope as not required Remove use of session param propagation_scope as not required --- app/controllers/application_controller.rb | 2 -- app/controllers/freecen_csv_entries_controller.rb | 13 ++----------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 90344fa3a..f59540499 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -304,7 +304,6 @@ def clean_session session.delete(:propagate_alternate) session.delete(:propagate_note) session.delete(:propagated_alternate) - session.delete(:propagation_scope) end def clean_session_for_county @@ -362,7 +361,6 @@ def clean_session_for_county session.delete(:propagate_alternate) session.delete(:propagate_note) session.delete(:propagated_alternate) - session.delete(:propagation_scope) end def clean_session_for_images diff --git a/app/controllers/freecen_csv_entries_controller.rb b/app/controllers/freecen_csv_entries_controller.rb index 06a95d1b7..c60226f8c 100644 --- a/app/controllers/freecen_csv_entries_controller.rb +++ b/app/controllers/freecen_csv_entries_controller.rb @@ -46,6 +46,7 @@ def accept else @propagation_fields = 'Notes' end + @propagation_scope = 'File' get_user_info_from_userid warnings_adjustment, success, _message = @freecen_csv_entry.propagate_pob(@propagation_fields, @propagation_scope, @user.userid) @@ -64,7 +65,6 @@ def accept @freecen_csv_file.update_total_warning_messages session[:propagate_alternate] = @freecen_csv_entry.id unless verbatim_place_of_birth_matches_place_of_birth(@freecen_csv_entry) session[:propagate_note] = @freecen_csv_entry.id if @freecen_csv_entry.notes.present? - session[:propagation_scope] = 'File' unless session[:propagation_scope] == 'Collection' flash[:notice] = 'The acceptance was successful' redirect_to(freecen_csv_entry_path(@freecen_csv_entry)) && return end @@ -186,7 +186,6 @@ def edit get_user_info_from_userid session.delete(:propagate_alternate) session.delete(:propagate_note) - session.delete(:propagation_scope) end def index @@ -247,8 +246,6 @@ def propagate_pob original_warning_count = @freecen_csv_file.total_warnings @freecen_csv_file.adjust_total_warning_messages_and_lock(original_warning_count, warnings_adjustment) flash[:notice] = success ? 'Propagation processed successfully, the file is now locked against replacement until it has been downloaded.' : message - session.delete(:propagation_scope) - # AEV session[:propagation_scope] = 'Collection' redirect_to freecen_csv_entry_path(@freecen_csv_entry) else @freecen_csv_entry = FreecenCsvEntry.find(params[:id]) if params[:id].present? @@ -259,11 +256,7 @@ def propagate_pob @propagation_fields = params[:propagation_fields] @freecen_csv_file = @freecen_csv_entry.freecen_csv_file @chapman_code = @freecen_csv_file.chapman_code - if session[:propagation_scope].present? && session[:propagation_scope] == 'File' - @scope == 'File' - else - @scope = FreecenCsvEntry.propagation_scope(@freecen_csv_entry, @chapman_code) - end + @scope = FreecenCsvEntry.propagation_scope(@freecen_csv_entry, @chapman_code) end redirect_to freecen_csv_entry_path(@freecen_csv_entry) && return end @@ -321,8 +314,6 @@ def update else flash[:notice] = 'The change in entry contents was successful, the file is now locked against replacement until it has been downloaded.' end - session.delete(:propagation_scope) - # AEV session[:propagation_scope] = 'Collection' redirect_to(freecen_csv_entry_path(@freecen_csv_entry)) && return end end From 1a9f094f0274d2b752afd676710150a3c9a4a976 Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Mon, 24 Mar 2025 16:51:00 +0000 Subject: [PATCH 14/15] Only offer propagation to Collection level if Propagation record does not already exist Only offer propagation to Collection level if Propagation record does not already exist. Propagate Notes in the pre_validator even if the exact same note already exists. --- app/models/freecen_csv_entry.rb | 15 ++++++++------- lib/freecen_csv_prevalidator.rb | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/models/freecen_csv_entry.rb b/app/models/freecen_csv_entry.rb index 05c307485..9710d41f4 100644 --- a/app/models/freecen_csv_entry.rb +++ b/app/models/freecen_csv_entry.rb @@ -176,13 +176,14 @@ def mytitlieze(value) end def propagation_scope(entry, chapman_code) - if entry.verbatim_birth_county == chapman_code || - %w[OVF ENG SCT IRL WLS CHI].include?(entry.verbatim_birth_county) || - (chapman_code == 'HAM' && %w[HAM IOW].include?(entry.verbatim_birth_county)) || - (chapman_code == 'YKS' && %w[YKS ERY WRY NRY].include?(entry.verbatim_birth_county)) - scope = 'Collection' - else - scope = 'File' + scope = 'File' + unless FreecenPobPropagation.where(scope_year: 'ALL', scope_county: 'ALL', match_verbatim_birth_county: entry.verbatim_birth_county, match_verbatim_birth_place: entry.verbatim_birth_place).exists? + if entry.verbatim_birth_county == chapman_code || + %w[OVF ENG SCT IRL WLS CHI].include?(entry.verbatim_birth_county) || + (chapman_code == 'HAM' && %w[HAM IOW].include?(entry.verbatim_birth_county)) || + (chapman_code == 'YKS' && %w[YKS ERY WRY NRY].include?(entry.verbatim_birth_county)) + scope = 'Collection' + end end scope end diff --git a/lib/freecen_csv_prevalidator.rb b/lib/freecen_csv_prevalidator.rb index 1ed6157b6..7e4bc8051 100644 --- a/lib/freecen_csv_prevalidator.rb +++ b/lib/freecen_csv_prevalidator.rb @@ -32,7 +32,7 @@ def update_from_propagations(csv_entry) warning_message = csv_entry.warning_messages + "Warning: Alternate fields have been adjusted and need review.
" csv_entry.update_attributes(birth_county: propagation_match.new_birth_county, birth_place: propagation_match.new_birth_place, warning_messages: warning_message) end - if propagation_match.propagate_notes && !(csv_entry.notes.present? && csv_entry.notes.upcase.include?(propagation_match.new_notes.upcase)) + if propagation_match.propagate_notes the_notes = csv_entry.notes.blank? ? propagation_match.new_notes : "#{csv_entry.notes} #{propagation_match.new_notes}" warning_message = csv_entry.warning_messages + "Warning: Notes field has been adjusted and needs review.
" csv_entry.update_attributes(notes: the_notes, warning_messages: warning_message) From 18c43c59b609b7b75e659aeae72129bc7aa77cca Mon Sep 17 00:00:00 2001 From: Anne Vandervord <72746727+AnneV-Learn@users.noreply.github.com> Date: Mon, 24 Mar 2025 17:39:16 +0000 Subject: [PATCH 15/15] Update freecen_csv_entry.rb Correction to code for checking if propagation record already exists --- app/models/freecen_csv_entry.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/freecen_csv_entry.rb b/app/models/freecen_csv_entry.rb index 9710d41f4..1c7b119aa 100644 --- a/app/models/freecen_csv_entry.rb +++ b/app/models/freecen_csv_entry.rb @@ -177,7 +177,8 @@ def mytitlieze(value) def propagation_scope(entry, chapman_code) scope = 'File' - unless FreecenPobPropagation.where(scope_year: 'ALL', scope_county: 'ALL', match_verbatim_birth_county: entry.verbatim_birth_county, match_verbatim_birth_place: entry.verbatim_birth_place).exists? + prop_rec_exists = FreecenPobPropagation.where(scope_year: 'ALL', scope_county: 'ALL', match_verbatim_birth_county: entry.verbatim_birth_county, match_verbatim_birth_place: entry.verbatim_birth_place).exists? + unless prop_rec_exists if entry.verbatim_birth_county == chapman_code || %w[OVF ENG SCT IRL WLS CHI].include?(entry.verbatim_birth_county) || (chapman_code == 'HAM' && %w[HAM IOW].include?(entry.verbatim_birth_county)) ||