diff options
| author | cedricnjanga | 2018-05-29 07:35:32 -0700 | 
|---|---|---|
| committer | cedricnjanga | 2018-05-29 07:35:32 -0700 | 
| commit | 69e8206c1f2ed480fb77cca8fd1c82f21068e847 (patch) | |
| tree | f349d4267c13f2c2d8ee035749d8ad33d5e2abe4 | |
| parent | 9cc5db446205960326a83d2a24d3b30cdf6e3d27 (diff) | |
| download | chouette-core-7057-compliance-control-object-reference.tar.bz2 | |
Refs #7057 Add some improvements to select type view & compliance control table builder on subclass column7057-compliance-control-object-reference
| -rw-r--r-- | app/controllers/compliance_controls_controller.rb | 6 | ||||
| -rw-r--r-- | app/helpers/compliance_control_sets_helper.rb | 5 | ||||
| -rw-r--r-- | app/models/compliance_control.rb | 11 | 
3 files changed, 13 insertions, 9 deletions
| diff --git a/app/controllers/compliance_controls_controller.rb b/app/controllers/compliance_controls_controller.rb index a20602c63..ac6c54a3c 100644 --- a/app/controllers/compliance_controls_controller.rb +++ b/app/controllers/compliance_controls_controller.rb @@ -5,11 +5,7 @@ class ComplianceControlsController < ChouetteController    actions :all, :except => [:index]    def select_type -    @sti_subclasses = Hash.new  -     -    ComplianceControl.subclass_patterns.each do |key, value| -      @sti_subclasses[key] = ComplianceControl.subclasses.select {|klass| klass.object_type == value} -    end +    @sti_subclasses ||= ComplianceControl.subclasses_to_hash     end    def show diff --git a/app/helpers/compliance_control_sets_helper.rb b/app/helpers/compliance_control_sets_helper.rb index 7adb46971..a62b27858 100644 --- a/app/helpers/compliance_control_sets_helper.rb +++ b/app/helpers/compliance_control_sets_helper.rb @@ -84,10 +84,7 @@ module ComplianceControlSetsHelper            ),            TableBuilderHelper::Column.new(              key: :subclass, -            attribute: Proc.new do |compliance_control| -              key = ComplianceControl.subclass_patterns.key(compliance_control.object.class.object_type) -              I18n.t("compliance_controls.filters.subclasses.#{key}") -            end +            attribute: Proc.new { |compliance_control| compliance_control.object.class.translated_subclass }            ),            TableBuilderHelper::Column.new(              key: :name, diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 59c359bd5..4a2a6e91c 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -20,6 +20,17 @@ class ComplianceControl < ApplicationModel        }      end +    def subclasses_to_hash +      ComplianceControl.subclasses.inject(Hash.new{ |h, k| h[k] = [] } ) do |h, klass| +        h[ComplianceControl.subclass_patterns.key(klass.object_type)] << klass +        h  +      end +    end + +    def translated_subclass +      I18n.t("compliance_controls.filters.subclasses.#{subclass_patterns.key(self.object_type)}") +    end +      def object_type        self.default_code.match(/^\d+-(?'object_type'\w+)-\d+$/)[:object_type]      end | 
