diff --git a/app/controllers/jobs_controller.rb b/app/controllers/jobs_controller.rb index dc5a5a9..3893048 100644 --- a/app/controllers/jobs_controller.rb +++ b/app/controllers/jobs_controller.rb @@ -52,6 +52,7 @@ class JobsController < ApplicationController :budget, :name, :description, + :category_id, time_budgets_attributes: [:id, :category_id, :hours, :job_id, :_destroy] ) end diff --git a/app/models/job.rb b/app/models/job.rb index 0cc18b6..e9d65bb 100644 --- a/app/models/job.rb +++ b/app/models/job.rb @@ -7,6 +7,8 @@ class Job < ActiveRecord::Base presence: true belongs_to :project + belongs_to :category, class_name: "JobCategory" + has_many :time_entries, dependent: :restrict_with_error has_many :time_budgets, dependent: :destroy accepts_nested_attributes_for :time_budgets, allow_destroy: true diff --git a/app/models/job_category.rb b/app/models/job_category.rb new file mode 100644 index 0000000..056014c --- /dev/null +++ b/app/models/job_category.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class JobCategory < Enumeration + has_many :jobs, foreign_key: :category_id + + OptionName = :enumeration_job_category + + def option_name + OptionName + end +end diff --git a/app/views/jobs/_form.html.erb b/app/views/jobs/_form.html.erb index 4db76f9..f07d65a 100644 --- a/app/views/jobs/_form.html.erb +++ b/app/views/jobs/_form.html.erb @@ -9,6 +9,10 @@ <%= f.label :description %> <%= f.text_area :description %> +
+ <%= f.label :category %> + <%= f.collection_select :category_id, JobCategory.all, :id, :name %> +
<%= f.label :starts_on %> <%= f.date_field :starts_on %> diff --git a/app/views/jobs/_job.html.erb b/app/views/jobs/_job.html.erb index 2e240ca..a27480e 100644 --- a/app/views/jobs/_job.html.erb +++ b/app/views/jobs/_job.html.erb @@ -1,5 +1,6 @@