[PATCH 2/4] BZ 802571 don't query provider multiple times
Matt Wagner
matt.wagner at redhat.com
Mon Mar 26 15:57:05 UTC 2012
On Fri, Mar 23, 2012 at 09:52:46AM -0400, Tzu-Mainn Chen wrote:
> ---
> src/app/models/deployment.rb | 7 ++++---
> src/app/views/deployments/_list.html.haml | 3 ++-
> src/app/views/deployments/_pretty_view.html.haml | 5 +++--
> 3 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/src/app/models/deployment.rb b/src/app/models/deployment.rb
> index c5654e3..fe02ad3 100644
> --- a/src/app/models/deployment.rb
> +++ b/src/app/models/deployment.rb
> @@ -419,10 +419,11 @@ class Deployment < ActiveRecord::Base
>
> json[:owner] = owner.name if owner.present?
>
> - if provider
> + deployment_provider = provider
> + if deployment_provider
> json[:provider] = {
> - :name => provider.provider_type.name,
> - :id => provider.id,
> + :name => deployment_provider.provider_type.name,
> + :id => deployment_provider.id,
> }
> end
>
> diff --git a/src/app/views/deployments/_list.html.haml b/src/app/views/deployments/_list.html.haml
> index d593cc6..1425ceb 100644
> --- a/src/app/views/deployments/_list.html.haml
> +++ b/src/app/views/deployments/_list.html.haml
> @@ -27,6 +27,7 @@
> });
>
> = filter_table(@deployments_header, @deployments) do |deployment|
> + - deployment_provider = deployment.provider
> %tr{ :class => cycle('nostripe', 'stripe') }
> %td{:class => 'checkbox'}
> - selected = params[:select] == 'all'
> @@ -39,7 +40,7 @@
> %td{:class => 'center'}= deployment.instances.size
> %td= link_to deployment.pool.name, pool_path(deployment.pool, :view => :filter)
> %td= owner_name(deployment)
> - %td= link_to(deployment.provider.provider_type.name, deployment.provider) if deployment.provider
> + %td= link_to(deployment_provider.provider_type.name, deployment_provider) if deployment_provider
As discussed on IRC, it's better to do it this way rather than
referencing the association over and over, but it's unlikely to give a
tangible boost, since duplicate calls would just hit the query cache in
Rails.
>
> :javascript
> Conductor.setupPrettyFilterURL(
> diff --git a/src/app/views/deployments/_pretty_view.html.haml b/src/app/views/deployments/_pretty_view.html.haml
> index af0b437..12f8d00 100644
> --- a/src/app/views/deployments/_pretty_view.html.haml
> +++ b/src/app/views/deployments/_pretty_view.html.haml
> @@ -2,10 +2,11 @@
> - @deployments.in_groups_of(5, false) do |group|
> %ul.deployment-array.large
> - group.each do |deployment|
> + - deployment_provider = deployment.provider
> %li.deployment
> %h3.name
> = link_to deployment.name, deployment_path(deployment)
> - %span{ :class => "status #{deployment.status}", :title => deployment.as_json[:status_description]}
> + %span{ :class => "status #{deployment.status}", :title => t("deployments.status.#{deployment.status}")}
> %dl.statistics
> %ul
> %li.uptime
> @@ -19,7 +20,7 @@
> %li.provider
> %dt.instances.count=t'providers.provider'
> %dd
> - %p.provider= deployment.provider.provider_type.name unless deployment.provider.blank?
> + %p.provider= deployment_provider.provider_type.name unless deployment_provider.blank?
>
> = render_pagination(@deployments)
>
> --
> 1.7.6.5
ACK.
More information about the aeolus-devel
mailing list