From 2bb004ebaa88bf2d2eac407afc3db665a6d933b7 Mon Sep 17 00:00:00 2001 From: Will Marshall Date: Tue, 4 Feb 2014 14:11:32 +1100 Subject: [PATCH] Adding notes field to products --- app/models/enterprise.rb | 1 - app/models/spree/product_decorator.rb | 2 +- .../products/_form/add_notes_field.html.haml.deface | 7 +++++++ db/migrate/20140204011203_add_notes_to_products.rb | 5 +++++ db/schema.rb | 3 ++- spec/features/admin/products_spec.rb | 13 +++++++++++++ 6 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 app/overrides/spree/admin/products/_form/add_notes_field.html.haml.deface create mode 100644 db/migrate/20140204011203_add_notes_to_products.rb diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index e69d1489b4..501f18f4a7 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -43,7 +43,6 @@ class Enterprise < ActiveRecord::Base .uniq } - scope :with_distributed_products_outer, joins('LEFT OUTER JOIN product_distributions ON product_distributions.distributor_id = enterprises.id'). joins('LEFT OUTER JOIN spree_products ON spree_products.id = product_distributions.product_id') diff --git a/app/models/spree/product_decorator.rb b/app/models/spree/product_decorator.rb index 8d54edc189..5150a760c8 100644 --- a/app/models/spree/product_decorator.rb +++ b/app/models/spree/product_decorator.rb @@ -6,7 +6,7 @@ Spree::Product.class_eval do accepts_nested_attributes_for :product_distributions, :allow_destroy => true - attr_accessible :supplier_id, :distributor_ids, :product_distributions_attributes, :group_buy, :group_buy_unit_size, :variant_unit, :variant_unit_scale, :variant_unit_name + attr_accessible :supplier_id, :distributor_ids, :product_distributions_attributes, :group_buy, :group_buy_unit_size, :variant_unit, :variant_unit_scale, :variant_unit_name, :notes validates_presence_of :supplier diff --git a/app/overrides/spree/admin/products/_form/add_notes_field.html.haml.deface b/app/overrides/spree/admin/products/_form/add_notes_field.html.haml.deface new file mode 100644 index 0000000000..dadebd01d4 --- /dev/null +++ b/app/overrides/spree/admin/products/_form/add_notes_field.html.haml.deface @@ -0,0 +1,7 @@ +/ insert_bottom "[data-hook='admin_product_form_additional_fields']" + += f.field_container :notes do + = f.label :notes, t(:notes) + = f.text_area :notes, { :class => 'fullwidth', rows: 5 } + = f.error_message_on :notes + diff --git a/db/migrate/20140204011203_add_notes_to_products.rb b/db/migrate/20140204011203_add_notes_to_products.rb new file mode 100644 index 0000000000..5ec603a85c --- /dev/null +++ b/db/migrate/20140204011203_add_notes_to_products.rb @@ -0,0 +1,5 @@ +class AddNotesToProducts < ActiveRecord::Migration + def change + add_column :spree_products, :notes, :text + end +end diff --git a/db/schema.rb b/db/schema.rb index d430638311..313c7ddf48 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20140121050239) do +ActiveRecord::Schema.define(:version => 20140204011203) do create_table "adjustment_metadata", :force => true do |t| t.integer "adjustment_id" @@ -622,6 +622,7 @@ ActiveRecord::Schema.define(:version => 20140121050239) do t.string "variant_unit" t.float "variant_unit_scale" t.string "variant_unit_name" + t.text "notes" end add_index "spree_products", ["available_on"], :name => "index_products_on_available_on" diff --git a/spec/features/admin/products_spec.rb b/spec/features/admin/products_spec.rb index e472311223..3399785a3c 100644 --- a/spec/features/admin/products_spec.rb +++ b/spec/features/admin/products_spec.rb @@ -78,6 +78,19 @@ feature %q{ login_to_admin_as @new_user end + + context "Additional fields" do + #let(:product) { create(:simple_product, supplier: @supplier2) } + + it "should have a notes field" do + product = create(:simple_product, supplier: @supplier2) + click_link 'Products' + within('#sub_nav') { click_link 'Products' } + click_link product.name + page.should have_content "Notes" + end + end + scenario "create new product" do click_link 'Products' click_link 'New Product'