示例#1
0
def putWeekReport(report, newsletter):

    # if nothing changed, nothing to report, moving on.
    if report['db_changes'] == None and report['discussion'] == None and report['characteristic'] == None:
        return

    now = timezone.now()

    mess = Message(title=newsletter.title+" - Recent Changes - "+now.strftime("%Y-%m-%d %H:%M"),slug=newsletter.slug+'_'+now.strftime("%Y%m%d%H%M%S"), newsletter=newsletter)
    mess.save()

    if report['db_changes'] != None:
        art = Article(title="Changes on Database:", text=report['db_changes'], post=mess)
        art.save()

    if report['discussion'] != None:
        art2 = Article(title="New Discussion:", text=report['discussion'], post=mess)
        art2.save()

    if report['characteristic'] != None:
        art3 = Article(title="New Population Characteristic Data:", text=report['characteristic'], post=mess)
        art3.save()

    subm = Submission.from_message(mess)

    subm.prepared = True

    subm.save()
示例#2
0
    def setUp(self):
        self.n = Newsletter(**self.get_newsletter_kwargs())
        self.n.save()
        try:
            self.n.site.set(get_default_sites())
        except AttributeError:  # Django < 1.10
            self.n.site = get_default_sites()

        self.m = Message(title='Test message',
                         newsletter=self.n,
                         slug='test-message')
        self.m.save()

        self.a = Attachment.objects.create(
            file=os.path.join('tests', 'files', 'sample.pdf'),
            message=self.m
        )

        self.s = Subscription.objects.create(
            name='Test Name', email='*****@*****.**',
            newsletter=self.n, subscribed=True
        )
        self.s2 = Subscription.objects.create(
            name='René Luçon', email='*****@*****.**',
            newsletter=self.n, subscribed=True
        )
示例#3
0
class MailingTestCase(MailTestCase):
    def get_newsletter_kwargs(self):
        """ Returns the keyword arguments for instanciating the newsletter. """

        return {
            'title': 'Test newsletter',
            'slug': 'test-newsletter',
            'sender': 'Test Sender',
            'email': '*****@*****.**'
        }

    def get_newsletter_sites(self):
        return get_default_sites()

    def get_site(self) -> Site:
        return Site.objects.get_current()

    def setUp(self):
        self.n = Newsletter(**self.get_newsletter_kwargs())
        self.n.save()
        self.n.site.set(self.get_newsletter_sites())

        self.m = Message(title='Test message',
                         newsletter=self.n,
                         slug='test-message')
        self.m.save()

        self.a = Attachment.objects.create(file=os.path.join(
            'tests', 'files', 'sample.pdf'),
                                           message=self.m)

        self.s = Subscription.objects.create(name='Test Name',
                                             email='*****@*****.**',
                                             newsletter=self.n,
                                             subscribed=True)
        self.s2 = Subscription.objects.create(name='René Luçon',
                                              email='*****@*****.**',
                                              newsletter=self.n,
                                              subscribed=True)

    def send_email(self, action):
        assert action in ACTIONS + ('message', ), 'Unknown action: %s' % action

        if action == 'message':
            # Create submission
            sub = Submission.from_message(self.m, Site.objects.get_current())
            sub.prepared = True
            sub.publish_date = now() - timedelta(seconds=1)
            sub.save()

            # Send message email
            Submission.submit_queue()
        else:
            for subscriber in self.n.get_subscriptions():
                subscriber.send_activation_email(Site.objects.get_current(),
                                                 action)
示例#4
0
def send_newsletter(post_id):
    post = Post.objects.get(pk=post_id)
    if not post.notified:
        print("send_newsletter activated")
        site = Site.objects.all()[0]

        newsletter = Newsletter.objects.all()[0]
        submission = Submission()
        message = Message()
        article = Article()
        article.url = "http://{}{}".format(site.domain, post.get_absolute_url())
        article.title = post.title
        article.sortorder = 0

        message.title = post.title
        message.newsletter = newsletter
        message.slug = post.slug
        message.save()
        message.articles.add(article, bulk=False)
        message.save()
        article.save()

        submission.newsletter = newsletter
        submission.message = message
        submission.save()
        for s in newsletter.get_subscriptions():
            submission.subscriptions.add(s)
        submission.save()

        submission.submit()
        Submission.submit_queue()
        post.notified = True
        post.save()
        print("send_newsletter submitted")
class MailingTestCase(MailTestCase):

    def get_newsletter_kwargs(self):
        """ Returns the keyword arguments for instanciating the newsletter. """

        return {
            'title': 'Test newsletter',
            'slug': 'test-newsletter',
            'sender': 'Test Sender',
            'email': '*****@*****.**'
        }

    def setUp(self):
        self.n = Newsletter(**self.get_newsletter_kwargs())
        self.n.save()
        try:
            self.n.site.set(get_default_sites())
        except AttributeError:  # Django < 1.10
            self.n.site = get_default_sites()

        self.m = Message(title='Test message',
                         newsletter=self.n,
                         slug='test-message')
        self.m.save()

        self.s = Subscription.objects.create(
            name='Test Name', email='*****@*****.**',
            newsletter=self.n, subscribed=True
        )
        self.s2 = Subscription.objects.create(
            name='René Luçon', email='*****@*****.**',
            newsletter=self.n, subscribed=True
        )

    def send_email(self, action):
        assert action in ACTIONS + ('message', ), 'Unknown action: %s' % action

        if action == 'message':
            # Create submission
            sub = Submission.from_message(self.m)
            sub.prepared = True
            sub.publish_date = now() - timedelta(seconds=1)
            sub.save()

            # Send message email
            Submission.submit_queue()
        else:
            for subscriber in self.n.get_subscriptions():
                subscriber.send_activation_email(action)
示例#6
0
    def setUp(self):
        self.n = Newsletter(**self.get_newsletter_kwargs())
        self.n.save()
        self.n.site = get_default_sites()

        self.m = Message(title='Test message',
                         newsletter=self.n,
                         slug='test-message')
        self.m.save()

        self.s = Subscription(name='Test Name',
                              email='*****@*****.**',
                              newsletter=self.n,
                              subscribed=True)
        self.s.save()
示例#7
0
    def test_message_str(self):
        m1 = Message(title='Test message', slug='test-message')
        self.assertEqual(str(m1), "Test message in Test newsletter")

        m2 = Message.objects.create(title='Test message str',
                                    newsletter=self.n,
                                    slug='test-message-str')

        self.assertEqual(str(m2), "Test message str in Test newsletter")
示例#8
0
    def test_message_str(self):
        m1 = Message(title='Test message', slug='test-message')
        with patch_logger('newsletter.models', 'warning') as warnings:
            self.assertEqual(six.text_type(m1), "Test message")
        self.assertEqual(len(warnings), 1)

        m2 = Message.objects.create(title='Test message str',
                                    newsletter=self.n,
                                    slug='test-message-str')
        self.assertEqual(six.text_type(m2),
                         "Test message str in Test newsletter")
def putWeekReport(report, newsletter):

    # if nothing changed, nothing to report, moving on.
    if report['db_changes'] == None and report[
            'discussion'] == None and report['characteristic'] == None:
        return

    now = timezone.now()

    mess = Message(title=newsletter.title + " - Recent Changes - " +
                   now.strftime("%Y-%m-%d %H:%M"),
                   slug=newsletter.slug + '_' + now.strftime("%Y%m%d%H%M%S"),
                   newsletter=newsletter)
    mess.save()

    if report['db_changes'] != None:
        art = Article(title="Changes on Database:",
                      text=report['db_changes'],
                      post=mess)
        art.save()

    if report['discussion'] != None:
        art2 = Article(title="New Discussion:",
                       text=report['discussion'],
                       post=mess)
        art2.save()

    if report['characteristic'] != None:
        art3 = Article(title="New Population Characteristic Data:",
                       text=report['characteristic'],
                       post=mess)
        art3.save()

    subm = Submission.from_message(mess)

    subm.prepared = True

    subm.save()
    def setUp(self):
        self.n = Newsletter(**self.get_newsletter_kwargs())
        self.n.save()
        self.n.site = get_default_sites()

        self.m = Message(title='Test message',
                         newsletter=self.n,
                         slug='test-message')
        self.m.save()

        self.s = Subscription(
            name='Test Name', email='*****@*****.**',
            newsletter=self.n, subscribed=True
        )
        self.s.save()
示例#11
0
    def setUp(self):
        self.n = Newsletter(**self.get_newsletter_kwargs())
        self.n.save()
        try:
            self.n.site.set(get_default_sites())
        except AttributeError:  # Django < 1.10
            self.n.site = get_default_sites()

        self.m = Message(title='Test message',
                         newsletter=self.n,
                         slug='test-message')
        self.m.save()

        self.s = Subscription.objects.create(
            name='Test Name', email='*****@*****.**',
            newsletter=self.n, subscribed=True
        )
        self.s2 = Subscription.objects.create(
            name='René Luçon', email='*****@*****.**',
            newsletter=self.n, subscribed=True
        )
示例#12
0
 def execute(self):
     logger.info(_("Submitting queued newsletter mailings"))
     Message.submit_queue()