Merge pull request #2115 from wairbut-m2c/iagirre-heading-population-restriction-validation

Iagirre heading population restriction validation
This commit is contained in:
María Checa
2017-11-28 20:06:53 +01:00
committed by GitHub
5 changed files with 31 additions and 2 deletions

View File

@@ -10,6 +10,7 @@ class Budget
validates :name, presence: true, uniqueness: { if: :name_exists_in_budget_headings }
validates :price, presence: true
validates :slug, presence: true, format: /\A[a-z0-9\-_]+\z/
validates :population, numericality: { greater_than: 0 }, allow_nil: true
delegate :budget, :budget_id, to: :group, allow_nil: true

View File

@@ -49,10 +49,17 @@
<div class="row">
<div class="small-12 medium-6 column">
<label><%= t("admin.budgets.form.population") %></label>
<%= f.text_field :population,
<%= f.number_field :population,
label: false,
maxlength: 8,
placeholder: t("admin.budgets.form.population") %>
min: 1,
placeholder: t("admin.budgets.form.population"),
data: {toggle_focus: "population-info"} %>
</div>
<div class="small-12 medium-6 column " >
<div id="population-info" class="is-hidden" data-toggler="is-hidden">
<%= t("admin.budgets.form.population_info") %>
</div>
</div>
</div>

View File

@@ -104,6 +104,7 @@ en:
table_heading: Heading
table_amount: Amount
table_population: Population
population_info: "Budget Heading population field is used for Statistic purposes at the end of the Budget to show for each Heading that represents an area with population what percentage voted. The field is optional so you can leave it empty if it doesn't apply."
winners:
calculate: Calculate Winner Investments
calculated: Winners being calculated, it may take a minute.

View File

@@ -104,6 +104,7 @@ es:
table_heading: Partida
table_amount: Cantidad
table_population: Población
population_info: "El campo población de las partidas presupuestarias se usa con fines estadísticos únicamente, con el objetivo de mostrar el porcentaje de votos habidos en cada partida que represente un área con población. Es un campo opcional, así que puedes dejarlo en blanco si no aplica."
winners:
calculate: Calcular propuestas ganadoras
calculated: Calculando ganadoras, puede tardar un minuto.

View File

@@ -25,4 +25,23 @@ describe Budget::Heading do
end
end
describe "Save population" do
it "Allows population == nil" do
expect(create(:budget_heading, group: group, name: 'Population is nil', population: nil)).to be_valid
end
it "Doesn't allow population <= 0" do
heading = create(:budget_heading, group: group, name: 'Population is > 0')
heading.population = 0
expect(heading).not_to be_valid
heading.population = -10
expect(heading).not_to be_valid
heading.population = 10
expect(heading).to be_valid
end
end
end