Reset our 24hr email blackout when a user logs in

(imported from commit 93bed7c4d049ba4d7b30d2e02fbbe0d2debca6f8)
This commit is contained in:
Leo Franchi
2013-05-17 15:28:51 -04:00
committed by Tim Abbott
parent e5b1e16885
commit 81058f5f9b
3 changed files with 12 additions and 2 deletions

View File

@@ -1215,8 +1215,9 @@ def handle_missedmessage_emails(user_profile_id, missed_email_events):
message__id__in=message_ids, message__id__in=message_ids,
flags=~UserMessage.flags.read)] flags=~UserMessage.flags.read)]
if len(messages) == 0 or (user_profile.last_reminder and waitperiod = datetime.timedelta(hours=UserProfile.EMAIL_REMINDER_WAITPERIOD)
timestamp - user_profile.last_reminder < datetime.timedelta(days=1)): if len(messages) == 0 or (user_profile.last_reminder and \
timestamp - user_profile.last_reminder < waitperiod):
# Don't spam the user, if we've sent an email in the last day # Don't spam the user, if we've sent an email in the last day
return return

View File

@@ -91,6 +91,9 @@ class UserProfile(AbstractBaseUser):
enable_offline_email_notifications = models.BooleanField(default=True) enable_offline_email_notifications = models.BooleanField(default=True)
last_reminder = models.DateTimeField(default=timezone.now, null=True) last_reminder = models.DateTimeField(default=timezone.now, null=True)
# Hours to wait before sending another email to a user
EMAIL_REMINDER_WAITPERIOD = 24
TUTORIAL_WAITING = 'W' TUTORIAL_WAITING = 'W'
TUTORIAL_STARTED = 'S' TUTORIAL_STARTED = 'S'
TUTORIAL_FINISHED = 'F' TUTORIAL_FINISHED = 'F'

View File

@@ -501,6 +501,12 @@ def home(request):
apply_markdown=True) apply_markdown=True)
user_has_messages = (register_ret['max_message_id'] != -1) user_has_messages = (register_ret['max_message_id'] != -1)
# Reset our don't-spam-users-with-email counter since the
# user has since logged in
if not user_profile.last_reminder is None:
user_profile.last_reminder = None
user_profile.save()
# Brand new users get the tutorial # Brand new users get the tutorial
needs_tutorial = settings.TUTORIAL_ENABLED and \ needs_tutorial = settings.TUTORIAL_ENABLED and \
user_profile.tutorial_status == UserProfile.TUTORIAL_WAITING user_profile.tutorial_status == UserProfile.TUTORIAL_WAITING