summaryrefslogtreecommitdiff
path: root/app/controllers/dashboard_controller.rb
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-09-08 21:21:56 +0200
committerMarius Peter <dev@marius-peter.com>2025-09-08 21:21:56 +0200
commit7116826b854188604e21e2a613ac6672b6fd81f3 (patch)
tree33150bf2e04e69b8e1fa7d37901d2643b1955534 /app/controllers/dashboard_controller.rb
parent8ba568ae0ebe715b5da453681eb141886f1977a8 (diff)
Create Target and nutrient target table on dashboard.
Diffstat (limited to 'app/controllers/dashboard_controller.rb')
-rw-r--r--app/controllers/dashboard_controller.rb27
1 files changed, 15 insertions, 12 deletions
diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb
index 6f323a9..a315eda 100644
--- a/app/controllers/dashboard_controller.rb
+++ b/app/controllers/dashboard_controller.rb
@@ -10,10 +10,22 @@ class DashboardController < ApplicationController
# @target = TargetNutrientCalculator.call
# Measurement history table
- # @measurements = NutrientMeasurement.order(measured_on: :desc).limit(10)
+ @measurements = NutrientMeasurement.order(measured_on: :desc).limit(10)
+ @npk_measurement_data = NutrientMeasurement.data_series_for(:nno3, :p, :k)
+ @ammonium_measurement_data = NutrientMeasurement.data_series_for(:nnh4)
- # @npk_measurement_data = measurement_data_series(:nno3, :p, :k)
- # @ammonium_measurement_data = measurement_data_series(:nnh4)
+ @weighted = Target.first.weighted_requirements # => { "nno3"=>..., "p"=>..., ... }
+
+ last = NutrientMeasurement.order(measured_on: :desc, created_at: :desc).first
+ @latest_measurements = {}
+
+ if last
+ # Use the same keys as NutrientProfile to keep naming consistent.
+ keys = (NutrientProfile::NUTRIENT_KEYS rescue []).map(&:to_s)
+ keys.each do |k|
+ @latest_measurements[k] = last.send(k) if last.respond_to?(k)
+ end
+ end
end
private
@@ -35,13 +47,4 @@ class DashboardController < ApplicationController
unassigned, assigned = data_series.partition { |s| s[:name].casecmp("unassigned").zero? }
assigned + unassigned
end
-
- def measurement_data_series(*nutrients)
- nutrients.map do |formula|
- { name: Nutrient.find_by!(formula:).name,
- data: NutrientMeasurement
- .order(:measured_on)
- .pluck(:measured_on, formula) }
- end
- end
end
Copyright 2019--2025 Marius PETER