Iker Narvaez

groups crud with users

...@@ -138,6 +138,7 @@ input[type="submit"] { ...@@ -138,6 +138,7 @@ input[type="submit"] {
138 grid-column-gap: 0px; 138 grid-column-gap: 0px;
139 } 139 }
140 140
141 +
141 .left { 142 .left {
142 grid-row: 2; 143 grid-row: 2;
143 grid-column: 1; 144 grid-column: 1;
......
1 +class Admin::GroupsController < CrudController::Base
2 + enable_gatekeeper
3 + guard_bifrost
4 +
5 + private
6 +
7 + def object_params
8 + params.require(:group).permit(
9 + :name, :pool_id, user_ids: []
10 + )
11 + end
12 +end
1 class Admin::PoolsController < CrudController::Base 1 class Admin::PoolsController < CrudController::Base
2 - # enable_gatekeeper 2 + enable_gatekeeper
3 - # guard_bifrost 3 + guard_bifrost
4 4
5 def update 5 def update
6 if update! 6 if update!
......
1 class Group < ApplicationRecord 1 class Group < ApplicationRecord
2 - belongs_to :pool, -> { with_deleted }, inverse_of: :groups 2 + belongs_to :pool, inverse_of: :groups
3 has_and_belongs_to_many :users, inverse_of: :groups 3 has_and_belongs_to_many :users, inverse_of: :groups
4 4
5 validates :name, :pool, presence: true 5 validates :name, :pool, presence: true
6 + delegate :name, to: :pool, prefix: true
7 +
8 + def users_count
9 + users.count
10 + end
6 end 11 end
......
1 += simple_nested_form_for [:admin, @object] do |f|
2 + = f.input :name
3 + = f.association :pool
4 + = f.association :users
5 + div style='text-align: center'
6 + = f.submit 'Save'
7 +
8 +
1 +h2 Edit Group
2 +
3 += render 'form'
1 +div style='margin-top: 100px'
2 + h2
3 + | Groups
4 + = link_to 'New Group', new_admin_group_path, style: 'float: right'
5 +
6 + - attrs = %i[name pool_name users_count]
7 + table
8 + thead
9 + - attrs.each do |a|
10 + th = Group.human_attribute_name(a)
11 + th
12 + tbody
13 + tbody
14 + - @object_collection.each do |model|
15 + - attrs.each do |a|
16 + td = model.send(a)
17 + td
18 + = link_to 'Edit', edit_admin_group_path(model)
19 +
20 +
1 +div style='margin-top: 100px; width: 100%'
2 + h2 New Group
3 +
4 + = render 'form'
1 class CreateGroupUser < ActiveRecord::Migration[5.0] 1 class CreateGroupUser < ActiveRecord::Migration[5.0]
2 def change 2 def change
3 - create_table :group_users do |t| 3 + create_table :groups_users do |t|
4 t.integer :group_id, index: true 4 t.integer :group_id, index: true
5 t.integer :user_id, index: true 5 t.integer :user_id, index: true
6 end 6 end
......
...@@ -24,13 +24,6 @@ ActiveRecord::Schema.define(version: 20180611152633) do ...@@ -24,13 +24,6 @@ ActiveRecord::Schema.define(version: 20180611152633) do
24 t.integer "points" 24 t.integer "points"
25 end 25 end
26 26
27 - create_table "group_users", force: :cascade do |t|
28 - t.integer "group_id"
29 - t.integer "user_id"
30 - t.index ["group_id"], name: "index_group_users_on_group_id", using: :btree
31 - t.index ["user_id"], name: "index_group_users_on_user_id", using: :btree
32 - end
33 -
34 create_table "groups", force: :cascade do |t| 27 create_table "groups", force: :cascade do |t|
35 t.integer "pool_id" 28 t.integer "pool_id"
36 t.string "name" 29 t.string "name"
...@@ -39,6 +32,13 @@ ActiveRecord::Schema.define(version: 20180611152633) do ...@@ -39,6 +32,13 @@ ActiveRecord::Schema.define(version: 20180611152633) do
39 t.index ["pool_id"], name: "index_groups_on_pool_id", using: :btree 32 t.index ["pool_id"], name: "index_groups_on_pool_id", using: :btree
40 end 33 end
41 34
35 + create_table "groups_users", force: :cascade do |t|
36 + t.integer "group_id"
37 + t.integer "user_id"
38 + t.index ["group_id"], name: "index_groups_users_on_group_id", using: :btree
39 + t.index ["user_id"], name: "index_groups_users_on_user_id", using: :btree
40 + end
41 +
42 create_table "heimdall_engine_role_abilities", force: :cascade do |t| 42 create_table "heimdall_engine_role_abilities", force: :cascade do |t|
43 t.integer "role_id" 43 t.integer "role_id"
44 t.string "key" 44 t.string "key"
......