def queue_no_addon_email(user): """Queue an email for user who has not connected an addon after `settings.NO_ADDON_WAIT_TIME` months of signing up for the OSF. """ from osf.models.queued_mail import queue_mail, NO_ADDON queue_mail(to_addr=user.username, mail=NO_ADDON, send_at=timezone.now() + settings.NO_ADDON_WAIT_TIME, user=user, fullname=user.fullname)
def queue_no_addon_email(user): """Queue an email for user who has not connected an addon after `settings.NO_ADDON_WAIT_TIME` months of signing up for the OSF. """ from osf.models.queued_mail import queue_mail, NO_ADDON queue_mail( to_addr=user.username, mail=NO_ADDON, send_at=timezone.now() + settings.NO_ADDON_WAIT_TIME, user=user, fullname=user.fullname )
def queue_osf4m_welcome_email(user, conference, node): """Queue an email once a new user is created for OSF for Meetings""" from osf.models.queued_mail import queue_mail, WELCOME_OSF4M root = (node.get_addon('osfstorage')).get_root() root_children = [child for child in root.children if child.is_file] queue_mail(to_addr=user.username, mail=WELCOME_OSF4M, send_at=timezone.now() + settings.WELCOME_OSF4M_WAIT_TIME, user=user, conference=conference.name, fullname=user.fullname, fid=root_children[0]._id if len(root_children) else None)
def main(dry_run=True): for user in find_inactive_users_with_no_inactivity_email_sent_or_queued(): if dry_run: logger.warn('Dry run mode') logger.warn('Email of type no_login queued to {0}'.format(user.username)) if not dry_run: with transaction.atomic(): queue_mail( to_addr=user.username, mail=NO_LOGIN, send_at=timezone.now(), user=user, fullname=user.fullname, )
def queue_osf4m_welcome_email(user, conference, node): """Queue an email once a new user is created for OSF for Meetings""" from osf.models.queued_mail import queue_mail, WELCOME_OSF4M root = (node.get_addon('osfstorage')).get_root() root_children = [child for child in root.children if child.is_file] queue_mail( to_addr=user.username, mail=WELCOME_OSF4M, send_at=timezone.now() + settings.WELCOME_OSF4M_WAIT_TIME, user=user, conference=conference.name, fullname=user.fullname, fid=root_children[0]._id if len(root_children) else None )
def main(dry_run=True): for user in find_inactive_users_with_no_inactivity_email_sent_or_queued(): if dry_run: logger.warn('Dry run mode') logger.warn('Email of type no_login queued to {0}'.format( user.username)) if not dry_run: with transaction.atomic(): queue_mail( to_addr=user.username, mail=NO_LOGIN, send_at=timezone.now(), user=user, fullname=user.fullname, )
def queue_first_public_project_email(user, node, meeting_creation): """Queue and email after user has made their first non-OSF4M project public. """ from osf.models.queued_mail import queue_mail, QueuedMail, NEW_PUBLIC_PROJECT_TYPE, NEW_PUBLIC_PROJECT if not meeting_creation: sent_mail = QueuedMail.objects.filter( user=user, email_type=NEW_PUBLIC_PROJECT_TYPE) if not sent_mail.exists(): queue_mail(to_addr=user.username, mail=NEW_PUBLIC_PROJECT, send_at=timezone.now() + settings.NEW_PUBLIC_PROJECT_WAIT_TIME, user=user, nid=node._id, fullname=user.fullname, project_title=node.title)
def queue_mail(self, mail_type=NO_ADDON, user=None, send_at=None): return queue_mail( to_addr=user.username if user else self.user.username, mail=mail_type, send_at=send_at or timezone.now(), user=user if user else self.user, fullname=user.fullname if user else self.user.fullname, )
def queue_mail(self, mail, user, send_at=None, **kwargs): mail = queue_mail(to_addr=user.username if user else user.username, send_at=send_at or timezone.now(), user=user, mail=mail, fullname=user.fullname if user else user.username, **kwargs) return mail
def main(dry_run=True): for prereg in find_neglected_prereg_within_reminder_limit(): if dry_run: logger.warn('Dry run mode') logger.info('Email of type prereg_reminder queued to send to {0}'.format(prereg.initiator.username)) if not dry_run: with transaction.atomic(): queue_mail( to_addr=prereg.initiator.username, mail=PREREG_REMINDER, send_at=timezone.now(), user=prereg.initiator, fullname=prereg.initiator.fullname, prereg_url=prereg.absolute_url, project_name=prereg.branched_from.title, draft_id=prereg._id, )
def queue_first_public_project_email(user, node, meeting_creation): """Queue and email after user has made their first non-OSF4M project public. """ from osf.models.queued_mail import queue_mail, QueuedMail, NEW_PUBLIC_PROJECT_TYPE, NEW_PUBLIC_PROJECT if not meeting_creation: sent_mail = QueuedMail.objects.filter(user=user, email_type=NEW_PUBLIC_PROJECT_TYPE) if not sent_mail.exists(): queue_mail( to_addr=user.username, mail=NEW_PUBLIC_PROJECT, send_at=timezone.now() + settings.NEW_PUBLIC_PROJECT_WAIT_TIME, user=user, nid=node._id, fullname=user.fullname, project_title=node.title, osf_support_email=settings.OSF_SUPPORT_EMAIL, )
def queue_first_public_project_email(user, node, meeting_creation): """Queue and email after user has made their first non-OSF4M project public. """ from osf.models.queued_mail import queue_mail, QueuedMail, NEW_PUBLIC_PROJECT_TYPE, NEW_PUBLIC_PROJECT if not meeting_creation: sent_mail = QueuedMail.find(Q('user', 'eq', user) & Q('sent_at', 'ne', None) & Q('email_type', 'eq', NEW_PUBLIC_PROJECT_TYPE)) if not sent_mail.count(): queue_mail( to_addr=user.username, mail=NEW_PUBLIC_PROJECT, send_at=timezone.now() + settings.NEW_PUBLIC_PROJECT_WAIT_TIME, user=user, nid=node._id, fullname=user.fullname, project_title=node.title )
def queue_mail(self, mail, user, send_at=None, **kwargs): mail = queue_mail( to_addr=user.username if user else user.username, send_at=send_at or timezone.now(), user=user, mail=mail, fullname=user.fullname if user else user.username, **kwargs ) return mail
def main(dry_run=True): for prereg in find_neglected_prereg_within_reminder_limit(): if dry_run: logger.warn('Dry run mode') logger.info( 'Email of type prereg_reminder queued to send to {0}'.format( prereg.initiator.username)) if not dry_run: with transaction.atomic(): queue_mail( to_addr=prereg.initiator.username, mail=PREREG_REMINDER, send_at=timezone.now(), user=prereg.initiator, fullname=prereg.initiator.fullname, prereg_url=prereg.absolute_url, project_name=prereg.branched_from.title, draft_id=prereg._id, )