Skip to content

Commit

Permalink
Moderation stats: 90d view + other acts
Browse files Browse the repository at this point in the history
  • Loading branch information
Oumph committed Jan 28, 2023
1 parent a54c715 commit 0ec4302
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
9 changes: 7 additions & 2 deletions app/models/statistics/moderation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@ def by_day
EOS
end

ACTS_OF_MODERATION = ['Interdiction de tribune', 'a donné 50 points de karma', 'Interdiction de poster des commentaires']

def acts_by_year
return @acts_by_year if @acts_by_year

@acts_by_year = {}

acts = ['Interdiction de tribune', 'a donné 50 points de karma', 'Interdiction de poster des commentaires']
acts.each do |log|
ACTS_OF_MODERATION.each do |log|
entries = acts_by_year_and_log(log)
entries.each do |entry|
@acts_by_year[entry["year"]] ||= {}
Expand All @@ -33,6 +34,10 @@ def acts_by_year_and_log(log)
select_all("SELECT YEAR(CONVERT_TZ(created_at,'UTC','Europe/Paris')) AS year, COUNT(*) AS cnt FROM logs WHERE description LIKE '%#{log}%' GROUP BY year ORDER BY year;")
end

def nb_acts_x_days(user_id,nbdays=nil)
count "SELECT COUNT(*) AS cnt FROM logs WHERE (#{ACTS_OF_MODERATION.map { |log| "description LIKE '%#{log}%'" }.join(' OR ')}) AND #{created_on_the_last_nbdays nbdays, "logs."} AND user_id=#{user_id}"
end

def average_time
select_all <<-EOS
SELECT YEAR(CONVERT_TZ(nodes.created_at,'UTC','Europe/Paris')) AS year,
Expand Down
10 changes: 9 additions & 1 deletion app/views/statistics/moderation.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@

%h3#moderation Sur les derniers jours

%p Il y a eu #{pluralize @stats.moderated_news(7), "dépêche modérée", "dépêches modérées"} (acceptation ou rejet) sur les sept derniers jours, et #{pluralize @stats.moderated_news(31), "dépêche modérée", "dépêches modérées"} sur les trente‑et‑un derniers jours.
%p Il y a eu #{pluralize @stats.moderated_news(7), "dépêche modérée", "dépêches modérées"} (acceptation ou rejet) sur les sept derniers jours, #{pluralize @stats.moderated_news(31), "dépêche modérée", "dépêches modérées"} sur les trente‑et‑un derniers jours et #{pluralize @stats.moderated_news(90), "dépêche modérée", "dépêches modérées"} sur les quatre-vingt-dix (ou nonante) derniers jours.

- if Account.amr.any?
%h4 Équipe de modération actuelle (#{Account.amr.count})
Expand All @@ -111,8 +111,12 @@
%th
%th Modérations (7 j)
%th Modérations (31 j)
%th Modérations (90 j)
%th Éditions (7 j)
%th Éditions (31 j)
%th Éditions (90 j)
%th Autres actes (31 j)
%th Autres actes (90 j)
%th Votes (31 j)
%th Dernière dépêche
%th.sorttable_numeric Dépêches cette année en tant qu’auteur
Expand All @@ -121,8 +125,12 @@
%td.stat= link_to User.find(user["user_id"]).name, User.find(user["user_id"])
%td.stat= @stats.nb_moderations_x_days(user["user_id"],7)
%td.stat= @stats.nb_moderations_x_days(user["user_id"],31)
%td.stat= @stats.nb_moderations_x_days(user["user_id"],90)
%td.stat= @stats.nb_editions_x_days(user["user_id"],7)
%td.stat= @stats.nb_editions_x_days(user["user_id"],31)
%td.stat= @stats.nb_editions_x_days(user["user_id"],90)
%td.stat= @stats.nb_acts_x_days(user["user_id"],31)
%td.stat= @stats.nb_acts_x_days(user["user_id"],90)
%td.stat= @stats.nb_votes_last_month(user["login"])
- @stats.last_news_at(user["user_id"]).each do |last|
%td.stat= last["last"]
Expand Down

0 comments on commit 0ec4302

Please sign in to comment.