diff options
| -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 + + + | 
