voluntary 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/javascripts/voluntary/application.js +1 -1
- data/app/assets/javascripts/voluntary/base.js.coffee +30 -1
- data/app/assets/stylesheets/voluntary/application.css +1 -0
- data/app/assets/stylesheets/voluntary/base.css.sass +1 -1
- data/app/controllers/areas_controller.rb +6 -5
- data/app/controllers/candidatures_controller.rb +15 -10
- data/app/controllers/concerns/voluntary/v1/base_controller.rb +95 -0
- data/app/controllers/devise_extensions/registrations_controller.rb +2 -2
- data/app/controllers/organizations_controller.rb +7 -6
- data/app/controllers/professions_controller.rb +6 -5
- data/app/controllers/projects_controller.rb +11 -6
- data/app/controllers/users_controller.rb +2 -2
- data/app/controllers/vacancies_controller.rb +14 -5
- data/app/controllers/voluntary/api/v1/api_controller.rb +9 -0
- data/app/controllers/voluntary/application_controller.rb +2 -66
- data/app/controllers/workflow/candidatures_controller.rb +1 -1
- data/app/controllers/workflow/products_controller.rb +7 -7
- data/app/controllers/workflow/stories_controller.rb +1 -1
- data/app/controllers/workflow/tasks_controller.rb +2 -2
- data/app/controllers/workflow/user/product/areas_controller.rb +2 -2
- data/app/controllers/workflow/user/projects_controller.rb +10 -2
- data/app/helpers/voluntary/application_helper.rb +79 -0
- data/app/helpers/voluntary/collection_helper.rb +45 -0
- data/app/helpers/voluntary/comments_helper.rb +13 -0
- data/app/helpers/voluntary/form_helper.rb +46 -0
- data/app/helpers/voluntary/language_helper.rb +17 -0
- data/app/helpers/voluntary/layout_helper.rb +42 -0
- data/app/helpers/voluntary/product_helper.rb +36 -0
- data/app/helpers/voluntary/show_helper.rb +67 -0
- data/app/helpers/voluntary/wizard_helper.rb +29 -0
- data/app/models/ability.rb +20 -4
- data/app/models/candidature.rb +10 -7
- data/app/models/column.rb +1 -0
- data/app/models/concerns/user/extensions.rb +5 -0
- data/app/models/concerns/user/listable.rb +10 -0
- data/app/models/list.rb +30 -0
- data/app/models/list_item.rb +22 -0
- data/app/models/organization.rb +1 -0
- data/app/models/page.rb +2 -1
- data/app/models/product.rb +3 -2
- data/app/models/project.rb +2 -2
- data/app/models/result.rb +1 -0
- data/app/models/role.rb +1 -1
- data/app/models/state_machines/candidature.rb +17 -1
- data/app/models/state_machines/story.rb +15 -2
- data/app/models/state_machines/task.rb +33 -0
- data/app/models/story.rb +3 -2
- data/app/models/task.rb +44 -6
- data/app/models/thing.rb +3 -0
- data/app/models/user.rb +15 -4
- data/app/models/vacancy.rb +7 -5
- data/app/presenters/resources/general/wizards/story/steps/setup_tasks_presenter.rb +1 -1
- data/app/presenters/shared/collection/table_presenter.rb +1 -1
- data/app/views/candidatures/index.html.erb +1 -1
- data/app/views/candidatures/show.html.erb +1 -1
- data/app/views/columns/_collection.html.erb +0 -0
- data/app/views/comments/_resource.html.erb +1 -1
- data/app/views/layouts/application.html.erb +12 -0
- data/app/views/layouts/shared/_navigation.html.erb +3 -3
- data/app/views/organizations/show.html.erb +0 -1
- data/app/views/products/index.html.erb +53 -4
- data/app/views/projects/_form.html.erb +1 -0
- data/app/views/projects/show.html.erb +2 -1
- data/app/views/shared/collection/_list.html.erb +1 -1
- data/app/views/shared/resource/_actions.html.erb +2 -2
- data/app/views/stories/_column_fields.html.erb +0 -0
- data/app/views/stories/_form.html.erb +1 -1
- data/app/views/stories/steps/_activate.html.erb +1 -1
- data/app/views/workflow/products/show.html.erb +1 -1
- data/app/views/workflow/project_owner/_candidatures.html.erb +2 -1
- data/app/views/workflow/tasks/_work_head.html.erb +1 -1
- data/app/views/workflow/tasks/steps/_complete.html.erb +6 -2
- data/app/views/workflow/tasks/steps/_review.html.erb +6 -2
- data/app/views/workflow/tasks/steps/_work.html.erb +4 -2
- data/app/views/workflow/user/product/areas/show.html.erb +0 -0
- data/app/views/workflow/user/projects/show.html.erb +0 -0
- data/config/initializers/devise.rb +2 -5
- data/config/initializers/filter_parameters_logging.rb +1 -0
- data/config/initializers/friendly_id.rb +88 -0
- data/config/initializers/wrap_parameters.rb +15 -0
- data/config/locales/general/en.yml +15 -9
- data/config/locales/resources/story/en.yml +1 -0
- data/config/routes.rb +9 -0
- data/config/routes/workflow.rb +15 -15
- data/db/migrate/20120907144853_create_schema.rb +1 -1
- data/db/migrate/20120922201955_create_mongo_db_documents.rb +1 -1
- data/db/migrate/20121004132105_create_professions.rb +1 -1
- data/db/migrate/20121006162913_add_public_attribute_to_roles.rb +20 -1
- data/db/migrate/20130817090734_create_lists.rb +33 -0
- data/db/migrate/20131018143613_replace_user_by_polymorphic_resource_in_candidatures.rb +46 -0
- data/db/migrate/20140307113214_add_user_id_to_organizations.rb +5 -0
- data/lib/api_constraints.rb +10 -0
- data/lib/applicat/mvc/model/tree.rb +1 -1
- data/lib/concerns/model/base_list_item.rb +30 -0
- data/lib/concerns/model/base_thing.rb +50 -0
- data/lib/db_seed.rb +15 -4
- data/lib/generators/voluntary/install/install_generator.rb +17 -16
- data/lib/generators/voluntary/install/templates/app/views/layouts/application.html.erb +17 -1
- data/lib/generators/voluntary/install/templates/config/main_navigation.rb +1 -260
- data/lib/generators/voluntary/install/templates/features/support/integration_sessions_controller.rb +1 -2
- data/lib/generators/voluntary/install/templates/spec/factories.rb +19 -0
- data/lib/generators/voluntary/install/templates/spec/support/mongo_database_cleaner.rb +14 -4
- data/lib/generators/voluntary/product_dummy/product_dummy_generator.rb +23 -17
- data/lib/generators/voluntary/product_dummy/templates/config/database.example.yml +1 -1
- data/lib/generators/voluntary/product_dummy/templates/dummy/spec/factories.rb +19 -0
- data/lib/generators/voluntary/product_dummy/templates/dummy/spec/spec_helper.rb +75 -0
- data/lib/generators/voluntary/product_dummy/templates/features/support/integration_sessions_controller.rb +1 -2
- data/lib/generators/voluntary/product_dummy/templates/spec/factories.rb +19 -0
- data/lib/voluntary.rb +10 -22
- data/lib/voluntary/engine.rb +27 -3
- data/lib/voluntary/navigation.rb +358 -0
- data/lib/voluntary/test/rspec_helpers/factories.rb +123 -0
- data/lib/voluntary/version.rb +1 -1
- data/vendor_extensions/active_model/naming.rb +1 -1
- metadata +526 -308
- data/app/helpers/application_helper.rb +0 -65
- data/app/helpers/collection_helper.rb +0 -35
- data/app/helpers/comments_helper.rb +0 -11
- data/app/helpers/form_helper.rb +0 -43
- data/app/helpers/language_helper.rb +0 -15
- data/app/helpers/layout_helper.rb +0 -39
- data/app/helpers/product_helper.rb +0 -34
- data/app/helpers/show_helper.rb +0 -65
- data/app/helpers/wizard_helper.rb +0 -27
- data/app/observers/candidature_observer.rb +0 -29
- data/app/observers/story_observer.rb +0 -6
- data/app/observers/task_observer.rb +0 -34
- data/lib/voluntary/helpers/application.rb +0 -69
- data/lib/voluntary/helpers/collection.rb +0 -35
- data/lib/voluntary/helpers/comments.rb +0 -15
- data/lib/voluntary/helpers/form.rb +0 -43
- data/lib/voluntary/helpers/language.rb +0 -19
- data/lib/voluntary/helpers/layout.rb +0 -28
- data/lib/voluntary/helpers/product.rb +0 -36
- data/lib/voluntary/helpers/show.rb +0 -69
- data/lib/voluntary/helpers/wizard.rb +0 -31
@@ -7,7 +7,36 @@ $(document).ready ->
|
|
7
7
|
$(v).accordion({ autoHeight: false });
|
8
8
|
|
9
9
|
$('.tabs').each (k, v) ->
|
10
|
-
$(v).tabs
|
10
|
+
$(v).tabs
|
11
|
+
autoHeight: false
|
12
|
+
|
13
|
+
beforeLoad: (event, ui) ->
|
14
|
+
ui.jqXHR.error ->
|
15
|
+
json = null
|
16
|
+
|
17
|
+
try
|
18
|
+
json = jQuery.parseJSON(ui.jqXHR.responseText)
|
19
|
+
catch e
|
20
|
+
|
21
|
+
error = if json && json['error'] then json['error'] else 'Something went wrong'
|
22
|
+
|
23
|
+
ui.panel.html error
|
24
|
+
|
25
|
+
$(document).on "click", ".ui-tabs-panel .pagination a", (event) ->
|
26
|
+
event.preventDefault()
|
27
|
+
|
28
|
+
$.get($(this).attr('href'), (data) ->
|
29
|
+
$($('.ui-tabs-panel[style*="display: block"]')[0]).html(data)
|
30
|
+
).fail (jqXHR, textStatus, errorThrown) ->
|
31
|
+
json = null
|
32
|
+
|
33
|
+
try
|
34
|
+
json = jQuery.parseJSON(jqXHR.responseText)
|
35
|
+
catch e
|
36
|
+
|
37
|
+
error = if json && json['error'] then json['error'] else 'Something went wrong'
|
38
|
+
|
39
|
+
$($('.ui-tabs-panel[style*="display: block"]')[0]).html(error)
|
11
40
|
|
12
41
|
$('form').on 'click', '.remove_fields', (event) ->
|
13
42
|
#$(this).prev('input[type=hidden]').val('1')
|
@@ -1,6 +1,8 @@
|
|
1
1
|
class AreasController < ApplicationController
|
2
2
|
include Applicat::Mvc::Controller::Resource
|
3
3
|
|
4
|
+
before_filter :find_area
|
5
|
+
|
4
6
|
load_and_authorize_resource
|
5
7
|
|
6
8
|
rescue_from ActiveRecord::RecordNotFound, with: :not_found
|
@@ -17,7 +19,6 @@ class AreasController < ApplicationController
|
|
17
19
|
end
|
18
20
|
|
19
21
|
def show
|
20
|
-
@area = Area.find(params[:id])
|
21
22
|
@areas = @area.children
|
22
23
|
@projects = @area.projects
|
23
24
|
end
|
@@ -37,12 +38,9 @@ class AreasController < ApplicationController
|
|
37
38
|
end
|
38
39
|
|
39
40
|
def edit
|
40
|
-
@area = Area.find(params[:id])
|
41
41
|
end
|
42
42
|
|
43
43
|
def update
|
44
|
-
@area = Area.find(params[:id])
|
45
|
-
|
46
44
|
if @area.update_attributes(params[:area])
|
47
45
|
redirect_to @area, notice: t('general.form.successfully_updated')
|
48
46
|
else
|
@@ -51,7 +49,6 @@ class AreasController < ApplicationController
|
|
51
49
|
end
|
52
50
|
|
53
51
|
def destroy
|
54
|
-
@area = Area.find(params[:id])
|
55
52
|
@area.destroy
|
56
53
|
redirect_to areas_url, notice: t('general.form.destroyed')
|
57
54
|
end
|
@@ -65,4 +62,8 @@ class AreasController < ApplicationController
|
|
65
62
|
def not_found
|
66
63
|
redirect_to areas_path, notice: t('areas.exceptions.not_found')
|
67
64
|
end
|
65
|
+
|
66
|
+
def find_area
|
67
|
+
@area = Area.friendly.find(params[:id]) if params[:id].present?
|
68
|
+
end
|
68
69
|
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
class CandidaturesController < ApplicationController
|
2
2
|
include Applicat::Mvc::Controller::Resource
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
before_filter :find_candidature, only: [:show, :edit, :update, :destroy]
|
6
5
|
before_filter :find_vacancy, only: [:index, :new, :edit]
|
7
6
|
|
7
|
+
load_and_authorize_resource
|
8
|
+
|
8
9
|
transition_actions Candidature::EVENTS
|
9
10
|
|
10
11
|
helper_method :parent
|
@@ -12,11 +13,14 @@ class CandidaturesController < ApplicationController
|
|
12
13
|
respond_to :html, :js, :json
|
13
14
|
|
14
15
|
def index
|
15
|
-
@candidatures =
|
16
|
+
@candidatures = if @vacancy
|
17
|
+
@vacancy.candidatures.includes(:vacancy, :resource)
|
18
|
+
else
|
19
|
+
Candidature.includes(:vacancy, :resource).where(resource_type: 'User').all
|
20
|
+
end
|
16
21
|
end
|
17
22
|
|
18
23
|
def show
|
19
|
-
@candidature = Candidature.includes(:vacancy, :user, :comments).find(params[:id])
|
20
24
|
@vacancy = @candidature.vacancy
|
21
25
|
@comments = @candidature.comments
|
22
26
|
end
|
@@ -28,7 +32,8 @@ class CandidaturesController < ApplicationController
|
|
28
32
|
|
29
33
|
def create
|
30
34
|
@candidature = Candidature.new(params[:candidature])
|
31
|
-
@candidature.
|
35
|
+
@candidature.resource_type = 'User'
|
36
|
+
@candidature.resource_id = current_user.id
|
32
37
|
|
33
38
|
if @candidature.save
|
34
39
|
redirect_to @candidature, notice: t('general.form.successfully_created')
|
@@ -38,12 +43,9 @@ class CandidaturesController < ApplicationController
|
|
38
43
|
end
|
39
44
|
|
40
45
|
def edit
|
41
|
-
@candidature = Candidature.find(params[:id])
|
42
46
|
end
|
43
47
|
|
44
48
|
def update
|
45
|
-
@candidature = Candidature.find(params[:id])
|
46
|
-
|
47
49
|
if @candidature.update_attributes(params[:candidature])
|
48
50
|
redirect_to @candidature, notice: t('general.form.successfully_updated')
|
49
51
|
else
|
@@ -52,7 +54,6 @@ class CandidaturesController < ApplicationController
|
|
52
54
|
end
|
53
55
|
|
54
56
|
def destroy
|
55
|
-
@candidature = Candidature.find(params[:id])
|
56
57
|
@candidature.destroy
|
57
58
|
redirect_to candidatures_url, notice: t('general.form.destroyed')
|
58
59
|
end
|
@@ -73,7 +74,11 @@ class CandidaturesController < ApplicationController
|
|
73
74
|
|
74
75
|
private
|
75
76
|
|
77
|
+
def find_candidature
|
78
|
+
@candidature = Candidature.includes(:vacancy, :resource, :comments).friendly.find(params[:id])
|
79
|
+
end
|
80
|
+
|
76
81
|
def find_vacancy
|
77
|
-
@vacancy = params[:vacancy_id].present? ? Vacancy.find(params[:vacancy_id]) : nil
|
82
|
+
@vacancy = params[:vacancy_id].present? ? Vacancy.friendly.find(params[:vacancy_id]) : nil
|
78
83
|
end
|
79
84
|
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
module Voluntary
|
2
|
+
module V1
|
3
|
+
module BaseController
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
rescue_from CanCan::AccessDenied, with: :access_denied
|
8
|
+
rescue_from ActiveRecord::RecordNotFound, with: :not_found
|
9
|
+
rescue_from Mongoid::Errors::DocumentNotFound, with: :not_found
|
10
|
+
|
11
|
+
helper_method :parent, :application_navigation, :navigation_product_path, :navigation_product_name
|
12
|
+
end
|
13
|
+
|
14
|
+
def parent
|
15
|
+
@parent
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
|
20
|
+
def application_navigation
|
21
|
+
:main
|
22
|
+
end
|
23
|
+
|
24
|
+
def navigation_product_path
|
25
|
+
'/'
|
26
|
+
end
|
27
|
+
|
28
|
+
def navigation_product_name
|
29
|
+
'Core'
|
30
|
+
end
|
31
|
+
|
32
|
+
def current_ability
|
33
|
+
Ability.new(current_user, controller_namespace: current_namespace)
|
34
|
+
end
|
35
|
+
|
36
|
+
def find_parent(types, parent_key = nil)
|
37
|
+
parent_type, id = nil, nil
|
38
|
+
|
39
|
+
if parent_type = types.select{|p| params.keys.include?("#{p}_id") }.first
|
40
|
+
id = params["#{parent_type}_id"]
|
41
|
+
elsif parent_type = types.select{|p| params[parent_key] && params[parent_key].keys.include?("#{p}_id") }.first
|
42
|
+
id = params[parent_key]["#{parent_type}_id"]
|
43
|
+
end
|
44
|
+
|
45
|
+
return if parent_type.blank?
|
46
|
+
|
47
|
+
parent = parent_type.classify.constantize
|
48
|
+
parent = parent.friendly if parent.respond_to? :friendly
|
49
|
+
parent = parent.find(id)
|
50
|
+
|
51
|
+
root_model_class_name = Voluntary::ApplicationHelper.root_model_class_name_helper(parent)
|
52
|
+
eval("@#{root_model_class_name.tableize.singularize} = parent")
|
53
|
+
|
54
|
+
parent
|
55
|
+
end
|
56
|
+
|
57
|
+
def response_with_standard(format = nil, error = nil)
|
58
|
+
render status: error ? 500 : 200, json: { success: error ? false : true, error: error} and return true
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def current_namespace
|
64
|
+
controller_name_segments = params[:controller].split('/')
|
65
|
+
controller_name_segments.pop
|
66
|
+
controller_namespace = controller_name_segments.join('/').downcase
|
67
|
+
end
|
68
|
+
|
69
|
+
def access_denied
|
70
|
+
message = I18n.t('general.exceptions.access_denied')
|
71
|
+
|
72
|
+
if request.format.try('json?') || request.xhr?
|
73
|
+
render status: 403, json: { error: message } and return
|
74
|
+
else
|
75
|
+
flash[:alert] = message
|
76
|
+
|
77
|
+
if request.env["HTTP_REFERER"]
|
78
|
+
redirect_to :back
|
79
|
+
else
|
80
|
+
redirect_to root_path
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def not_found(e)
|
86
|
+
if Rails.env.development?
|
87
|
+
raise e
|
88
|
+
else
|
89
|
+
logger.info "not found (#{e.inspect})"
|
90
|
+
redirect_to root_path, notice: t('general.exceptions.not_found')
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -10,14 +10,14 @@ class DeviseExtensions::RegistrationsController < Devise::RegistrationsControlle
|
|
10
10
|
|
11
11
|
# POST /resource
|
12
12
|
def create
|
13
|
-
build_resource
|
13
|
+
build_resource(params[:user])
|
14
14
|
|
15
15
|
captcha_verified = if Rails.env == 'production'
|
16
16
|
verify_recaptcha(model: resource, message: I18n.t('general.exceptions.wrong_recaptcha'))
|
17
17
|
else
|
18
18
|
true
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
if captcha_verified && resource.save
|
22
22
|
if resource.active_for_authentication?
|
23
23
|
set_flash_message :notice, :signed_up if is_navigational_format?
|
@@ -1,6 +1,8 @@
|
|
1
1
|
class OrganizationsController < ApplicationController
|
2
2
|
include Applicat::Mvc::Controller::Resource
|
3
3
|
|
4
|
+
before_filter :find_organization
|
5
|
+
|
4
6
|
load_and_authorize_resource
|
5
7
|
|
6
8
|
rescue_from ActiveRecord::RecordNotFound, with: :not_found
|
@@ -18,7 +20,6 @@ class OrganizationsController < ApplicationController
|
|
18
20
|
end
|
19
21
|
|
20
22
|
def show
|
21
|
-
@organization = Organization.find(params[:id])
|
22
23
|
end
|
23
24
|
|
24
25
|
def new
|
@@ -26,7 +27,7 @@ class OrganizationsController < ApplicationController
|
|
26
27
|
end
|
27
28
|
|
28
29
|
def create
|
29
|
-
@organization =
|
30
|
+
@organization = current_user.organizations.new(params[:organization])
|
30
31
|
|
31
32
|
if @organization.save
|
32
33
|
redirect_to @organization, notice: t('general.form.successfully_created')
|
@@ -36,12 +37,9 @@ class OrganizationsController < ApplicationController
|
|
36
37
|
end
|
37
38
|
|
38
39
|
def edit
|
39
|
-
@organization = Organization.find(params[:id])
|
40
40
|
end
|
41
41
|
|
42
42
|
def update
|
43
|
-
@organization = Organization.find(params[:id])
|
44
|
-
|
45
43
|
if @organization.update_attributes(params[:organization])
|
46
44
|
redirect_to @organization, notice: t('general.form.successfully_updated')
|
47
45
|
else
|
@@ -50,7 +48,6 @@ class OrganizationsController < ApplicationController
|
|
50
48
|
end
|
51
49
|
|
52
50
|
def destroy
|
53
|
-
@organization = Organization.find(params[:id])
|
54
51
|
@organization.destroy
|
55
52
|
redirect_to organizations_url, notice: t('general.form.destroyed')
|
56
53
|
end
|
@@ -64,4 +61,8 @@ class OrganizationsController < ApplicationController
|
|
64
61
|
def not_found
|
65
62
|
redirect_to organizations_path, notice: t('organizations.exceptions.not_found')
|
66
63
|
end
|
64
|
+
|
65
|
+
def find_organization
|
66
|
+
@organization = Organization.friendly.find(params[:id]) if params[:id].present?
|
67
|
+
end
|
67
68
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
class ProfessionsController < ApplicationController
|
2
2
|
include Applicat::Mvc::Controller::Resource
|
3
3
|
|
4
|
+
before_filter :find_profession
|
5
|
+
|
4
6
|
load_and_authorize_resource
|
5
7
|
|
6
8
|
rescue_from ActiveRecord::RecordNotFound, with: :not_found
|
@@ -17,7 +19,6 @@ class ProfessionsController < ApplicationController
|
|
17
19
|
end
|
18
20
|
|
19
21
|
def show
|
20
|
-
@profession = Profession.find(params[:id])
|
21
22
|
end
|
22
23
|
|
23
24
|
def new
|
@@ -35,12 +36,9 @@ class ProfessionsController < ApplicationController
|
|
35
36
|
end
|
36
37
|
|
37
38
|
def edit
|
38
|
-
@profession = Profession.find(params[:id])
|
39
39
|
end
|
40
40
|
|
41
41
|
def update
|
42
|
-
@profession = Profession.find(params[:id])
|
43
|
-
|
44
42
|
if @profession.update_attributes(params[:profession])
|
45
43
|
redirect_to @profession, notice: t('general.form.successfully_updated')
|
46
44
|
else
|
@@ -49,7 +47,6 @@ class ProfessionsController < ApplicationController
|
|
49
47
|
end
|
50
48
|
|
51
49
|
def destroy
|
52
|
-
@profession = Profession.find(params[:id])
|
53
50
|
@profession.destroy
|
54
51
|
redirect_to professions_url, notice: t('general.form.destroyed')
|
55
52
|
end
|
@@ -63,4 +60,8 @@ class ProfessionsController < ApplicationController
|
|
63
60
|
def not_found
|
64
61
|
redirect_to professions_path, notice: t('professions.exceptions.not_found')
|
65
62
|
end
|
63
|
+
|
64
|
+
def find_profession
|
65
|
+
@profession = Profession.friendly.find(params[:id]) if params[:id].present?
|
66
|
+
end
|
66
67
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
class ProjectsController < ApplicationController
|
2
2
|
include Applicat::Mvc::Controller::Resource
|
3
3
|
|
4
|
+
before_filter :find_project
|
5
|
+
|
4
6
|
load_and_authorize_resource
|
5
7
|
|
6
8
|
respond_to :html, :js, :json
|
@@ -11,12 +13,13 @@ class ProjectsController < ApplicationController
|
|
11
13
|
end
|
12
14
|
|
13
15
|
def show
|
14
|
-
@project = Project.includes(:areas, :comments).find(params[:id])
|
16
|
+
@project = Project.includes(:areas, :comments).friendly.find(params[:id])
|
15
17
|
@comments = @project.comments
|
16
18
|
end
|
17
19
|
|
18
20
|
def new
|
19
|
-
@
|
21
|
+
@parent = find_parent Project::PARENT_TYPES
|
22
|
+
@project = @parent ? @parent.projects.new : Project.new
|
20
23
|
end
|
21
24
|
|
22
25
|
def create
|
@@ -31,12 +34,9 @@ class ProjectsController < ApplicationController
|
|
31
34
|
end
|
32
35
|
|
33
36
|
def edit
|
34
|
-
@project = Project.find(params[:id])
|
35
37
|
end
|
36
38
|
|
37
39
|
def update
|
38
|
-
@project = Project.find(params[:id])
|
39
|
-
|
40
40
|
if @project.update_attributes(params[:project])
|
41
41
|
redirect_to @project, notice: t('general.form.successfully_updated')
|
42
42
|
else
|
@@ -45,7 +45,6 @@ class ProjectsController < ApplicationController
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def destroy
|
48
|
-
@project = Project.find(params[:id])
|
49
48
|
@project.destroy
|
50
49
|
redirect_to projects_url, notice: t('general.form.destroyed')
|
51
50
|
end
|
@@ -53,4 +52,10 @@ class ProjectsController < ApplicationController
|
|
53
52
|
def resource
|
54
53
|
@project
|
55
54
|
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def find_project
|
59
|
+
@project = Project.friendly.find(params[:id]) if params[:id].present?
|
60
|
+
end
|
56
61
|
end
|