Added Index Route to Show Result Oysters

- set up index route to show osyters of a specific result
- set up index view, controller method, and route
- commented out debug console
This commit is contained in:
Okechi Onyeje 2017-01-20 11:47:52 -05:00
parent e127b930a2
commit 384033bfe6
15 changed files with 175 additions and 0 deletions

View File

@ -38,6 +38,8 @@ gem 'bcrypt', '~> 3.1.7'
gem 'devise' gem 'devise'
#for pagination #for pagination
gem 'kaminari' gem 'kaminari'
#for popovers and tooltips
gem 'bootstrap-popover-rails'
group :development, :test do group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console # Call 'byebug' anywhere in the code to stop execution and get a debugger console

View File

@ -47,6 +47,7 @@ GEM
bcrypt (3.1.11) bcrypt (3.1.11)
binding_of_caller (0.7.2) binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1) debug_inspector (>= 0.0.1)
bootstrap-popover-rails (0.1.0)
builder (3.2.2) builder (3.2.2)
byebug (9.0.6) byebug (9.0.6)
coderay (1.1.1) coderay (1.1.1)
@ -206,6 +207,7 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
awesome_rails_console awesome_rails_console
bcrypt (~> 3.1.7) bcrypt (~> 3.1.7)
bootstrap-popover-rails
byebug byebug
coffee-rails (~> 4.2) coffee-rails (~> 4.2)
devise devise

View File

@ -13,3 +13,5 @@
//= require jquery //= require jquery
//= require jquery_ujs //= require jquery_ujs
//= require turbolinks //= require turbolinks
//= require bootstrap/bootstrap-rails-tooltip
//= require bootstrap/bootstrap-rails-popover

View File

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

View File

@ -0,0 +1,3 @@
$(function () {
$('[data-toggle="popover"]').popover();
})

View File

@ -12,4 +12,6 @@
* *
*= require_tree . *= require_tree .
*= require_self *= require_self
*= require bootstrap/bootstrap-rails-tooltip
*= require bootstrap/bootstrap-rails-popover
*/ */

View File

@ -0,0 +1,3 @@
// Place all the styles related to the Oysters controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

View File

@ -0,0 +1,10 @@
class OystersController < ApplicationController
def show
end
def index
@oysters = Oyster.where(:run_id => params[:result_id])
@oysters_count = @oysters.count
@oysters = @oysters.page(params[:page]).per(5)
end
end

View File

@ -0,0 +1,2 @@
module OystersHelper
end

View File

@ -8,4 +8,5 @@ class Oyster < ApplicationRecord
:password => ENV['STATS_DB_PASS'], :password => ENV['STATS_DB_PASS'],
:database => "main" :database => "main"
) )
scope :run_id, -> (id) { where run_id: id.to_i }
end end

View File

@ -103,6 +103,7 @@
<th>Distributor</th> <th>Distributor</th>
<th>Total Processed</th> <th>Total Processed</th>
<th>Other</th> <th>Other</th>
<th>Oyster Info</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -198,6 +199,9 @@
<td> <td>
<%= run.other ? run.other : "" %> <%= run.other ? run.other : "" %>
</td> </td>
<td>
<%= link_to "Show", oysters_index_path( :result_id => result.id, :page_num => params[:page]), :class => "btn btn-primary" %>
</td>
<% end %> <% end %>
</tr> </tr>
<% end %> <% end %>

View File

@ -0,0 +1,128 @@
<%= stylesheet_link_tag "dashboard" %>_
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Pearlception</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<!-- <li><a href="#">Dashboard</a></li> -->
<!-- <li><a href="#">Settings</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Help</a></li> -->
<li>
<%= link_to(destroy_user_session_path, class: 'logout-link', :method => :delete) do %>
<i class="fa fa-external-link"></i> Logout
<% end %>
</li>
</ul>
<!-- <form class="navbar-form navbar-right">
<input type="text" class="form-control" placeholder="Search...">
</form> -->
</div>
</div>
</nav>
<div class="container-fluid">
<div class="row">
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<li class="active"><a href="/">Overview <span class="sr-only">(current)</span></a></li>
<% if current_user.admin? %>
<li><a href="companies#index">Companies</a></li>
<% else %>
<!-- <li><a href="#">Reports</a></li>
<li><a href="#">Analytics</a></li>
<li><a href="#">Export</a></li> -->
<% end %>
</ul>
<!-- <ul class="nav nav-sidebar">
<li><a href="">Nav item</a></li>
<li><a href="">Nav item again</a></li>
<li><a href="">One more nav</a></li>
<li><a href="">Another nav item</a></li>
<li><a href="">More navigation</a></li>
</ul>
<ul class="nav nav-sidebar">
<li><a href="">Nav item again</a></li>
<li><a href="">One more nav</a></li>
<li><a href="">Another nav item</a></li>
</ul> -->
</div>
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
<%= link_to "Back", root_path( :page => params[:page_num]), :class => "btn btn-primary" %>
<h1 class="page-header">Results of <%= Run.find(params[:result_id]).runDate %></h1>
<h2 class="sub-header">Processed Oysters: <%= @oysters_count %> </h2>
<% if @oysters.empty? %>
<div class="panel panel-primary">
<p>No Oysters Processed</p>
</div>
<% else %>
<div class="panel panel-primary table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Oyster Grade</th>
<th>Volume</th>
<th>Length</th>
<th>Width</th>
<th>Height</th>
</tr>
</thead>
<tbody>
<% @oysters.each_slice(1) do |row| %>
<tr>
<% row.each do |oyster|%>
<!-- grade -->
<td>
<%= oyster.grade %>
</td>
<!-- volume -->
<td>
<%= oyster.volume %>
</td>
<!-- length -->
<td>
<%= oyster.length %>
</td>
<!-- width -->
<td>
<%= oyster.width %>
</td>
<!-- height -->
<td>
<%= oyster.height %>
</td>
<% end %>
</tr>
<% end %>
</tbody>
</table>
</div>
<% end %>
<% if !@oysters.empty? %>
<div class="center-block">
<div class="col-sm-6 panel panel-primary" align="center">
<%= paginate @oysters %><br>
<%= page_entries_info @oysters %>
</div>
</div>
<% end %>
</div>
</div>
</div>
<%= javascript_include_tag "bootstrap.min" %>_
</body>

View File

@ -0,0 +1 @@

View File

@ -1,5 +1,8 @@
Rails.application.routes.draw do Rails.application.routes.draw do
get 'oysters/show'
get 'oysters/index'
root "dashboard#index" root "dashboard#index"
resources :runs resources :runs
resources :companies resources :companies

View File

@ -0,0 +1,9 @@
require 'test_helper'
class OystersControllerTest < ActionDispatch::IntegrationTest
test "should get show" do
get oysters_show_url
assert_response :success
end
end