diff options
| author | Luc Donnet | 2018-02-27 14:15:25 +0100 | 
|---|---|---|
| committer | Luc Donnet | 2018-02-27 14:15:25 +0100 | 
| commit | 3d61b582389e0e1db73dc698d4c20f50153ea3fc (patch) | |
| tree | d49fd53fadecc58ca74e64b7ff75ac42b3d087e0 | |
| parent | 69b901fa1223fb78142a1e4e76d1b88d879aec61 (diff) | |
| download | chouette-core-3d61b582389e0e1db73dc698d4c20f50153ea3fc.tar.bz2 | |
Don't use all compliance_control_set from stif organisation. We will use later compliance_control_set selected by stif organisatoon Refs #5950 @25950_allow_user_to_see_ccset_from_other_organisation
| -rw-r--r-- | app/controllers/compliance_control_sets_controller.rb | 25 | ||||
| -rw-r--r-- | app/policies/application_policy.rb | 6 | ||||
| -rw-r--r-- | app/policies/compliance_control_set_policy.rb | 2 | 
3 files changed, 18 insertions, 15 deletions
| diff --git a/app/controllers/compliance_control_sets_controller.rb b/app/controllers/compliance_control_sets_controller.rb index 621eeb9a5..6461b38c8 100644 --- a/app/controllers/compliance_control_sets_controller.rb +++ b/app/controllers/compliance_control_sets_controller.rb @@ -27,15 +27,24 @@ class ComplianceControlSetsController < ChouetteController      redirect_to(compliance_control_sets_path)    end +  protected + +  def begin_of_association_chain +    current_organisation +  end +    private    def collection -    scope = ComplianceControlSet.joins(:organisation).where('organisation_id = ? OR organisations.code = ?', current_organisation.id, 'STIF') -    scope = self.ransack_period_range(scope: scope, error_message: t('imports.filters.error_period_filter'), query: :where_updated_at_between) -    @q_for_form = scope.ransack(params[:q]) -    compliance_control_sets = @q_for_form.result -    compliance_control_sets = joins_with_associated_objects(compliance_control_sets).order(sort_column + ' ' + sort_direction) if sort_column && sort_direction -    @compliance_control_sets = compliance_control_sets.paginate(page: params[:page], per_page: 30) +    @compliance_control_sets ||= begin +      scope = end_of_association_chain.all +      scope = self.ransack_period_range(scope: scope, error_message: t('imports.filters.error_period_filter'), query: :where_updated_at_between) +      @q_for_form = scope.ransack(params[:q]) +      compliance_control_sets = @q_for_form.result +      compliance_control_sets = joins_with_associated_objects(compliance_control_sets).order(sort_column + ' ' + sort_direction) if sort_column && sort_direction +      compliance_control_sets = compliance_control_sets.paginate(page: params[:page], per_page: 30) +    end +    end    def decorate_compliance_control_sets(compliance_control_sets) @@ -77,9 +86,9 @@ class ComplianceControlSetsController < ChouetteController      case params[:sort]        when 'owner_jdc'          collection.joins("LEFT JOIN organisations ON compliance_control_sets.organisation_id = organisations.id") -      when 'control_numbers'  +      when 'control_numbers'          collection.joins("LEFT JOIN compliance_controls ON compliance_controls.compliance_control_set_id = compliance_control_sets.id").group(:id) -      else  +      else          collection      end    end diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index d14839bdf..33d88660c 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -95,12 +95,6 @@ class ApplicationPolicy      referential.try(:organisation_id) || record.try(:organisation_id)    end - -  def belongs_to_stif? -    record.try(:organisation).try(:code) == "STIF" -  end - -    #    #  Helpers    #  ------- diff --git a/app/policies/compliance_control_set_policy.rb b/app/policies/compliance_control_set_policy.rb index e3fb83e38..55507ffd9 100644 --- a/app/policies/compliance_control_set_policy.rb +++ b/app/policies/compliance_control_set_policy.rb @@ -6,7 +6,7 @@ class ComplianceControlSetPolicy < ApplicationPolicy    end    def show? -    organisation_match? or belongs_to_stif? +    organisation_match?    end    def destroy? | 
