Added test_defaults_seed_and_load_into_empty_project
Added :defaults scopes to models Added :sources and :formulas fixtures Loading defaults from seeds.rb using rake task instead of migration
This commit is contained in:
@@ -6,6 +6,8 @@ class Formula < ActiveRecord::Base
|
||||
belongs_to :quantity, inverse_of: :formula, required: true
|
||||
belongs_to :unit
|
||||
|
||||
scope :defaults, -> { includes(:quantity).where(quantities: {project: nil}) }
|
||||
|
||||
validates :code, presence: true
|
||||
validate do
|
||||
messages = parse.each { |message, params| errors.add(:code, message, params) }
|
||||
@@ -92,7 +94,7 @@ class Formula < ActiveRecord::Base
|
||||
# e.g. during import of defaults (so impossible to use recursive sql instead)
|
||||
q_names = identifiers.map { |i| i.split('::').last }
|
||||
q_paths = {}
|
||||
(quantity.project.try(&:quantities) || Quantity.where(project: nil))
|
||||
(quantity.project.try(&:quantities) || Quantity.defaults)
|
||||
.select { |q| q_names.include?(q.name) }.each do |q|
|
||||
|
||||
# NOTE: after upgrade to Ruby 2.7 replace with Enumerator#produce
|
||||
|
||||
@@ -13,6 +13,8 @@ class Quantity < ActiveRecord::Base
|
||||
has_many :values, class_name: 'QuantityValue', dependent: :restrict_with_error
|
||||
has_many :exposures, dependent: :destroy
|
||||
|
||||
scope :defaults, -> { where(project: nil) }
|
||||
|
||||
has_one :formula, inverse_of: :quantity, dependent: :destroy, validate: true
|
||||
accepts_nested_attributes_for :formula, allow_destroy: true,
|
||||
reject_if: proc { |attrs| attrs['id'].blank? && attrs['code'].blank? }
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
class Source < ActiveRecord::Base
|
||||
belongs_to :project, required: false
|
||||
|
||||
scope :defaults, -> { where(project: nil) }
|
||||
|
||||
validates :name, presence: true, uniqueness: {scope: :project_id}
|
||||
|
||||
# Has to go before any 'dependent:' association
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
class Unit < ActiveRecord::Base
|
||||
belongs_to :project, required: false
|
||||
|
||||
scope :defaults, -> { where(project: nil) }
|
||||
|
||||
validates :shortname, presence: true, uniqueness: {scope: :project_id}
|
||||
|
||||
# Has to go before any 'dependent:' association
|
||||
|
||||
Reference in New Issue
Block a user