Skip to content

Commit fcdce74

Browse files
committed
Remove early access and waiting list user charts from the admin metrics page
We no longer surface metrics for EarlyAccessUser or WaitingListUser in the admin UI. This removes the early_access_users and waiting_list_users actions (and their routes) from Admin::MetricsController, deletes their charts from app/views/admin/metrics/index.html.erb, and updates the system spec so it no longer expects #early-access-users or #waiting-list-users canvas elements.
1 parent 23a3e96 commit fcdce74

5 files changed

Lines changed: 0 additions & 123 deletions

File tree

app/controllers/admin/metrics_controller.rb

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,6 @@ class Admin::MetricsController < Admin::BaseController
66
policy.style_src(*policy.style_src, :unsafe_inline)
77
end
88

9-
def early_access_users
10-
active_scope = EarlyAccessUser.where(created_at: start_time..).group(:source)
11-
active_count = count_by_period(active_scope, :created_at)
12-
13-
deleted_scope = DeletedEarlyAccessUser.where(user_created_at: start_time..).group(:user_source)
14-
deleted_count = count_by_period(deleted_scope, :user_created_at)
15-
16-
render json: combine_data(active_count, deleted_count).chart_json
17-
end
18-
19-
def waiting_list_users
20-
active_scope = WaitingListUser.where(created_at: start_time..).group(:source)
21-
active_count = count_by_period(active_scope, :created_at)
22-
23-
deleted_scope = DeletedWaitingListUser.where(user_created_at: start_time..).group(:user_source)
24-
deleted_count = count_by_period(deleted_scope, :user_created_at)
25-
26-
render json: combine_data(active_count, deleted_count).chart_json
27-
end
28-
299
def conversations
3010
scope = Conversation.where(created_at: start_time..)
3111

@@ -157,8 +137,4 @@ def remove_empty_count_data(count_data)
157137
# so we reset any that
158138
count_data.values.all?(&:zero?) ? {} : count_data
159139
end
160-
161-
def combine_data(hash_a, hash_b)
162-
hash_a.merge(hash_b) { |_, a_value, b_value| a_value + b_value }
163-
end
164140
end

app/views/admin/metrics/index.html.erb

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,6 @@ common_chart_options = { refresh: 30 }
2121
],
2222
} %>
2323

24-
<div class="govuk-grid-row govuk-!-margin-bottom-8">
25-
<div class="govuk-grid-column-one-half" id="early-access-users">
26-
<h2 class="govuk-heading-l">Early access users</h2>
27-
<%= column_chart admin_metrics_early_access_users_path(period: @period),
28-
**(common_chart_options.merge(stacked: true, legend: legend_position)) %>
29-
</div>
30-
<div class="govuk-grid-column-one-half" id="waiting-list-users">
31-
<h2 class="govuk-heading-l">Waiting list users</h2>
32-
<%= column_chart admin_metrics_waiting_list_users_path(period: @period),
33-
**(common_chart_options.merge(stacked: true, legend: legend_position)) %>
34-
</div>
35-
</div>
36-
3724
<div class="govuk-grid-row govuk-!-margin-bottom-8">
3825
<div class="govuk-grid-column-one-half" id="conversations">
3926
<h2 class="govuk-heading-l">New conversations</h2>

config/routes.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,6 @@
7878
scope :metrics do
7979
get "", to: "metrics#index", as: :metrics
8080
scope defaults: { format: "json" }, constraints: html_json_constraint do
81-
get "early-access-users", to: "metrics#early_access_users", as: :metrics_early_access_users
82-
get "waiting-list-users", to: "metrics#waiting_list_users", as: :metrics_waiting_list_users
8381
get "conversations", to: "metrics#conversations", as: :metrics_conversations
8482
get "questions", to: "metrics#questions", as: :metrics_questions
8583
get "answer-feedback", to: "metrics#answer_feedback", as: :metrics_answer_feedback

spec/requests/admin/metrics_spec.rb

Lines changed: 0 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -20,86 +20,6 @@
2020
end
2121
end
2222

23-
describe "GET :early_access_users" do
24-
it "renders a successful JSON response" do
25-
get admin_metrics_early_access_users_path
26-
expect(response).to have_http_status(:ok)
27-
expect(response.headers["Content-Type"]).to match("application/json")
28-
expect(JSON.parse(response.body)).to eq([])
29-
end
30-
31-
it "returns data of the combined current and deleted early access users by source and hour" do
32-
create_list(:early_access_user, 5, created_at: 4.hours.ago, source: :admin_added)
33-
create_list(:early_access_user, 2, created_at: 1.hour.ago, source: :admin_added)
34-
create_list(:early_access_user, 3, created_at: 1.hour.ago, source: :instant_signup)
35-
create_list(:deleted_early_access_user, 2, user_created_at: 1.hour.ago, user_source: :instant_signup)
36-
create(:early_access_user, created_at: 25.hours.ago)
37-
create(:deleted_early_access_user, user_created_at: 25.hours.ago)
38-
39-
get admin_metrics_early_access_users_path
40-
41-
expect(JSON.parse(response.body)).to contain_exactly(
42-
{ "name" => "admin_added", "data" => counts_for_last_24_hours(hours_ago_4: 5, hours_ago_1: 2) },
43-
{ "name" => "instant_signup", "data" => counts_for_last_24_hours(hours_ago_1: 5) },
44-
)
45-
end
46-
47-
context "when period is last_7_days" do
48-
it "returns data of the combined current and deleted early access users by source and date" do
49-
create_list(:early_access_user, 5, created_at: 4.days.ago, source: :admin_added)
50-
create_list(:early_access_user, 2, created_at: 1.day.ago, source: :admin_added)
51-
create_list(:early_access_user, 3, created_at: 1.day.ago, source: :instant_signup)
52-
create_list(:deleted_early_access_user, 2, user_created_at: 1.day.ago, user_source: :instant_signup)
53-
54-
get admin_metrics_early_access_users_path(period: "last_7_days")
55-
56-
expect(JSON.parse(response.body)).to contain_exactly(
57-
{ "name" => "admin_added", "data" => counts_for_last_7_days(days_ago_4: 5, days_ago_1: 2) },
58-
{ "name" => "instant_signup", "data" => counts_for_last_7_days(days_ago_1: 5) },
59-
)
60-
end
61-
end
62-
end
63-
64-
describe "GET :waiting_list_users" do
65-
it "renders a successful JSON response" do
66-
get admin_metrics_waiting_list_users_path
67-
expect(response).to have_http_status(:ok)
68-
expect(response.headers["Content-Type"]).to match("application/json")
69-
expect(JSON.parse(response.body)).to eq([])
70-
end
71-
72-
it "returns data of the combined current and deleted waiting list users by source and hour" do
73-
create_list(:waiting_list_user, 2, created_at: 5.hours.ago, source: :admin_added)
74-
create(:deleted_waiting_list_user, user_created_at: 5.hours.ago, user_source: :admin_added)
75-
create_list(:deleted_waiting_list_user, 4, user_source: :insufficient_instant_places)
76-
create(:waiting_list_user, created_at: 25.hours.ago)
77-
create(:deleted_waiting_list_user, user_created_at: 25.hours.ago)
78-
79-
get admin_metrics_waiting_list_users_path
80-
81-
expect(JSON.parse(response.body)).to contain_exactly(
82-
{ "name" => "admin_added", "data" => counts_for_last_24_hours(hours_ago_5: 3) },
83-
{ "name" => "insufficient_instant_places", "data" => counts_for_last_24_hours(hours_ago_0: 4) },
84-
)
85-
end
86-
87-
context "when period is last_7_days" do
88-
it "returns data of the combined current and deleted waiting list users by source and date" do
89-
create_list(:waiting_list_user, 2, created_at: 5.days.ago, source: :admin_added)
90-
create(:deleted_waiting_list_user, user_created_at: 5.days.ago, user_source: :admin_added)
91-
create_list(:deleted_waiting_list_user, 4, user_source: :insufficient_instant_places)
92-
93-
get admin_metrics_waiting_list_users_path(period: "last_7_days")
94-
95-
expect(JSON.parse(response.body)).to contain_exactly(
96-
{ "name" => "admin_added", "data" => counts_for_last_7_days(days_ago_5: 3) },
97-
{ "name" => "insufficient_instant_places", "data" => counts_for_last_7_days(days_ago_0: 4) },
98-
)
99-
end
100-
end
101-
end
102-
10323
describe "GET :conversations" do
10424
it "renders a successful JSON response" do
10525
get admin_metrics_conversations_path

spec/system/admin/user_views_metrics_spec.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
end
1414

1515
def and_there_has_been_activity
16-
create_list(:early_access_user, 2, created_at: 2.hours.ago)
17-
create_list(:waiting_list_user, 2)
1816
create_list(:question, 2)
1917
create_list(:answer_feedback, 1, created_at: 1.hour.ago)
2018
create_list(:answer, 2, created_at: 6.hours.ago, status: :unanswerable_llm_cannot_answer)
@@ -43,8 +41,6 @@ def and_i_browse_to_the_metrics_section
4341
def then_i_can_see_activity
4442
# We're relying on the rendering of a successful chart results in a canvas
4543
# element, unclear how to assert correct chart
46-
expect(page).to have_selector("#early-access-users canvas")
47-
expect(page).to have_selector("#waiting-list-users canvas")
4844
expect(page).to have_selector("#conversations canvas")
4945
expect(page).to have_selector("#questions canvas")
5046
expect(page).to have_selector("#answer-feedback canvas")

0 commit comments

Comments
 (0)