voluntary 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|