Add valuator groups
This commit is contained in:
52
app/controllers/admin/valuator_groups_controller.rb
Normal file
52
app/controllers/admin/valuator_groups_controller.rb
Normal 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
|
||||||
2
app/models/valuator_group.rb
Normal file
2
app/models/valuator_group.rb
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
class ValuatorGroup < ActiveRecord::Base
|
||||||
|
end
|
||||||
18
app/views/admin/valuator_groups/_group.html.erb
Normal file
18
app/views/admin/valuator_groups/_group.html.erb
Normal 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/>
|
||||||
4
app/views/admin/valuator_groups/edit.html.erb
Normal file
4
app/views/admin/valuator_groups/edit.html.erb
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<%= form_for [:admin, @group] do |f| %>
|
||||||
|
<%= f.text_field :name %>
|
||||||
|
<%= f.submit %>
|
||||||
|
<% end %>
|
||||||
4
app/views/admin/valuator_groups/index.html.erb
Normal file
4
app/views/admin/valuator_groups/index.html.erb
Normal 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 %>
|
||||||
4
app/views/admin/valuator_groups/new.html.erb
Normal file
4
app/views/admin/valuator_groups/new.html.erb
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<%= form_for [:admin, @group] do |f| %>
|
||||||
|
<%= f.text_field :name %>
|
||||||
|
<%= f.submit %>
|
||||||
|
<% end %>
|
||||||
4
app/views/admin/valuator_groups/show.html.erb
Normal file
4
app/views/admin/valuator_groups/show.html.erb
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Hey there I'm group <%= @group.name %>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<%= link_to "Ver todos los grupos", admin_valuator_groups_path %>
|
||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
<%= render "admin/shared/user_search", url: search_admin_valuators_path %>
|
<%= render "admin/shared/user_search", url: search_admin_valuators_path %>
|
||||||
|
|
||||||
|
<%= link_to "Grupos de evaluadores", admin_valuator_groups_path %>
|
||||||
|
|
||||||
<div id="valuators">
|
<div id="valuators">
|
||||||
<% if @valuators.any? %>
|
<% if @valuators.any? %>
|
||||||
<h3 class="margin"><%= page_entries_info @valuators %></h3>
|
<h3 class="margin"><%= page_entries_info @valuators %></h3>
|
||||||
|
|||||||
6
config/locales/en/user_groups.yml
Normal file
6
config/locales/en/user_groups.yml
Normal 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
|
||||||
|
|
||||||
6
config/locales/es/user_groups.yml
Normal file
6
config/locales/es/user_groups.yml
Normal 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
|
||||||
|
|
||||||
@@ -84,6 +84,7 @@ namespace :admin do
|
|||||||
get :search, on: :collection
|
get :search, on: :collection
|
||||||
get :summary, on: :collection
|
get :summary, on: :collection
|
||||||
end
|
end
|
||||||
|
resources :valuator_groups
|
||||||
|
|
||||||
resources :managers, only: [:index, :create, :destroy] do
|
resources :managers, only: [:index, :create, :destroy] do
|
||||||
get :search, on: :collection
|
get :search, on: :collection
|
||||||
|
|||||||
7
db/migrate/20180208151658_create_valuator_groups.rb
Normal file
7
db/migrate/20180208151658_create_valuator_groups.rb
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
class CreateValuatorGroups < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :valuator_groups do |t|
|
||||||
|
t.string :name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -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", ["community_id"], name: "index_topics_on_community_id", using: :btree
|
||||||
add_index "topics", ["hidden_at"], name: "index_topics_on_hidden_at", 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|
|
create_table "users", force: :cascade do |t|
|
||||||
t.string "email", default: ""
|
t.string "email", default: ""
|
||||||
t.string "encrypted_password", default: "", null: false
|
t.string "encrypted_password", default: "", null: false
|
||||||
@@ -1128,6 +1133,10 @@ ActiveRecord::Schema.define(version: 20180320104823) do
|
|||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "valuator_groups", force: :cascade do |t|
|
||||||
|
t.string "name"
|
||||||
|
end
|
||||||
|
|
||||||
create_table "valuators", force: :cascade do |t|
|
create_table "valuators", force: :cascade do |t|
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.string "description"
|
t.string "description"
|
||||||
|
|||||||
@@ -61,6 +61,9 @@ FactoryBot.define do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
factory :valuator_group, class: ValuatorGroup do
|
||||||
|
end
|
||||||
|
|
||||||
factory :identity do
|
factory :identity do
|
||||||
user nil
|
user nil
|
||||||
provider "Twitter"
|
provider "Twitter"
|
||||||
|
|||||||
66
spec/features/admin/valuator_groups_spec.rb
Normal file
66
spec/features/admin/valuator_groups_spec.rb
Normal 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
|
||||||
Reference in New Issue
Block a user