Skip to content

Commit

Permalink
Added "Job Request" Form
Browse files Browse the repository at this point in the history
  • Loading branch information
jcnetdev committed Jun 28, 2008
1 parent cf0175b commit 0d6e18b
Show file tree
Hide file tree
Showing 33 changed files with 1,048 additions and 18 deletions.
26 changes: 26 additions & 0 deletions app/controllers/job_requests_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
class JobRequestsController < ApplicationController

def new
@job_hunter = JobHunter.new
end

def create
@job_hunter = JobHunter.new(params[:job_hunter])

if @job_hunter.save
req_params = params["req_params"] || []
req_params.each do |req_param_id|
job_param = JobParam.find_by_id(req_param_id)
@job_hunter.job_params << job_param if job_param
end

redirect_to :action => "success"
else
render :action => "new"
end
end

def success
end

end
1 change: 0 additions & 1 deletion app/controllers/jobs_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ def apply
session[:applied_id] = @job.id
redirect_to job_url(@job)
else
debugger
render :action => "show"
end
end
Expand Down
2 changes: 2 additions & 0 deletions app/helpers/job_requests_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
module JobRequestsHelper
end
2 changes: 2 additions & 0 deletions app/models/job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ class Job < ActiveRecord::Base
validates_presence_of :company
validates_presence_of :poster_email

validates_email_format_of :poster_email

before_save :format_fields

# create a default populated job
Expand Down
5 changes: 0 additions & 5 deletions app/models/job_applicant.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,7 @@ class JobApplicant < ActiveRecord::Base
has_attachment :storage => :file_system,
# :storage => :s3,
:path_prefix => "public/attachments"
# :content_type => ['application/pdf', 'application/msword', 'text/xml', 'text/plain']


validates_as_attachment


def self.new_default(init_values = {})
self.new(init_values)
end
Expand Down
7 changes: 7 additions & 0 deletions app/models/job_hunter.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
class JobHunter < ActiveRecord::Base
has_and_belongs_to_many :job_params

validates_presence_of :name
validates_presence_of :email
validates_email_format_of :email
end
6 changes: 6 additions & 0 deletions app/models/job_param.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class JobParam < ActiveRecord::Base
belongs_to :job_param_category

acts_as_list :scope => :job_param_category

end
9 changes: 9 additions & 0 deletions app/models/job_param_category.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
class JobParamCategory < ActiveRecord::Base
has_many :job_params, :order => "position"

def self.options
self.all :order => "position"
end


end
40 changes: 40 additions & 0 deletions app/views/job_requests/new.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
.page-content
%h3.page-heading Set up your ideal job!
%p Let us know what your ideal job is...
= br

- if @job_hunter.errors.size > 0
.validation-failure
= image_tag "exclamation.png", :style => "vertical-align: -3px"
There were a few problems. Please correct the fields labeled in <strong>red</strong>.
= br

- form_for @job_hunter, :url => job_requests_url, :html => {:method => :post, :class => "job-form"} do |f|
%fieldset
%legend What's your ideal job?
- JobParamCategory.options.each_with_index do |category, index|
%div{:id => "req_col#{index}"}
%strong= category.name
- category.job_params.each do |job_param|
= br
.req-params-item
- req_params = params["req_params"] || []
= check_box_tag "req_params[]", job_param.id, req_params.include?(job_param.id.to_s), :id => "param_#{job_param.id}"
%label.request-label{:for => "param_#{job_param.id}"}= job_param.param_value

%fieldset
%legend Your info
%table{:border => "0", :cellspacing => "2", :cellpadding => "2"}
%tbody
%tr
%td.publish-label Name
%td
= f.text_field :name, :size => 40, :maxlength => 50
%tr
%td.publish-label Email
%td
= f.text_field :email, :size => 40, :maxlength => 255

%fieldset
= submit_tag "Save", :class => "submit"

6 changes: 6 additions & 0 deletions app/views/job_requests/success.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
= br
.posted-ok
%p We really appreciate your time! Thanks!

= br
= link_to "&laquo; go back to homepage", root_url
2 changes: 1 addition & 1 deletion app/views/jobs/edit.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

- unless @job.errors.empty?
.validation-failure
= image_tag "icon-exclamation.png", :style => "vertical-align: -3px"
= image_tag "exclamation.png", :style => "vertical-align: -3px"
Please revise the form...

- form_for @job, :html => {:id => "publish_form", :class => "job-form"} do |f|
Expand Down
2 changes: 1 addition & 1 deletion app/views/jobs/new.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

- unless @job.errors.empty?
.validation-failure
= image_tag "icon-exclamation.png", :style => "vertical-align: -3px"
= image_tag "exclamation.png", :style => "vertical-align: -3px"
Please revise the form...

- form_for @job, :html => {:id => "publish_form", :class => "job-form"} do |f|
Expand Down
2 changes: 1 addition & 1 deletion app/views/layouts/_header.html.haml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#header
%h1#logo= link_to AppConfig.site_name, root_url
%ul#top
%li= link_to "the ideal job", "#"
%li= link_to "the ideal job", new_job_request_url
= bull
%li= link_to "Site widget", "#"
= bull
Expand Down
8 changes: 7 additions & 1 deletion config/routes.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
ActionController::Routing::Routes.draw do |map|

map.resources :jobs, :member => {:verify => :any, :apply => :post, :confirm => :any}
map.resources :jobs, :member => {
:verify => :any,
:apply => :post,
:confirm => :any
}

map.resources :job_requests, :collection => {:success => :get}
map.resources :categories
map.resource :search, :controller => "Search"

Expand Down
23 changes: 23 additions & 0 deletions db/fixtures/job_param_categories.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
JobParamCategory.seed(:id, :name) do |s|
s.id = 1
s.name = "Job Type"
s.position = 1
end

JobParamCategory.seed(:id, :name) do |s|
s.id = 2
s.name = "Company Stuff"
s.position = 2
end

JobParamCategory.seed(:id, :name) do |s|
s.id = 3
s.name = "Know-how"
s.position = 3
end

JobParamCategory.seed(:id, :name) do |s|
s.id = 4
s.name = "Level of Expertise"
s.position = 4
end
159 changes: 159 additions & 0 deletions db/fixtures/job_params.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# Job Type Params
JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 1
s.param_value = "freelance"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 1
s.param_value = "full-time"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 1
s.param_value = "internship"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 1
s.param_value = "part-time"
end

# Company Stuff Params
JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 2
s.param_value = "bonuses"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 2
s.param_value = "large company"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 2
s.param_value = "small team"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 2
s.param_value = "small team"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 2
s.param_value = "training"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 2
s.param_value = "work at the office"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 2
s.param_value = "work from home"
end

# Know-how
JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = ".net"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "c/c++/C#{}"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "copywriting/editare"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "erp/sap"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "flash"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "graphic design"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "java"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "javascript/ajax"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "linux/server admin"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "manager"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "oracle"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "php/mysql"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "python"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "ruby/rails"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "seo/sem"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "sysadmin"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 3
s.param_value = "xhtml/css"
end

# Level of Expertise
JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 4
s.param_value = "junior"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 4
s.param_value = "medium"
end

JobParam.seed(:job_param_category_id, :param_value) do |s|
s.job_param_category_id = 4
s.param_value = "senior"
end

14 changes: 14 additions & 0 deletions db/migrate/20080628122920_create_job_hunters.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
class CreateJobHunters < ActiveRecord::Migration
def self.up
create_table :job_hunters do |t|
t.string :name
t.string :email

t.timestamps
end
end

def self.down
drop_table :job_hunters
end
end
14 changes: 14 additions & 0 deletions db/migrate/20080628123752_create_job_params.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
class CreateJobParams < ActiveRecord::Migration
def self.up
create_table :job_params do |t|
t.string :job_param_category_id
t.string :param_value
t.integer :position, :default => 0
t.timestamps
end
end

def self.down
drop_table :job_params
end
end
Loading

0 comments on commit 0d6e18b

Please sign in to comment.