spree_core 2.0.8 → 2.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/models/spree/order/checkout.rb +8 -3
- data/app/models/spree/order.rb +1 -1
- data/app/models/spree/order_updater.rb +6 -2
- data/app/models/spree/promotion.rb +17 -14
- data/app/models/spree/return_authorization.rb +2 -1
- data/app/models/spree/variant.rb +1 -1
- data/app/views/spree/admin/shared/_report_order_criteria.html.erb +17 -0
- data/config/locales/en.yml +12 -7
- data/db/migrate/20140205181631_default_variant_weight_to_zero.rb +11 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +10 -4
- data/lib/spree/core/controller_helpers/order.rb +8 -5
- data/lib/spree/core/product_duplicator.rb +10 -0
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/money.rb +1 -1
- data/lib/spree/promo/coupon_applicator.rb +6 -3
- metadata +4 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8221f56f22472a62ce9ca4606e761fd718fcc448
         | 
| 4 | 
            +
              data.tar.gz: 2846b0e62b638dd5ae2071b3cf873dce9d7bd7a5
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d39dfb9985e2425eab9de5697248c3cf4d2640dca0b4a3d3d3bfeddfb6b25c27f265e78e397588a6a4ee1f9bbc8713520acf67fae100faa7dd2a3fb3b6a5e4ed
         | 
| 7 | 
            +
              data.tar.gz: cb69f470e36ebc6b0cb24e1f047763b14e7574fd4a25ac462d7705e82b15e3724e361b84f813018b09ff01163747a7fc1f07d3b6dcb8b20106e9f6ebbc0e8377
         | 
| @@ -71,11 +71,16 @@ module Spree | |
| 71 71 |  | 
| 72 72 | 
             
                          before_transition :from => :cart, :do => :ensure_line_items_present
         | 
| 73 73 |  | 
| 74 | 
            -
                           | 
| 75 | 
            -
             | 
| 74 | 
            +
                          if states[:address]
         | 
| 75 | 
            +
                            before_transition :from => :address, :do => :create_tax_charge!
         | 
| 76 | 
            +
                          end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                          if states[:delivery]
         | 
| 79 | 
            +
                            before_transition :to => :delivery, :do => :create_proposed_shipments
         | 
| 80 | 
            +
                            before_transition :to => :delivery, :do => :ensure_available_shipping_rates
         | 
| 81 | 
            +
                          end
         | 
| 76 82 |  | 
| 77 83 | 
             
                          after_transition :to => :complete, :do => :finalize!
         | 
| 78 | 
            -
                          after_transition :to => :delivery, :do => :create_tax_charge!
         | 
| 79 84 | 
             
                          after_transition :to => :resumed,  :do => :after_resume
         | 
| 80 85 | 
             
                          after_transition :to => :canceled, :do => :after_cancel
         | 
| 81 86 | 
             
                        end
         | 
    
        data/app/models/spree/order.rb
    CHANGED
    
    
| @@ -103,8 +103,12 @@ module Spree | |
| 103 103 |  | 
| 104 104 | 
             
                  #line_item are empty when user empties cart
         | 
| 105 105 | 
             
                  if line_items.empty? || round_money(order.payment_total) < round_money(order.total)
         | 
| 106 | 
            -
                    if payments.present? | 
| 107 | 
            -
                       | 
| 106 | 
            +
                    if payments.present?
         | 
| 107 | 
            +
                      if payments.last.state == 'failed'
         | 
| 108 | 
            +
                        order.payment_state = 'failed'
         | 
| 109 | 
            +
                      elsif payments.last.state == 'completed'
         | 
| 110 | 
            +
                        order.payment_state = 'credit_owed'
         | 
| 111 | 
            +
                      end
         | 
| 108 112 | 
             
                    else
         | 
| 109 113 | 
             
                      order.payment_state = 'balance_due'
         | 
| 110 114 | 
             
                    end
         | 
| @@ -35,21 +35,24 @@ module Spree | |
| 35 35 | 
             
                end
         | 
| 36 36 |  | 
| 37 37 | 
             
                def activate(payload)
         | 
| 38 | 
            -
                   | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
                     | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
                     | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
                     | 
| 38 | 
            +
                  if order_activatable?(payload[:order]) && eligible?(payload[:order])
         | 
| 39 | 
            +
                    # make sure code is always downcased (old databases might have mixed case codes)
         | 
| 40 | 
            +
                    if code.present?
         | 
| 41 | 
            +
                      event_code = payload[:coupon_code]
         | 
| 42 | 
            +
                      return unless event_code == self.code.downcase.strip
         | 
| 43 | 
            +
                    end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                    if path.present?
         | 
| 46 | 
            +
                      return unless path == payload[:path]
         | 
| 47 | 
            +
                    end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                    actions.each do |action|
         | 
| 50 | 
            +
                      action.perform(payload)
         | 
| 51 | 
            +
                    end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                    return true
         | 
| 52 54 | 
             
                  end
         | 
| 55 | 
            +
                  false
         | 
| 53 56 | 
             
                end
         | 
| 54 57 |  | 
| 55 58 | 
             
                # called anytime order.update! happens
         | 
| @@ -83,7 +83,8 @@ module Spree | |
| 83 83 | 
             
                  def process_return
         | 
| 84 84 | 
             
                    inventory_units.each do |iu|
         | 
| 85 85 | 
             
                      iu.return!
         | 
| 86 | 
            -
                      Spree:: | 
| 86 | 
            +
                      stock_item = Spree::StockItem.where(variant_id: iu.variant.id, stock_location_id: stock_location_id).first
         | 
| 87 | 
            +
                      Spree::StockMovement.create!(stock_item_id: stock_item.id, quantity: 1)
         | 
| 87 88 | 
             
                    end
         | 
| 88 89 |  | 
| 89 90 | 
             
                    credit = Adjustment.new(amount: amount.abs * -1, label: Spree.t(:rma_credit))
         | 
    
        data/app/models/spree/variant.rb
    CHANGED
    
    | @@ -36,7 +36,7 @@ module Spree | |
| 36 36 | 
             
                  dependent: :destroy
         | 
| 37 37 |  | 
| 38 38 | 
             
                validate :check_price
         | 
| 39 | 
            -
                validates :price, numericality: { greater_than_or_equal_to: 0 } | 
| 39 | 
            +
                validates :price, numericality: { greater_than_or_equal_to: 0 }
         | 
| 40 40 | 
             
                validates :cost_price, numericality: { greater_than_or_equal_to: 0, allow_nil: true } if self.table_exists? && self.column_names.include?('cost_price')
         | 
| 41 41 |  | 
| 42 42 | 
             
                before_validation :set_cost_currency
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            <%= search_form_for @search, :url => spree.sales_total_admin_reports_path  do |s| %>
         | 
| 2 | 
            +
                <div class="date-range-filter field align-center">
         | 
| 3 | 
            +
                    <%= label_tag nil, t(:start), :class => 'inline' %>
         | 
| 4 | 
            +
                    <%= s.text_field :completed_at_gt, :class => 'datepicker datepicker-from', :value => datepicker_field_value(params[:q][:completed_at_gt]) %>
         | 
| 5 | 
            +
                    
         | 
| 6 | 
            +
                    <span class="range-divider">
         | 
| 7 | 
            +
                      <i class="icon-arrow-right"></i>
         | 
| 8 | 
            +
                    </span>
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                    <%= s.text_field :completed_at_lt, :class => 'datepicker datepicker-to', :value => datepicker_field_value(params[:q][:completed_at_lt]) %>
         | 
| 11 | 
            +
                    <%= label_tag nil, t(:end), :class => 'inline' %>
         | 
| 12 | 
            +
                </div>
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                <div class="actions filter-actions">
         | 
| 15 | 
            +
                  <%= button t(:search), 'icon-search'  %>
         | 
| 16 | 
            +
                </div>
         | 
| 17 | 
            +
            <% end %>
         | 
    
        data/config/locales/en.yml
    CHANGED
    
    | @@ -318,13 +318,18 @@ en: | |
| 318 318 | 
             
                      delivery_success: Test Mail sent successfully
         | 
| 319 319 | 
             
                      error: ! 'Test Mail error: %{e}'
         | 
| 320 320 | 
             
                  tab:
         | 
| 321 | 
            -
                     | 
| 322 | 
            -
                     | 
| 323 | 
            -
                     | 
| 324 | 
            -
                     | 
| 325 | 
            -
                     | 
| 326 | 
            -
                    promotions:  | 
| 327 | 
            -
                     | 
| 321 | 
            +
                    configuration: Configuration
         | 
| 322 | 
            +
                    option_types: Option Types
         | 
| 323 | 
            +
                    orders: Orders
         | 
| 324 | 
            +
                    overview: Overview
         | 
| 325 | 
            +
                    products: Products
         | 
| 326 | 
            +
                    promotions: Promotions
         | 
| 327 | 
            +
                    properties: Properties
         | 
| 328 | 
            +
                    prototypes: Prototypes
         | 
| 329 | 
            +
                    reports: Reports
         | 
| 330 | 
            +
                    taxonomies: Taxonomies
         | 
| 331 | 
            +
                    taxons: Taxons
         | 
| 332 | 
            +
                    users: Users
         | 
| 328 333 | 
             
                administration: Administration
         | 
| 329 334 | 
             
                agree_to_privacy_policy: Agree to Privacy Policy
         | 
| 330 335 | 
             
                agree_to_terms_of_service: Agree to Terms of Service
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            class DefaultVariantWeightToZero < ActiveRecord::Migration
         | 
| 2 | 
            +
              def up
         | 
| 3 | 
            +
                Spree::Variant.unscoped.where(weight: nil).update_all("weight = 0.0")
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                change_column :spree_variants, :weight, :decimal, precision: 8, scale: 2, default: 0.0
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              def down
         | 
| 9 | 
            +
                change_column :spree_variants, :weight, :decimal, precision: 8, scale: 2
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
            end
         | 
| @@ -53,9 +53,9 @@ module Spree | |
| 53 53 | 
             
                def test_dummy_inject_extension_requirements
         | 
| 54 54 | 
             
                  if DummyGeneratorHelper.inject_extension_requirements
         | 
| 55 55 | 
             
                    inside dummy_path do
         | 
| 56 | 
            -
                      inject_require_for('spree_frontend') | 
| 57 | 
            -
                      inject_require_for('spree_backend') | 
| 58 | 
            -
                      inject_require_for('spree_api') | 
| 56 | 
            +
                      inject_require_for('spree_frontend')
         | 
| 57 | 
            +
                      inject_require_for('spree_backend')
         | 
| 58 | 
            +
                      inject_require_for('spree_api')
         | 
| 59 59 | 
             
                    end
         | 
| 60 60 | 
             
                  end
         | 
| 61 61 | 
             
                end
         | 
| @@ -84,7 +84,13 @@ module Spree | |
| 84 84 | 
             
                protected
         | 
| 85 85 |  | 
| 86 86 | 
             
                def inject_require_for(requirement)
         | 
| 87 | 
            -
                  inject_into_file 'config/application.rb',  | 
| 87 | 
            +
                  inject_into_file 'config/application.rb', %Q[
         | 
| 88 | 
            +
            begin
         | 
| 89 | 
            +
              require '#{requirement}'
         | 
| 90 | 
            +
            rescue LoadError
         | 
| 91 | 
            +
              # #{requirement} is not available.
         | 
| 92 | 
            +
            end
         | 
| 93 | 
            +
                  ], :before => /require '#{@lib_name}'/, :verbose => true
         | 
| 88 94 | 
             
                end
         | 
| 89 95 |  | 
| 90 96 | 
             
                def dummy_path
         | 
| @@ -11,14 +11,17 @@ module Spree | |
| 11 11 | 
             
                    end
         | 
| 12 12 |  | 
| 13 13 | 
             
                    # The current incomplete order from the session for use in cart and during checkout
         | 
| 14 | 
            -
                    def current_order( | 
| 14 | 
            +
                    def current_order(options = {})
         | 
| 15 | 
            +
                      options[:create_order_if_necessary] ||= false
         | 
| 16 | 
            +
                      options[:lock] ||= false
         | 
| 15 17 | 
             
                      return @current_order if @current_order
         | 
| 16 18 | 
             
                      if session[:order_id]
         | 
| 17 | 
            -
                        current_order = Spree::Order. | 
| 19 | 
            +
                        current_order = Spree::Order.includes(:adjustments).lock(options[:lock]).where(id: session[:order_id], currency: current_currency).first
         | 
| 18 20 | 
             
                        @current_order = current_order unless current_order.try(:completed?)
         | 
| 19 21 | 
             
                      end
         | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            +
             | 
| 23 | 
            +
                      if options[:create_order_if_necessary] and (@current_order.nil? or @current_order.completed?)
         | 
| 24 | 
            +
                        @current_order = Spree::Order.new(currency: current_currency)
         | 
| 22 25 | 
             
                        @current_order.user ||= try_spree_current_user
         | 
| 23 26 | 
             
                        # See issue #3346 for reasons why this line is here
         | 
| 24 27 | 
             
                        @current_order.created_by ||= try_spree_current_user
         | 
| @@ -60,7 +63,7 @@ module Spree | |
| 60 63 | 
             
                        last_incomplete_order = user.last_incomplete_spree_order
         | 
| 61 64 | 
             
                        if session[:order_id].nil? && last_incomplete_order
         | 
| 62 65 | 
             
                          session[:order_id] = last_incomplete_order.id
         | 
| 63 | 
            -
                        elsif current_order(true) && last_incomplete_order && current_order != last_incomplete_order
         | 
| 66 | 
            +
                        elsif current_order(create_order_if_necessary: true) && last_incomplete_order && current_order != last_incomplete_order
         | 
| 64 67 | 
             
                          current_order.merge!(last_incomplete_order, user)
         | 
| 65 68 | 
             
                        end
         | 
| 66 69 | 
             
                      end
         | 
| @@ -23,12 +23,14 @@ module Spree | |
| 23 23 | 
             
                def duplicate_product
         | 
| 24 24 | 
             
                  product.dup.tap do |new_product|
         | 
| 25 25 | 
             
                    new_product.name = "COPY OF #{product.name}"
         | 
| 26 | 
            +
                    new_product.permalink = "copy-of-#{product.permalink}"
         | 
| 26 27 | 
             
                    new_product.taxons = product.taxons
         | 
| 27 28 | 
             
                    new_product.created_at = nil
         | 
| 28 29 | 
             
                    new_product.deleted_at = nil
         | 
| 29 30 | 
             
                    new_product.updated_at = nil
         | 
| 30 31 | 
             
                    new_product.product_properties = reset_properties
         | 
| 31 32 | 
             
                    new_product.master = duplicate_master
         | 
| 33 | 
            +
                    new_product.variants = product.variants.map { |variant| duplicate_variant variant }
         | 
| 32 34 | 
             
                  end
         | 
| 33 35 | 
             
                end
         | 
| 34 36 |  | 
| @@ -43,6 +45,14 @@ module Spree | |
| 43 45 | 
             
                  end
         | 
| 44 46 | 
             
                end
         | 
| 45 47 |  | 
| 48 | 
            +
                def duplicate_variant(variant)
         | 
| 49 | 
            +
                  new_variant = variant.dup
         | 
| 50 | 
            +
                  new_variant.sku = "COPY OF #{new_variant.sku}"
         | 
| 51 | 
            +
                  new_variant.deleted_at = nil
         | 
| 52 | 
            +
                  new_variant.option_values = variant.option_values.map { |option_value| option_value.dup}
         | 
| 53 | 
            +
                  new_variant
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 46 56 | 
             
                def duplicate_image(image)
         | 
| 47 57 | 
             
                  new_image = image.dup
         | 
| 48 58 | 
             
                  new_image.assign_attributes(:attachment => image.attachment.clone)
         | 
    
        data/lib/spree/core/version.rb
    CHANGED
    
    
    
        data/lib/spree/money.rb
    CHANGED
    
    | @@ -199,7 +199,7 @@ module Spree | |
| 199 199 | 
             
                  if options[:html]
         | 
| 200 200 | 
             
                    # 1) prevent blank, breaking spaces
         | 
| 201 201 | 
             
                    # 2) prevent escaping of HTML character entities
         | 
| 202 | 
            -
                    output = output. | 
| 202 | 
            +
                    output = output.sub(" ", " ").html_safe
         | 
| 203 203 | 
             
                  end
         | 
| 204 204 | 
             
                  output
         | 
| 205 205 | 
             
                end
         | 
| @@ -32,9 +32,12 @@ module Spree | |
| 32 32 | 
             
                    return promotion_usage_limit_exceeded if promotion.usage_limit_exceeded?
         | 
| 33 33 |  | 
| 34 34 | 
             
                    event_name = "spree.checkout.coupon_code_added"
         | 
| 35 | 
            -
                    promotion.activate(:coupon_code => @order.coupon_code, :order => @order)
         | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 35 | 
            +
                    if promotion.activate(:coupon_code => @order.coupon_code, :order => @order)
         | 
| 36 | 
            +
                      promo = @order.adjustments.includes(:originator).promotion.detect { |p| p.originator.promotion.code == @order.coupon_code }
         | 
| 37 | 
            +
                      determine_promotion_application_result(promo)
         | 
| 38 | 
            +
                    else
         | 
| 39 | 
            +
                      return { :coupon_applied? => false, :error =>  Spree.t(:coupon_code_not_eligible) }
         | 
| 40 | 
            +
                    end
         | 
| 38 41 | 
             
                  end
         | 
| 39 42 |  | 
| 40 43 | 
             
                  def promotion_expired
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: spree_core
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.0. | 
| 4 | 
            +
              version: 2.0.9
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Sean Schofield
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-02-18 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activemerchant
         | 
| @@ -399,6 +399,7 @@ files: | |
| 399 399 | 
             
            - app/models/spree/zone.rb
         | 
| 400 400 | 
             
            - app/models/spree/zone_member.rb
         | 
| 401 401 | 
             
            - app/views/spree/admin/orders/customer_details/_autocomplete.js.erb
         | 
| 402 | 
            +
            - app/views/spree/admin/shared/_report_order_criteria.html.erb
         | 
| 402 403 | 
             
            - app/views/spree/order_mailer/cancel_email.text.erb
         | 
| 403 404 | 
             
            - app/views/spree/order_mailer/confirm_email.text.erb
         | 
| 404 405 | 
             
            - app/views/spree/payments/_payment.html.erb
         | 
| @@ -503,6 +504,7 @@ files: | |
| 503 504 | 
             
            - db/migrate/20131026154747_add_track_inventory_to_variant.rb
         | 
| 504 505 | 
             
            - db/migrate/20131113035136_add_channel_to_spree_orders.rb
         | 
| 505 506 | 
             
            - db/migrate/20140120160805_add_index_to_variant_id_and_currency_on_prices.rb
         | 
| 507 | 
            +
            - db/migrate/20140205181631_default_variant_weight_to_zero.rb
         | 
| 506 508 | 
             
            - db/seeds.rb
         | 
| 507 509 | 
             
            - lib/generators/spree/custom_user/custom_user_generator.rb
         | 
| 508 510 | 
             
            - lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt
         |