adds admin budgets index

This commit is contained in:
Juanjo Bazán
2016-07-28 12:36:39 +02:00
parent baddfdb3d1
commit 1ad78d599e
11 changed files with 157 additions and 1 deletions

View File

@@ -0,0 +1,9 @@
class Admin::BudgetsController < Admin::BaseController
has_filters %w{open finished}, only: :index
def index
@budgets = Budget.send(@current_filter).order(created_at: :desc).page(params[:page])
end
end

View File

@@ -0,0 +1,25 @@
<h2 class="inline-block"><%= t("admin.budgets.index.title") %></h2>
<%= link_to t("admin.budgets.index.new_link"),
new_admin_budget_path,
class: "button float-right margin-right" %>
<%= render 'shared/filter_subnav', i18n_namespace: "admin.budgets.index" %>
<h3><%= page_entries_info @budgets %></h3>
<table>
<% @budgets.each do |budget| %>
<tr id="<%= dom_id(budget) %>" class="budget">
<td>
<%= link_to budget.name, admin_budget_path(budget) %>
</td>
<td class="small">
<%= t("budget.phase.#{budget.phase}") %>
</td>
</tr>
<% end %>
</table>
<%= paginate @budgets %>

View File

@@ -4,6 +4,9 @@ en:
activity:
one: "activity"
other: "activities"
budget:
one: "Participatory budget"
other: "Participatory budgets"
comment:
one: "Comment"
other: "Comments"

View File

@@ -4,6 +4,9 @@ es:
activity:
one: "actividad"
other: "actividades"
budget:
one: "Presupuesto participativo"
other: "Presupuestos participativos"
comment:
one: "Comentario"
other: "Comentarios"

View File

@@ -60,6 +60,13 @@ en:
on_users: Users
title: Moderator activity
type: Type
budgets:
index:
title: Participatory budgets
new_link: Create new
filters:
open: Open
finished: Finished
comments:
index:
filter: Filter
@@ -96,6 +103,7 @@ en:
activity: Moderator activity
admin: Admin menu
banner: Manage banners
budgets: Participatory budgets
debate_topics: Debate topics
hidden_comments: Hidden comments
hidden_debates: Hidden debates

View File

@@ -58,6 +58,13 @@ es:
on_users: Usuarios
title: Actividad de los Moderadores
type: Tipo
budgets:
index:
title: Presupuestos participativos
new_link: Crear nuevo
filters:
open: Abiertos
finished: Terminados
comments:
index:
filter: Filtro
@@ -94,6 +101,7 @@ es:
activity: Actividad de moderadores
admin: Menú de administración
banner: Gestionar banners
budgets: Presupuestos participativos
debate_topics: Temas de debate
hidden_comments: Comentarios ocultos
hidden_debates: Debates ocultos

View File

@@ -33,6 +33,13 @@ en:
application:
close: Close
menu: Menu
budget:
phase:
on_hold: On hold
accepting: Accepting proposals
selecting: Selecting
balloting: Balloting
finished: Finished
comments:
comment:
admin: Administrator

View File

@@ -33,6 +33,13 @@ es:
application:
close: Cerrar
menu: Menú
budget:
phase:
on_hold: Pausa
accepting: Aceptando propuestas
selecting: Fase de selección
balloting: Fase de Votación
finished: Terminado
comments:
comment:
admin: Administrador

View File

@@ -153,6 +153,13 @@ Rails.application.routes.draw do
get :summary, on: :collection
end
resources :budgets do
resources :budget_groups do
resources :budget_headings do
end
end
end
resources :banners, only: [:index, :new, :create, :edit, :update, :destroy] do
collection { get :search}
end

View File

@@ -210,10 +210,10 @@ ActiveRecord::Schema.define(version: 20160617172616) do
t.string "visit_id"
t.datetime "hidden_at"
t.integer "flags_count", default: 0
t.datetime "ignored_flag_at"
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.datetime "ignored_flag_at"
t.integer "comments_count", default: 0
t.datetime "confirmed_hide_at"
t.integer "cached_anonymous_votes_total", default: 0

View File

@@ -0,0 +1,79 @@
require 'rails_helper'
feature 'Admin budgets' do
background do
admin = create(:administrator)
login_as(admin.user)
end
context "Feature flag" do
xscenario 'Disabled with a feature flag' do
Setting['feature.budgets'] = nil
expect{ visit admin_budgets_path }.to raise_exception(FeatureFlags::FeatureDisabled)
end
end
context "Index" do
scenario 'Displaying budgets' do
budget = create(:budget)
visit admin_budgets_path
expect(page).to have_content(budget.name)
expect(page).to have_content(I18n.t("budget.phase.#{budget.phase}"))
end
scenario 'Filters by phase' do
budget1 = create(:budget)
budget2 = create(:budget, :accepting)
budget3 = create(:budget, :selecting)
budget4 = create(:budget, :balloting)
budget5 = create(:budget, :finished)
visit admin_budgets_path
expect(page).to have_content(budget1.name)
expect(page).to have_content(budget2.name)
expect(page).to have_content(budget3.name)
expect(page).to have_content(budget4.name)
expect(page).to_not have_content(budget5.name)
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"
expect(page).to have_content(budget1.name)
expect(page).to have_content(budget2.name)
expect(page).to have_content(budget3.name)
expect(page).to have_content(budget4.name)
expect(page).to_not have_content(budget5.name)
end
scenario "Current filter is properly highlighted" do
filters_links = {'open' => 'Open', 'finished' => 'Finished'}
visit admin_budgets_path
expect(page).to_not have_link(filters_links.values.first)
filters_links.keys.drop(1).each { |filter| expect(page).to have_link(filters_links[filter]) }
filters_links.each_pair do |current_filter, link|
visit admin_budgets_path(filter: current_filter)
expect(page).to_not have_link(link)
(filters_links.keys - [current_filter]).each do |filter|
expect(page).to have_link(filters_links[filter])
end
end
end
end
end