1
0

Added seeding for nutrients/readouts column views

This commit is contained in:
cryptogopher 2019-12-26 22:18:43 +01:00
parent c854fc535b
commit ea8c70e1c0
3 changed files with 16 additions and 1 deletions

View File

@ -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|

View File

@ -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

View File

@ -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}