From e474351ae49a963a057fd79b377706b8e7d15ada Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Mon, 14 May 2018 21:31:14 +0200 Subject: [PATCH] inactive users report is not used anymore --- app/models/report.rb | 15 ------ app/models/user.rb | 45 ---------------- config/locales/server.en.yml | 5 -- config/locales/server.fr.yml | 5 -- spec/models/report_spec.rb | 53 ------------------- .../fixtures/inactive-users.js.es6 | 19 ------- 6 files changed, 142 deletions(-) delete mode 100644 test/javascripts/fixtures/inactive-users.js.es6 diff --git a/app/models/report.rb b/app/models/report.rb index d995bbb047..ddb6fe42f8 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -148,21 +148,6 @@ class Report end end - def self.report_inactive_users(report) - report.data = [] - - data = User.real.count_by_inactivity(report.start_date, report.end_date) - - data.each do |data_point| - report.data << { x: data_point["date"], y: data_point["count"] } - end - - unless report.data.blank? - report.prev30Days = report.data.first[:y] - report.total = report.data.last[:y] - end - end - def self.report_new_contributors(report) report.data = [] diff --git a/app/models/user.rb b/app/models/user.rb index 2305cd32c3..2b8685f6a2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -835,51 +835,6 @@ class User < ActiveRecord::Base (tl_badge + other_badges).take(limit) end - def self.count_by_inactivity(start_date, end_date) - aggregation_unit = aggregation_unit_for_period(start_date, end_date) - - sql = <<~SQL - SELECT - date_trunc('#{aggregation_unit}', generated_date) :: DATE AS "date", - max("count") AS "count" - FROM ( - SELECT - d.generated_date, - COUNT(1) AS "count" - FROM (SELECT generate_series(:start_date, :end_date, '1 day' :: INTERVAL) :: DATE AS generated_date) d - JOIN users u ON (u.created_at :: DATE <= d.generated_date) - WHERE u.active AND - u.id > 0 AND - NOT EXISTS( - SELECT 1 - FROM user_custom_fields ucf - WHERE - ucf.user_id = u.id AND - ucf.name = 'master_id' AND - ucf.value :: int > 0 - ) AND - NOT EXISTS( - SELECT 1 - FROM user_visits v - WHERE v.visited_at BETWEEN (d.generated_date - INTERVAL '89 days') :: DATE AND d.generated_date - AND v.user_id = u.id - ) AND - NOT EXISTS( - SELECT 1 - FROM incoming_emails e - WHERE e.user_id = u.id AND - e.post_id IS NOT NULL AND - e.created_at :: DATE BETWEEN (d.generated_date - INTERVAL '89 days') :: DATE AND d.generated_date - ) - GROUP BY d.generated_date - ) AS x - GROUP BY date_trunc('#{aggregation_unit}', generated_date) :: DATE - ORDER BY date_trunc('#{aggregation_unit}', generated_date) :: DATE - SQL - - exec_sql(sql, start_date: start_date, end_date: end_date).to_a - end - def self.count_by_signup_date(start_date = nil, end_date = nil, group_id = nil) result = self diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index f49749e988..028ab227b7 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -852,11 +852,6 @@ en: xaxis: "Day" yaxis: "Number of new contributors" description: "Number of users who made their first post during this period" - inactive_users: - title: "Inactive Users" - xaxis: "Day" - yaxis: "Number of new inactive users" - description: "Number of users that haven’t logged on for the last 3 months" dau_by_mau: title: "DAU/MAU" xaxis: "Day" diff --git a/config/locales/server.fr.yml b/config/locales/server.fr.yml index 8cdda41f5b..0e5dcdb269 100644 --- a/config/locales/server.fr.yml +++ b/config/locales/server.fr.yml @@ -767,11 +767,6 @@ fr: xaxis: "Jour" yaxis: "Nombre de nouveaux contributeurs" description: "Nombre d'utilisateurs qui ont fait leur première contribution durant cette période" - inactive_users: - title: "Utilisateurs inactifs" - xaxis: "Jour" - yaxis: "Nombre de nouveaux utilisateurs inactifs" - description: "Nombre d'utilisateurs ne s'étant pas connectés dans les derniers 3 mois" dau_by_mau: title: "DAU/MAU" xaxis: "Jour" diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb index ba67a0a732..0da13d9443 100644 --- a/spec/models/report_spec.rb +++ b/spec/models/report_spec.rb @@ -435,57 +435,4 @@ describe Report do expect(r.data[0][:y]).to eq(1) end end - - describe "inactive users" do - context "no activity" do - it "returns an empty report" do - report = Report.find('inactive_users') - expect(report.data).to be_blank - end - end - - context "with different users/visits" do - before do - freeze_time - - @arpit = Fabricate(:user, created_at: 200.days.ago) - @sam = Fabricate(:user, created_at: 200.days.ago) - @robin = Fabricate(:user, created_at: 200.days.ago) - @michael = Fabricate(:user, created_at: 200.days.ago) - @gerhard = Fabricate(:user, created_at: 200.days.ago) - end - - it "returns all users as inactive" do - report = Report.find('inactive_users') - expect(report.data.first[:y]).to eq(5) - expect(report.data.last[:y]).to eq(5) - end - - it "correctly returns inactive users" do - @arpit.user_visits.create(visited_at: 100.days.ago) - @sam.user_visits.create(visited_at: 100.days.ago) - report = Report.find('inactive_users') - expect(report.data.first[:y]).to eq(3) - expect(report.data.last[:y]).to eq(5) - expect(report.prev30Days).to eq(3) - expect(report.total).to eq(5) - - @arpit.user_visits.create(visited_at: 80.days.ago) - report = Report.find('inactive_users') - expect(report.data.first[:y]).to eq(3) - expect(report.data.last[:y]).to eq(4) - - @sam.user_visits.create(visited_at: 55.days.ago) - @robin.user_visits.create(visited_at: 50.days.ago) - report = Report.find('inactive_users') - expect(report.data.first[:y]).to eq(2) - expect(report.data.last[:y]).to eq(2) - - Fabricate(:incoming_email, user: @michael, created_at: 20.days.ago, post: Fabricate(:post, user: @michael)) - report = Report.find('inactive_users') - expect(report.data.first[:y]).to eq(2) - expect(report.data.last[:y]).to eq(1) - end - end - end end diff --git a/test/javascripts/fixtures/inactive-users.js.es6 b/test/javascripts/fixtures/inactive-users.js.es6 deleted file mode 100644 index b94a48db57..0000000000 --- a/test/javascripts/fixtures/inactive-users.js.es6 +++ /dev/null @@ -1,19 +0,0 @@ -export default { - "/admin/reports/inactive_users": { - "report": { - "type": "inactive_users", - "title": "Inactive Users", - "xaxis": "Day", - "yaxis": "Number of new inactive users", - "description": "Number of users that haven’t logged on for the last 3 months", - "data": null, - "total": null, - "start_date": "2018-04-26", - "end_date": "2018-05-03", - "category_id": null, - "group_id": null, - "prev30Days": null, - "labels": null - } - } -};