diff --git a/app/models/setting.rb b/app/models/setting.rb index 0488c2d2d..a35d8b6c2 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -177,7 +177,7 @@ class Setting < ApplicationRecord "machine_learning.comments_summary": false, "machine_learning.related_content": false, "machine_learning.tags": false, - "postal_codes": "00001:99999", + "postal_codes": "", "remote_census.general.endpoint": "", "remote_census.request.method_name": "", "remote_census.request.structure": "", diff --git a/app/models/verification/residence.rb b/app/models/verification/residence.rb index 82cc2d046..d782fbb6f 100644 --- a/app/models/verification/residence.rb +++ b/app/models/verification/residence.rb @@ -104,6 +104,8 @@ class Verification::Residence end def valid_postal_code? + return true if Setting["postal_codes"].blank? + Setting["postal_codes"].split(",").any? do |code_or_range| if code_or_range.include?(":") Range.new(*code_or_range.split(":").map(&:strip)).include?(postal_code&.strip) diff --git a/config/locales/en/settings.yml b/config/locales/en/settings.yml index 0e8d1218b..fa9287be3 100644 --- a/config/locales/en/settings.yml +++ b/config/locales/en/settings.yml @@ -61,7 +61,7 @@ en: min_age_to_participate: Minimum age needed to participate min_age_to_participate_description: "Users over this age can participate in all processes where a user verified account is needed" postal_codes: "Postal Codes" - postal_codes_description: "A comma-separated list of valid postal codes; you can also introduce ranges separated with a colon. Example: 00001:00010,00024,AB3 45FG,00031:00035 will allow postal codes between 00001 and 00010, the postal code 00024, the postal code AB3 45FG, and postal codes between 00031 and 00035." + postal_codes_description: "A comma-separated list of valid postal codes; you can also introduce ranges separated with a colon. Example: 00001:00010,00024,AB3 45FG,00031:00035 will allow postal codes between 00001 and 00010, the postal code 00024, the postal code AB3 45FG, and postal codes between 00031 and 00035. If you leave it blank, all postal codes will be valid." proposals: successful_proposal_id: Successful proposal successful_proposal_id_description: This proposal is used as a reference for a successful proposal in supports number and will be displayed in the dashboard graph. diff --git a/config/locales/es/settings.yml b/config/locales/es/settings.yml index 631ef0603..146213632 100644 --- a/config/locales/es/settings.yml +++ b/config/locales/es/settings.yml @@ -61,7 +61,7 @@ es: min_age_to_participate: Edad mínima para participar min_age_to_participate_description: "Los usuarios mayores de esta edad podrán participar en todos los procesos donde se necesite una cuenta verificada" postal_codes: "Códigos Postales" - postal_codes_description: "Una lista de códigos postales válidos separados por comas; también puedes usar rangos utilizando \":\". Ejemplo: 00001:00010,00024,AB3 45FG,00031:00035 permitirá códigos postales entre 00001 y 00010, el 00024, el AB3 45FG, y códigos postales entre 00031 y 00035." + postal_codes_description: "Una lista de códigos postales válidos separados por comas; también puedes usar rangos utilizando \":\". Ejemplo: 00001:00010,00024,AB3 45FG,00031:00035 permitirá códigos postales entre 00001 y 00010, el 00024, el AB3 45FG, y códigos postales entre 00031 y 00035. Si dejas esta opción en blanco, cualquier código postal será válido." proposals: successful_proposal_id: Propuesta exitosa successful_proposal_id_description: Esta propuesta se utiliza como referencia de una propuesta exitosa en número de apoyos y se mostrará en el gráfico del panel de control diff --git a/spec/models/verification/residence_spec.rb b/spec/models/verification/residence_spec.rb index 7c3e671e3..26196c3ce 100644 --- a/spec/models/verification/residence_spec.rb +++ b/spec/models/verification/residence_spec.rb @@ -144,6 +144,23 @@ describe Verification::Residence do expect(residence.errors.count).to eq 1 expect(residence.errors[:postal_code]).to eq ["In order to be verified, you must be registered."] end + + it "allows any postal code when the setting is blank" do + Setting["postal_codes"] = nil + residence.postal_code = "randomthing" + + expect(residence).to be_valid + + Setting["postal_codes"] = "" + residence.postal_code = "ABC123" + + expect(residence).to be_valid + + Setting["postal_codes"] = " " + residence.postal_code = "555-5" + + expect(residence).to be_valid + end end end diff --git a/spec/system/verification/residence_spec.rb b/spec/system/verification/residence_spec.rb index 25bdb70df..f2f7e2700 100644 --- a/spec/system/verification/residence_spec.rb +++ b/spec/system/verification/residence_spec.rb @@ -91,6 +91,7 @@ describe "Residence" do end scenario "Error on postal code not in census" do + Setting["postal_codes"] = "00001:99999" user = create(:user) login_as(user)