Revision cbe8aa6e
Added by Tomer Brisker about 9 years ago
app/helpers/hosts_and_hostgroups_helper.rb | ||
---|---|---|
|
||
def interesting_klasses(obj)
|
||
classes = obj.all_puppetclasses
|
||
smart_vars = LookupKey.reorder('').where(:puppetclass_id => classes.map(&:id)).group(:puppetclass_id).count
|
||
class_vars = LookupKey.reorder('').joins(:environment_classes).where(:environment_classes => { :puppetclass_id => classes.map(&:id) }).group('environment_classes.puppetclass_id').count
|
||
klasses = smart_vars.keys + class_vars.keys
|
||
classes_ids = classes.reorder('').pluck(:id)
|
||
smart_vars = LookupKey.reorder('').where(:puppetclass_id => classes_ids).uniq.pluck(:puppetclass_id)
|
||
class_vars = LookupKey.reorder('').joins(:environment_classes).where(:environment_classes => { :puppetclass_id => classes_ids }).uniq.pluck('environment_classes.puppetclass_id')
|
||
klasses = (smart_vars + class_vars).uniq
|
||
|
||
classes.select { |pc| klasses.include?(pc.id) }
|
||
classes.where(:id => klasses)
|
||
end
|
||
end
|
app/views/config_groups/_config_groups_selection.html.erb | ||
---|---|---|
<div class="row">
|
||
<div class="col-md-6 classes">
|
||
<ul class="config_group_group">
|
||
<% (ConfigGroup.scoped - obj.parent_config_groups).each do |config_group| %>
|
||
<% (ConfigGroup.scoped.includes(:puppetclasses) - obj.parent_config_groups).each do |config_group| %>
|
||
<% css_class = obj.config_groups.include?(config_group) ? "hide" : "" %>
|
||
<%= render 'config_groups/config_group', :obj => obj, :config_group => config_group, :added => false, :css_class => css_class %>
|
||
<% end %>
|
Also available in: Unified diff
Fixes #9969 - remove N+1 queries on host edit page