Revert "Adding primary taxon field to product"

This reverts commit fd1e7ebaa3.
This commit is contained in:
Rohan Mitchell
2014-05-24 09:07:57 +10:00
parent 79393476b0
commit ad1f852bdd
8 changed files with 8 additions and 57 deletions

View File

@@ -15,7 +15,6 @@ class Enterprise < ActiveRecord::Base
has_and_belongs_to_many :payment_methods, join_table: 'distributors_payment_methods', class_name: 'Spree::PaymentMethod', foreign_key: 'distributor_id'
has_and_belongs_to_many :shipping_methods, join_table: 'distributors_shipping_methods', class_name: 'Spree::ShippingMethod', foreign_key: 'distributor_id'
delegate :latitude, :longitude, :city, :state_name, :to => :address
accepts_nested_attributes_for :address

View File

@@ -1,10 +0,0 @@
Spree::Classification.class_eval do
before_destroy :dont_destroy_if_primary_taxon
def dont_destroy_if_primary_taxon
if product.primary_taxon == taxon
errors.add :base, "Taxon #{taxon.name} is the primary taxon of #{product.name} and cannot be deleted"
return false
end
end
end

View File

@@ -6,7 +6,6 @@ Spree::Product.class_eval do
belongs_to :supplier, :class_name => 'Enterprise'
belongs_to :primary_taxon, class_name: 'Spree::Taxon'
has_many :product_distributions, :dependent => :destroy
has_many :distributors, :through => :product_distributions
@@ -14,10 +13,9 @@ Spree::Product.class_eval do
accepts_nested_attributes_for :product_distributions, :allow_destroy => true
delegate_belongs_to :master, :unit_value, :unit_description
attr_accessible :supplier_id, :primary_taxon_id, :distributor_ids, :product_distributions_attributes, :group_buy, :group_buy_unit_size, :variant_unit, :variant_unit_scale, :variant_unit_name, :unit_value, :unit_description, :notes
attr_accessible :supplier_id, :distributor_ids, :product_distributions_attributes, :group_buy, :group_buy_unit_size, :variant_unit, :variant_unit_scale, :variant_unit_name, :unit_value, :unit_description, :notes
validates_presence_of :supplier
validates_presence_of :primary_taxon
validates_presence_of :variant_unit, if: :has_variants?
validates_presence_of :variant_unit_scale,
@@ -27,7 +25,6 @@ Spree::Product.class_eval do
after_initialize :set_available_on_to_now, :if => :new_record?
after_save :update_units
before_save :add_primary_taxon_to_taxons
# -- Joins
@@ -121,6 +118,10 @@ Spree::Product.class_eval do
order_cycle.variants_distributed_by(distributor).where(product_id: self)
end
def primary_taxon
self.taxons.order.first
end
# Build a product distribution for each distributor
def build_product_distributions_for_user user
Enterprise.is_distributor.managed_by(user).each do |distributor|
@@ -156,10 +157,6 @@ Spree::Product.class_eval do
end
end
def add_primary_taxon_to_taxons
taxons << primary_taxon unless taxons.find_by_id(primary_taxon)
end
def self.all_variant_unit_option_types
Spree::OptionType.where('name LIKE ?', 'unit_%%')
end

View File

@@ -1,5 +0,0 @@
class AddPrimaryTaxonToProducts < ActiveRecord::Migration
def change
add_column :spree_products, :primary_taxon_id, :integer
end
end

View File

@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20140522044009) do
ActiveRecord::Schema.define(:version => 20140522015012) do
create_table "adjustment_metadata", :force => true do |t|
t.integer "adjustment_id"
@@ -681,7 +681,6 @@ ActiveRecord::Schema.define(:version => 20140522044009) do
t.float "variant_unit_scale"
t.string "variant_unit_name"
t.text "notes"
t.integer "primary_taxon_id"
end
add_index "spree_products", ["available_on"], :name => "index_products_on_available_on"

View File

@@ -2,9 +2,6 @@ require 'ffaker'
require 'spree/core/testing_support/factories'
FactoryGirl.define do
factory :classification, class: Spree::Classification do
end
factory :order_cycle, :parent => :simple_order_cycle do
coordinator_fees { [create(:enterprise_fee, enterprise: coordinator)] }
@@ -153,9 +150,6 @@ end
FactoryGirl.modify do
factory :product do
primary_taxon { Spree::Taxon.first || FactoryGirl.create(:taxon) }
end
factory :simple_product do
# Fix product factory name sequence with Kernel.rand so it is not interpreted as a Spree::Product method
# Pull request: https://github.com/spree/spree/pull/1964
@@ -163,7 +157,6 @@ FactoryGirl.modify do
sequence(:name) { |n| "Product ##{n} - #{Kernel.rand(9999)}" }
supplier { Enterprise.is_primary_producer.first || FactoryGirl.create(:supplier_enterprise) }
primary_taxon { Spree::Taxon.first || FactoryGirl.create(:taxon) }
on_hand 3
variant_unit 'weight'

View File

@@ -1,15 +0,0 @@
require 'spec_helper'
module Spree
describe Classification do
let(:product) { create(:simple_product) }
let(:taxon) { create(:taxon) }
let(:classification) { create(:classification, taxon: taxon, product: product) }
it "won't destroy if classification is the primary taxon" do
product.primary_taxon = taxon
classification.destroy.should be_false
classification.errors.messages[:base].should == ["Taxon #{taxon.name} is the primary taxon of #{product.name} and cannot be deleted"]
end
end
end

View File

@@ -5,7 +5,6 @@ module Spree
describe "associations" do
it { should belong_to(:supplier) }
it { should belong_to(:primary_taxon) }
it { should have_many(:product_distributions) }
end
@@ -14,12 +13,6 @@ module Spree
create(:product).should be_valid
end
it "requires a primary taxon" do
product = create(:simple_product)
product.primary_taxon = nil
product.should_not be_valid
end
it "requires a supplier" do
product = create(:simple_product)
product.supplier = nil
@@ -558,10 +551,10 @@ module Spree
describe "Taxons" do
let(:taxon1) { create(:taxon) }
let(:taxon2) { create(:taxon) }
let(:product) { create(:simple_product) }
let(:product) { create(:simple_product, taxons: [taxon1, taxon2]) }
it "returns the first taxon as the primary taxon" do
product.taxons.should == [product.primary_taxon]
product.primary_taxon.should == taxon1
end
end
end