adds admin creation of budgets
This commit is contained in:
@@ -7,6 +7,22 @@ class Admin::BudgetsController < Admin::BaseController
|
||||
end
|
||||
|
||||
def new
|
||||
@budget = Budget.new
|
||||
end
|
||||
|
||||
def create
|
||||
@budget = Budget.new(budget_params)
|
||||
if @budget.save
|
||||
redirect_to admin_budgets_path, notice: t('admin.budgets.create.notice')
|
||||
else
|
||||
render :new
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def budget_params
|
||||
params.require(:budget).permit(:name, :description, :phase, :currency_symbol)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -2,142 +2,29 @@
|
||||
<div class="small-12 medium-9 column">
|
||||
<h2><%= t("admin.budgets.new.title") %></h2>
|
||||
|
||||
<form>
|
||||
<label><%= t("admin.budgets.new.name") %></label>
|
||||
<input type="text" placeholder="<%= t("admin.budgets.new.name") %>">
|
||||
<label><%= t("admin.budgets.new.description") %></label>
|
||||
<textarea rows="3" placeholder="<%= t("admin.budgets.new.description") %>"></textarea>
|
||||
<%= form_for [:admin, @budget] do |f| %>
|
||||
|
||||
<%= f.label :name, t("admin.budgets.new.name") %>
|
||||
<%= f.text_field :name,
|
||||
label: false,
|
||||
maxlength: 30,
|
||||
placeholder: t("admin.budgets.new.name") %>
|
||||
|
||||
<%= f.label :description, t("admin.budgets.new.description") %>
|
||||
<%= f.text_area :description, rows: 3, maxlength: 6000, label: false, placeholder: t("admin.budgets.new.description") %>
|
||||
|
||||
<div class="row">
|
||||
<div class="small-12 medium-9 column">
|
||||
<select>
|
||||
<option><%= t("admin.budgets.new.phase") %></option>
|
||||
<option>Seleccionando</option>
|
||||
<option>Votación final</option>
|
||||
<option>Terminado</option>
|
||||
</select>
|
||||
<%= f.label :description, t("admin.budgets.new.phase") %>
|
||||
<%= f.select :phase, budget_phases_select_options, {label: false} %>
|
||||
</div>
|
||||
<div class="small-12 medium-3 column">
|
||||
<select>
|
||||
<option><%= t("admin.budgets.new.currency") %></option>
|
||||
<option>€</option>
|
||||
<option>$</option>
|
||||
<option>£</option>
|
||||
<option>¥</option>
|
||||
</select>
|
||||
<%= f.label :description, t("admin.budgets.new.currency") %>
|
||||
<%= f.select :currency_symbol, budget_currency_symbol_select_options, {label: false} %>
|
||||
</div>
|
||||
</div>
|
||||
<input type="submit" value="<%= t("admin.budgets.new.create") %>" class="button success">
|
||||
</form>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="small-12 column">
|
||||
<h3 class="inline-block">Nombre del budget</h3>
|
||||
|
||||
<%= link_to t("admin.budgets.new.add_group"), "#", class: "button float-right" %>
|
||||
|
||||
<form>
|
||||
<div class="input-group">
|
||||
<span class="input-group-label">
|
||||
<label><%= t("admin.budgets.new.group") %></label>
|
||||
</span>
|
||||
<input type="text" placeholder="<%= t("admin.budgets.new.group") %>">
|
||||
<div class="input-group-button">
|
||||
<input type="submit" value="<%= t("admin.budgets.new.create_group") %>", class="button success">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="small-12 column">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="3" class="with-button">
|
||||
Nombre del grupo
|
||||
<%= link_to t("admin.budgets.new.add_heading"), "#", class: "button float-right" %>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><%= t("admin.budgets.new.table_heading") %></th>
|
||||
<th><%= t("admin.budgets.new.table_amount") %></th>
|
||||
<th><%= t("admin.budgets.new.table_geozone") %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- if heading == 0 -->
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<div class="callout primary">
|
||||
<%= t("admin.budgets.new.no_heading") %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- end -->
|
||||
<!-- new heading form -->
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<form>
|
||||
<label><%= t("admin.budgets.new.heading") %></label>
|
||||
<input type="text" placeholder="<%= t("admin.budgets.new.heading") %>">
|
||||
|
||||
<div class="row">
|
||||
<div class="small-12 medium-6 column">
|
||||
<label><%= t("admin.budgets.new.amount") %></label>
|
||||
<input type="text" placeholder="<%= t("admin.budgets.new.amount") %>">
|
||||
</div>
|
||||
<div class="small-12 medium-6 column">
|
||||
<label><%= t("admin.budgets.new.geozone") %></label>
|
||||
<select>
|
||||
<option><%= t("admin.budgets.new.no_geozone") %></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="submit" value="<%= t("admin.budgets.new.save_heading") %>", class="button success">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- /. new heading form -->
|
||||
<!-- headings list -->
|
||||
<tr>
|
||||
<td>
|
||||
Heading 1 name
|
||||
</td>
|
||||
<td>
|
||||
190.000€
|
||||
</td>
|
||||
<td>
|
||||
Geozone B
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Heading 2 name
|
||||
</td>
|
||||
<td>
|
||||
24.000.000€
|
||||
</td>
|
||||
<td>
|
||||
Does not apply
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Heading 3 name
|
||||
</td>
|
||||
<td>
|
||||
1.265.000€
|
||||
</td>
|
||||
<td>
|
||||
Geozone A
|
||||
</td>
|
||||
</tr>
|
||||
<!-- /. headings list -->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -65,6 +65,8 @@ en:
|
||||
filters:
|
||||
open: Open
|
||||
finished: Finished
|
||||
create:
|
||||
notice: New participatory budget created successfully!
|
||||
new:
|
||||
title: New participatory budget
|
||||
create: Create budget
|
||||
|
||||
@@ -65,6 +65,8 @@ es:
|
||||
filters:
|
||||
open: Abiertos
|
||||
finished: Terminados
|
||||
create:
|
||||
notice: ¡Nueva campaña de presupuestos participativos creada con éxito!
|
||||
new:
|
||||
title: Nuevo presupuesto ciudadano
|
||||
create: Crear presupuesto
|
||||
|
||||
@@ -35,7 +35,7 @@ es:
|
||||
menu: Menú
|
||||
budget:
|
||||
phase:
|
||||
on_hold: Pausa
|
||||
on_hold: En pausa
|
||||
accepting: Aceptando propuestas
|
||||
selecting: Fase de selección
|
||||
balloting: Fase de Votación
|
||||
|
||||
@@ -7,7 +7,7 @@ feature 'Admin budgets' do
|
||||
login_as(admin.user)
|
||||
end
|
||||
|
||||
context "Feature flag" do
|
||||
context 'Feature flag' do
|
||||
|
||||
xscenario 'Disabled with a feature flag' do
|
||||
Setting['feature.budgets'] = nil
|
||||
@@ -16,7 +16,7 @@ feature 'Admin budgets' do
|
||||
|
||||
end
|
||||
|
||||
context "Index" do
|
||||
context 'Index' do
|
||||
|
||||
scenario 'Displaying budgets' do
|
||||
budget = create(:budget)
|
||||
@@ -40,14 +40,14 @@ feature 'Admin budgets' do
|
||||
expect(page).to have_content(budget4.name)
|
||||
expect(page).to_not have_content(budget5.name)
|
||||
|
||||
click_link "Finished"
|
||||
click_link 'Finished'
|
||||
expect(page).to_not have_content(budget1.name)
|
||||
expect(page).to_not have_content(budget2.name)
|
||||
expect(page).to_not have_content(budget3.name)
|
||||
expect(page).to_not have_content(budget4.name)
|
||||
expect(page).to have_content(budget5.name)
|
||||
|
||||
click_link "Open"
|
||||
click_link 'Open'
|
||||
expect(page).to have_content(budget1.name)
|
||||
expect(page).to have_content(budget2.name)
|
||||
expect(page).to have_content(budget3.name)
|
||||
@@ -56,7 +56,7 @@ feature 'Admin budgets' do
|
||||
end
|
||||
|
||||
|
||||
scenario "Current filter is properly highlighted" do
|
||||
scenario 'Current filter is properly highlighted' do
|
||||
filters_links = {'open' => 'Open', 'finished' => 'Finished'}
|
||||
|
||||
visit admin_budgets_path
|
||||
@@ -76,4 +76,29 @@ feature 'Admin budgets' do
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'New' do
|
||||
scenario 'Create budget' do
|
||||
visit admin_budgets_path
|
||||
click_link 'Create new'
|
||||
|
||||
fill_in 'budget_name', with: 'M30 - Summer campaign'
|
||||
fill_in 'budget_description', with: 'Budgeting for summer 2017 maintenance and improvements of the road M-30'
|
||||
select 'Accepting proposals', from: 'budget[phase]'
|
||||
|
||||
click_button 'Create budget'
|
||||
|
||||
expect(page).to have_content 'New participatory budget created successfully!'
|
||||
expect(page).to have_content 'M30 - Summer campaign'
|
||||
end
|
||||
|
||||
scenario 'Name is mandatory' do
|
||||
visit new_admin_budget_path
|
||||
click_button 'Create budget'
|
||||
|
||||
expect(page).to_not have_content 'New participatory budget created successfully!'
|
||||
expect(page).to have_css("label.error", text: "Budget's name")
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user