diff options
| author | cedricnjanga | 2018-05-29 07:35:32 -0700 |
|---|---|---|
| committer | Johan Van Ryseghem | 2018-05-31 14:10:09 +0200 |
| commit | 264122418a29e102061e0dac2ce53a6158ee4c89 (patch) | |
| tree | 79a601ab01a718a2637531bab6ac2fed9f3755f6 | |
| parent | ab00694f49336a326d934ff0bd85b76e2e0a6c23 (diff) | |
| download | chouette-core-264122418a29e102061e0dac2ce53a6158ee4c89.tar.bz2 | |
Refs #7057 Add some improvements to select type view & compliance control table builder on subclass column
| -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 |
