From 4c774bfd8f92efdf1c37d69d9f473b18de734d2b Mon Sep 17 00:00:00 2001 From: tmn21 <tmn21@inf.ufpr.br> Date: Wed, 7 Jun 2023 11:44:22 -0300 Subject: [PATCH] ISSUE #46: CREATE restart_streak task --- app/models/user.rb | 2 +- lib/tasks/user.rake | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 4c360cd3..438eaf61 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -400,7 +400,7 @@ class User < ApplicationRecord end # restart streak count - if Date.today - self.last_action_at >= 2 + if (Date.today - self.last_action_at).to_i >= 2 self.update(last_action_at: Date.today) self.update(streak: 1) end diff --git a/lib/tasks/user.rake b/lib/tasks/user.rake index 3c2999e6..52919d09 100644 --- a/lib/tasks/user.rake +++ b/lib/tasks/user.rake @@ -1,3 +1,5 @@ +require 'benchmark' +require 'date' namespace :user do desc 'Assign submitter role to users that had the teacher role' task set_submitters: :environment do @@ -13,5 +15,13 @@ namespace :user do user.generate_gamification_relations end end - + desc "Restart users' streak" + task :restart_streaks => :environment do + User.all.each do |user| + days = (Date.today - user.last_action_at).to_i + if days >= 2 + user.update_attribute(:streak, 0) + end + end + end end -- GitLab