Add valuator groups

This commit is contained in:
rgarcia
2018-01-26 19:52:41 +01:00
parent 0e61d49800
commit cddfdf4b84
15 changed files with 188 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
class Admin::ValuatorGroupsController < Admin::BaseController
def index
@groups = ValuatorGroup.all
end
def show
@group = ValuatorGroup.find(params[:id])
end
def new
@group = ValuatorGroup.new
end
def edit
@group = ValuatorGroup.find(params[:id])
end
def create
@group = ValuatorGroup.new(group_params)
if @group.save
notice = "User group created successfully"
redirect_to [:admin, @group], notice: notice
else
render :new
end
end
def update
@group = ValuatorGroup.find(params[:id])
if @group.update(group_params)
notice = "User group updated successfully"
redirect_to [:admin, @group], notice: notice
else
render :edit
end
end
def destroy
@group = ValuatorGroup.find(params[:id])
@group.destroy
notice = "User group destroyed successfully"
redirect_to admin_valuator_groups_path, notice: notice
end
private
def group_params
params.require(:valuator_group).permit(:name)
end
end

View File

@@ -0,0 +1,2 @@
class ValuatorGroup < ActiveRecord::Base
end

View File

@@ -0,0 +1,18 @@
<div>
Name: <%= group.name %>
</div>
<div>
Members:
</div>
<div>
Edit:
<%= link_to "Edit", edit_admin_valuator_group_path(group) %>
</div>
<div>
Destoy:
<%= link_to "Destroy", admin_valuator_group_path(group), method: :delete %>
</div>
<br/>

View File

@@ -0,0 +1,4 @@
<%= form_for [:admin, @group] do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>

View File

@@ -0,0 +1,4 @@
<%= render partial: 'group', collection: @groups %>
There are <%= @groups.count %> groups of users
<%= link_to "Nuevo", new_admin_valuator_group_path %>

View File

@@ -0,0 +1,4 @@
<%= form_for [:admin, @group] do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>

View File

@@ -0,0 +1,4 @@
Hey there I'm group <%= @group.name %>
<br/>
<%= link_to "Ver todos los grupos", admin_valuator_groups_path %>

View File

@@ -2,6 +2,8 @@
<%= render "admin/shared/user_search", url: search_admin_valuators_path %>
<%= link_to "Grupos de evaluadores", admin_valuator_groups_path %>
<div id="valuators">
<% if @valuators.any? %>
<h3 class="margin"><%= page_entries_info @valuators %></h3>

View File

@@ -0,0 +1,6 @@
en:
user_group:
zero: There are 0 groups of valuators
one: There is 1 group de valuators
other: There are '%{count}' groups of valuators

View File

@@ -0,0 +1,6 @@
es:
user_group:
zero: Hay 0 grupos de evaluadores
one: Hay 1 grupo de evaluadores
other: Hay '%{count}' grupos de evaluadores

View File

@@ -84,6 +84,7 @@ namespace :admin do
get :search, on: :collection
get :summary, on: :collection
end
resources :valuator_groups
resources :managers, only: [:index, :create, :destroy] do
get :search, on: :collection

View File

@@ -0,0 +1,7 @@
class CreateValuatorGroups < ActiveRecord::Migration
def change
create_table :valuator_groups do |t|
t.string :name
end
end
end

View File

@@ -1053,6 +1053,11 @@ ActiveRecord::Schema.define(version: 20180320104823) do
add_index "topics", ["community_id"], name: "index_topics_on_community_id", using: :btree
add_index "topics", ["hidden_at"], name: "index_topics_on_hidden_at", using: :btree
create_table "user_groups", force: :cascade do |t|
t.string "name"
t.string "kind"
end
create_table "users", force: :cascade do |t|
t.string "email", default: ""
t.string "encrypted_password", default: "", null: false
@@ -1128,6 +1133,10 @@ ActiveRecord::Schema.define(version: 20180320104823) do
t.datetime "updated_at", null: false
end
create_table "valuator_groups", force: :cascade do |t|
t.string "name"
end
create_table "valuators", force: :cascade do |t|
t.integer "user_id"
t.string "description"

View File

@@ -61,6 +61,9 @@ FactoryBot.define do
end
end
factory :valuator_group, class: ValuatorGroup do
end
factory :identity do
user nil
provider "Twitter"

View File

@@ -0,0 +1,66 @@
require 'rails_helper'
feature "Valuator groups", :focus do
let(:admin) { create(:administrator).user }
background do
login_as(admin)
end
scenario "Index" do
group1 = create(:valuator_group)
group2 = create(:valuator_group)
visit admin_valuator_groups_path
expect(page).to have_content group1.name
expect(page).to have_content group2.name
end
scenario "Show" do
group = create(:valuator_group)
visit admin_valuator_group_path(group)
expect(page).to have_content group.name
end
scenario "Create" do
visit admin_valuators_path
click_link "Grupos de evaluadores"
click_link "Nuevo"
fill_in "valuator_group_name", with: "Health"
click_button "Create Valuator group"
expect(page).to have_content "User group created successfully"
#expect(page).to have_content "There are 1 groups of valuators"
expect(page).to have_content "Health"
end
scenario "Update" do
group = create(:valuator_group, name: "Health")
visit admin_valuator_groups_path
click_link "Edit"
fill_in "valuator_group_name", with: "Health and Sports"
click_button "Update Valuator group"
expect(page).to have_content "User group updated successfully"
expect(page).to have_content "Health and Sports"
end
scenario "Destroy" do
group = create(:valuator_group)
visit admin_valuator_groups_path
click_link "Destroy"
expect(page).to have_content "User group destroyed successfully"
expect(page).to have_content "There are 0 groups of users"
end
end