mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Merge pull request #2946 from luisramos0/improve_taxons
Sort Product categories alphabetically by name
This commit is contained in:
@@ -71,7 +71,6 @@ Layout/AlignParameters:
|
||||
- 'app/serializers/api/enterprise_serializer.rb'
|
||||
- 'app/serializers/api/shipping_method_serializer.rb'
|
||||
- 'lib/spree/product_filters.rb'
|
||||
- 'lib/tasks/dev.rake'
|
||||
- 'spec/controllers/enterprises_controller_spec.rb'
|
||||
- 'spec/controllers/shop_controller_spec.rb'
|
||||
- 'spec/features/admin/enterprise_fees_spec.rb'
|
||||
@@ -196,7 +195,6 @@ Layout/EmptyLines:
|
||||
- 'lib/open_food_network/xero_invoices_report.rb'
|
||||
- 'lib/spree/core/controller_helpers/order_decorator.rb'
|
||||
- 'lib/tasks/cache.rake'
|
||||
- 'lib/tasks/dev.rake'
|
||||
- 'lib/tasks/enterprises.rake'
|
||||
- 'spec/archive/features/consumer/checkout_spec.rb'
|
||||
- 'spec/controllers/admin/column_preferences_controller_spec.rb'
|
||||
@@ -279,7 +277,6 @@ Layout/EmptyLinesAroundBlockBody:
|
||||
- 'app/models/spree/option_value_decorator.rb'
|
||||
- 'lib/open_food_network/group_buy_report.rb'
|
||||
- 'lib/spree/money_decorator.rb'
|
||||
- 'lib/tasks/dev.rake'
|
||||
- 'spec/controllers/admin/order_cycles_controller_spec.rb'
|
||||
- 'spec/controllers/admin/tag_rules_controller_spec.rb'
|
||||
- 'spec/controllers/spree/admin/orders_controller_spec.rb'
|
||||
@@ -456,12 +453,6 @@ Layout/IndentationWidth:
|
||||
- 'spec/models/enterprise_spec.rb'
|
||||
- 'spec/models/spree/calculator/flexi_rate_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
Layout/LeadingBlankLines:
|
||||
Exclude:
|
||||
- 'lib/tasks/dev.rake'
|
||||
|
||||
# Offense count: 44
|
||||
# Cop supports --auto-correct.
|
||||
Layout/LeadingCommentSpace:
|
||||
@@ -744,7 +735,6 @@ Layout/SpaceInsideBlockBraces:
|
||||
- 'app/models/column_preference.rb'
|
||||
- 'app/models/spree/order_decorator.rb'
|
||||
- 'lib/spree/product_filters.rb'
|
||||
- 'lib/tasks/dev.rake'
|
||||
- 'lib/tasks/karma.rake'
|
||||
- 'spec/archive/features/consumer/checkout_spec.rb'
|
||||
- 'spec/controllers/admin/accounts_and_billing_settings_controller_spec.rb'
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
= f.label :primary_taxon_id, t('.product_category')
|
||||
%span.required *
|
||||
%br
|
||||
= f.collection_select(:primary_taxon_id, Spree::Taxon.all, :id, :name, {:include_blank => true}, {:class => "select2 fullwidth"})
|
||||
= f.collection_select(:primary_taxon_id, Spree::Taxon.order(:name), :id, :name, {:include_blank => true}, {:class => "select2 fullwidth"})
|
||||
= f.error_message_on :primary_taxon_id
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
|
||||
namespace :openfoodnetwork do
|
||||
|
||||
namespace :dev do
|
||||
|
||||
desc 'load sample data'
|
||||
task load_sample_data: :environment do
|
||||
require_relative '../../spec/factories'
|
||||
@@ -34,11 +31,16 @@ namespace :openfoodnetwork do
|
||||
# -- Taxonomies
|
||||
unless Spree::Taxonomy.find_by_name 'Products'
|
||||
puts "[#{task_name}] Seeding taxonomies"
|
||||
taxonomy = Spree::Taxonomy.find_by_name('Products') || FactoryBot.create(:taxonomy, name: 'Products')
|
||||
taxonomy = Spree::Taxonomy.find_by_name('Products') || FactoryBot.create(:taxonomy,
|
||||
name: 'Products')
|
||||
taxonomy_root = taxonomy.root
|
||||
|
||||
['Vegetables', 'Fruit', 'Oils', 'Preserves and Sauces', 'Dairy', 'Meat and Fish'].each do |taxon_name|
|
||||
FactoryBot.create(:taxon, name: taxon_name, parent_id: taxonomy_root.id)
|
||||
taxons = ['Vegetables', 'Fruit', 'Oils', 'Preserves and Sauces', 'Dairy', 'Meat and Fish']
|
||||
taxons.each do |taxon_name|
|
||||
FactoryBot.create(:taxon,
|
||||
name: taxon_name,
|
||||
parent_id: taxonomy_root.id,
|
||||
taxonomy_id: taxonomy.id)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -46,140 +48,251 @@ namespace :openfoodnetwork do
|
||||
unless Spree::Address.find_by_zipcode "3160"
|
||||
puts "[#{task_name}] Seeding addresses"
|
||||
|
||||
FactoryBot.create(:address, address1: "25 Myrtle Street", zipcode: "3153", city: "Bayswater", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "6 Rollings Road", zipcode: "3156", city: "Upper Ferntree Gully", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "72 Lake Road", zipcode: "3130", city: "Blackburn", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "7 Verbena Street", zipcode: "3195", city: "Mordialloc", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "20 Galvin Street", zipcode: "3018", city: "Altona", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "59 Websters Road", zipcode: "3106", city: "Templestowe", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "17 Torresdale Drive", zipcode: "3155", city: "Boronia", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "21 Robina CRT", zipcode: "3764", city: "Kilmore", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "25 Kendall Street", zipcode: "3134", city: "Ringwood", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "2 Mines Road", zipcode: "3135", city: "Ringwood East", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "183 Millers Road", zipcode: "3025", city: "Altona North", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "310 Pascoe Vale Road", zipcode: "3040", city: "Essendon", country: country, state: state)
|
||||
FactoryBot.create(:address, address1: "6 Martin Street", zipcode: "3160", city: "Belgrave", country: country, state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "25 Myrtle Street",
|
||||
zipcode: "3153",
|
||||
city: "Bayswater",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "6 Rollings Road",
|
||||
zipcode: "3156",
|
||||
city: "Upper Ferntree Gully",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "72 Lake Road",
|
||||
zipcode: "3130",
|
||||
city: "Blackburn",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "7 Verbena Street",
|
||||
zipcode: "3195",
|
||||
city: "Mordialloc",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "20 Galvin Street",
|
||||
zipcode: "3018",
|
||||
city: "Altona",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "59 Websters Road",
|
||||
zipcode: "3106",
|
||||
city: "Templestowe",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "17 Torresdale Drive",
|
||||
zipcode: "3155",
|
||||
city: "Boronia",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "21 Robina CRT",
|
||||
zipcode: "3764",
|
||||
city: "Kilmore",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "25 Kendall Street",
|
||||
zipcode: "3134",
|
||||
city: "Ringwood",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "2 Mines Road",
|
||||
zipcode: "3135",
|
||||
city: "Ringwood East",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "183 Millers Road",
|
||||
zipcode: "3025",
|
||||
city: "Altona North",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "310 Pascoe Vale Road",
|
||||
zipcode: "3040",
|
||||
city: "Essendon",
|
||||
country: country,
|
||||
state: state)
|
||||
FactoryBot.create(:address,
|
||||
address1: "6 Martin Street",
|
||||
zipcode: "3160",
|
||||
city: "Belgrave",
|
||||
country: country,
|
||||
state: state)
|
||||
end
|
||||
|
||||
# -- Enterprises
|
||||
unless Enterprise.count > 1
|
||||
if Enterprise.count < 2
|
||||
puts "[#{task_name}] Seeding enterprises"
|
||||
|
||||
3.times { FactoryBot.create(:supplier_enterprise, address: Spree::Address.find_by_zipcode("3160")) }
|
||||
3.times do
|
||||
FactoryBot.create(:supplier_enterprise,
|
||||
address: Spree::Address.find_by_zipcode("3160"))
|
||||
end
|
||||
|
||||
FactoryBot.create(:distributor_enterprise, name: "Green Grass", address: Spree::Address.find_by_zipcode("3153"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "AusFarmers United", address: Spree::Address.find_by_zipcode("3156"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "Blackburn FreeGrossers", address: Spree::Address.find_by_zipcode("3130"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "MegaFoods", address: Spree::Address.find_by_zipcode("3195"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "Eco Butchers", address: Spree::Address.find_by_zipcode("3018"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "Western Wines", address: Spree::Address.find_by_zipcode("3106"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "QuickFresh", address: Spree::Address.find_by_zipcode("3155"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "Fooderers", address: Spree::Address.find_by_zipcode("3764"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "Food Local", address: Spree::Address.find_by_zipcode("3134"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "Green Food Trading Corporation", address: Spree::Address.find_by_zipcode("3135"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "Better Food", address: Spree::Address.find_by_zipcode("3025"))
|
||||
FactoryBot.create(:distributor_enterprise, name: "Gippsland Poultry", address: Spree::Address.find_by_zipcode("3040"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "Green Grass",
|
||||
address: Spree::Address.find_by_zipcode("3153"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "AusFarmers United",
|
||||
address: Spree::Address.find_by_zipcode("3156"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "Blackburn FreeGrossers",
|
||||
address: Spree::Address.find_by_zipcode("3130"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "MegaFoods",
|
||||
address: Spree::Address.find_by_zipcode("3195"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "Eco Butchers",
|
||||
address: Spree::Address.find_by_zipcode("3018"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "Western Wines",
|
||||
address: Spree::Address.find_by_zipcode("3106"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "QuickFresh",
|
||||
address: Spree::Address.find_by_zipcode("3155"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "Fooderers",
|
||||
address: Spree::Address.find_by_zipcode("3764"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "Food Local",
|
||||
address: Spree::Address.find_by_zipcode("3134"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "Green Food Trading Corporation",
|
||||
address: Spree::Address.find_by_zipcode("3135"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "Better Food",
|
||||
address: Spree::Address.find_by_zipcode("3025"))
|
||||
FactoryBot.create(:distributor_enterprise,
|
||||
name: "Gippsland Poultry",
|
||||
address: Spree::Address.find_by_zipcode("3040"))
|
||||
end
|
||||
|
||||
# -- Enterprise users
|
||||
unless Spree::User.count > 1
|
||||
if Spree::User.count < 2
|
||||
puts "[#{task_name}] Seeding enterprise users"
|
||||
|
||||
pw = "spree123"
|
||||
|
||||
u = FactoryBot.create(:user, email: "sup@example.com", password: pw, password_confirmation: pw)
|
||||
u = FactoryBot.create(:user,
|
||||
email: "sup@example.com",
|
||||
password: pw,
|
||||
password_confirmation: pw)
|
||||
u.enterprises << Enterprise.is_primary_producer.first
|
||||
u.enterprises << Enterprise.is_primary_producer.second
|
||||
puts " Supplier User created: #{u.email}/#{pw} (" + u.enterprise_roles.map{ |er| er.enterprise.name}.join(", ") + ")"
|
||||
|
||||
u = FactoryBot.create(:user, email: "dist@example.com", password: pw, password_confirmation: pw)
|
||||
user_enterprises = u.enterprise_roles.map{ |er| er.enterprise.name }.join(", ")
|
||||
puts " Supplier User created: #{u.email}/#{pw} (" + user_enterprises + ")"
|
||||
|
||||
u = FactoryBot.create(:user,
|
||||
email: "dist@example.com",
|
||||
password: pw,
|
||||
password_confirmation: pw)
|
||||
u.enterprises << Enterprise.is_distributor.first
|
||||
u.enterprises << Enterprise.is_distributor.second
|
||||
puts " Distributor User created: #{u.email}/#{pw} (" + u.enterprise_roles.map{ |er| er.enterprise.name}.join(", ") + ")"
|
||||
user_enterprises = u.enterprise_roles.map{ |er| er.enterprise.name }.join(", ")
|
||||
puts " Distributor User created: #{u.email}/#{pw} (" + user_enterprises + ")"
|
||||
end
|
||||
|
||||
# -- Enterprise fees
|
||||
unless EnterpriseFee.count > 1
|
||||
if EnterpriseFee.count < 2
|
||||
Enterprise.is_distributor.each do |distributor|
|
||||
FactoryBot.create(:enterprise_fee, enterprise: distributor)
|
||||
end
|
||||
end
|
||||
|
||||
# -- Enterprise Payment Methods
|
||||
unless Spree::PaymentMethod.count > 1
|
||||
if Spree::PaymentMethod.count < 2
|
||||
Enterprise.is_distributor.each do |distributor|
|
||||
FactoryBot.create(:payment_method, distributors: [distributor], name: "Cheque (#{distributor.name})", environment: 'development')
|
||||
FactoryBot.create(:payment_method,
|
||||
distributors: [distributor],
|
||||
name: "Cheque (#{distributor.name})",
|
||||
environment: 'development')
|
||||
end
|
||||
end
|
||||
|
||||
# -- Products
|
||||
unless Spree::Product.count > 0
|
||||
if Spree::Product.count < 1
|
||||
puts "[#{task_name}] Seeding products"
|
||||
|
||||
distributors = Enterprise.is_distributor
|
||||
|
||||
prod1 = FactoryBot.create(:product,
|
||||
name: 'Garlic', price: 20.00,
|
||||
supplier: Enterprise.is_primary_producer[0],
|
||||
taxons: [Spree::Taxon.find_by_name('Vegetables')])
|
||||
name: 'Garlic',
|
||||
price: 20.00,
|
||||
supplier: Enterprise.is_primary_producer[0],
|
||||
taxons: [Spree::Taxon.find_by_name('Vegetables')])
|
||||
|
||||
ProductDistribution.create(product: prod1,
|
||||
distributor: Enterprise.is_distributor[0],
|
||||
enterprise_fee: Enterprise.is_distributor[0].enterprise_fees.first)
|
||||
|
||||
distributor: distributors[0],
|
||||
enterprise_fee: distributors[0].enterprise_fees.first)
|
||||
|
||||
prod2 = FactoryBot.create(:product,
|
||||
name: 'Fuji Apple', price: 5.00,
|
||||
supplier: Enterprise.is_primary_producer[1],
|
||||
taxons: [Spree::Taxon.find_by_name('Fruit')])
|
||||
name: 'Fuji Apple',
|
||||
price: 5.00,
|
||||
supplier: Enterprise.is_primary_producer[1],
|
||||
taxons: [Spree::Taxon.find_by_name('Fruit')])
|
||||
|
||||
ProductDistribution.create(product: prod2,
|
||||
distributor: Enterprise.is_distributor[1],
|
||||
enterprise_fee: Enterprise.is_distributor[1].enterprise_fees.first)
|
||||
distributor: distributors[1],
|
||||
enterprise_fee: distributors[1].enterprise_fees.first)
|
||||
|
||||
prod3 = FactoryBot.create(:product,
|
||||
name: 'Beef - 5kg Trays', price: 50.00,
|
||||
supplier: Enterprise.is_primary_producer[2],
|
||||
taxons: [Spree::Taxon.find_by_name('Meat and Fish')])
|
||||
name: 'Beef - 5kg Trays',
|
||||
price: 50.00,
|
||||
supplier: Enterprise.is_primary_producer[2],
|
||||
taxons: [Spree::Taxon.find_by_name('Meat and Fish')])
|
||||
|
||||
ProductDistribution.create(product: prod3,
|
||||
distributor: Enterprise.is_distributor[2],
|
||||
enterprise_fee: Enterprise.is_distributor[2].enterprise_fees.first)
|
||||
distributor: distributors[2],
|
||||
enterprise_fee: distributors[2].enterprise_fees.first)
|
||||
|
||||
prod4 = FactoryBot.create(:product,
|
||||
name: 'Carrots', price: 3.00,
|
||||
supplier: Enterprise.is_primary_producer[2],
|
||||
taxons: [Spree::Taxon.find_by_name('Meat and Fish')])
|
||||
name: 'Carrots',
|
||||
price: 3.00,
|
||||
supplier: Enterprise.is_primary_producer[2],
|
||||
taxons: [Spree::Taxon.find_by_name('Meat and Fish')])
|
||||
|
||||
ProductDistribution.create(product: prod4,
|
||||
distributor: Enterprise.is_distributor[2],
|
||||
enterprise_fee: Enterprise.is_distributor[2].enterprise_fees.first)
|
||||
distributor: distributors[2],
|
||||
enterprise_fee: distributors[2].enterprise_fees.first)
|
||||
|
||||
prod5 = FactoryBot.create(:product,
|
||||
name: 'Potatoes', price: 2.00,
|
||||
supplier: Enterprise.is_primary_producer[2],
|
||||
taxons: [Spree::Taxon.find_by_name('Meat and Fish')])
|
||||
name: 'Potatoes',
|
||||
price: 2.00,
|
||||
supplier: Enterprise.is_primary_producer[2],
|
||||
taxons: [Spree::Taxon.find_by_name('Meat and Fish')])
|
||||
|
||||
ProductDistribution.create(product: prod5,
|
||||
distributor: Enterprise.is_distributor[2],
|
||||
enterprise_fee: Enterprise.is_distributor[2].enterprise_fees.first)
|
||||
distributor: distributors[2],
|
||||
enterprise_fee: distributors[2].enterprise_fees.first)
|
||||
|
||||
prod6 = FactoryBot.create(:product,
|
||||
name: 'Tomatoes', price: 2.00,
|
||||
supplier: Enterprise.is_primary_producer[2],
|
||||
taxons: [Spree::Taxon.find_by_name('Meat and Fish')])
|
||||
name: 'Tomatoes',
|
||||
price: 2.00,
|
||||
supplier: Enterprise.is_primary_producer[2],
|
||||
taxons: [Spree::Taxon.find_by_name('Meat and Fish')])
|
||||
|
||||
ProductDistribution.create(product: prod6,
|
||||
distributor: Enterprise.is_distributor[2],
|
||||
enterprise_fee: Enterprise.is_distributor[2].enterprise_fees.first)
|
||||
distributor: distributors[2],
|
||||
enterprise_fee: distributors[2].enterprise_fees.first)
|
||||
|
||||
prod7 = FactoryBot.create(:product,
|
||||
name: 'Potatoes', price: 2.00,
|
||||
supplier: Enterprise.is_primary_producer[2],
|
||||
taxons: [Spree::Taxon.find_by_name('Meat and Fish')])
|
||||
name: 'Potatoes',
|
||||
price: 2.00,
|
||||
supplier: Enterprise.is_primary_producer[2],
|
||||
taxons: [Spree::Taxon.find_by_name('Meat and Fish')])
|
||||
|
||||
ProductDistribution.create(product: prod7,
|
||||
distributor: Enterprise.is_distributor[2],
|
||||
enterprise_fee: Enterprise.is_distributor[2].enterprise_fees.first)
|
||||
|
||||
distributor: distributors[2],
|
||||
enterprise_fee: distributors[2].enterprise_fees.first)
|
||||
end
|
||||
|
||||
enterprise2 = Enterprise.find_by_name('Enterprise 2')
|
||||
@@ -200,7 +313,9 @@ namespace :openfoodnetwork do
|
||||
|
||||
CreateOrderCycle.new(enterprise2, variants).call
|
||||
|
||||
EnterpriseRole.create!(user: Spree::User.first, enterprise: enterprise2)
|
||||
if EnterpriseRole.count < 1
|
||||
EnterpriseRole.create!(user: Spree::User.first, enterprise: enterprise2)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user