aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-11-06 16:55:51 -0500
committerRaghuram Subramani <raghus2247@gmail.com>2025-11-06 16:55:51 -0500
commitf65179959cf3f5e9c9dabe5b039bc20e62ce8fd1 (patch)
tree0be7e638211c689884b1489decc20b4d68466140
parent372d456ae300adc0f321739182b897fbe2164937 (diff)
clients: show visits' logger
-rw-r--r--app/controllers/clients_controller.rb2
-rw-r--r--app/controllers/visits_controller.rb1
-rw-r--r--app/models/client.rb5
-rw-r--r--app/models/user.rb2
-rw-r--r--app/models/visit.rb1
-rw-r--r--app/views/clients/intake_form.html.erb14
-rw-r--r--app/views/clients/visit_history.turbo_stream.haml11
-rw-r--r--db/migrate/20251106214319_add_user_to_visits.rb5
-rw-r--r--db/schema.rb5
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 &amp; 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})"
+ &nbsp;
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