module DuplicateLogsHelper
include GovukLinkHelper
include GovukVisuallyHiddenHelper
def duplicate_logs_continue_button ( all_duplicates , duplicate_log , original_log )
if all_duplicates . count > 1
return govuk_button_link_to " Keep this log and delete duplicates " , url_for (
controller : " duplicate_logs " ,
action : " delete_duplicates " ,
" #{ duplicate_log . class . name . underscore } _id " : duplicate_log . id ,
original_log_id : original_log . id ,
referrer : params [ :referrer ] ,
organisation_id : params [ :organisation_id ] ,
)
end
if params [ :referrer ] == " duplicate_logs_banner "
current_user . support? ? govuk_button_link_to ( " Review other duplicates " , organisation_duplicates_path ( organisation_id : params [ :organisation_id ] , referrer : params [ :referrer ] ) ) : govuk_button_link_to ( " Review other duplicates " , duplicate_logs_path ( referrer : params [ :referrer ] ) )
elsif ! original_log . deleted?
govuk_button_link_to " Back to Log #{ original_log . id } " , send ( " #{ original_log . class . name . underscore } _path " , original_log )
else
type = duplicate_log . lettings? ? " lettings " : " sales "
govuk_button_link_to " Back to #{ type } logs " , url_for ( duplicate_log . class )
end
end
def duplicate_logs_action_href ( log , page_id , original_log_id )
send ( " #{ log . model_name . param_key } _ #{ page_id } _path " , log , referrer : " interruption_screen " , original_log_id : )
end
def change_duplicate_logs_action_href ( log , page_id , all_duplicates , original_log_id )
first_remaining_duplicate_id = all_duplicates . map ( & :id ) . reject { | id | id == log . id } . first
send ( " #{ log . model_name . param_key } _ #{ page_id } _path " , log , referrer : params [ :referrer ] == " duplicate_logs_banner " ? " duplicate_logs_banner " : " duplicate_logs " , first_remaining_duplicate_id : , original_log_id : , organisation_id : params [ :organisation_id ] )
end
def duplicates_for_user ( user )
{
lettings : user . editable_duplicate_lettings_logs_sets ,
sales : user . editable_duplicate_sales_logs_sets ,
}
end
def duplicates_for_organisation ( organisation )
{
lettings : organisation . editable_duplicate_lettings_logs_sets ,
sales : organisation . editable_duplicate_sales_logs_sets ,
}
end
def duplicate_sets_count ( user , organisation )
duplicates = user . data_provider? ? duplicates_for_user ( user ) : duplicates_for_organisation ( organisation )
duplicates [ :lettings ] . count + duplicates [ :sales ] . count
end
def duplicate_list_header ( duplicate_sets_count )
duplicate_sets_count > 1 ? " Review these #{ duplicate_sets_count } sets of logs " : " Review this #{ duplicate_sets_count } set of logs "
end
def duplicate_log_question_label ( question )
if question . id == " uprn "
" Postcode (from UPRN) "
else
get_question_label ( question )
end
end
def duplicate_log_answer_label ( question , log )
if question . id == " uprn "
postcode_question = log . form . get_question ( " postcode_full " , log )
get_answer_label ( postcode_question , log )
else
get_answer_label ( question , log )
end
end
def duplicate_log_extra_value ( question , log )
if question . id == " uprn "
postcode_question = log . form . get_question ( " postcode_full " , log )
postcode_question . get_extra_check_answer_value ( log )
else
question . get_extra_check_answer_value ( log )
end
end
def duplicate_log_answer_label_present ( question , log , current_user )
if question . id == " uprn "
postcode_question = log . form . get_question ( " postcode_full " , log )
postcode_question . answer_label ( log , current_user ) . present?
else
question . answer_label ( log , current_user ) . present?
end
end
def duplicate_log_inferred_answers ( question , log )
if question . id == " uprn "
postcode_question = log . form . get_question ( " postcode_full " , log )
postcode_question . get_inferred_answers ( log )
else
question . get_inferred_answers ( log )
end
end
end