Created
October 19, 2010 16:10
-
-
Save nwjsmith/634467 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- form_for interviewer do |f| | |
= f.error_messages | |
= f.label :name, "What is their name?" | |
= f.text_field :name | |
#languages | |
= f.label :languages, "What languages do they speak?" | |
- f.fields_for :speaks_language do |language_fields| | |
%ul | |
- Language.all.each do |language| | |
%li | |
%label | |
= language.name | |
= language_fields.check_box language.id, checkbox_attributes(interviewer, language), true, false | |
= f.submit submit_label | |
or | |
= link_to "Cancel", :back, :class => "cancel" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%h1= @interviewer.name | |
= render :partial => "form", :locals => { :interviewer => @interviewer, :submit_label => "Update interviewer"} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%h1 Interviewers | |
%p= link_to 'Add an interviewer', new_interviewer_path | |
- if @interviewers.present? | |
%table#interviewers | |
%tr | |
%th Name | |
%th Languages | |
%th Action | |
- @interviewers.each do |interviewer| | |
%tr | |
%td= interviewer.name | |
%td= interviewer.languages_list | |
%td | |
= link_to "Manage time slots", interviewer_time_slots_path(interviewer) | |
\/ | |
= link_to "Edit", edit_interviewer_path(interviewer) | |
\/ | |
= link_to "Delete", interviewer_path(interviewer), :method => :delete, :class => "cancel" | |
- else | |
%p.notice | |
Please | |
= link_to "add the first interviewer.", new_interviewer_path |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class InterviewersController < ApplicationController | |
include CalendarFunctions | |
before_filter :ip_lockdown if ENV['RAILS_ENV'] == 'production' | |
before_filter :find_interviewer, :only => [:show, :edit, :update, :destroy] | |
def index | |
@interviewers = Interviewer.all | |
end | |
def show | |
end | |
def new | |
@interviewer = Interviewer.new | |
end | |
def create | |
@interviewer = Interviewer.new(params[:interviewer]) | |
if @interviewer.save | |
flash[:notice] = "Interviewer was created successfully." | |
redirect_to @interviewer | |
else | |
render :action => "new" | |
end | |
end | |
def edit | |
end | |
def update | |
if @interviewer.update_attributes(params[:interviewer]) | |
flash[:notice] = "Interviewer was updated successfully." | |
redirect_to interviewer_path(@interviewer) | |
else | |
render :action => "edit" | |
end | |
end | |
def destroy | |
@interviewer.destroy | |
flash[:notice] = "Interviewer was successfully destroyed." | |
redirect_to interviewers_path | |
end | |
def report | |
Time.zone = 'Eastern Time (US & Canada)' | |
@calendar = calendarize_14_days | |
@slots = prepare_calendar(0) do |start_time, end_time| | |
TimeSlot.scoped({:include => [{:interviewer => :languages}, :bookings]}).between(start_time, end_time) | |
end | |
end | |
private | |
def find_interviewer | |
@interviewer = Interviewer.find(params[:id]) | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'test_helper' | |
class InterviewersControllerTest < ActionController::TestCase | |
context "on GET to :new" do | |
setup { get :new } | |
should assign_to :interviewer | |
should respond_with :success | |
should render_template :new | |
should_not set_the_flash | |
end | |
context "on POST to :create with a valid interviewer" do | |
setup do | |
@valid_attributes = Factory.attributes_for(:interviewer) | |
post :create, :interviewer => @valid_attributes | |
end | |
should redirect_to("the interviewer's page") { | |
interviewer_path(assigns(:interviewer)) | |
} | |
should set_the_flash.to "Interviewer was created successfully." | |
end | |
context "on POST to :create with an invalid interview" do | |
setup do | |
@invalid = Factory.attributes_for(:interviewer, :name => nil) | |
post :create, :interviewer => @invalid | |
end | |
should render_template :new | |
end | |
context "on POST to :edit" do | |
setup do | |
@interviewer = Factory(:interviewer) | |
post :edit, :id => @interviewer.to_param | |
end | |
should assign_to :interviewer | |
should respond_with :success | |
should render_template :edit | |
should_not set_the_flash | |
end | |
context "on PUT to :update with a valid interviewer" do | |
setup do | |
@interviewer = Factory(:interviewer) | |
valid_attributes = Factory.attributes_for(:interviewer) | |
put :update, :id => @interviewer.id, :interviewer => valid_attributes | |
end | |
should redirect_to("the interviewer's page.") { interviewer_path(@interviewer) } | |
should set_the_flash.to "Interviewer was updated successfully." | |
end | |
context "on PUT to :update with an invalid interviewer" do | |
setup do | |
@interviewer = Factory(:interviewer) | |
put :update, :id => @interviewer.id, :interviewer => { :name => nil } | |
end | |
should render_template :edit | |
end | |
context "on DELETE to :destroy an interviewer" do | |
setup do | |
@interviewer = Factory(:interviewer) | |
delete :destroy, :id => @interviewer.id | |
end | |
should(redirect_to("the interviewers list.") { interviewers_path }) | |
should set_the_flash.to "Interviewer was successfully destroyed." | |
end | |
context "on GET to :index" do | |
setup { get :index } | |
should assign_to :interviewers | |
should respond_with :success | |
should render_template :index | |
should_not set_the_flash | |
end | |
context "on GET to :show" do | |
setup do | |
interviewer = Factory(:interviewer) | |
get :show, :id => interviewer.id | |
end | |
should assign_to(:interviewer) | |
should respond_with(:success) | |
should render_template(:show) | |
should_not set_the_flash | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class LanguagesController < ApplicationController | |
def index | |
@languages = Language.all | |
end | |
def new | |
@language = Language.new | |
end | |
def create | |
@language = Language.new(params[:language]) | |
if @language.save | |
flash[:notice] = "Language added successfully" | |
redirect_to languages_path | |
else | |
render :new | |
end | |
end | |
def edit | |
@language = Language.find(params[:id]) | |
end | |
def update | |
@language = Language.find(params[:id]) | |
if @language.update_attributes(params[:language]) | |
flash[:notice] = "Language updated successfully" | |
redirect_to languages_path | |
else | |
render :edit | |
end | |
end | |
end | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'test_helper' | |
class LanguagesControllerTest < ActionController::TestCase | |
context "on GET to :index" do | |
setup { get :index } | |
should respond_with(:success) | |
should render_template(:index) | |
should assign_to(:languages) | |
end | |
context "on GET to :new" do | |
setup { get :new } | |
should respond_with(:success) | |
should render_template(:new) | |
should assign_to(:language) | |
end | |
context "on POST to :create" do | |
context "with valid attributes" do | |
setup do | |
@valid_attrs = Factory.attributes_for(:language) | |
post :create, :language => @valid_attrs | |
end | |
should redirect_to("languages path") { languages_path } | |
should set_the_flash.to("Language added successfully") | |
end | |
context "with invalid attributes" do | |
setup do | |
@valid_attrs = Factory.attributes_for(:language, :interview_length => "INVALID") | |
post :create, :language => @valid_attrs | |
end | |
should render_template(:new) | |
should_not set_the_flash | |
end | |
end | |
context "on GET to :edit" do | |
setup do | |
@language = Factory(:language) | |
get :edit, :id => @language.id | |
end | |
should respond_with(:success) | |
should render_template(:edit) | |
should assign_to(:language) | |
end | |
context "on PUT to :update" do | |
context "with valid attributes" do | |
setup do | |
@language = Factory(:language) | |
@valid_attrs = Factory.attributes_for(:language) | |
put :update, :id => @language.id, :language => @valid_attrs | |
end | |
should redirect_to("languages list page") { languages_path } | |
should set_the_flash.to("Language updated successfully") | |
end | |
context "with invalid attributes" do | |
setup do | |
@language = Factory(:language) | |
@invalid_attrs = Factory.attributes_for(:language, :interview_length => "INVALID") | |
put :update, :id => @language.id, :language => @invalid_attrs | |
end | |
should render_template(:edit) | |
end | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%h1 New Interviewer | |
= render :partial => "form", :locals => { :interviewer => @interviewer, :submit_label => "Create interviewer"} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%table | |
%tr | |
%th | |
Time | |
[email protected] do |date| | |
%th=date.strftime("%a %b %d") | |
[email protected] do |time, slots| | |
%tr | |
%td | |
=time | |
-slots.each do |slot_hash| | |
%td | |
- if slot_hash[:slot].empty? | |
| |
- else | |
-slot_hash[:slot].each do |slot| | |
%div | |
="#{slot.interviewer.name} (#{slot.interviewer.languages_list})" | |
=slot.application_for_time slot_hash[:start], slot_hash[:end] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%h1= @interviewer.name | |
%p=link_to "Edit", edit_interviewer_path(@interviewer) | |
%h2 Spoken languages | |
- if @interviewer.languages.present? | |
%ul | |
- @interviewer.languages.each do |language| | |
%li= language.name |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment