diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2025-11-06 16:55:51 -0500 |
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-11-06 16:55:51 -0500 |
| commit | f65179959cf3f5e9c9dabe5b039bc20e62ce8fd1 (patch) | |
| tree | 0be7e638211c689884b1489decc20b4d68466140 | |
| parent | 372d456ae300adc0f321739182b897fbe2164937 (diff) | |
clients: show visits' logger
| -rw-r--r-- | app/controllers/clients_controller.rb | 2 | ||||
| -rw-r--r-- | app/controllers/visits_controller.rb | 1 | ||||
| -rw-r--r-- | app/models/client.rb | 5 | ||||
| -rw-r--r-- | app/models/user.rb | 2 | ||||
| -rw-r--r-- | app/models/visit.rb | 1 | ||||
| -rw-r--r-- | app/views/clients/intake_form.html.erb | 14 | ||||
| -rw-r--r-- | app/views/clients/visit_history.turbo_stream.haml | 11 | ||||
| -rw-r--r-- | db/migrate/20251106214319_add_user_to_visits.rb | 5 | ||||
| -rw-r--r-- | db/schema.rb | 5 |
9 files changed, 25 insertions, 21 deletions
diff --git a/app/controllers/clients_controller.rb b/app/controllers/clients_controller.rb index 9fc96c4..95df254 100644 --- a/app/controllers/clients_controller.rb +++ b/app/controllers/clients_controller.rb @@ -17,7 +17,7 @@ class ClientsController < ApplicationController def show @client = Client - .includes(:household_members, :visits) + .includes(:household_members) .find_by(uuid: params[:uuid]) if @client.nil? diff --git a/app/controllers/visits_controller.rb b/app/controllers/visits_controller.rb index f374adc..926b9d7 100644 --- a/app/controllers/visits_controller.rb +++ b/app/controllers/visits_controller.rb @@ -2,6 +2,7 @@ class VisitsController < ApplicationController def create @visit = Visit.new(visit_params) + @visit.user_id = Current.user.id if @visit.save redirect_to dashboard_index_path, notice: 'Visit Logged!' diff --git a/app/models/client.rb b/app/models/client.rb index 1501485..205a4d7 100644 --- a/app/models/client.rb +++ b/app/models/client.rb @@ -14,11 +14,10 @@ class Client < ApplicationRecord def visit_history vs = visits .order(created_at: :desc) - .pluck(:created_at) Hash[ - vs.group_by(&:year).map{|y, items| - [y, items.group_by { |d| d.strftime('%B') } ] + vs.group_by { |visit| visit.created_at.year }.map{ |y, items| + [y, items.group_by { |v| v.created_at.strftime('%B') } ] } ] end diff --git a/app/models/user.rb b/app/models/user.rb index fa25881..92ab05b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -5,4 +5,6 @@ class User < ApplicationRecord normalizes :username, with: ->(e) { e.strip.downcase } enum :role, %i[ staff admin ] + + has_many :visits end diff --git a/app/models/visit.rb b/app/models/visit.rb index 9b8b4d0..647d362 100644 --- a/app/models/visit.rb +++ b/app/models/visit.rb @@ -1,3 +1,4 @@ class Visit < ApplicationRecord belongs_to :client + belongs_to :user end diff --git a/app/views/clients/intake_form.html.erb b/app/views/clients/intake_form.html.erb index cf454b0..801fd7b 100644 --- a/app/views/clients/intake_form.html.erb +++ b/app/views/clients/intake_form.html.erb @@ -31,15 +31,7 @@ height: 60px; border: 1px solid #000; margin-top: 5px; - } - .visit-table { - width: 100%; - margin-top: 10px; - } - .visit-table td { - border: none; - padding: 3px; - width: 50%; + resize: none; } footer { text-align: left; @@ -89,10 +81,10 @@ <div class="form-section"> <p><strong>If you are authorizing someone else to pick up on your behalf, please print name below or attach proper documentation.</strong></p> <label>Additional Notes & Comments:</label> - <textarea class="notes"></textarea> + <textarea class="notes" disabled><%= @client.notes %></textarea> </div> -<table class="visit-table"> +<table> <tr> <td>Date of Visit _______ Staff Initials _______</td> <td>Date of Visit _______ Staff Initials _______</td> diff --git a/app/views/clients/visit_history.turbo_stream.haml b/app/views/clients/visit_history.turbo_stream.haml index d10f0b9..7d1c1a3 100644 --- a/app/views/clients/visit_history.turbo_stream.haml +++ b/app/views/clients/visit_history.turbo_stream.haml @@ -1,10 +1,11 @@ = turbo_stream.replace 'show_history' do %article - - @visits.each do |year, months| + - @visits.each do |year, items| %b= year - - months.each do |month, dates| + - items.each do |month, visits| %p - = "#{month} (#{dates.count}):" - - dates.each do |date| - = date.day.ordinalize + = "#{month} (#{visits.count}):" + - visits.each do |visit| + = "#{visit.created_at.day.ordinalize} (#{visit.user.username})" + diff --git a/db/migrate/20251106214319_add_user_to_visits.rb b/db/migrate/20251106214319_add_user_to_visits.rb new file mode 100644 index 0000000..5991aff --- /dev/null +++ b/db/migrate/20251106214319_add_user_to_visits.rb @@ -0,0 +1,5 @@ +class AddUserToVisits < ActiveRecord::Migration[8.1] + def change + add_reference :visits, :user, null: false, foreign_key: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 904f990..9565aa7 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.1].define(version: 2025_11_03_175602) do +ActiveRecord::Schema[8.1].define(version: 2025_11_06_214319) do # These are extensions that must be enabled in order to support this database enable_extension "pg_catalog.plpgsql" @@ -60,11 +60,14 @@ ActiveRecord::Schema[8.1].define(version: 2025_11_03_175602) do t.bigint "client_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.bigint "user_id", null: false t.index ["client_id"], name: "index_visits_on_client_id" t.index ["created_at"], name: "index_visits_on_created_at" + t.index ["user_id"], name: "index_visits_on_user_id" end add_foreign_key "household_members", "clients" add_foreign_key "sessions", "users" add_foreign_key "visits", "clients" + add_foreign_key "visits", "users" end |
