More contract tweaks

This commit is contained in:
Will Bradley 2014-03-02 21:48:49 -07:00
parent d8311fa7cc
commit 3cd6c59df0
14 changed files with 53 additions and 20 deletions

View File

@ -20,7 +20,7 @@ class ContractsController < ApplicationController
Rails.logger.info @contract.inspect Rails.logger.info @contract.inspect
respond_to do |format| respond_to do |format|
if @contract.save if @contract.save
format.html { redirect_to Contract, :notice => 'Contract was successfully created.' } format.html { redirect_to @contract, :notice => 'Contract was successfully created.' }
format.json { render :json => @contract, :status => :created, :location => @contract } format.json { render :json => @contract, :status => :created, :location => @contract }
else else
format.html { render :action => "new" } format.html { render :action => "new" }
@ -32,7 +32,7 @@ class ContractsController < ApplicationController
def update def update
respond_to do |format| respond_to do |format|
if @contract.update_attributes(params[:contract]) if @contract.update_attributes(params[:contract])
format.html { redirect_to Contract, :notice => 'Contract was successfully updated.' } format.html { redirect_to @contract, :notice => 'Contract was successfully updated.' }
format.json { head :no_content } format.json { head :no_content }
else else
format.html { render :action => "edit" } format.html { render :action => "edit" }

View File

@ -35,7 +35,7 @@ class UsersController < ApplicationController
when "orientation" when "orientation"
@users = @users.sort_by{ |u| [-u.orientation.to_i,u.name] } @users = @users.sort_by{ |u| [-u.orientation.to_i,u.name] }
when "waiver" when "waiver"
@users = @users.sort_by{ |u| [-u.waiver.to_i,u.name] } @users = @users.sort_by{ |u| [-u.contract_date.to_i,u.name] }
when "member" when "member"
@users = @users.sort_by{ |u| [-u.member_status.to_i,u.name] } @users = @users.sort_by{ |u| [-u.member_status.to_i,u.name] }
when "card" when "card"

View File

@ -12,7 +12,6 @@ class Ability
# By default, users can only see their own stuff # By default, users can only see their own stuff
can :read, Card, :user_id => user.id can :read, Card, :user_id => user.id
can :read, Certification can :read, Certification
can :read, Contract
can :read_details, Mac can :read_details, Mac
can [:update], Mac, :user_id => nil can [:update], Mac, :user_id => nil
can [:create,:update], Mac, :user_id => user.id can [:create,:update], Mac, :user_id => user.id

View File

@ -1,6 +1,6 @@
class Contract < ActiveRecord::Base class Contract < ActiveRecord::Base
belongs_to :user belongs_to :user
attr_accessible :user_id, :first_name, :last_name, :signed_at, :document, :document_file_name, :document_content_type, :document_file_size, :document_updated_at attr_accessible :user_id, :first_name, :last_name, :cosigner, :signed_at, :document, :document_file_name, :document_content_type, :document_file_size, :document_updated_at
validates_presence_of :first_name, :signed_at #, :last_name validates_presence_of :first_name, :signed_at #, :last_name

View File

@ -145,7 +145,11 @@ class User < ActiveRecord::Base
end end
end end
private def contract_date
self.contracts.first.signed_at unless self.contracts.blank?
end
private
def send_new_user_email def send_new_user_email
Rails.logger.info UserMailer.new_user_email(self).deliver Rails.logger.info UserMailer.new_user_email(self).deliver

View File

@ -19,6 +19,10 @@
<%= f.label :last_name %><br /> <%= f.label :last_name %><br />
<%= f.text_field :last_name, class: "form-control" %> <%= f.text_field :last_name, class: "form-control" %>
</div> </div>
<div class="form-group">
<%= f.label :cosigner %><br />
<%= f.text_field :cosigner, class: "form-control" %>
</div>
<div class="form-group"> <div class="form-group">
<%= f.label :user_id, "User" %><br /> <%= f.label :user_id, "User" %><br />
@ -32,7 +36,13 @@
<div class="form-group"> <div class="form-group">
<%= f.label :document %><br /> <%= f.label :document %><br />
<%= f.file_field :document %> <%= link_to "View Existing Document", @contract.document.url, class: "btn btn-default" unless @contract.document.blank? %>
<p>
<%= link_to "Upload New Document", "#", class: "btn btn-default", onclick: "$('#document_upload').removeClass('hidden'); $(this).addClass('hidden')" unless @contract.document.blank? %>
<div id="document_upload" class="<%= "hidden" unless @contract.document.blank? %>">
<%= f.file_field :document %>
</div>
</p>
</div> </div>
<div class="form-group"> <div class="form-group">

View File

@ -23,6 +23,7 @@
<td> <td>
<%= contract.last_name %>, <%= contract.last_name %>,
<%= contract.first_name %> <%= contract.first_name %>
<%= "and #{contract.cosigner}" unless contract.cosigner.blank? %>
</td> </td>
<td> <td>
<%= link_to contract.user.name, contract.user if contract.user %> <%= link_to contract.user.name, contract.user if contract.user %>

View File

@ -2,6 +2,7 @@
<h1 class="col-md-8"> <h1 class="col-md-8">
Contract Contract
<%= link_to 'Back', contracts_path, :class => "btn btn-default" %> <%= link_to 'Back', contracts_path, :class => "btn btn-default" %>
<%= link_to 'Edit', edit_contract_path(@contract), :class => "btn btn-primary" %>
<%= link_to 'Delete', contract_path(@contract), {:confirm => 'Are you sure you want to delete this forever?', :method => :delete, :class => "btn btn-danger"} if can? :destroy, @contract %> <%= link_to 'Delete', contract_path(@contract), {:confirm => 'Are you sure you want to delete this forever?', :method => :delete, :class => "btn btn-danger"} if can? :destroy, @contract %>
</h1> </h1>
</div> </div>
@ -10,6 +11,7 @@
<h2> <h2>
<%= @contract.first_name %> <%= @contract.first_name %>
<%= @contract.last_name %> <%= @contract.last_name %>
<%= "and #{@contract.cosigner}" unless @contract.cosigner.blank? %>
<%= link_to "(#{@contract.user.name})", @contract.user if @contract.user %> <%= link_to "(#{@contract.user.name})", @contract.user if @contract.user %>
<small> <small>
signed signed
@ -17,12 +19,15 @@
</small> </small>
</h2> </h2>
<% if @contract.document.blank? %>
No document uploaded
<% else %>
<p><%= link_to "Download Contract", @contract.document.url %> <p><%= link_to "Download Contract", @contract.document.url %>
<div class="col-xs-12"> <div class="col-xs-12">
<iframe src="<%= @contract.document.url %>" width="100%" height="600"></iframe> <iframe src="<%= @contract.document.url %>" width="100%" height="600"></iframe>
</div> </div>
</p> </p>
<% end %>
<br /> <br />

View File

@ -24,6 +24,7 @@
<% else %> <% else %>
<%= link_to 'Certifications', certifications_path if can? :read, Certification %> <%= link_to 'Certifications', certifications_path if can? :read, Certification %>
<% end %> <% end %>
<%= link_to 'Waivers', contracts_path if can? :read, Contract %>
<%= link_to 'Payments', payments_path if can? :create, Payment %> <%= link_to 'Payments', payments_path if can? :create, Payment %>
<%= link_to 'Computers', macs_path if user_signed_in? || (can? :read, Mac) %> <%= link_to 'Computers', macs_path if user_signed_in? || (can? :read, Mac) %>
<%= link_to 'Settings', settings_path if can? :read, Setting %> <%= link_to 'Settings', settings_path if can? :read, Setting %>

View File

@ -89,6 +89,7 @@
<% else %> <% else %>
<%= li_link_to 'Certifications', certifications_path if can? :read, Certification %> <%= li_link_to 'Certifications', certifications_path if can? :read, Certification %>
<% end %> <% end %>
<%= li_link_to 'Waivers', contracts_path if can? :read, Contract %>
<%= li_link_to 'Computers', macs_path if user_signed_in? || (can? :read, Mac) %> <%= li_link_to 'Computers', macs_path if user_signed_in? || (can? :read, Mac) %>
<%= li_link_to 'Payments', payments_path if can? :create, Payment %> <%= li_link_to 'Payments', payments_path if can? :create, Payment %>
<%= li_link_to 'Settings', settings_path if can? :read, Setting %> <%= li_link_to 'Settings', settings_path if can? :read, Setting %>

View File

@ -34,18 +34,18 @@
<% end %> <% end %>
<tr> <tr>
<th></th> <th></th>
<th><a href="?sort=name">Name</a></th> <th><a href="?full=full&sort=name">Name</a></th>
<th><a href="?sort=member">Member?</a></th> <th><a href="?full=full&sort=member">Member?</a></th>
<% if current_user.admin? then %><th><a href="?sort=email">Email</a></th><% end %> <% if current_user.admin? then %><th><a href="?sort=email">Email</a></th><% end %>
<% if current_user.admin? then %> <% if current_user.admin? then %>
<th><a href="?sort=orientation">Orientation?</a></th> <th><a href="?full=full&sort=orientation">Orientation?</a></th>
<% end %> <% end %>
<th><a href="?sort=waiver">Waiver?</a></th> <th><a href="?full=full&sort=waiver">Waiver?</a></th>
<th><a href="?sort=card">Card?</a></th> <th><a href="?full=full&sort=card">Card?</a></th>
<th><a href="?sort=instructor">Instructor?</a></th> <th><a href="?full=full&sort=instructor">Instructor?</a></th>
<% if current_user.admin? then %><th><a href="?sort=admin">Admin?</a></th><% end %> <% if current_user.admin? then %><th><a href="?sort=admin">Admin?</a></th><% end %>
<% @certifications.each do |c| %> <% @certifications.each do |c| %>
<th><a href="?sort=cert&cert=<%= c.id %>"><%= c.name %></a></th> <th><a href="?full=full&sort=cert&cert=<%= c.id %>"><%= c.name %></a></th>
<% end %> <% end %>
<th></th> <th></th>
<th></th> <th></th>
@ -61,7 +61,7 @@
<% if current_user.admin? then %><td> <% if current_user.admin? then %><td>
<%= unless user.orientation.blank? then raw("<span class='hoverinfo' title='"+user.orientation.strftime("%B %d %Y")+"'>&#x2713;</span>") end %> <%= unless user.orientation.blank? then raw("<span class='hoverinfo' title='"+user.orientation.strftime("%B %d %Y")+"'>&#x2713;</span>") end %>
</td><% end %> </td><% end %>
<td><%= unless user.waiver.blank? then raw("<span class='hoverinfo' title='"+user.waiver.strftime("%B %d %Y")+"'>&#x2713;</span>") end %></td> <td><%= unless user.contracts.blank? then raw("<span class='hoverinfo' title='"+user.contracts.first.signed_at.strftime("%B %d %Y")+"'>&#x2713;</span>") end %></td>
<td><%= unless user.cards.blank? then raw("<span class='iconinfo'>&#x2713;</span>") end %></td> <td><%= unless user.cards.blank? then raw("<span class='iconinfo'>&#x2713;</span>") end %></td>
<td><%= if user.instructor? then raw("<span class='iconinfo'>&#x2713;</a>") end %></td> <td><%= if user.instructor? then raw("<span class='iconinfo'>&#x2713;</a>") end %></td>
<% if current_user.admin? then %><td><%= if user.admin? then raw("<span class='iconinfo'>&#x2713;</a>") end %></td><% end %> <% if current_user.admin? then %><td><%= if user.admin? then raw("<span class='iconinfo'>&#x2713;</a>") end %></td><% end %>

View File

@ -173,9 +173,15 @@ margin-right: auto;
<%= @user.waiver.strftime("%B %d %Y") unless @user.waiver.blank? %><br/> <%= @user.waiver.strftime("%B %d %Y") unless @user.waiver.blank? %><br/>
<b>Contracts:</b> <%= link_to "+ Add", new_contract_path, :class => 'btn' if can? :create, Contract %> <b>Contracts:</b> <%= link_to "+ Add", new_contract_path, :class => 'btn' if can? :create, Contract %>
<ul> <ul>
<% @user.contracts.each do |contract| %> <% @user.contracts.each do |contract| %>
<li><%= link_to contract.signed_at.strftime("%B %d %Y"), contract %></li> <li>
<% end %> <% if can? :read, contract %>
<%= link_to contract.signed_at.strftime("%B %d %Y"), contract %>
<% else %>
<%= contract.signed_at.strftime("%B %d %Y") %>
<% end %>
</li>
<% end %>
</ul> </ul>
</p> </p>

View File

@ -0,0 +1,5 @@
class AddCosignerToContracts < ActiveRecord::Migration
def change
add_column :contracts, :cosigner, :string
end
end

View File

@ -11,7 +11,7 @@
# #
# 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 => 20140227095847) do ActiveRecord::Schema.define(:version => 20140303030220) do
create_table "cards", :force => true do |t| create_table "cards", :force => true do |t|
t.string "card_number" t.string "card_number"
@ -41,6 +41,7 @@ ActiveRecord::Schema.define(:version => 20140227095847) do
t.datetime "document_updated_at" t.datetime "document_updated_at"
t.datetime "created_at", :null => false t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
t.string "cosigner"
end end
create_table "door_logs", :force => true do |t| create_table "door_logs", :force => true do |t|