From 8ef69668910a582bffbe3619f027b46883ff682d Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 28 Jul 2023 16:22:20 +1000 Subject: [PATCH] Declare old belongs_to default on remaining models It would take ages to go through all files now and assess all belongs_to associations. So I just declare the old default and then we can move on and apply the new default for the application while these classes still use the old one. All new models will then use the new default which is the goal of this excercise and we can refactor old classes when we touch them anyway. --- app/models/exchange.rb | 2 ++ app/models/exchange_fee.rb | 2 ++ app/models/exchange_variant.rb | 2 ++ app/models/inventory_item.rb | 2 ++ app/models/invoice.rb | 2 ++ app/models/order_cycle.rb | 2 ++ app/models/order_cycle_schedule.rb | 2 ++ app/models/producer_property.rb | 2 ++ app/models/proxy_order.rb | 2 ++ app/models/report_rendering_options.rb | 2 ++ app/models/spree/address.rb | 2 ++ app/models/spree/adjustment.rb | 2 ++ app/models/spree/asset.rb | 2 ++ app/models/spree/calculator.rb | 2 ++ app/models/spree/credit_card.rb | 2 ++ app/models/spree/inventory_unit.rb | 2 ++ app/models/spree/line_item.rb | 2 ++ app/models/spree/log_entry.rb | 2 ++ app/models/spree/order.rb | 2 ++ app/models/spree/payment.rb | 2 ++ app/models/spree/payment_method.rb | 2 ++ app/models/spree/price.rb | 2 ++ app/models/spree/product.rb | 2 ++ app/models/spree/product_property.rb | 2 ++ app/models/spree/return_authorization.rb | 2 ++ app/models/spree/shipment.rb | 2 ++ app/models/spree/shipping_method_category.rb | 2 ++ app/models/spree/shipping_rate.rb | 2 ++ app/models/spree/state.rb | 2 ++ app/models/spree/state_change.rb | 2 ++ app/models/spree/stock_item.rb | 2 ++ app/models/spree/stock_location.rb | 2 ++ app/models/spree/stock_movement.rb | 2 ++ app/models/spree/tax_rate.rb | 2 ++ app/models/spree/taxon.rb | 2 ++ app/models/spree/tokenized_permission.rb | 2 ++ app/models/spree/user.rb | 2 ++ app/models/spree/variant.rb | 2 ++ app/models/spree/zone_member.rb | 2 ++ app/models/stripe_account.rb | 2 ++ app/models/subscription.rb | 2 ++ app/models/subscription_line_item.rb | 2 ++ app/models/tag_rule.rb | 2 ++ app/models/variant_override.rb | 2 ++ app/models/voucher.rb | 2 ++ 45 files changed, 90 insertions(+) diff --git a/app/models/exchange.rb b/app/models/exchange.rb index 732d7a2f7d..8dbf3faf27 100644 --- a/app/models/exchange.rb +++ b/app/models/exchange.rb @@ -10,6 +10,8 @@ # shopfront (outgoing products). But the set of shown products can be smaller # than all incoming products. class Exchange < ApplicationRecord + self.belongs_to_required_by_default = false + acts_as_taggable belongs_to :order_cycle diff --git a/app/models/exchange_fee.rb b/app/models/exchange_fee.rb index e2eda0d611..7e73068be8 100644 --- a/app/models/exchange_fee.rb +++ b/app/models/exchange_fee.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class ExchangeFee < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :exchange belongs_to :enterprise_fee end diff --git a/app/models/exchange_variant.rb b/app/models/exchange_variant.rb index a3dfc01a40..094f1a8b50 100644 --- a/app/models/exchange_variant.rb +++ b/app/models/exchange_variant.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class ExchangeVariant < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :exchange belongs_to :variant, class_name: 'Spree::Variant' diff --git a/app/models/inventory_item.rb b/app/models/inventory_item.rb index 601172999d..d013ea52f2 100644 --- a/app/models/inventory_item.rb +++ b/app/models/inventory_item.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class InventoryItem < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :enterprise belongs_to :variant, class_name: "Spree::Variant" diff --git a/app/models/invoice.rb b/app/models/invoice.rb index b66b0c5ba5..b019463867 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class Invoice < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :order, class_name: 'Spree::Order' serialize :data, Hash before_validation :serialize_order diff --git a/app/models/order_cycle.rb b/app/models/order_cycle.rb index 4eb3bc9060..d9f8205ef3 100644 --- a/app/models/order_cycle.rb +++ b/app/models/order_cycle.rb @@ -3,6 +3,8 @@ require 'open_food_network/scope_variant_to_hub' class OrderCycle < ApplicationRecord + self.belongs_to_required_by_default = false + searchable_attributes :orders_open_at, :orders_close_at, :coordinator_id searchable_scopes :active, :inactive, :active_or_complete, :upcoming, :closed, :not_closed, :dated, :undated, :soonest_opening, :soonest_closing, :most_recently_closed diff --git a/app/models/order_cycle_schedule.rb b/app/models/order_cycle_schedule.rb index b3087cf11b..0f356cf980 100644 --- a/app/models/order_cycle_schedule.rb +++ b/app/models/order_cycle_schedule.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class OrderCycleSchedule < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :schedule belongs_to :order_cycle end diff --git a/app/models/producer_property.rb b/app/models/producer_property.rb index 171601cfa3..3cae30a59b 100644 --- a/app/models/producer_property.rb +++ b/app/models/producer_property.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class ProducerProperty < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :producer, class_name: 'Enterprise', touch: true belongs_to :property, class_name: 'Spree::Property' diff --git a/app/models/proxy_order.rb b/app/models/proxy_order.rb index 43638aee08..5908db5ade 100644 --- a/app/models/proxy_order.rb +++ b/app/models/proxy_order.rb @@ -5,6 +5,8 @@ # This reduces the need to keep Orders in sync with their parent Subscriptions class ProxyOrder < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :order, class_name: 'Spree::Order' belongs_to :subscription belongs_to :order_cycle diff --git a/app/models/report_rendering_options.rb b/app/models/report_rendering_options.rb index e94d77046b..feadbaf7ff 100644 --- a/app/models/report_rendering_options.rb +++ b/app/models/report_rendering_options.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class ReportRenderingOptions < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :user, class_name: "Spree::User" serialize :options, Hash end diff --git a/app/models/spree/address.rb b/app/models/spree/address.rb index 2b917f18cb..9aa847c861 100644 --- a/app/models/spree/address.rb +++ b/app/models/spree/address.rb @@ -4,6 +4,8 @@ module Spree class Address < ApplicationRecord include AddressDisplay + self.belongs_to_required_by_default = false + searchable_attributes :firstname, :lastname, :phone, :full_name searchable_associations :country, :state diff --git a/app/models/spree/adjustment.rb b/app/models/spree/adjustment.rb index 7ebacacafd..8c8bfb848e 100644 --- a/app/models/spree/adjustment.rb +++ b/app/models/spree/adjustment.rb @@ -31,6 +31,8 @@ module Spree class Adjustment < ApplicationRecord extend Spree::LocalizedNumber + self.belongs_to_required_by_default = false + # Deletion of metadata is handled in the database. # So we don't need the option `dependent: :destroy` as long as # AdjustmentMetadata has no destroy logic itself. diff --git a/app/models/spree/asset.rb b/app/models/spree/asset.rb index 168435c12f..062c661a20 100644 --- a/app/models/spree/asset.rb +++ b/app/models/spree/asset.rb @@ -2,6 +2,8 @@ module Spree class Asset < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :viewable, polymorphic: true, touch: true acts_as_list scope: :viewable end diff --git a/app/models/spree/calculator.rb b/app/models/spree/calculator.rb index fa7880f3ec..1b561d2549 100644 --- a/app/models/spree/calculator.rb +++ b/app/models/spree/calculator.rb @@ -2,6 +2,8 @@ module Spree class Calculator < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :calculable, polymorphic: true # This method must be overriden in concrete calculator. diff --git a/app/models/spree/credit_card.rb b/app/models/spree/credit_card.rb index d721f57fde..1d386bdac8 100644 --- a/app/models/spree/credit_card.rb +++ b/app/models/spree/credit_card.rb @@ -2,6 +2,8 @@ module Spree class CreditCard < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :payment_method belongs_to :user diff --git a/app/models/spree/inventory_unit.rb b/app/models/spree/inventory_unit.rb index aea1935d07..44a5c4acf9 100644 --- a/app/models/spree/inventory_unit.rb +++ b/app/models/spree/inventory_unit.rb @@ -2,6 +2,8 @@ module Spree class InventoryUnit < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :variant, -> { with_deleted }, class_name: "Spree::Variant" belongs_to :order, class_name: "Spree::Order" belongs_to :shipment, class_name: "Spree::Shipment" diff --git a/app/models/spree/line_item.rb b/app/models/spree/line_item.rb index 2ecd84f0ba..846b88ba3c 100644 --- a/app/models/spree/line_item.rb +++ b/app/models/spree/line_item.rb @@ -8,6 +8,8 @@ module Spree include VariantUnits::VariantAndLineItemNaming include LineItemStockChanges + self.belongs_to_required_by_default = false + searchable_attributes :price, :quantity, :order_id, :variant_id, :tax_category_id searchable_associations :order, :order_cycle, :variant, :product, :supplier, :tax_category searchable_scopes :with_tax, :without_tax diff --git a/app/models/spree/log_entry.rb b/app/models/spree/log_entry.rb index 449df8c4ec..060ba50ecd 100644 --- a/app/models/spree/log_entry.rb +++ b/app/models/spree/log_entry.rb @@ -2,6 +2,8 @@ module Spree class LogEntry < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :source, polymorphic: true # Fix for Spree #1767 diff --git a/app/models/spree/order.rb b/app/models/spree/order.rb index f7bb58e9ea..6fc2ec1ac0 100644 --- a/app/models/spree/order.rb +++ b/app/models/spree/order.rb @@ -13,6 +13,8 @@ module Spree include Balance include SetUnusedAddressFields + self.belongs_to_required_by_default = false + searchable_attributes :number, :state, :shipment_state, :payment_state, :distributor_id, :order_cycle_id, :email, :total, :customer_id searchable_associations :shipping_method, :bill_address, :distributor diff --git a/app/models/spree/payment.rb b/app/models/spree/payment.rb index 21d5a55166..c7f7ec54d0 100644 --- a/app/models/spree/payment.rb +++ b/app/models/spree/payment.rb @@ -7,6 +7,8 @@ module Spree include Spree::Payment::Processing extend Spree::LocalizedNumber + self.belongs_to_required_by_default = false + localize_number :amount IDENTIFIER_CHARS = (('A'..'Z').to_a + ('0'..'9').to_a - %w(0 1 I O)).freeze diff --git a/app/models/spree/payment_method.rb b/app/models/spree/payment_method.rb index 29802f9047..6113291103 100644 --- a/app/models/spree/payment_method.rb +++ b/app/models/spree/payment_method.rb @@ -7,6 +7,8 @@ module Spree include CalculatedAdjustments include PaymentMethodDistributors + self.belongs_to_required_by_default = false + acts_as_taggable acts_as_paranoid diff --git a/app/models/spree/price.rb b/app/models/spree/price.rb index 871b7886e3..9818ffd154 100644 --- a/app/models/spree/price.rb +++ b/app/models/spree/price.rb @@ -2,6 +2,8 @@ module Spree class Price < ApplicationRecord + self.belongs_to_required_by_default = false + acts_as_paranoid without_default_scope: true belongs_to :variant, -> { with_deleted }, class_name: 'Spree::Variant' diff --git a/app/models/spree/product.rb b/app/models/spree/product.rb index 606de8ceda..c9ca6ca063 100755 --- a/app/models/spree/product.rb +++ b/app/models/spree/product.rb @@ -25,6 +25,8 @@ module Spree class Product < ApplicationRecord include ProductStock + self.belongs_to_required_by_default = false + acts_as_paranoid searchable_attributes :supplier_id, :primary_taxon_id, :meta_keywords, :sku diff --git a/app/models/spree/product_property.rb b/app/models/spree/product_property.rb index 2f67dbcd9b..6e7f46bdd8 100644 --- a/app/models/spree/product_property.rb +++ b/app/models/spree/product_property.rb @@ -2,6 +2,8 @@ module Spree class ProductProperty < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :product, class_name: "Spree::Product", touch: true belongs_to :property, class_name: 'Spree::Property' diff --git a/app/models/spree/return_authorization.rb b/app/models/spree/return_authorization.rb index b173e7c679..42b9349e6d 100644 --- a/app/models/spree/return_authorization.rb +++ b/app/models/spree/return_authorization.rb @@ -2,6 +2,8 @@ module Spree class ReturnAuthorization < ApplicationRecord + self.belongs_to_required_by_default = false + acts_as_paranoid belongs_to :order, class_name: 'Spree::Order', inverse_of: :return_authorizations diff --git a/app/models/spree/shipment.rb b/app/models/spree/shipment.rb index c3c50e6898..f7428f2341 100644 --- a/app/models/spree/shipment.rb +++ b/app/models/spree/shipment.rb @@ -4,6 +4,8 @@ require 'ostruct' module Spree class Shipment < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :order, class_name: 'Spree::Order' belongs_to :address, class_name: 'Spree::Address' belongs_to :stock_location, class_name: 'Spree::StockLocation' diff --git a/app/models/spree/shipping_method_category.rb b/app/models/spree/shipping_method_category.rb index 0a32c66125..f04607fb34 100644 --- a/app/models/spree/shipping_method_category.rb +++ b/app/models/spree/shipping_method_category.rb @@ -2,6 +2,8 @@ module Spree class ShippingMethodCategory < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :shipping_method, class_name: 'Spree::ShippingMethod' belongs_to :shipping_category, class_name: 'Spree::ShippingCategory', inverse_of: :shipping_method_categories diff --git a/app/models/spree/shipping_rate.rb b/app/models/spree/shipping_rate.rb index 5116a2de6b..aef9a91b20 100644 --- a/app/models/spree/shipping_rate.rb +++ b/app/models/spree/shipping_rate.rb @@ -2,6 +2,8 @@ module Spree class ShippingRate < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :shipment, class_name: 'Spree::Shipment' belongs_to :shipping_method, class_name: 'Spree::ShippingMethod', inverse_of: :shipping_rates diff --git a/app/models/spree/state.rb b/app/models/spree/state.rb index 55bd4b5ae6..cbbd159a55 100644 --- a/app/models/spree/state.rb +++ b/app/models/spree/state.rb @@ -2,6 +2,8 @@ module Spree class State < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :country, class_name: 'Spree::Country' validates :country, :name, presence: true diff --git a/app/models/spree/state_change.rb b/app/models/spree/state_change.rb index 0e770096b5..e5401d5ea9 100644 --- a/app/models/spree/state_change.rb +++ b/app/models/spree/state_change.rb @@ -2,6 +2,8 @@ module Spree class StateChange < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :user belongs_to :stateful, polymorphic: true before_create :assign_user diff --git a/app/models/spree/stock_item.rb b/app/models/spree/stock_item.rb index 96950899b2..192a154b3d 100644 --- a/app/models/spree/stock_item.rb +++ b/app/models/spree/stock_item.rb @@ -2,6 +2,8 @@ module Spree class StockItem < ApplicationRecord + self.belongs_to_required_by_default = false + acts_as_paranoid belongs_to :stock_location, class_name: 'Spree::StockLocation', inverse_of: :stock_items diff --git a/app/models/spree/stock_location.rb b/app/models/spree/stock_location.rb index 7cf9e26d51..a3e7d588bf 100644 --- a/app/models/spree/stock_location.rb +++ b/app/models/spree/stock_location.rb @@ -2,6 +2,8 @@ module Spree class StockLocation < ApplicationRecord + self.belongs_to_required_by_default = false + has_many :stock_items, dependent: :delete_all, inverse_of: :stock_location has_many :stock_movements, through: :stock_items diff --git a/app/models/spree/stock_movement.rb b/app/models/spree/stock_movement.rb index 1409c8a606..1cf432df5c 100644 --- a/app/models/spree/stock_movement.rb +++ b/app/models/spree/stock_movement.rb @@ -2,6 +2,8 @@ module Spree class StockMovement < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :stock_item, class_name: 'Spree::StockItem' belongs_to :originator, polymorphic: true diff --git a/app/models/spree/tax_rate.rb b/app/models/spree/tax_rate.rb index 2936d37d37..f603db2c02 100644 --- a/app/models/spree/tax_rate.rb +++ b/app/models/spree/tax_rate.rb @@ -14,6 +14,8 @@ end module Spree class TaxRate < ApplicationRecord + self.belongs_to_required_by_default = false + acts_as_paranoid include CalculatedAdjustments diff --git a/app/models/spree/taxon.rb b/app/models/spree/taxon.rb index 49f89f0980..2ed96f4d57 100644 --- a/app/models/spree/taxon.rb +++ b/app/models/spree/taxon.rb @@ -2,6 +2,8 @@ module Spree class Taxon < ApplicationRecord + self.belongs_to_required_by_default = false + acts_as_nested_set dependent: :destroy belongs_to :taxonomy, class_name: 'Spree::Taxonomy', touch: true diff --git a/app/models/spree/tokenized_permission.rb b/app/models/spree/tokenized_permission.rb index e2d5329dec..7aea858d82 100644 --- a/app/models/spree/tokenized_permission.rb +++ b/app/models/spree/tokenized_permission.rb @@ -2,6 +2,8 @@ module Spree class TokenizedPermission < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :permissable, polymorphic: true end end diff --git a/app/models/spree/user.rb b/app/models/spree/user.rb index 1932542edc..f1d929332e 100644 --- a/app/models/spree/user.rb +++ b/app/models/spree/user.rb @@ -4,6 +4,8 @@ module Spree class User < ApplicationRecord include SetUnusedAddressFields + self.belongs_to_required_by_default = false + searchable_attributes :email devise :database_authenticatable, :token_authenticatable, :registerable, :recoverable, diff --git a/app/models/spree/variant.rb b/app/models/spree/variant.rb index d3215fddb0..74a0db5e60 100644 --- a/app/models/spree/variant.rb +++ b/app/models/spree/variant.rb @@ -11,6 +11,8 @@ module Spree include VariantUnits::VariantAndLineItemNaming include VariantStock + self.belongs_to_required_by_default = false + acts_as_paranoid searchable_attributes :sku, :display_as, :display_name diff --git a/app/models/spree/zone_member.rb b/app/models/spree/zone_member.rb index 45a28efebd..6065e7c4f6 100644 --- a/app/models/spree/zone_member.rb +++ b/app/models/spree/zone_member.rb @@ -2,6 +2,8 @@ module Spree class ZoneMember < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :zone, class_name: 'Spree::Zone', counter_cache: true, inverse_of: :zone_members belongs_to :zoneable, polymorphic: true diff --git a/app/models/stripe_account.rb b/app/models/stripe_account.rb index 5eaeb4f3f4..76a4487dfd 100644 --- a/app/models/stripe_account.rb +++ b/app/models/stripe_account.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class StripeAccount < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :enterprise validates :stripe_user_id, :stripe_publishable_key, presence: true validates :enterprise_id, uniqueness: true diff --git a/app/models/subscription.rb b/app/models/subscription.rb index 926bbf71d1..04e57d1a54 100644 --- a/app/models/subscription.rb +++ b/app/models/subscription.rb @@ -6,6 +6,8 @@ class Subscription < ApplicationRecord ALLOWED_PAYMENT_METHOD_TYPES = ["Spree::PaymentMethod::Check", "Spree::Gateway::StripeSCA"].freeze + self.belongs_to_required_by_default = false + searchable_attributes :shop_id, :canceled_at, :paused_at searchable_associations :shop searchable_scopes :active, :not_ended, :not_paused, :not_canceled diff --git a/app/models/subscription_line_item.rb b/app/models/subscription_line_item.rb index 1e30f567ad..a4a0b1ede5 100644 --- a/app/models/subscription_line_item.rb +++ b/app/models/subscription_line_item.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class SubscriptionLineItem < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :subscription, inverse_of: :subscription_line_items belongs_to :variant, -> { with_deleted }, class_name: 'Spree::Variant' diff --git a/app/models/tag_rule.rb b/app/models/tag_rule.rb index b1d5b83ef9..cdff7315b0 100644 --- a/app/models/tag_rule.rb +++ b/app/models/tag_rule.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class TagRule < ApplicationRecord + self.belongs_to_required_by_default = false + belongs_to :enterprise preference :customer_tags, :string, default: "" diff --git a/app/models/variant_override.rb b/app/models/variant_override.rb index 3c9f0bd85d..40f9a16a1a 100644 --- a/app/models/variant_override.rb +++ b/app/models/variant_override.rb @@ -6,6 +6,8 @@ class VariantOverride < ApplicationRecord extend Spree::LocalizedNumber include StockSettingsOverrideValidation + self.belongs_to_required_by_default = false + acts_as_taggable belongs_to :hub, class_name: 'Enterprise' diff --git a/app/models/voucher.rb b/app/models/voucher.rb index 109ffd2965..58df7538c8 100644 --- a/app/models/voucher.rb +++ b/app/models/voucher.rb @@ -1,6 +1,8 @@ # frozen_string_literal: false class Voucher < ApplicationRecord + self.belongs_to_required_by_default = false + acts_as_paranoid belongs_to :enterprise, optional: false