def contact_form(request):
    if request.method == "POST":
        form = ContactForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, 'Your request submitted successfully')
        else:
            messages.error(request, 'Please fix the errors and re-submit')
    else:
        form = ContactForm()
    return render(request, "contact-form.html", {"form": form})
def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST, request.FILES, request=request)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('%s?success' % request.path)
    else:
        form = ContactForm(request=request)
    return render_to_response('contact_form/contact_form.html', {
        'form': form,
        'success': 'success' in request.GET,
    }, context_instance=RequestContext(request))
Beispiel #3
0
    def test_no_sites(self):
        """
        Sites integration works with or without installed
        contrib.sites.

        """
        with self.modify_settings(
                INSTALLED_APPS={"remove": ["django.contrib.sites"]}):
            form = ContactForm(request=self.request(), data=self.valid_data)
            self.assertTrue(form.is_valid())

            form.save()
            self.assertEqual(1, len(mail.outbox))
Beispiel #4
0
    def test_send(self):
        """
        Valid form can and does in fact send email.

        """
        form = ContactForm(request=self.request(), data=self.valid_data)
        self.assertTrue(form.is_valid())

        form.save()
        self.assertEqual(1, len(mail.outbox))

        message = mail.outbox[0]
        self.assertTrue(self.valid_data["body"] in message.body)
        self.assertEqual(settings.DEFAULT_FROM_EMAIL, message.from_email)
        self.assertEqual(form.recipient_list, message.recipients())
    def test_no_sites(self):
        """
        Sites integration works with or without installed
        contrib.sites.

        """
        with self.modify_settings(
            INSTALLED_APPS={
                'remove': ['django.contrib.sites'],
                }):
            form = ContactForm(request=self.request(),
                               data=self.valid_data)
            self.assertTrue(form.is_valid())

            form.save()
            self.assertEqual(1, len(mail.outbox))
Beispiel #6
0
def faq(request):
    questions = Question.objects.active()

    form = ContactForm(request=request)
#    form_class = form
    if request.method == 'POST':
        form = ContactForm(data=request.POST, files=request.FILES, request=request)
        if form.is_valid():
            form.save()
            messages.info(request, _("New question succesfully sent."), fail_silently=True)
            return HttpResponseRedirect(reverse('faq'))            
            
    template = "faq.html"
    data = {'items': questions, 'form': form, 'section': 'faq',}

    return render_to_response(template, data, context_instance=RequestContext(request))
Beispiel #7
0
def contact(request):
    c = {}
    c.update(csrf(request))

    contactFormSet = modelformset_factory(Contact)

    contactCategory = list(ContactCategory.objects.filter(is_active=True)[:1])

    if contactCategory:
        contactCategory = contactCategory[0]
        c.update({'contactCatetory': contactCategory})

    if request.method == 'POST':
        contact = ContactForm(request.POST)
        if contact.is_valid():
            contact = contact.save()

            current_site = Site.objects.get_current()

            subject = Template(contactCategory.msg_subject).render(Context({'site': current_site}))

            # Email subject *must not* contain newlines
            subject = ''.join(subject.splitlines())

            message = Template(contactCategory.msg_body).render(Context(
                {'contact': contact,
                 'message': contact.message,
                 'site': current_site}));

            #           if contactCategory.msg_html_body:
            #               message = Template(contactCategory.msg_html_body).render(Context(
            #                                     {'contact': contact.name,
            #                                      'email': contact.email,
            #                                      'message': contact.message,
            #                                      'site': current_site }));

            send_html_mail(subject, message, message, settings.DEFAULT_FROM_EMAIL,
                           [email.strip() for email in contactCategory.recipients.split(',')])
            # send mail to contact person to inform them the email has been sent
            reply_subject = Template(contactCategory.reply_subject).render(Context({}))

            reply_message = Template(contactCategory.reply_body).render(Context({'contact': contact.name}))

            send_html_mail(reply_subject, reply_message, reply_message, settings.DEFAULT_FROM_EMAIL, [contact.email])

            if request.is_ajax():
                return HttpResponse(json.dumps({'success': True}), mimetype='application/json')
            else:
                return render(request, 'contact_form/message_sent.html')

        else:
            return HttpResponse(json.dumps({'success': False, 'errors': contact.errors}), mimetype='application/json')

    else:
        storage = messages.get_messages(request)
        storage.used = False
        c['contact'] = ContactForm()

    return render(request, "contact_form/contact.html", c)
Beispiel #8
0
    def test_recipient_list(self):
        """
        Passing recipient_list when instantiating ContactForm properly
        overrides the list of recipients.

        """
        recipient_list = ["*****@*****.**"]
        form = ContactForm(request=self.request(),
                           data=self.valid_data,
                           recipient_list=recipient_list)
        self.assertTrue(form.is_valid())

        form.save()
        self.assertEqual(1, len(mail.outbox))

        message = mail.outbox[0]
        self.assertEqual(recipient_list, message.recipients())
    def test_recipient_list(self):
        """
        Passing recipient_list when instantiating ContactForm properly
        overrides the list of recipients.

        """
        recipient_list = ['*****@*****.**']
        form = ContactForm(request=self.request(),
                           data=self.valid_data,
                           recipient_list=recipient_list)
        self.assertTrue(form.is_valid())

        form.save()
        self.assertEqual(1, len(mail.outbox))

        message = mail.outbox[0]
        self.assertEqual(recipient_list,
                         message.recipients())
    def test_send(self):
        """
        Valid form can and does in fact send email.

        """
        form = ContactForm(request=self.request(),
                           data=self.valid_data)
        self.assertTrue(form.is_valid())

        form.save()
        self.assertEqual(1, len(mail.outbox))

        message = mail.outbox[0]
        self.assertTrue(self.valid_data['body'] in message.body)
        self.assertEqual(settings.DEFAULT_FROM_EMAIL,
                         message.from_email)
        self.assertEqual(form.recipient_list,
                         message.recipients())
Beispiel #11
0
    def test_no_sites(self):
        """
        Sites integration works with or without installed
        contrib.sites.
        
        """
        old_installed = Site._meta.installed
        Site._meta.installed = False

        request = RequestFactory().request()
        data = {'name': 'Test',
                'email': '*****@*****.**',
                'body': 'Test message'}
        form = ContactForm(request=request, data=data)
        self.assertTrue(form.is_valid())

        form.save()
        self.assertEqual(1, len(mail.outbox))

        Site._meta.installed = old_installed
Beispiel #12
0
    def test_send(self):
        """
        Valid form can and does in fact send email.
        
        """
        request = RequestFactory().request()
        data = {'name': 'Test',
                'email': '*****@*****.**',
                'body': 'Test message'}
        form = ContactForm(request=request, data=data)
        self.assertTrue(form.is_valid())

        form.save()
        self.assertEqual(1, len(mail.outbox))

        message = mail.outbox[0]
        self.assertEqual([data['email']],
                         message.recipients())
        self.assertTrue(data['body'] in message.body)
        self.assertEqual(settings.DEFAULT_FROM_EMAIL,
                         message.from_email)