From ea8c70e1c09f3241381e56a079ad0dbf6525fd30 Mon Sep 17 00:00:00 2001 From: cryptogopher Date: Thu, 26 Dec 2019 22:18:43 +0100 Subject: [PATCH] Added seeding for nutrients/readouts column views --- app/controllers/body_trackers_controller.rb | 6 ++++++ app/models/measurement.rb | 10 +++++++++- app/models/quantity.rb | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/controllers/body_trackers_controller.rb b/app/controllers/body_trackers_controller.rb index 97a40ad..b21dd30 100644 --- a/app/controllers/body_trackers_controller.rb +++ b/app/controllers/body_trackers_controller.rb @@ -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| diff --git a/app/models/measurement.rb b/app/models/measurement.rb index 64d6e3f..f392bcc 100644 --- a/app/models/measurement.rb +++ b/app/models/measurement.rb @@ -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 diff --git a/app/models/quantity.rb b/app/models/quantity.rb index 49f6d00..eab2dfa 100644 --- a/app/models/quantity.rb +++ b/app/models/quantity.rb @@ -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}