Merge pull request #2115 from wairbut-m2c/iagirre-heading-population-restriction-validation
Iagirre heading population restriction validation
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user