diff --git a/app/controllers/admin/valuator_groups_controller.rb b/app/controllers/admin/valuator_groups_controller.rb
new file mode 100644
index 000000000..876900ac1
--- /dev/null
+++ b/app/controllers/admin/valuator_groups_controller.rb
@@ -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
\ No newline at end of file
diff --git a/app/models/valuator_group.rb b/app/models/valuator_group.rb
new file mode 100644
index 000000000..d230bd686
--- /dev/null
+++ b/app/models/valuator_group.rb
@@ -0,0 +1,2 @@
+class ValuatorGroup < ActiveRecord::Base
+end
\ No newline at end of file
diff --git a/app/views/admin/valuator_groups/_group.html.erb b/app/views/admin/valuator_groups/_group.html.erb
new file mode 100644
index 000000000..e47de79da
--- /dev/null
+++ b/app/views/admin/valuator_groups/_group.html.erb
@@ -0,0 +1,18 @@
+
+ Name: <%= group.name %>
+
+
+
+ Members:
+
+
+
+ Edit:
+ <%= link_to "Edit", edit_admin_valuator_group_path(group) %>
+
+
+
+ Destoy:
+ <%= link_to "Destroy", admin_valuator_group_path(group), method: :delete %>
+
+
\ No newline at end of file
diff --git a/app/views/admin/valuator_groups/edit.html.erb b/app/views/admin/valuator_groups/edit.html.erb
new file mode 100644
index 000000000..5e0d135c5
--- /dev/null
+++ b/app/views/admin/valuator_groups/edit.html.erb
@@ -0,0 +1,4 @@
+<%= form_for [:admin, @group] do |f| %>
+ <%= f.text_field :name %>
+ <%= f.submit %>
+<% end %>
\ No newline at end of file
diff --git a/app/views/admin/valuator_groups/index.html.erb b/app/views/admin/valuator_groups/index.html.erb
new file mode 100644
index 000000000..b92987c08
--- /dev/null
+++ b/app/views/admin/valuator_groups/index.html.erb
@@ -0,0 +1,4 @@
+<%= render partial: 'group', collection: @groups %>
+
+There are <%= @groups.count %> groups of users
+<%= link_to "Nuevo", new_admin_valuator_group_path %>
\ No newline at end of file
diff --git a/app/views/admin/valuator_groups/new.html.erb b/app/views/admin/valuator_groups/new.html.erb
new file mode 100644
index 000000000..5e0d135c5
--- /dev/null
+++ b/app/views/admin/valuator_groups/new.html.erb
@@ -0,0 +1,4 @@
+<%= form_for [:admin, @group] do |f| %>
+ <%= f.text_field :name %>
+ <%= f.submit %>
+<% end %>
\ No newline at end of file
diff --git a/app/views/admin/valuator_groups/show.html.erb b/app/views/admin/valuator_groups/show.html.erb
new file mode 100644
index 000000000..e4151040c
--- /dev/null
+++ b/app/views/admin/valuator_groups/show.html.erb
@@ -0,0 +1,4 @@
+Hey there I'm group <%= @group.name %>
+
+
+<%= link_to "Ver todos los grupos", admin_valuator_groups_path %>
diff --git a/app/views/admin/valuators/index.html.erb b/app/views/admin/valuators/index.html.erb
index dfb93ed80..c0a11addb 100644
--- a/app/views/admin/valuators/index.html.erb
+++ b/app/views/admin/valuators/index.html.erb
@@ -2,6 +2,8 @@
<%= render "admin/shared/user_search", url: search_admin_valuators_path %>
+<%= link_to "Grupos de evaluadores", admin_valuator_groups_path %>
+
<% if @valuators.any? %>
<%= page_entries_info @valuators %>
diff --git a/config/locales/en/user_groups.yml b/config/locales/en/user_groups.yml
new file mode 100644
index 000000000..2761145c3
--- /dev/null
+++ b/config/locales/en/user_groups.yml
@@ -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
+
diff --git a/config/locales/es/user_groups.yml b/config/locales/es/user_groups.yml
new file mode 100644
index 000000000..eaaba5fc7
--- /dev/null
+++ b/config/locales/es/user_groups.yml
@@ -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
+
diff --git a/config/routes/admin.rb b/config/routes/admin.rb
index 384fb685c..703227679 100644
--- a/config/routes/admin.rb
+++ b/config/routes/admin.rb
@@ -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
diff --git a/db/migrate/20180208151658_create_valuator_groups.rb b/db/migrate/20180208151658_create_valuator_groups.rb
new file mode 100644
index 000000000..441478cc5
--- /dev/null
+++ b/db/migrate/20180208151658_create_valuator_groups.rb
@@ -0,0 +1,7 @@
+class CreateValuatorGroups < ActiveRecord::Migration
+ def change
+ create_table :valuator_groups do |t|
+ t.string :name
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index a85b3a0dc..ab703cb52 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -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"
diff --git a/spec/factories.rb b/spec/factories.rb
index 2f9cc4acc..186d37515 100644
--- a/spec/factories.rb
+++ b/spec/factories.rb
@@ -61,6 +61,9 @@ FactoryBot.define do
end
end
+ factory :valuator_group, class: ValuatorGroup do
+ end
+
factory :identity do
user nil
provider "Twitter"
diff --git a/spec/features/admin/valuator_groups_spec.rb b/spec/features/admin/valuator_groups_spec.rb
new file mode 100644
index 000000000..8f179b024
--- /dev/null
+++ b/spec/features/admin/valuator_groups_spec.rb
@@ -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
\ No newline at end of file