Pull taxon computation out of the serialization loop

This commit is contained in:
Rohan Mitchell
2015-05-22 11:03:53 +10:00
parent 2c92b5a751
commit 1a887df412
2 changed files with 12 additions and 3 deletions

View File

@@ -70,8 +70,10 @@ module InjectionHelper
@earliest_closing_times ||= OrderCycle.earliest_closing_times
@shipping_method_services ||= Spree::ShippingMethod.services
@relatives ||= EnterpriseRelationship.relatives
@supplied_taxons ||= Spree::Taxon.supplied_taxons
@distributed_taxons ||= Spree::Taxon.distributed_taxons
{active_distributors: @active_distributors, earliest_closing_times: @earliest_closing_times, shipping_method_services: @shipping_method_services, relatives: @relatives}
{active_distributors: @active_distributors, earliest_closing_times: @earliest_closing_times, shipping_method_services: @shipping_method_services, relatives: @relatives, supplied_taxons: @supplied_taxons, distributed_taxons: @distributed_taxons}
end
end

View File

@@ -36,11 +36,18 @@ class Api::CachedEnterpriseSerializer < ActiveModel::Serializer
:email, :hash, :logo, :promo_image, :path, :pickup, :delivery,
:icon, :icon_font, :producer_icon_font, :category, :producers, :hubs
has_many :distributed_taxons, key: :taxons, serializer: Api::IdSerializer
has_many :supplied_taxons, serializer: Api::IdSerializer
attributes :taxons, :supplied_taxons
has_one :address, serializer: Api::AddressSerializer
def taxons
options[:distributed_taxons][object.id]
end
def supplied_taxons
options[:supplied_taxons][object.id]
end
def pickup
services = options[:shipping_method_services][object.id]
services ? services[:pickup] : false