def writ_inactive(cls, writ): if writ.settings.turn_type == writ.settings.choices.turn_type.FREE_FOR_ALL: delay_interval = timedelta(seconds=writ.settings.inactive_time / 4) if datetime.now() - writ.last_email_sent_at > delay_interval: bwuser = writ.get_random_bwuser() while bwuser.pk == writ.last_email_sent_to.pk: bwuser = writ.get_random_bwuser() if not bwuser.email_reminders_enabled or not cls.is_sending_enabled: return rec = None if writ.is_testing: rec = [TEST_EMAIL] else: rec = [bwuser.authuser.email] if cls.is_realtime_mode: context = { 'penname':bwuser.get_penname(), 'first_line':writ.get_first_line(), 'direct_login_link': TokenManager.make_autologin_url(authuser, writ.get_absolute_url()), } m = make_email_message(rec, 'turn_reminder', context) m.send() writ.last_email_sent_to = bwuser writ.last_email_sent_at = datetime.now() writ.save() elif writ.settings.turn_type == writ.settings.choices.turn_type.ROUND_ROBIN: raise Exception("Invalid turn type.")
def bwuser_begins_turn(cls, bwuser, writ): if not bwuser.email_reminders_enabled or not cls.is_sending_enabled: return if cls.is_realtime_mode: context = { 'penname':bwuser.get_penname(), 'first_line':writ.get_first_line(), 'direct_login_link': TokenManager.make_autologin_url(bwuser.authuser, writ.get_absolute_url()), } rec = None if writ.is_testing: rec = [TEST_EMAIL] else: rec = [bwuser.authuser.email] m = make_email_message(rec, 'turn_reminder', context) if m: m.send() writ.last_email_sent_to = bwuser writ.last_email_sent_at = datetime.now() writ.save()