mirror of
https://github.com/fspc/bike-database.git
synced 2025-02-23 09:33:23 -05:00
Louis | Adds clients model & views to db
This commit is contained in:
parent
3c8962fa49
commit
d3403e18cd
2
.gitignore
vendored
2
.gitignore
vendored
@ -19,3 +19,5 @@
|
|||||||
/lib/assets/*
|
/lib/assets/*
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
|
/config/initializers/secret_token.rb
|
||||||
|
@ -50,12 +50,24 @@ class BikesController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def bike_params
|
def bike_params
|
||||||
params.require(:bike).permit(:entry_date, :brand, :model,
|
params.require(:bike).permit(
|
||||||
:type, :color, :frame_size,
|
:entry_date,
|
||||||
:log_number, :purpose, :serial_number,
|
:brand,
|
||||||
:notes, :tag_info, :mechanic,
|
:model,
|
||||||
:completion_date, :price,
|
:type,
|
||||||
:top_tube_size, :seat_tube_size,
|
:color,
|
||||||
:created_at, :updated_at)
|
:frame_size,
|
||||||
|
:log_number,
|
||||||
|
:purpose,
|
||||||
|
:serial_number,
|
||||||
|
:notes,
|
||||||
|
:tag_info,
|
||||||
|
:mechanic,
|
||||||
|
:completion_date,
|
||||||
|
:price,
|
||||||
|
:top_tube_size,
|
||||||
|
:seat_tube_size,
|
||||||
|
:created_at,
|
||||||
|
:updated_at)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
65
app/controllers/clients_controller.rb
Normal file
65
app/controllers/clients_controller.rb
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
class ClientsController < ApplicationController
|
||||||
|
before_action :set_client, only: [:show, :edit, :update, :destroy]
|
||||||
|
before_action :authenticate_user!
|
||||||
|
|
||||||
|
def index
|
||||||
|
@clients = Client.all
|
||||||
|
end
|
||||||
|
|
||||||
|
def show
|
||||||
|
end
|
||||||
|
|
||||||
|
def new
|
||||||
|
@client = Client.new
|
||||||
|
end
|
||||||
|
|
||||||
|
def edit
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
@client = Client.new(client_params)
|
||||||
|
respond_to do |format|
|
||||||
|
if @client.save
|
||||||
|
format.html { redirect_to @client, notice: 'Client was successfully created.' }
|
||||||
|
else
|
||||||
|
format.html { render action: 'new' }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
respond_to do |format|
|
||||||
|
if @client.update(client_params)
|
||||||
|
format.html { redirect_to @client, notice: 'Client was successfully updated.' }
|
||||||
|
else
|
||||||
|
format.html { render action: 'edit' }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
@client.destroy
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { redirect_to clients_url }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def set_client
|
||||||
|
@client = Client.find(params[:id])
|
||||||
|
end
|
||||||
|
|
||||||
|
def client_params
|
||||||
|
params.require(:client).permit(
|
||||||
|
:first_name,
|
||||||
|
:last_name,
|
||||||
|
:application_date,
|
||||||
|
:gender,
|
||||||
|
:age,
|
||||||
|
:weight,
|
||||||
|
:helmet,
|
||||||
|
:lock,
|
||||||
|
:agency,
|
||||||
|
:completion_date)
|
||||||
|
end
|
||||||
|
end
|
2
app/models/client.rb
Normal file
2
app/models/client.rb
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
class Client < ActiveRecord::Base
|
||||||
|
end
|
49
app/views/clients/_fields.html.haml
Normal file
49
app/views/clients/_fields.html.haml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
- disabled ||= false
|
||||||
|
.form-horizontal
|
||||||
|
.form-group
|
||||||
|
= f.label "First Name", class: "col-sm-2 control-label"
|
||||||
|
.col-sm-10
|
||||||
|
= f.text_field :first_name, class: "form-control", disabled: disabled
|
||||||
|
|
||||||
|
.form-group
|
||||||
|
= f.label "Last Name", class: "col-sm-2 control-label"
|
||||||
|
.col-sm-10
|
||||||
|
= f.text_field :last_name, class: "form-control datepicker", disabled: disabled
|
||||||
|
|
||||||
|
.form-group
|
||||||
|
= f.label "Gender", class: "col-sm-2 control-label"
|
||||||
|
.col-sm-10
|
||||||
|
= f.text_field :gender, class: "form-control", disabled: disabled
|
||||||
|
|
||||||
|
.form-group
|
||||||
|
= f.label "Age", class: "col-sm-2 control-label"
|
||||||
|
.col-sm-10
|
||||||
|
= f.text_field :age, class: "form-control", disabled: disabled
|
||||||
|
|
||||||
|
.form-group
|
||||||
|
= f.label "Weight", class: "col-sm-2 control-label"
|
||||||
|
.col-sm-10
|
||||||
|
= f.text_field :weight, class: "form-control", disabled: disabled
|
||||||
|
|
||||||
|
.form-group
|
||||||
|
= f.label "Application Date:", class: "col-sm-2 control-label"
|
||||||
|
.col-sm-10
|
||||||
|
= f.text_field :application_date, class: "form-control", disabled: disabled
|
||||||
|
|
||||||
|
.form-group
|
||||||
|
= f.label "Helmet", class: "col-sm-2 control-label"
|
||||||
|
.col-sm-10
|
||||||
|
= f.check_box :helmet, class: "form-control", disabled: disabled
|
||||||
|
.form-group
|
||||||
|
= f.label "Lock", class: "col-sm-2 control-label"
|
||||||
|
.col-sm-10
|
||||||
|
= f.check_box :lock, class: "form-control", disabled: disabled
|
||||||
|
|
||||||
|
.form-group
|
||||||
|
= f.label "Agency", class: "col-sm-2 control-label"
|
||||||
|
.col-sm-10
|
||||||
|
= f.text_field :agency, class: "form-control", disabled: disabled
|
||||||
|
.form-group
|
||||||
|
= f.label "Completion Date:", class: "col-sm-2 control-label"
|
||||||
|
.col-sm-10
|
||||||
|
= f.text_field :completion_date, class: "form-control datepicker", disabled: disabled
|
12
app/views/clients/_form.html.haml
Normal file
12
app/views/clients/_form.html.haml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
.container
|
||||||
|
= form_for @client, html: {class: 'form-horizontal'} do |f|
|
||||||
|
- if @client.errors.any?
|
||||||
|
#error_explanation
|
||||||
|
%h2= pluralize(@client.errors.count, "error") + " prohibited this bike from being saved:"
|
||||||
|
%ul
|
||||||
|
- @client.errors.full_messages.each do |msg|
|
||||||
|
%li= msg
|
||||||
|
= render 'fields', f: f
|
||||||
|
.row
|
||||||
|
.actions.col-sm-offset-2
|
||||||
|
= f.submit class: "btn btn-default"
|
6
app/views/clients/edit.html.haml
Normal file
6
app/views/clients/edit.html.haml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
.container
|
||||||
|
%h1 Editing client
|
||||||
|
= render 'form'
|
||||||
|
= link_to 'Show', @client
|
||||||
|
|
|
||||||
|
= link_to 'Back', clients_path
|
24
app/views/clients/index.html.haml
Normal file
24
app/views/clients/index.html.haml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
.container
|
||||||
|
%h1 Clients
|
||||||
|
|
||||||
|
%table.table.table-striped.table-bordered.table-hover
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th First Name
|
||||||
|
%th Last Name
|
||||||
|
%th Agency
|
||||||
|
%th
|
||||||
|
%th
|
||||||
|
%th
|
||||||
|
%tbody
|
||||||
|
- @clients.each do |client|
|
||||||
|
%tr
|
||||||
|
%td= client.first_name
|
||||||
|
%td= client.last_name
|
||||||
|
%td= client.agency
|
||||||
|
%td= link_to 'Show', client
|
||||||
|
%td= link_to 'Edit', edit_client_path(client)
|
||||||
|
%td= link_to 'Destroy', client, method: :delete, data: { confirm: 'Are you sure?' }
|
||||||
|
|
||||||
|
%br
|
||||||
|
= link_to ' + New Client', new_client_path, class: "btn btn-default"
|
3
app/views/clients/new.html.haml
Normal file
3
app/views/clients/new.html.haml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
%h1 New Client
|
||||||
|
= render 'form'
|
||||||
|
= link_to 'Back', clients_path
|
7
app/views/clients/show.html.haml
Normal file
7
app/views/clients/show.html.haml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.container
|
||||||
|
%p#notice= notice
|
||||||
|
= form_for(@client) do |f|
|
||||||
|
= render 'fields', f: f, disabled: true
|
||||||
|
= link_to 'Edit', edit_client_path(@client)
|
||||||
|
|
|
||||||
|
= link_to 'Back', clients_path
|
@ -12,7 +12,7 @@
|
|||||||
<div class="navbar-collapse collapse navbar-responsive-collapse" id='collapse-1'>
|
<div class="navbar-collapse collapse navbar-responsive-collapse" id='collapse-1'>
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
<li><%= link_to "Bikes", bikes_path %></li>
|
<li><%= link_to "Bikes", bikes_path %></li>
|
||||||
<li><%= link_to "Volunteers", volunteers_path %></li>
|
<li><%= link_to "Clients", clients_path %></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
# Be sure to restart your server when you modify this file.
|
|
||||||
|
|
||||||
# Your secret key is used for verifying the integrity of signed cookies.
|
|
||||||
# If you change this key, all old signed cookies will become invalid!
|
|
||||||
|
|
||||||
# Make sure the secret is at least 30 characters and all random,
|
|
||||||
# no regular words or you'll be exposed to dictionary attacks.
|
|
||||||
# You can use `rake secret` to generate a secure secret key.
|
|
||||||
|
|
||||||
# Make sure your secret_key_base is kept private
|
|
||||||
# if you're sharing your code publicly.
|
|
||||||
Bikedb::Application.config.secret_key_base = '55bed17e71286b1810e75f047637fd1acd64351fcdd5591ab83af67bdc628cb65958d98992a653268015aec9274a2e573b66fb5895d2bf86acd8a5c0e9d35813'
|
|
@ -3,4 +3,5 @@ Bikedb::Application.routes.draw do
|
|||||||
root to: "static_pages#home"
|
root to: "static_pages#home"
|
||||||
resources :bikes
|
resources :bikes
|
||||||
resources :volunteers
|
resources :volunteers
|
||||||
|
resources :clients
|
||||||
end
|
end
|
||||||
|
19
db/migrate/20140917003003_create_clients.rb
Normal file
19
db/migrate/20140917003003_create_clients.rb
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
class CreateClients < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :clients do |t|
|
||||||
|
t.string :first_name
|
||||||
|
t.string :last_name
|
||||||
|
t.date :application_date
|
||||||
|
t.string :gender
|
||||||
|
t.integer :age
|
||||||
|
t.integer :weight
|
||||||
|
t.boolean :helmet
|
||||||
|
t.boolean :lock
|
||||||
|
t.string :agency
|
||||||
|
t.date :completion_date
|
||||||
|
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
17
db/schema.rb
17
db/schema.rb
@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20140814020954) do
|
ActiveRecord::Schema.define(version: 20140917003003) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
@ -37,6 +37,21 @@ ActiveRecord::Schema.define(version: 20140814020954) do
|
|||||||
t.text "mechanic"
|
t.text "mechanic"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "clients", force: true do |t|
|
||||||
|
t.string "first_name"
|
||||||
|
t.string "last_name"
|
||||||
|
t.date "application_date"
|
||||||
|
t.string "gender"
|
||||||
|
t.integer "age"
|
||||||
|
t.integer "weight"
|
||||||
|
t.boolean "helmet"
|
||||||
|
t.boolean "lock"
|
||||||
|
t.string "agency"
|
||||||
|
t.date "completion_date"
|
||||||
|
t.datetime "created_at"
|
||||||
|
t.datetime "updated_at"
|
||||||
|
end
|
||||||
|
|
||||||
create_table "users", force: true do |t|
|
create_table "users", force: true do |t|
|
||||||
t.string "email", default: "", null: false
|
t.string "email", default: "", null: false
|
||||||
t.string "encrypted_password", default: "", null: false
|
t.string "encrypted_password", default: "", null: false
|
||||||
|
6
spec/factories/clients.rb
Normal file
6
spec/factories/clients.rb
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||||
|
|
||||||
|
FactoryGirl.define do
|
||||||
|
factory :client do
|
||||||
|
end
|
||||||
|
end
|
5
spec/models/client_spec.rb
Normal file
5
spec/models/client_spec.rb
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Client do
|
||||||
|
pending "add some examples to (or delete) #{__FILE__}"
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user