Added seeding for nutrients/readouts column views
This commit is contained in:
parent
c854fc535b
commit
ea8c70e1c0
@ -38,6 +38,12 @@ class BodyTrackersController < ApplicationController
|
||||
flash[:notice] += ", #{new_quantities > 0 ? new_quantities : "no" } new" \
|
||||
" #{'quantity'.pluralize(new_quantities)}"
|
||||
|
||||
ncv = @project.nutrients_column_view
|
||||
if ncv.quantities.count == 0
|
||||
ncv.quantities.append(@project.quantities.roots.first(6))
|
||||
ncv.save!
|
||||
end
|
||||
|
||||
# Sources
|
||||
available = @project.sources.pluck(:name)
|
||||
defaults = Source.where(project: nil).map do |s|
|
||||
|
@ -28,6 +28,7 @@ class Measurement < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
after_create :seed_column_view, if: -> {self.column_view.quantities.count == 0}
|
||||
after_save :cleanup_column_view, if: :name_changed?
|
||||
|
||||
# Destroy ColumnView after last Measurement destruction
|
||||
@ -62,6 +63,13 @@ class Measurement < ActiveRecord::Base
|
||||
|
||||
private
|
||||
|
||||
def seed_column_view
|
||||
quantities = self.project.quantities.joins(:readouts).includes(readouts: [:measurement])
|
||||
.where(measurements: {name: self.name}).first(6)
|
||||
self.column_view.quantities.append(quantities)
|
||||
self.column_view.save!
|
||||
end
|
||||
|
||||
# Copy/rename ColumnView on Measurement rename
|
||||
def cleanup_column_view
|
||||
old_column_view = self.project.column_views
|
||||
@ -70,7 +78,7 @@ class Measurement < ActiveRecord::Base
|
||||
|
||||
if self.project.measurements.exists?(name: self.name_was)
|
||||
self.column_view.quantities.append(old_column_view.quantities)
|
||||
self.save!
|
||||
self.column_view.save!
|
||||
else
|
||||
old_column_view.update!(name: self.name)
|
||||
end
|
||||
|
@ -16,6 +16,7 @@ class Quantity < ActiveRecord::Base
|
||||
acts_as_nested_set dependent: :destroy, scope: :project
|
||||
belongs_to :project, required: false
|
||||
has_and_belongs_to_many :column_views
|
||||
has_many :readouts
|
||||
|
||||
validates :name, presence: true, uniqueness: {scope: :project_id}
|
||||
validates :domain, inclusion: {in: domains.keys}
|
||||
|
Reference in New Issue
Block a user