summaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-09-04 20:55:03 +0200
committerMarius Peter <dev@marius-peter.com>2025-09-04 20:55:03 +0200
commit8ba568ae0ebe715b5da453681eb141886f1977a8 (patch)
tree3bf3a3d5b41286d0a6da8895857314393bae1db2 /app/controllers
parent8f8cea2a0408918629dc8bab03495530861a71f3 (diff)
Simpler, Better, Faster... Stronger
Start small, address critical customer needs, /then/ scale.
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/beds_controller.rb66
-rw-r--r--app/controllers/dashboard_controller.rb14
-rw-r--r--app/controllers/fertilizer_products_controller.rb70
-rw-r--r--app/controllers/fertilizers_controller.rb70
-rw-r--r--app/controllers/nutrient_measurement_controller.rb4
-rw-r--r--app/controllers/nutrient_profiles_controller.rb (renamed from app/controllers/crops_controller.rb)2
-rw-r--r--app/controllers/rafts_controller.rb29
-rw-r--r--app/controllers/recipes_controller.rb8
8 files changed, 9 insertions, 254 deletions
diff --git a/app/controllers/beds_controller.rb b/app/controllers/beds_controller.rb
deleted file mode 100644
index 2e4d94c..0000000
--- a/app/controllers/beds_controller.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-class BedsController < ApplicationController
- before_action :set_bed, only: %i[ edit update ]
- before_action :get_crops, only: %i[ index edit update ]
-
- def index
- @beds = Bed.all
- end
-
- def edit
- end
-
- def update
- if @bed.update(bed_params)
- redirect_to beds_path, notice: "Bed #{@bed.id} successfully updated."
- else
- render :edit, status: :unprocessable_entity
- end
- end
-
- def bulk_assign_crops
- crop = Crop.find(params[:crop_id])
- Raft.update_all(crop_id: crop.id)
- redirect_back fallback_location: root_path, notice: "All rafts set to #{crop.name}."
- end
-
-
- def reset_seed_crops
- # mirrors seed logic
- tomatoes = Crop.find_by!(name: "tomatoes")
- hot_peppers = Crop.find_by!(name: "hot peppers")
- chives = Crop.find_by!(name: "chives")
- italian_basil = Crop.find_by!(name: "italian basil")
- cabbage_chinese = Crop.find_by!(name: "cabbage, chinese")
- lettuce = Crop.find_by!(name: "lettuce")
-
- Bed.includes(:rafts).find_each do |bed|
- default_crop = case bed.location
- when 1..2 then tomatoes
- when 3 then hot_peppers
- when 4 then chives
- when 5 then italian_basil
- when 6..7 then cabbage_chinese
- else lettuce
- end
- bed.rafts.update_all(crop_id: default_crop.id)
- end
- redirect_back fallback_location: root_path, notice: "Raft crops reset to default seed layout."
- end
-
- private
-
- def set_bed
- @bed = Bed.find(params[:id])
- end
-
- def get_crops
- @crops = Crop.order(:name)
- end
-
- def bed_params
- params.require(:bed).permit(
- :location,
- rafts_attributes: %i[id crop_id]
- )
- end
-end
diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb
index 4e9d560..6f323a9 100644
--- a/app/controllers/dashboard_controller.rb
+++ b/app/controllers/dashboard_controller.rb
@@ -1,17 +1,19 @@
class DashboardController < ApplicationController
def index
# Raft allocation by crop type
- @raft_data = raft_data_series
+ # @raft_data = raft_data_series
+
+ @nutrient_profiles = NutrientProfile.order(:name)
# Nutrient target table
- @latest_measurement = NutrientMeasurement.order(measured_on: :desc, created_at: :desc).first
- @target = TargetNutrientCalculator.call
+ # @latest_measurement = NutrientMeasurement.order(measured_on: :desc, created_at: :desc).first
+ # @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 = measurement_data_series(:nno3, :p, :k)
- @ammonium_measurement_data = measurement_data_series(:nnh4)
+ # @npk_measurement_data = measurement_data_series(:nno3, :p, :k)
+ # @ammonium_measurement_data = measurement_data_series(:nnh4)
end
private
diff --git a/app/controllers/fertilizer_products_controller.rb b/app/controllers/fertilizer_products_controller.rb
deleted file mode 100644
index ff0d945..0000000
--- a/app/controllers/fertilizer_products_controller.rb
+++ /dev/null
@@ -1,70 +0,0 @@
-class FertilizerProductsController < ApplicationController
- before_action :set_fertilizer_product, only: %i[ show edit update destroy ]
-
- # GET /fertilizer_products or /fertilizer_products.json
- def index
- @fertilizer_products = FertilizerProduct.all
- end
-
- # GET /fertilizer_products/1 or /fertilizer_products/1.json
- def show
- end
-
- # GET /fertilizer_products/new
- def new
- @fertilizer_product = FertilizerProduct.new
- end
-
- # GET /fertilizer_products/1/edit
- def edit
- end
-
- # POST /fertilizer_products or /fertilizer_products.json
- def create
- @fertilizer_product = FertilizerProduct.new(fertilizer_product_params)
-
- respond_to do |format|
- if @fertilizer_product.save
- format.html { redirect_to @fertilizer_product, notice: "Fertilizer product was successfully created." }
- format.json { render :show, status: :created, location: @fertilizer_product }
- else
- format.html { render :new, status: :unprocessable_entity }
- format.json { render json: @fertilizer_product.errors, status: :unprocessable_entity }
- end
- end
- end
-
- # PATCH/PUT /fertilizer_products/1 or /fertilizer_products/1.json
- def update
- respond_to do |format|
- if @fertilizer_product.update(fertilizer_product_params)
- format.html { redirect_to @fertilizer_product, notice: "Fertilizer product was successfully updated.", status: :see_other }
- format.json { render :show, status: :ok, location: @fertilizer_product }
- else
- format.html { render :edit, status: :unprocessable_entity }
- format.json { render json: @fertilizer_product.errors, status: :unprocessable_entity }
- end
- end
- end
-
- # DELETE /fertilizer_products/1 or /fertilizer_products/1.json
- def destroy
- @fertilizer_product.destroy!
-
- respond_to do |format|
- format.html { redirect_to fertilizer_products_path, notice: "Fertilizer product was successfully destroyed.", status: :see_other }
- format.json { head :no_content }
- end
- end
-
- private
- # Use callbacks to share common setup or constraints between actions.
- def set_fertilizer_product
- @fertilizer_product = FertilizerProduct.find(params.expect(:id))
- end
-
- # Only allow a list of trusted parameters through.
- def fertilizer_product_params
- params.expect(fertilizer_product: [ :name, :purity ])
- end
-end
diff --git a/app/controllers/fertilizers_controller.rb b/app/controllers/fertilizers_controller.rb
deleted file mode 100644
index 040c462..0000000
--- a/app/controllers/fertilizers_controller.rb
+++ /dev/null
@@ -1,70 +0,0 @@
-class FertilizersController < ApplicationController
- before_action :set_fertilizer, only: %i[ show edit update destroy ]
-
- # GET /fertilizers or /fertilizers.json
- def index
- @fertilizers = Fertilizer.all
- end
-
- # GET /fertilizers/1 or /fertilizers/1.json
- def show
- end
-
- # GET /fertilizers/new
- def new
- @fertilizer = Fertilizer.new
- end
-
- # GET /fertilizers/1/edit
- def edit
- end
-
- # POST /fertilizers or /fertilizers.json
- def create
- @fertilizer = Fertilizer.new(fertilizer_params)
-
- respond_to do |format|
- if @fertilizer.save
- format.html { redirect_to @fertilizer, notice: "Fertilizer was successfully created." }
- format.json { render :show, status: :created, location: @fertilizer }
- else
- format.html { render :new, status: :unprocessable_entity }
- format.json { render json: @fertilizer.errors, status: :unprocessable_entity }
- end
- end
- end
-
- # PATCH/PUT /fertilizers/1 or /fertilizers/1.json
- def update
- respond_to do |format|
- if @fertilizer.update(fertilizer_params)
- format.html { redirect_to @fertilizer, notice: "Fertilizer was successfully updated.", status: :see_other }
- format.json { render :show, status: :ok, location: @fertilizer }
- else
- format.html { render :edit, status: :unprocessable_entity }
- format.json { render json: @fertilizer.errors, status: :unprocessable_entity }
- end
- end
- end
-
- # DELETE /fertilizers/1 or /fertilizers/1.json
- def destroy
- @fertilizer.destroy!
-
- respond_to do |format|
- format.html { redirect_to fertilizers_path, notice: "Fertilizer was successfully destroyed.", status: :see_other }
- format.json { head :no_content }
- end
- end
-
- private
- # Use callbacks to share common setup or constraints between actions.
- def set_fertilizer
- @fertilizer = Fertilizer.find(params.expect(:id))
- end
-
- # Only allow a list of trusted parameters through.
- def fertilizer_params
- params.expect(fertilizer: [ :name, :formula, :nno3, :nnh4, :p, :k, :ca, :mg, :s, :na, :cl, :si, :fe, :zn, :b, :mn, :cu, :mo ])
- end
-end
diff --git a/app/controllers/nutrient_measurement_controller.rb b/app/controllers/nutrient_measurement_controller.rb
deleted file mode 100644
index 6d26bfa..0000000
--- a/app/controllers/nutrient_measurement_controller.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-class NutrientMeasurementController < ApplicationController
- def index
- end
-end
diff --git a/app/controllers/crops_controller.rb b/app/controllers/nutrient_profiles_controller.rb
index 951d380..99489d5 100644
--- a/app/controllers/crops_controller.rb
+++ b/app/controllers/nutrient_profiles_controller.rb
@@ -1,4 +1,4 @@
-class CropsController < ApplicationController
+class NutrientProfilesController < ApplicationController
before_action :set_crop, only: %i[ show edit update destroy ]
def index
diff --git a/app/controllers/rafts_controller.rb b/app/controllers/rafts_controller.rb
deleted file mode 100644
index c1c8a72..0000000
--- a/app/controllers/rafts_controller.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-class RaftsController < ApplicationController
- before_action :set_raft, only: %i[ edit update ]
- before_action :set_crop, only: %i[ edit update ]
-
- def edit
- end
-
- def update
- if @raft.update(raft_params)
- redirect_to beds_path, notice: "Raft #{@raft.id} successfully updated."
- else
- render :edit, status: :unprocessable_entity
- end
- end
-
- private
-
- def set_raft
- @raft = Raft.find(params[:id])
- end
-
- def set_crop
- @crops = Crop.order(:name)
- end
-
- def raft_params
- params.require(:raft).permit(:location, :bed_id, :crop_id)
- end
-end
diff --git a/app/controllers/recipes_controller.rb b/app/controllers/recipes_controller.rb
deleted file mode 100644
index bcc29e7..0000000
--- a/app/controllers/recipes_controller.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-class RecipesController < ApplicationController
- def show
- @latest = NutrientMeasurement.order(:measured_on).last || NutrientMeasurement.new
- @target = TargetNutrientCalculator.call
- volume = (params[:volume].presence || 100_000).to_i
- @recipe = FertilizerRecipeCalculator.call(@latest, @target, water_volume_l: volume)
- end
-end
Copyright 2019--2025 Marius PETER