adds index and create of valuators

This commit is contained in:
rgarcia
2016-03-01 15:46:06 +01:00
parent 69325132ce
commit b38558f2f3
11 changed files with 128 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
class Admin::ValuatorsController < Admin::BaseController
load_and_authorize_resource
def index
@valuators = @valuators.page(params[:page])
end
def search
@user = User.find_by(email: params[:email])
respond_to do |format|
if @user
@valuator = Valuator.find_or_initialize_by(user: @user)
format.js
else
format.js { render "user_not_found" }
end
end
end
def create
@valuator.user_id = params[:user_id]
@valuator.save
redirect_to admin_valuators_path
end
end

View File

@@ -32,6 +32,7 @@ module Abilities
can :comment_as_administrator, [Debate, Comment, Proposal]
can [:search, :create, :index, :destroy], ::Moderator
can [:search, :create, :index], ::Valuator
can :manage, Annotation

View File

@@ -78,6 +78,13 @@
<% end %>
</li>
<li <%= 'class=active' if controller_name == 'valuators' %>>
<%= link_to admin_valuators_path do %>
<i class="icon-user"></i>
<%= t('admin.menu.valuators') %>
<% end %>
</li>
<li <%= 'class=active' if controller_name == 'activity' %>>
<%= link_to admin_activity_path do %>
<i class="icon-eye"></i>

View File

@@ -0,0 +1,7 @@
<span><%= valuator.name %></span>
<span class="bullet">&nbsp;&bull;&nbsp;</span>
<span><%= valuator.email %></span>
<% unless valuator.persisted? %>
<%= link_to t('admin.valuators.valuator.add'),{ controller: "admin/valuators", action: :create, user_id: valuator.user_id },
method: :post, class: "button tiny radius success right" %>
<% end %>

View File

@@ -0,0 +1,24 @@
<h2><%= t("admin.valuators.index.title") %></h2>
<div class="row">
<div class="column">
<%= form_tag search_admin_valuators_path, method: :get, remote: true do %>
<div class="small-12 medium-6 column">
<%= text_field_tag :email, '', placeholder: t('admin.valuators.search.email_placeholder') %>
</div>
<div class="small-12 medium-6 column">
<%= submit_tag t('admin.valuators.search.search'), class: 'button radius' %>
</div>
<% end %>
</div>
</div>
<div id="search-result" class="row small"></div>
<h3><%= page_entries_info @valuators %></h3>
<ul id="valuators" class="admin-list">
<% @valuators.each do |valuator| %>
<li>
<%= render 'valuator', valuator: valuator %>
</li>
<% end %>
</ul>
<%= paginate @valuators %>

View File

@@ -0,0 +1 @@
$("#search-result").html("<div class=\"panel column\"><%= j render 'valuator', valuator: @valuator %></div>");

View File

@@ -0,0 +1 @@
$("#search-result").html("<div class=\"panel column\"><%= j t('admin.valuators.search.user_not_found') %></div>");

View File

@@ -54,6 +54,7 @@ en:
hidden_users: Hidden users
incomplete_verifications: Incomplete verifications
moderators: Moderators
valuators: Valuators
officials: Officials
organizations: Organisations
settings: Configuration settings
@@ -69,6 +70,17 @@ en:
email_placeholder: Search user by email
search: Search
user_not_found: User not found
valuators:
index:
title: Valuators
moderator:
add: Add
delete: Delete
show: Show
search:
email_placeholder: Search user by email
search: Search
user_not_found: User not found
officials:
edit:
back: Back
@@ -139,6 +151,7 @@ en:
spending_proposals:
index:
geozone_filter_all: All zones
valuator_filter_all: All valuators
filters:
all: All
without_admin: Without assigned admin

View File

@@ -54,6 +54,7 @@ es:
hidden_users: Usuarios bloqueados
incomplete_verifications: Verificaciones incompletas
moderators: Moderadores
valuators: Evaluadores
officials: Cargos públicos
organizations: Organizaciones
settings: Configuración global
@@ -69,6 +70,17 @@ es:
email_placeholder: Buscar usuario por email
search: Buscar
user_not_found: Usuario no encontrado
valuators:
index:
title: Evaluadores
moderator:
add: Añadir
delete: Borrar
show: Mostrar
search:
email_placeholder: Buscar usuario por email
search: Buscar
user_not_found: Usuario no encontrado
officials:
edit:
back: Volver
@@ -139,6 +151,7 @@ es:
spending_proposals:
index:
geozone_filter_all: Todos los ámbitos de actuación
valuator_filter_all: Todos los evaluadores
filters:
all: Todas
without_admin: Sin administrador asignado

View File

@@ -155,6 +155,10 @@ Rails.application.routes.draw do
collection { get :search }
end
resources :valuators, only: [:index, :create] do
collection { get :search }
end
resources :verifications, controller: :verifications, only: :index do
collection { get :search}
end

View File

@@ -0,0 +1,30 @@
require 'rails_helper'
feature 'Admin valuators' do
background do
@admin = create(:administrator)
@user = create(:user, username: 'Jose Luis Balbin')
@valuator = create(:valuator)
login_as(@admin.user)
visit admin_valuators_path
end
scenario 'Index' do
expect(page).to have_content @valuator.name
expect(page).to have_content @valuator.email
expect(page).to_not have_content @user.name
end
scenario 'Create Valuator', :js do
fill_in 'email', with: @user.email
click_button 'Search'
expect(page).to have_content @user.name
click_link 'Add'
within("#valuators") do
expect(page).to have_content @user.name
end
end
end