Пример #1
0
    def serve(self, request, *args, **kwargs):
        if request.is_ajax() and request.method == "POST":
            form = GoogleAdGrantApplicationForm(request.POST)
            if form.is_valid():
                form.save()

                if self.to_address:
                    subject = "{} form submission".format(self.title)
                    content = '\n'.join([
                        x[1].label + ': ' + str(form.data.get(x[0]))
                        for x in form.fields.items()
                    ])
                    send_mail(
                        subject,
                        content,
                        [self.to_address],
                    )
                return render(
                    request, 'home/includes/ad_grant_application_landing.html',
                    {
                        'self': self,
                        'form': form
                    })
            else:
                return render(request,
                              'home/includes/ad_grant_application_form.html', {
                                  'self': self,
                                  'form': form
                              })
        else:
            return super(GoogleAdGrantsPage, self).serve(request)
    def serve(self, request):
        if request.method == "POST":
            from theses.forms import InterestsForm

            form = InterestsForm(request.POST)
            if form.is_valid():
                form.clean()
                absolute_uri = request.build_absolute_uri()
                mail_content = self.build_mail_content(absolute_uri,
                                                       form.cleaned_data)
                thesis_title = form.cleaned_data["thesis_title"]

                send_mail(
                    "Thesis interest: {}".format(thesis_title),
                    mail_content,
                    THESES_MAILS,  # recipient email
                    form.cleaned_data["contact_email"],
                )

                return conversion(request, absolute_uri, thesis_title)
            else:
                logger.error("The submitted form was invalid.")
                return super(ThesisPage, self).serve(request)
        else:
            return super(ThesisPage, self).serve(request)
Пример #3
0
    def serve(self, request):
        if request.method == "POST":
            print("posting")
            from theses.forms import CoachingForm

            form = CoachingForm(request.POST)
            if form.is_valid():
                print("form is valid")
                form.clean()
                mail_content = self.build_mail_content(form.cleaned_data)
                contact_name = form.cleaned_data["contact_name"]

                send_mail(
                    "Thesis coaching interest: {}".format(contact_name),
                    mail_content,
                    THESES_MAILS_2,  # recipient email
                    form.cleaned_data["contact_email"],
                )

                return coaching_conversion(request)
            else:
                print("form is invalid")
                logger.error("The submitted form was invalid.")
                return super().serve(request, errored_form=form)
        else:
            return super().serve(request)
Пример #4
0
 def process_form_submission(self, form):
     self.get_submission_class().objects.create(form_data=json.dumps(
         form.cleaned_data, cls=DjangoJSONEncoder),
                                                page=self)
     if self.to_address:
         self.send_mail(form)
     if self.send_confirmation_email:
         # quick hack sending a confirmation email to the user
         confirmation_email_address = None
         # check for confirmation email address and filter headings
         for field in form:
             if isinstance(field.field.widget, EmailInput):
                 confirmation_email_address = field.value()
                 break
         if confirmation_email_address:
             extra_content = [
                 '',
             ]
             for field in form:
                 value = field.value()
                 if isinstance(value, list):
                     value = ', '.join(value)
                 extra_content.append('{}: {}'.format(field.label, value))
             extra_content = '\n'.join(extra_content)
             send_mail(
                 self.confirmation_email_subject,
                 self.confirmation_email_text + extra_content,
                 [
                     confirmation_email_address,
                 ],
                 self.from_address,
             )
Пример #5
0
 def serve(self, request, *args, **kwargs):
     if request.method == "POST":
         form = TopicInterestForm(request.POST)
         if form.is_valid():
             mail_content = self.build_mail_content(
                 request.build_absolute_uri(), form.cleaned_data
             )
             send_mail(
                 subject="Topic interest",
                 message=mail_content,
                 recipient_list=THESES_MAILS_2,
                 from_email=form.cleaned_data["contact_email"],
             )
             messages.success(request, "Thank you for your interest!")
             return HttpResponseRedirect(request.path_info + "#topic-interest-form")
         else:
             return super().serve(request, form=form)
     if "discipline" in request.GET:
         discipline_name = request.GET["discipline"]
         if discipline_name in ("biology", "medicine"):
             return HttpResponseRedirect(
                 request.path_info + "?discipline=life+sciences#disciplines"
             )
         if discipline_name in ("physics", "mathematics statistics"):
             return HttpResponseRedirect(
                 request.path_info
                 + "?discipline=mathematics+statistics+physics#disciplines"
             )
     return super().serve(request)
Пример #6
0
    def test_send_fallback_to_default_from_email_setting(self):
        send_mail("Test subject", "Test content", ["*****@*****.**"])

        # Check that the email was sent
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].subject, "Test subject")
        self.assertEqual(mail.outbox[0].body, "Test content")
        self.assertEqual(mail.outbox[0].to, ["*****@*****.**"])
        self.assertEqual(mail.outbox[0].from_email, "*****@*****.**")
Пример #7
0
    def test_send_default_from_email(self):
        send_mail("Test subject", "Test content", ["*****@*****.**"])

        # Check that the email was sent
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].subject, "Test subject")
        self.assertEqual(mail.outbox[0].body, "Test content")
        self.assertEqual(mail.outbox[0].to, ["*****@*****.**"])
        self.assertEqual(mail.outbox[0].from_email, "webmaster@localhost")
Пример #8
0
    def test_send_fallback_to_default_from_email_setting(self):
        send_mail("Test subject", "Test content", ["*****@*****.**"])

        # Check that the email was sent
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].subject, "Test subject")
        self.assertEqual(mail.outbox[0].body, "Test content")
        self.assertEqual(mail.outbox[0].to, ["*****@*****.**"])
        self.assertEqual(mail.outbox[0].from_email, "*****@*****.**")
Пример #9
0
    def test_send_email(self):
        send_mail("Test subject", "Test content", ["*****@*****.**"], "*****@*****.**")

        # Check that the email was sent
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].subject, "Test subject")
        self.assertEqual(mail.outbox[0].body, "Test content")
        self.assertEqual(mail.outbox[0].to, ["*****@*****.**"])
        self.assertEqual(mail.outbox[0].from_email, "*****@*****.**")
Пример #10
0
    def test_send_default_from_email(self):
        send_mail("Test subject", "Test content", ["*****@*****.**"])

        # Check that the email was sent
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].subject, "Test subject")
        self.assertEqual(mail.outbox[0].body, "Test content")
        self.assertEqual(mail.outbox[0].to, ["*****@*****.**"])
        self.assertEqual(mail.outbox[0].from_email, "webmaster@localhost")
Пример #11
0
    def test_send_email(self):
        send_mail("Test subject", "Test content", ["*****@*****.**"],
                  "*****@*****.**")

        # Check that the email was sent
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].subject, "Test subject")
        self.assertEqual(mail.outbox[0].body, "Test content")
        self.assertEqual(mail.outbox[0].to, ["*****@*****.**"])
        self.assertEqual(mail.outbox[0].from_email, "*****@*****.**")
Пример #12
0
 def send_mail(self, form):
     addresses = [x.strip() for x in self.to_address.split(',')]
     content = []
     for field in form:
         value = field.value()
         if isinstance(value, list):
             value = ', '.join(value)
         content.append('{}: {}'.format(field.label, value))
     content = '\n'.join(content)
     send_mail(self.subject, content, addresses, self.from_address)
Пример #13
0
    def send_form_mail(self, form):
        addresses = [x.strip() for x in self.to_address.split(',')]
        content = []
        for name, field in form.fields.items():
            data = form.cleaned_data.get(name)
            if name == 'recaptcha' or not data:
                continue
            content.append(
                field.label + ': ' + str(data))

        send_mail(
            self.subject, '\n'.join(content), addresses, self.from_address)
Пример #14
0
    def send_share_email(self):
        """
        Emails the user with the review link
        """
        email_address = self.external_user.email
        review_token = Token(self.external_user.get_reviewer(), self.page.get_latest_revision())

        email_body = render_to_string('wagtail_review/email/share.txt', {
            'page': self.page,
            'review_url': get_review_url(review_token),
        })

        send_mail("A page has been shared with you", email_body, [email_address])
Пример #15
0
    def process_form_submission(self, form):
        form_submission = self.get_submission_class().objects.create(
            form_data=json.dumps(form.cleaned_data, cls=DjangoJSONEncoder),
            page=self, user=form.user
        )

        if self.to_address:
            addresses = [x.strip() for x in self.to_address.split(',')]
            content = '\n'.join([x[1].label + ': ' + str(form.data.get(x[0])) for x in form.fields.items()])
            send_mail(self.subject, content, addresses, self.from_address,)

        # process_form_submission should now return the created form_submission
        return form_submission
Пример #16
0
 def send_mail(self, form):
     addresses = [address.strip() for address in self.to_address.split(',')]
     content = []
     for field in form:
         value = field.value()
         if isinstance(value, list):
             value = ', '.join(value)
         content.append('{}: {}'.format(field.label, value))
     submitted_date_str = date.today().strftime('%x')
     content.append('{}: {}'.format('Submitted', submitted_date_str))
     content.append('{}: {}'.format('Submitted Via', self.full_url))
     content = '\n'.join(content)
     subject = self.subject + " - " + submitted_date_str
     send_mail(subject, content, addresses, self.from_address)
def submit_to_newsletter(request):
    print(request.is_ajax())
    if request.is_ajax():
        if request.method == 'POST':
            form_data = dejsonize(request.body.decode())
            contact_name = form_data['contact_name']
            contact_email = form_data['contact_email']
            send_mail(
                "Contacting using Contact Form in Footer",
                build_mail_content_contact(contact_name, contact_email, "Interest in newsletter"),
                THESES_MAILS,  # recipient email
                contact_email,
            )
            return HttpResponse("Thank you for your interest!")
    else:
        return HttpResponse("Something went wrong when submitting to newsletter")
def ask_us_anything(request):
    print(request.is_ajax())
    if request.is_ajax():
        if request.method == 'POST':
            form_data = dejsonize(request.body.decode())
            contact_name = form_data['contact_name']
            contact_email = form_data['contact_email']
            text = form_data['content']
            send_mail(
                "Contacting using Contact Form on About us",
                build_mail_content_contact(contact_name, contact_email, text),
                THESES_MAILS,  # recipient email
                contact_email,
            )
            return HttpResponse("Thank you for your question! We'll get back to you as soon as possible.")
    else:
        return HttpResponse("Something went wrong when contacting us.")
Пример #19
0
    def send_notification_to_submitter(self):
        submitter = self.reviewer.review.submitter
        if submitter.email:

            context = {
                'submitter': submitter,
                'reviewer': self.reviewer,
                'review': self.reviewer.review,
                'page': self.reviewer.review.revision_as_page,
                'response': self,
            }

            email_subject = render_to_string(
                'wagtail_review/email/response_received_subject.txt',
                context).strip()
            email_content = render_to_string(
                'wagtail_review/email/response_received.txt', context).strip()

            send_mail(email_subject, email_content, [submitter.email])
Пример #20
0
    def send_request_emails(self):
        # send request emails to all reviewers except the reviewer record for the user submitting the request
        for reviewer in self.assignees.all():
            email = reviewer.get_email()

            context = {
                'email': email,
                'user': reviewer.internal,
                'reviewer': reviewer,
                'review_request': self,
                'page': self.page_revision.as_page_object(),
                'submitter': self.submitted_by,
                'review_url': self.get_review_url(reviewer),
            }

            email_subject = render_to_string('wagtail_review/email/request_review_subject.txt', context).strip()
            email_content = render_to_string('wagtail_review/email/request_review.txt', context).strip()

            send_mail(email_subject, email_content, [email])
Пример #21
0
    def send_request_email(self):
        email_address = self.get_email_address()

        context = {
            'email': email_address,
            'user': self.user,
            'review': self.review,
            'page': self.review.revision_as_page,
            'submitter': self.review.submitter,
            'respond_url': self.get_respond_url(absolute=True),
            'view_url': self.get_view_url(absolute=True),
        }

        email_subject = render_to_string(
            'wagtail_review/email/request_review_subject.txt',
            context).strip()
        email_content = render_to_string(
            'wagtail_review/email/request_review.txt', context).strip()

        send_mail(email_subject, email_content, [email_address])
    def serve(self, request):
        if request.method == "POST":
            form_slug = request.POST.get("formSlug")
            if "simpleContactForm" == form_slug:
                form = SimpleContactForm(request.POST)
                if form.is_valid():
                    form.clean()
                    send_mail(
                        "Contacting using Contact Form",
                        self.build_mail_content_contact(form.cleaned_data),
                        THESES_MAILS,  # recipient email
                        form.cleaned_data["contact_email"],
                    )

                    return JsonResponse({
                        "message":
                        "Thank you for your interest! "
                        "We will let get back to you soon!"
                    })
        else:
            return super(ThesisSimple, self).serve(request)
Пример #23
0
    def send_mail(self, form):
        cleaned_data = self.process_bilingual_form_data(form)
        addresses = [x.strip() for x in self.to_address.split(',')]
        content = []
        for field in form:
            value = field.value()
            if isinstance(value, list):
                value = ', '.join(value)
            content.append('{}: {}'.format(field.label, value))

        content = '\n'.join(content)
        subject = "Message from: %(name)s <%(email)s>" % {
            'name': cleaned_data['name'],
            'email': cleaned_data['email'],
        }
        send_mail(
            subject,
            content,
            addresses,
            self.from_address,
        )
Пример #24
0
    def send_mail(self, form):
        addresses = [x.strip() for x in self.to_address.split(',')]

        emailheader = "New registration via SNEK"

        content = []
        for field in form:
            value = field.value()
            if isinstance(value, list):
                value = ', '.join(value)
            content.append('{}: {}'.format(field.label, value))
        content = '\n'.join(content)

        content += '\n\nMade with ❤ by Werbeagentur Christian Aichner'

        #emailfooter = '<style>@keyframes pulse { 10% { color: red; } }</style><p>Made with <span style="width: 20px; height: 1em; color:#dd0000; animation: pulse 1s infinite;">&#x2764;</span> by <a style="color: lightgrey" href="https://www.aichner-christian.com" target="_blank">Werbeagentur Christian Aichner</a></p>'

        #html_message = f"{emailheader}\n\n{content}\n\n{emailfooter}"

        send_mail(self.subject, f"{emailheader}\n\n{content}", addresses,
                  self.from_address)
Пример #25
0
    def test_send_html_email(self):
        """Test that the kwarg 'html_message' works as expected on send_mail by creating 'alternatives' on the EmailMessage object"""

        send_mail("Test HTML subject", "TEXT content", ["*****@*****.**"], html_message="<h2>Test HTML content</h2>")
        send_mail("Test TEXT subject", "TEXT content", ["*****@*****.**"])

        # Check that the emails were sent
        self.assertEqual(len(mail.outbox), 2)

        # check that the first email is the HTML email
        email_message = mail.outbox[0]
        self.assertEqual(email_message.subject, "Test HTML subject")
        self.assertEqual(email_message.alternatives, [('<h2>Test HTML content</h2>', 'text/html')])
        self.assertEqual(email_message.body, "TEXT content")  # note: plain text will alwasy be added to body, even with alternatives
        self.assertEqual(email_message.to, ["*****@*****.**"])

        # confirm that without html_message kwarg we do not get 'alternatives'
        email_message = mail.outbox[1]
        self.assertEqual(email_message.subject, "Test TEXT subject")
        self.assertEqual(email_message.alternatives, [])
        self.assertEqual(email_message.body, "TEXT content")
        self.assertEqual(email_message.to, ["*****@*****.**"])
Пример #26
0
    def send_mail(self, form):
        addresses = [x.strip() for x in self.to_address.split(',')]

        emailheader = "New registration via Pharmaziegasse Website"

        content = []
        for field in form:
            value = field.value()
            if isinstance(value, list):
                value = ', '.join(value)
            content.append('{}: {}'.format(field.label, value))
        content = '\n'.join(content)

        content += '\n\nMade with ❤ by Werbeagentur Christian Aichner'

        #emailfooter = '<style>@keyframes pulse { 10% { color: red; } }</style><p>Made with <span style="width: 20px; height: 1em; color:#dd0000; animation: pulse 1s infinite;">&#x2764;</span> by <a style="color: lightgrey" href="https://www.aichner-christian.com" target="_blank">Werbeagentur Christian Aichner</a></p>'

        #html_message = f"{emailheader}\n\n{content}\n\n{emailfooter}"

        html_message = render_to_string(
            'registration/registration_mail_template.html', {
                'first_name': form.cleaned_data['first_name'],
                'last_name': form.cleaned_data['last_name'],
                'title': form.cleaned_data['title'],
                'email': form.cleaned_data['email'],
                'telephone': form.cleaned_data['telephone'],
                'address': form.cleaned_data['address'],
                'city': form.cleaned_data['city'],
                'postal_code': form.cleaned_data['postal_code'],
                'newsletter': form.cleaned_data['newsletter'],
                'verified': form.cleaned_data['verified']
            })

        send_mail(self.subject,
                  f"{emailheader}\n\n{content}",
                  addresses,
                  self.from_address,
                  html_message=html_message)
Пример #27
0
    def serve(self, request, *args, **kwargs):
        if request.is_ajax() and request.method == "POST":
            form = GoogleAdGrantApplicationForm(request.POST)
            if form.is_valid():
                form.save()

                if self.to_address:
                    subject = "{} form submission".format(self.title)
                    content = '\n'.join([x[1].label + ': ' + str(form.data.get(x[0])) for x in form.fields.items()])
                    send_mail(subject, content, [self.to_address],)
                return render(
                    request,
                    'torchbox/includes/ad_grant_application_landing.html',
                    {'self': self, 'form': form}
                )
            else:
                return render(
                    request,
                    'torchbox/includes/ad_grant_application_form.html',
                    {'self': self, 'form': form}
                )
        else:
            return super(GoogleAdGrantsPage, self).serve(request)