Skip to content

Commit bc90be3

Browse files
committed
Basic CRUD for PartnerGroups
TODO: add tests TODO: need to be able to add partners
1 parent b4544cd commit bc90be3

File tree

8 files changed

+283
-0
lines changed

8 files changed

+283
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
class PartnerGroupsController < ApplicationController
2+
def index
3+
@partner_groups = current_organization.partner_groups
4+
5+
respond_to do |format|
6+
format.html
7+
end
8+
end
9+
10+
def show
11+
@partner_group = current_organization.partner_groups.find(params[:id])
12+
13+
respond_to do |format|
14+
format.html
15+
end
16+
end
17+
18+
def new
19+
@partner_group = current_organization.partner_groups.new
20+
end
21+
22+
def create
23+
@partner_group = current_organization.partner_groups.new(partner_group_params)
24+
if @partner_group.save
25+
redirect_to partner_groups_path, notice: "Partner group added!"
26+
else
27+
flash[:error] = "Something didn't work quite right -- try again?"
28+
render action: :new
29+
end
30+
end
31+
32+
def edit
33+
@partner_group = current_organization.partner_groups.find(params[:id])
34+
end
35+
36+
def update
37+
@partner_group = current_organization.partner_groups.find(params[:id])
38+
if @partner_group.update(partner_group_params)
39+
redirect_to partner_group_path(@partner_group), notice: "#{@partner_group.name} updated!"
40+
else
41+
flash[:error] = "Something didn't work quite right -- try again?"
42+
render action: :edit
43+
end
44+
end
45+
46+
def destroy
47+
current_organization.partner_groups.find(params[:id]).destroy
48+
redirect_to partner_groups_path
49+
end
50+
51+
private
52+
53+
def partner_group_params
54+
params.require(:partner_group).permit(:name)
55+
end
56+
end

app/views/layouts/_lte_sidebar.html.erb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,13 @@
9696
<% end %>
9797
</li>
9898

99+
<li class="nav-item <%= 'active' if current_page?(partner_groups_path) %>">
100+
<%= link_to(partner_groups_path, class: "nav-link #{"active" if current_page?(partner_groups_path)}") do %>
101+
<i class="nav-icon fas fa-group"></i>
102+
<p>Partner Groups</p>
103+
<% end %>
104+
</li>
105+
99106
<li class="nav-item has-treeview <%= menu_open?(['items', 'kits', 'barcode_items', 'storage_locations', 'adjustments', 'transfers']) %>">
100107
<a href="#" class="nav-link <%= active_class(['items', 'kits', 'barcode_items', 'storage_locations', 'adjustments', 'transfers']) %>">
101108
<i class="nav-icon fa fa-pie-chart"></i>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<%= simple_form_for @partner_group, html: {class: 'form-horizontal'} do |f| %>
2+
<section class="content">
3+
<div class="container-fluid">
4+
<div class="row">
5+
<!-- left column -->
6+
<div class="col-md-12">
7+
<!-- jquery validation -->
8+
<div class="card card-primary">
9+
<!-- /.card-header -->
10+
<!-- form start -->
11+
<div class="card-body">
12+
<%= f.input :name, label: "Name", wrapper: :input_group do %>
13+
<span class="input-group-text"><i class="fa fa-user"></i></span>
14+
<%= f.input_field :name, class: "form-control" %>
15+
<% end %>
16+
</div>
17+
<!-- /.card-body -->
18+
<div class="card-footer">
19+
<%= submit_button(submit_btn_options) %>
20+
</div>
21+
</div>
22+
<!-- /.card -->
23+
</div>
24+
25+
</div>
26+
<!-- /.row -->
27+
</div><!-- /.container-fluid -->
28+
</section>
29+
<% end %>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<section class="content-header">
2+
<div class="container-fluid">
3+
<div class="row mb-2">
4+
<div class="col-sm-6">
5+
<% content_for :title, "Edit - Partner Groups - #{@partner_group.name} - #{current_organization.name}" %>
6+
<h1>
7+
Updating Partner Group
8+
<small>for <%= current_organization.name %></small>
9+
</h1>
10+
</div>
11+
<div class="col-sm-6">
12+
<ol class="breadcrumb float-sm-right">
13+
<li class="breadcrumb-item"><%= link_to(dashboard_path) do %>
14+
<i class="fa fa-dashboard"></i> Home
15+
<% end %>
16+
</li>
17+
<li class="breadcrumb-item"><%= link_to "All Partner Groups", (partner_groups_path) %></li>
18+
<li class="breadcrumb-item"><a href="#">Updating <%= @partner_group.name %></a></li>
19+
</ol>
20+
</div>
21+
</div>
22+
</div><!-- /.container-fluid -->
23+
</section>
24+
25+
<%= render partial: "form", object: @partner_group, locals: { submit_btn_options: { text: "Update Partner Group" } } %>
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<section class="content-header">
2+
<div class="container-fluid">
3+
<div class="row mb-2">
4+
<div class="col-sm-6">
5+
<% content_for :title, "Partner Groups - #{current_organization.name}" %>
6+
<h1>
7+
Partner Groups
8+
<small>for <%= current_organization.name %></small>
9+
</h1>
10+
</div>
11+
<div class="col-sm-6">
12+
<ol class="breadcrumb float-sm-right">
13+
<li class="breadcrumb-item"><%= link_to(dashboard_path) do %>
14+
<i class="fa fa-dashboard"></i> Home
15+
<% end %>
16+
</li>
17+
<li class="breadcrumb-item"><a href="#">Partner Groups</a></li>
18+
</ol>
19+
</div>
20+
</div>
21+
</div><!-- /.container-fluid -->
22+
</section>
23+
24+
<section class="content">
25+
<div class="container-fluid">
26+
<div class="row">
27+
<div class="col-md-12">
28+
<div class="card card-primary card-outline">
29+
<div class="card-body">
30+
<div class="card-footer">
31+
<%= new_button_to new_partner_group_path(organization_id: current_organization), {text: "New Partner Group"} %>
32+
</div>
33+
</div>
34+
</div>
35+
<!-- /.card -->
36+
</div>
37+
</div>
38+
<!-- /.row -->
39+
</div><!-- /.container-fluid -->
40+
41+
<div class="container-fluid">
42+
<div class="row">
43+
<div class="col-12">
44+
<!-- Default box -->
45+
<div class="card">
46+
<div class="card-body p-0">
47+
<table class="table">
48+
<thead>
49+
<tr>
50+
<th>Partner Group Name</th>
51+
<th>Number of partners in group</th>
52+
</tr>
53+
</thead>
54+
<tbody>
55+
<% @partner_groups.each do |partner_group| %>
56+
<tr>
57+
<td><%= link_to partner_group.name, partner_group_path(partner_group) %></td>
58+
<td><%= partner_group.partners.count %></td>
59+
</tr>
60+
<% end %>
61+
</tbody>
62+
</table>
63+
</div>
64+
</div>
65+
</div>
66+
</div>
67+
</section>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<section class="content-header">
2+
<div class="container-fluid">
3+
<div class="row mb-2">
4+
<div class="col-sm-6">
5+
<% content_for :title, "New - Partner Groups - #{current_organization.name}" %>
6+
<h1>
7+
New Partner Group
8+
<small>for <%= current_organization.name %></small>
9+
</h1>
10+
</div>
11+
<div class="col-sm-6">
12+
<ol class="breadcrumb float-sm-right">
13+
<li class="breadcrumb-item"><%= link_to(dashboard_path) do %>
14+
<i class="fa fa-dashboard"></i> Home
15+
<% end %>
16+
</li>
17+
<li class="breadcrumb-item"><%= link_to "All Partners", (partners_path) %></li>
18+
<li class="breadcrumb-item"><a href="#">New Partner</a></li>
19+
</ol>
20+
</div>
21+
</div>
22+
</div><!-- /.container-fluid -->
23+
</section>
24+
25+
<%= render partial: "form", object: @partner_group, locals: { submit_btn_options: { text: "Add Partner Group" } } %>
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<section class="content-header">
2+
<div class="container-fluid">
3+
<div class="row mb-2">
4+
<div class="col-sm-6">
5+
<% content_for :title, "Partner Groups - #{@partner_group.name} - #{current_organization.name}" %>
6+
<h1>
7+
Partner Group info
8+
<small>for <%= @partner_group.name %></small>
9+
</h1>
10+
</div>
11+
<div class="col-sm-6">
12+
<ol class="breadcrumb float-sm-right">
13+
<li class="breadcrumb-item"><%= link_to(dashboard_path) do %>
14+
<i class="fa fa-dashboard"></i> Home
15+
<% end %>
16+
</li>
17+
<li class="breadcrumb-item"><%= link_to "Partner Groups", (partner_groups_path) %></li>
18+
<li class="breadcrumb-item"><a href="#"><%= @partner_group.name %></a></li>
19+
</ol>
20+
</div>
21+
</div>
22+
</div><!-- /.container-fluid -->
23+
</section>
24+
25+
<section class="content">
26+
<div class="container-fluid">
27+
<div class="row">
28+
<div class="col-12">
29+
<div class="card card-info card-outline">
30+
<div class="card-footer">
31+
<%= edit_button_to edit_partner_group_path(@partner_group) %>
32+
<%= delete_button_to partner_group_path(@partner_group), {confirm: confirm_delete_msg(@partner_group.name)} %>
33+
</div>
34+
</div>
35+
</div>
36+
</div>
37+
</div>
38+
</section>
39+
40+
<section class="content">
41+
<div class="container-fluid">
42+
<div class="row">
43+
<div class="col-12">
44+
<!-- Default box -->
45+
<div class="card card-primary card-outline">
46+
<div class="card-header">
47+
<h2 class="card-title">Partners in this group</h2>
48+
</div>
49+
<div class="card-body p-0">
50+
<div class="tab-content" id="custom-tabs-three-tabContent">
51+
<table class="table">
52+
<thead>
53+
<tr>
54+
<th>Partner</th>
55+
<th>E-mail</th>
56+
<th>Monthly Limit</th>
57+
<th>Status</th>
58+
<th>Action</th>
59+
<th>&nbsp;</th>
60+
</tr>
61+
</thead>
62+
<tbody>
63+
<%= render partial: "partners/partner_row", collection: @partner_group.partners %>
64+
</table>
65+
</div><!-- /.box-body.table-responsive -->
66+
</div>
67+
</div>
68+
</div>
69+
</div>
70+
</div>
71+
</section>

config/routes.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@ def set_up_flipper
142142
end
143143
end
144144

145+
resources :partner_groups do
146+
end
147+
145148
resources :diaper_drives
146149
resources :donations do
147150
# collection do

0 commit comments

Comments
 (0)