diff options
| author | Vlatka Pavisic | 2017-02-07 15:33:59 +0100 |
|---|---|---|
| committer | Vlatka Pavisic | 2017-02-07 15:34:06 +0100 |
| commit | a16843aa295eac2baa1e6d26ab6a5c4d0ee97c2b (patch) | |
| tree | db78f86b453d0bd107ceac93ed05e9019ac2bd52 | |
| parent | 9814d97e64b5b483ceb9d1a2f8fecc8a8da975be (diff) | |
| download | chouette-core-a16843aa295eac2baa1e6d26ab6a5c4d0ee97c2b.tar.bz2 | |
Refs #2542 : Referential logic concern
| -rw-r--r-- | app/controllers/autocomplete_stop_areas_controller.rb | 10 | ||||
| -rw-r--r-- | app/controllers/autocomplete_time_tables_controller.rb | 10 | ||||
| -rw-r--r-- | app/controllers/autocomplete_timebands_controller.rb | 10 | ||||
| -rw-r--r-- | app/controllers/chouette_controller.rb | 15 | ||||
| -rw-r--r-- | app/controllers/concerns/referential_support.rb | 32 |
5 files changed, 36 insertions, 41 deletions
diff --git a/app/controllers/autocomplete_stop_areas_controller.rb b/app/controllers/autocomplete_stop_areas_controller.rb index 19863231f..78b4247ec 100644 --- a/app/controllers/autocomplete_stop_areas_controller.rb +++ b/app/controllers/autocomplete_stop_areas_controller.rb @@ -1,15 +1,7 @@ class AutocompleteStopAreasController < InheritedResources::Base respond_to :json, :only => [:index, :children, :parent, :physicals] - before_action :switch_referential - - def switch_referential - Apartment::Tenant.switch!(referential.slug) - end - - def referential - @referential ||= current_organisation.referentials.find params[:referential_id] - end + include ReferentialSupport def around stop_area = referential.stop_areas.find params[:id] diff --git a/app/controllers/autocomplete_time_tables_controller.rb b/app/controllers/autocomplete_time_tables_controller.rb index ee0f8a0cb..ce3824b7a 100644 --- a/app/controllers/autocomplete_time_tables_controller.rb +++ b/app/controllers/autocomplete_time_tables_controller.rb @@ -1,15 +1,7 @@ class AutocompleteTimeTablesController < InheritedResources::Base respond_to :json, :only => [:index] - before_action :switch_referential - - def switch_referential - Apartment::Tenant.switch!(referential.slug) - end - - def referential - @referential ||= current_organisation.referentials.find params[:referential_id] - end + include ReferentialSupport protected diff --git a/app/controllers/autocomplete_timebands_controller.rb b/app/controllers/autocomplete_timebands_controller.rb index 3915bd69f..4922e214c 100644 --- a/app/controllers/autocomplete_timebands_controller.rb +++ b/app/controllers/autocomplete_timebands_controller.rb @@ -1,15 +1,7 @@ class AutocompleteTimebandsController < InheritedResources::Base respond_to :json, :only => [:index] - before_action :switch_referential - - def switch_referential - Apartment::Tenant.switch!(referential.slug) - end - - def referential - @referential ||= current_organisation.referentials.find params[:referential_id] - end + include ReferentialSupport protected diff --git a/app/controllers/chouette_controller.rb b/app/controllers/chouette_controller.rb index dd1002fd8..dc9ab4fa5 100644 --- a/app/controllers/chouette_controller.rb +++ b/app/controllers/chouette_controller.rb @@ -2,18 +2,5 @@ class ChouetteController < BreadcrumbController include ApplicationHelper include BreadcrumbHelper - - before_action :switch_referential - - def switch_referential - Apartment::Tenant.switch!(referential.slug) - end - - def referential - @referential ||= Referential.find params[:referential_id] - end - - alias_method :current_referential, :referential - helper_method :current_referential - + include ReferentialSupport end diff --git a/app/controllers/concerns/referential_support.rb b/app/controllers/concerns/referential_support.rb new file mode 100644 index 000000000..34080d991 --- /dev/null +++ b/app/controllers/concerns/referential_support.rb @@ -0,0 +1,32 @@ +module ReferentialSupport + extend ActiveSupport::Concern + + included do + before_action :switch_referential + alias_method :current_referential, :referential + helper_method :current_referential + end + + def switch_referential + Apartment::Tenant.switch!(referential.slug) + end + + def referential + @referential ||= find_referential + end + + def find_referential + organisation_referential = current_organisation.referentials.find_by id: params[:referential_id] + return organisation_referential if organisation_referential + + current_organisation.workbenches.each do |workbench| + workbench_referential = workbench.all_referentials.find_by id: params[:referential_id] + return workbench_referential if workbench_referential + end + + raise ActiveRecord::RecordNotFound + end +end + + + |
