Пример #1
0
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)
Пример #2
0
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
    )
Пример #3
0
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)
Пример #4
0
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,
                )
Пример #5
0
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
    )
Пример #6
0
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,
                )
Пример #7
0
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,
     )
Пример #9
0
 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 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,
     )
Пример #11
0
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,
                )
Пример #12
0
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,
            )
Пример #13
0
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
            )
Пример #14
0
 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,
                )