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