Adding contracts
This commit is contained in:
		
							parent
							
								
									095b6d3965
								
							
						
					
					
						commit
						c74da562bc
					
				
							
								
								
									
										50
									
								
								app/controllers/contracts_controller.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								app/controllers/contracts_controller.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					class ContractsController < ApplicationController
 | 
				
			||||||
 | 
					  load_and_authorize_resource :contract
 | 
				
			||||||
 | 
					  before_filter :authenticate_user!
 | 
				
			||||||
 | 
					  layout 'resources'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def index
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def show
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def new
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def edit
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def create
 | 
				
			||||||
 | 
					    respond_to do |format|
 | 
				
			||||||
 | 
					      if @contract.save
 | 
				
			||||||
 | 
					        format.html { redirect_to Contract, :notice => 'Contract was successfully created.' }
 | 
				
			||||||
 | 
					        format.json { render :json => @contract, :status => :created, :location => @contract }
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        format.html { render :action => "new" }
 | 
				
			||||||
 | 
					        format.json { render :json => @contract.errors, :status => :unprocessable_entity }
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def update
 | 
				
			||||||
 | 
					    respond_to do |format|
 | 
				
			||||||
 | 
					      if @contract.update_attributes(params[:contract])
 | 
				
			||||||
 | 
					        format.html { redirect_to Contract, :notice => 'Contract was successfully updated.' }
 | 
				
			||||||
 | 
					        format.json { head :no_content }
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        format.html { render :action => "edit" }
 | 
				
			||||||
 | 
					        format.json { render :json => @contract.errors, :status => :unprocessable_entity }
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def destroy
 | 
				
			||||||
 | 
					    @contract.destroy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    respond_to do |format|
 | 
				
			||||||
 | 
					      format.html { redirect_to contracts_url }
 | 
				
			||||||
 | 
					      format.json { head :no_content }
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										12
									
								
								app/models/contract.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								app/models/contract.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					class Contract < ActiveRecord::Base
 | 
				
			||||||
 | 
					  belongs_to :user
 | 
				
			||||||
 | 
					  attr_accessible :user_id, :first_name, :last_name, :signed_at, :document_file_name, :document_content_type, :document_file_size, :document_updated_at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  validates_presence_of :first_name, :last_name, :signed_at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  has_attached_file :document, { :styles => { :medium => "300x300>"},
 | 
				
			||||||
 | 
					                    :storage => :s3,
 | 
				
			||||||
 | 
					                    :s3_credentials => Rails.root.join('config', 's3.yml'),
 | 
				
			||||||
 | 
					                    :path => ":attachment/:id/:style.:extension",
 | 
				
			||||||
 | 
					                    :bucket => 'Toolshare' }  #TODO: move to local storage
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										36
									
								
								app/views/contracts/_form.html.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								app/views/contracts/_form.html.erb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					<%= form_for(@contract, html: {class: "col-sm-6"}) do |f| %>
 | 
				
			||||||
 | 
					  <% if @contract.errors.any? %>
 | 
				
			||||||
 | 
					    <div id="error_explanation">
 | 
				
			||||||
 | 
					      <h2><%= pluralize(@contract.errors.count, "error") %> prohibited this contract from being saved:</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <ul>
 | 
				
			||||||
 | 
					      <% @contract.errors.full_messages.each do |msg| %>
 | 
				
			||||||
 | 
					        <li><%= msg %></li>
 | 
				
			||||||
 | 
					      <% end %>
 | 
				
			||||||
 | 
					      </ul>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					  <% end %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <p>
 | 
				
			||||||
 | 
					    <%= f.label :first_name %><br />
 | 
				
			||||||
 | 
					    <%= f.text_field :first_name, class: "form-control" %>
 | 
				
			||||||
 | 
					  </p>
 | 
				
			||||||
 | 
					  <p>
 | 
				
			||||||
 | 
					    <%= f.label :last_name %><br />
 | 
				
			||||||
 | 
					    <%= f.text_field :last_name, class: "form-control" %>
 | 
				
			||||||
 | 
					  </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <p>
 | 
				
			||||||
 | 
					    <%= f.label :signed_at %><br />
 | 
				
			||||||
 | 
					    <%= f.date_select :signed_at, class: "form-control"  %>
 | 
				
			||||||
 | 
					  </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <p>
 | 
				
			||||||
 | 
					    <%= f.label :document %><br />
 | 
				
			||||||
 | 
					    <%= f.file_field :document %>
 | 
				
			||||||
 | 
					  </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <p>
 | 
				
			||||||
 | 
					    <%= f.submit nil, class: "btn btn-primary" %>
 | 
				
			||||||
 | 
					  </p>
 | 
				
			||||||
 | 
					<% end %>
 | 
				
			||||||
							
								
								
									
										21
									
								
								app/views/contracts/index.html.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								app/views/contracts/index.html.erb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					<div class="row">
 | 
				
			||||||
 | 
					  <h1 class="col-md-8">Contracts
 | 
				
			||||||
 | 
					    <%= link_to 'Add Contract', new_contract_path, :class => "btn btn-success" if can? :create, Contract %>
 | 
				
			||||||
 | 
					  </h1>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="row">
 | 
				
			||||||
 | 
					  <% @contracts.sort_by{|r| [r.last_name] }.each do |contract| %>
 | 
				
			||||||
 | 
					    <div class="panel panel-default">
 | 
				
			||||||
 | 
					      <div class="panel-heading">
 | 
				
			||||||
 | 
					        <h4 class="panel-title">
 | 
				
			||||||
 | 
					            <%= contract.last_name %>
 | 
				
			||||||
 | 
					            <%= contract.first_name %>
 | 
				
			||||||
 | 
					        </h4>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					  <% end %>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										4
									
								
								app/views/contracts/new.html.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								app/views/contracts/new.html.erb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					<h1>New Contract
 | 
				
			||||||
 | 
					<%= link_to 'Back', contracts_path, class: "btn btn-default" %>
 | 
				
			||||||
 | 
					</h1>
 | 
				
			||||||
 | 
					<%= render 'form' %>
 | 
				
			||||||
@ -19,6 +19,8 @@ Dooraccess::Application.routes.draw do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  resources :certifications
 | 
					  resources :certifications
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  resources :contracts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  devise_for :users, :skip => :registrations
 | 
					  devise_for :users, :skip => :registrations
 | 
				
			||||||
  devise_scope :user do
 | 
					  devise_scope :user do
 | 
				
			||||||
    resource :registration,
 | 
					    resource :registration,
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										16
									
								
								db/migrate/20140227095847_create_contracts.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								db/migrate/20140227095847_create_contracts.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					class CreateContracts < ActiveRecord::Migration
 | 
				
			||||||
 | 
					  def change
 | 
				
			||||||
 | 
					    create_table :contracts do |t|
 | 
				
			||||||
 | 
					      t.integer  :user_id
 | 
				
			||||||
 | 
					      t.datetime :first_name
 | 
				
			||||||
 | 
					      t.datetime :last_name
 | 
				
			||||||
 | 
					      t.datetime :signed_at
 | 
				
			||||||
 | 
					      t.string   :document_file_name
 | 
				
			||||||
 | 
					      t.string   :document_content_type
 | 
				
			||||||
 | 
					      t.integer  :document_file_size
 | 
				
			||||||
 | 
					      t.datetime :document_updated_at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      t.timestamps
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										58
									
								
								db/schema.rb
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								db/schema.rb
									
									
									
									
									
								
							@ -11,7 +11,34 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# It's strongly recommended to check this file into your version control system.
 | 
					# It's strongly recommended to check this file into your version control system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ActiveRecord::Schema.define(:version => 20140223060554) do
 | 
					ActiveRecord::Schema.define(:version => 20140227095847) do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  create_table "admins", :force => true do |t|
 | 
				
			||||||
 | 
					    t.string   "email",                               :default => "", :null => false
 | 
				
			||||||
 | 
					    t.string   "encrypted_password",   :limit => 128, :default => "", :null => false
 | 
				
			||||||
 | 
					    t.string   "password_salt",                       :default => "", :null => false
 | 
				
			||||||
 | 
					    t.string   "confirmation_token"
 | 
				
			||||||
 | 
					    t.datetime "confirmed_at"
 | 
				
			||||||
 | 
					    t.datetime "confirmation_sent_at"
 | 
				
			||||||
 | 
					    t.string   "reset_password_token"
 | 
				
			||||||
 | 
					    t.string   "remember_token"
 | 
				
			||||||
 | 
					    t.datetime "remember_created_at"
 | 
				
			||||||
 | 
					    t.integer  "sign_in_count",                       :default => 0
 | 
				
			||||||
 | 
					    t.datetime "current_sign_in_at"
 | 
				
			||||||
 | 
					    t.datetime "last_sign_in_at"
 | 
				
			||||||
 | 
					    t.string   "current_sign_in_ip"
 | 
				
			||||||
 | 
					    t.string   "last_sign_in_ip"
 | 
				
			||||||
 | 
					    t.integer  "failed_attempts",                     :default => 0
 | 
				
			||||||
 | 
					    t.string   "unlock_token"
 | 
				
			||||||
 | 
					    t.datetime "locked_at"
 | 
				
			||||||
 | 
					    t.datetime "created_at"
 | 
				
			||||||
 | 
					    t.datetime "updated_at"
 | 
				
			||||||
 | 
					    t.string   "name"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  add_index "admins", ["confirmation_token"], :name => "index_admins_on_confirmation_token", :unique => true
 | 
				
			||||||
 | 
					  add_index "admins", ["email"], :name => "index_admins_on_email", :unique => true
 | 
				
			||||||
 | 
					  add_index "admins", ["reset_password_token"], :name => "index_admins_on_reset_password_token", :unique => true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  create_table "cards", :force => true do |t|
 | 
					  create_table "cards", :force => true do |t|
 | 
				
			||||||
    t.string   "card_number"
 | 
					    t.string   "card_number"
 | 
				
			||||||
@ -22,6 +49,13 @@ ActiveRecord::Schema.define(:version => 20140223060554) do
 | 
				
			|||||||
    t.string   "name"
 | 
					    t.string   "name"
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  create_table "categories", :force => true do |t|
 | 
				
			||||||
 | 
					    t.string   "name"
 | 
				
			||||||
 | 
					    t.datetime "created_at"
 | 
				
			||||||
 | 
					    t.datetime "updated_at"
 | 
				
			||||||
 | 
					    t.string   "parent"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  create_table "certifications", :force => true do |t|
 | 
					  create_table "certifications", :force => true do |t|
 | 
				
			||||||
    t.string   "name"
 | 
					    t.string   "name"
 | 
				
			||||||
    t.string   "description"
 | 
					    t.string   "description"
 | 
				
			||||||
@ -30,6 +64,19 @@ ActiveRecord::Schema.define(:version => 20140223060554) do
 | 
				
			|||||||
    t.string   "slug"
 | 
					    t.string   "slug"
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  create_table "contracts", :force => true do |t|
 | 
				
			||||||
 | 
					    t.integer  "user_id"
 | 
				
			||||||
 | 
					    t.datetime "first_name"
 | 
				
			||||||
 | 
					    t.datetime "last_name"
 | 
				
			||||||
 | 
					    t.datetime "signed_at"
 | 
				
			||||||
 | 
					    t.string   "document_file_name"
 | 
				
			||||||
 | 
					    t.string   "document_content_type"
 | 
				
			||||||
 | 
					    t.integer  "document_file_size"
 | 
				
			||||||
 | 
					    t.datetime "document_updated_at"
 | 
				
			||||||
 | 
					    t.datetime "created_at",            :null => false
 | 
				
			||||||
 | 
					    t.datetime "updated_at",            :null => false
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  create_table "door_logs", :force => true do |t|
 | 
					  create_table "door_logs", :force => true do |t|
 | 
				
			||||||
    t.string   "key"
 | 
					    t.string   "key"
 | 
				
			||||||
    t.integer  "data"
 | 
					    t.integer  "data"
 | 
				
			||||||
@ -117,6 +164,15 @@ ActiveRecord::Schema.define(:version => 20140223060554) do
 | 
				
			|||||||
    t.datetime "updated_at",           :null => false
 | 
					    t.datetime "updated_at",           :null => false
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  create_table "reservations", :force => true do |t|
 | 
				
			||||||
 | 
					    t.datetime "checkout_date"
 | 
				
			||||||
 | 
					    t.string   "checkout_signature"
 | 
				
			||||||
 | 
					    t.datetime "return_date"
 | 
				
			||||||
 | 
					    t.string   "return_signature"
 | 
				
			||||||
 | 
					    t.datetime "created_at"
 | 
				
			||||||
 | 
					    t.datetime "updated_at"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  create_table "resource_categories", :force => true do |t|
 | 
					  create_table "resource_categories", :force => true do |t|
 | 
				
			||||||
    t.string   "name"
 | 
					    t.string   "name"
 | 
				
			||||||
    t.datetime "created_at"
 | 
					    t.datetime "created_at"
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user