Allow any postal code by default

Due to the way Madrid handled postal code validations (see issue 533),
by default we were requiring everyone to validate against the local
census *and* to specify valid postal codes.

This could be useful in some cases, but in other cases, the census
validation will be enough and there'll be no need to manually define the
valid postal codes. Besides, some CONSUL installations are used in
organizations or political parties where the postal code validation
doesn't make sense.
This commit is contained in:
Javi Martín
2021-11-14 16:46:05 +01:00
parent 35e0477e03
commit c2e95f6b86
6 changed files with 23 additions and 3 deletions

View File

@@ -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": "",

View File

@@ -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)

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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)