On Thursday, January 26, 2012 03:29:59 PM jtomasek(a)redhat.com wrote:
From: Jiri Tomasek <jtomasek(a)redhat.com>
---
src/app/controllers/providers_controller.rb | 3 ++-
src/app/models/frontend_realm.rb | 2 +-
src/app/models/provider.rb | 6 ------
src/spec/models/provider_spec.rb | 16 ----------------
4 files changed, 3 insertions(+), 24 deletions(-)
diff --git a/src/app/controllers/providers_controller.rb
b/src/app/controllers/providers_controller.rb
index 1f6cc02..c7c1e0a 100644
--- a/src/app/controllers/providers_controller.rb
+++ b/src/app/controllers/providers_controller.rb
@@ -211,7 +211,8 @@ class ProvidersController < ApplicationController
end
def load_provider_tabs
- @realms = @provider.all_associated_frontend_realms
+ #frontend realms associated to provider or a realm of this provider, with applied
filters
+ @realms = FrontendRealm.includes({:backend_realms => :provider},
:backend_providers).where("providers.id = :provider_id or
(realm_backend_targets.realm_or_provider_id = :provider_id and
realm_backend_targets.realm_or_provider_type = :provider_type)", :provider_id =>
@provider.id, :provider_type => 'Provider').apply_filters(:preset_filter_id
=> params[:realms_preset_filter], :search_filter => params[:realms_search])
#TODO add links to real data for history,properties,permissions
@tabs = [{:name => t('connectivity'), :view => 'edit', :id
=> 'connectivity'},
{:name => t('accounts'), :view =>
'provider_accounts/list', :id => 'accounts', :count =>
@provider.provider_accounts.count},
diff --git a/src/app/models/frontend_realm.rb b/src/app/models/frontend_realm.rb
index 2762914..08ab579 100644
--- a/src/app/models/frontend_realm.rb
+++ b/src/app/models/frontend_realm.rb
@@ -53,7 +53,7 @@ class FrontendRealm < ActiveRecord::Base
def self.apply_search_filter(search)
if search
- where("name ILIKE :search", :search => "%#{search}%")
+ where("frontend_realms.name ILIKE :search", :search =>
"%#{search}%")
else
scoped
end
diff --git a/src/app/models/provider.rb b/src/app/models/provider.rb
index 693d921..769962b 100644
--- a/src/app/models/provider.rb
+++ b/src/app/models/provider.rb
@@ -108,12 +108,6 @@ class Provider < ActiveRecord::Base
def supported_types
end
- # returns all frontend realms which are associated with this provider or a
- # realm of this provider
- def all_associated_frontend_realms
- (frontend_realms + realms.map {|r| r.frontend_realms}.flatten).uniq
- end
-
def stop_instances(user)
errs = []
provider_accounts.each do |pa|
diff --git a/src/spec/models/provider_spec.rb b/src/spec/models/provider_spec.rb
index 299ba00..fbb4729 100644
--- a/src/spec/models/provider_spec.rb
+++ b/src/spec/models/provider_spec.rb
@@ -99,22 +99,6 @@ describe Provider do
provider.destroyed?.should be_false
end
- it "should return all associated frontend realms" do
- provider1 = Factory.create(:mock_provider)
- frontend_realm = FactoryGirl.create :frontend_realm
- backend_realm = FactoryGirl.create :backend_realm, :provider => provider1
- t = RealmBackendTarget.create!(:frontend_realm => frontend_realm,
:realm_or_provider => backend_realm)
- provider1.all_associated_frontend_realms.count.should == 1
- t.destroy
- provider1.realms.reload
- provider1.frontend_realms.reload
- provider1.all_associated_frontend_realms.count.should == 0
- RealmBackendTarget.create!(:frontend_realm => frontend_realm,
:realm_or_provider => provider1)
- provider1.realms.reload
- provider1.frontend_realms.reload
- provider1.all_associated_frontend_realms.count.should == 1
- end
-
it "should stop all associated instances" do
provider1 = Factory.create(:mock_provider)
pa = FactoryGirl.create(:mock_provider_account, :provider => provider1)
Works for me, ACK.
--
With regards
Petr Blaho