Sha256: 806fa8b69a7b32322a6bffc382c33db201d8822bc3e5e1e16cd2e58983bb1a2f

Contents?: true

Size: 1.7 KB

Versions: 34

Compression:

Stored size: 1.7 KB

Contents

module Workarea
  module Search
    class Admin
      class Order < Search::Admin
        def name
          if payment.address.present?
            "#{payment.address.last_name} #{payment.address.first_name}"
          end
        end

        def search_text
          OrderText.new(model).text
        end

        def keywords
          super + [model.email] + fulfillment.packages.map(&:tracking_number)
        end

        def jump_to_text
          if model.placed?
            "#{model.id} - Placed @ #{model.placed_at.to_s(:short)}"
          else
            "#{model.id} - #{model.status.to_s.titleize}"
          end
        end

        def jump_to_position
          2
        end

        def should_be_indexed?
          model.placed?
        end

        def facets
          super.merge(
            order_status: order_status,
            payment_status: payment.status,
            fulfillment_status: fulfillment.status,
            traffic_referrer: traffic_referrer
          )
        end

        def as_document
          super.merge(
            total_price: model.total_price.to_f,
            placed_at: model.placed_at
          )
        end

        def order_status
          model.status
        end

        def traffic_referrer
          source = model.traffic_referrer&.medium || 'direct'
          I18n.t('workarea.order.traffic_referrer')[source]
        end

        def updated_at
          [model, payment, fulfillment].map(&:updated_at).compact.max
        end

        def payment
          @payment ||= Payment.find_or_initialize_by(id: model.id)
        end

        def fulfillment
          @fulfillment ||= Fulfillment.find_or_initialize_by(id: model.id)
        end
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
workarea-core-3.4.45 app/models/workarea/search/admin/order.rb
workarea-core-3.4.44 app/models/workarea/search/admin/order.rb
workarea-core-3.4.43 app/models/workarea/search/admin/order.rb
workarea-core-3.4.42 app/models/workarea/search/admin/order.rb
workarea-core-3.4.41 app/models/workarea/search/admin/order.rb
workarea-core-3.4.40 app/models/workarea/search/admin/order.rb
workarea-core-3.4.39 app/models/workarea/search/admin/order.rb
workarea-core-3.4.38 app/models/workarea/search/admin/order.rb
workarea-core-3.4.37 app/models/workarea/search/admin/order.rb
workarea-core-3.4.36 app/models/workarea/search/admin/order.rb
workarea-core-3.4.35 app/models/workarea/search/admin/order.rb
workarea-core-3.4.34 app/models/workarea/search/admin/order.rb
workarea-core-3.4.33 app/models/workarea/search/admin/order.rb
workarea-core-3.4.32 app/models/workarea/search/admin/order.rb
workarea-core-3.4.31 app/models/workarea/search/admin/order.rb
workarea-core-3.4.30 app/models/workarea/search/admin/order.rb
workarea-core-3.4.29 app/models/workarea/search/admin/order.rb
workarea-core-3.4.28 app/models/workarea/search/admin/order.rb
workarea-core-3.4.27 app/models/workarea/search/admin/order.rb
workarea-core-3.4.26 app/models/workarea/search/admin/order.rb