0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-25 02:30:28 +01:00

FIX: exclude conditional fields while saving step submission

Dieser Commit ist enthalten in:
Faizaan Gagan 2021-05-12 18:15:55 +05:30
Ursprung 8c61b9b1f3
Commit ff14570d64
3 geänderte Dateien mit 6 neuen und 13 gelöschten Zeilen

Datei anzeigen

@ -28,7 +28,7 @@ class CustomWizard::StepsController < ::ApplicationController
current_step = @wizard.find_step(update[:step_id])
current_submission = @wizard.current_submission
result = {}
@wizard.filter_conditional_fields
if current_step.conditional_final_step && !current_step.last_step
current_step.force_final = true
end

Datei anzeigen

@ -243,19 +243,20 @@ class CustomWizard::Wizard
return nil unless save_submissions
submissions.pop(1) if unfinished?
submission = filter_conditional_fields(submission)
submissions.push(submission)
set_submissions(submissions)
end
def filter_conditional_fields(submission)
def filter_conditional_fields
included_fields = steps.map { |s| s.fields.map { |f| f.id } }.flatten
submission.select do |key, _|
filtered_submision = current_submission&.select do |key, _|
key = key.to_s
included_fields.include?(key) ||
required_fields.include?(key) ||
key.include?("action")
end
save_submission(filtered_submision)
end
def required_fields

Datei anzeigen

@ -272,16 +272,8 @@ describe CustomWizard::StepsController do
step_1_field_1: "Condition will not pass"
}
}
wizard_id = response.parsed_body['wizard']['id']
wizard = CustomWizard::Wizard.create(wizard_id, user)
submission = wizard.submissions.last
expect(submission.keys).to include("step_2_field_1")
put '/w/super-mega-fun-wizard/steps/step_2.json', params: {
fields: {
step_2_field_1: "1995-04-23"
}
}
wizard_id = response.parsed_body['wizard']['id']
wizard = CustomWizard::Wizard.create(wizard_id, user)
submission = wizard.submissions.last
expect(submission.keys).not_to include("step_2_field_1")