Beispiel #1
0
def email(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            subject = form.cleaned_data['Subject']
            message = form.cleaned_data['Message']
            email = form.cleaned_data['Email']
            cc_myself = form.cleaned_data['CC_myself']
            recipients = ['*****@*****.**']
            if cc_myself:
                recipients.append(email)
                send_mail(
                    subject,
                    message,
                    email,
                    recipients,
                    fail_silently=False,
                )
            return HttpResponseRedirect('/resume/')
    else:
        form = ContactForm()
        return render(request, 'email.html', {
            'form': form,
            'title': 'Contact'
        })
def register(request):
    mydb = mysql.connector.connect(host="us-cdbr-iron-east-01.cleardb.net", user="******", password='******',
                                   database='heroku_947e29c06a5b4a3')
    if request.user.is_authenticated:
        return render(request, 'base/profile.html')
    if request.method == "POST":
        form = ContactForm(request.POST)
        if form.is_valid():
            air_crew = AirCrew()
            if air_crew.is_auth(form.cleaned_data['username']):
                user = User.objects.create_user(first_name =form.cleaned_data['first_name'], username = form.cleaned_data['username'],
                                                last_name = form.cleaned_data['last_name'], email=form.cleaned_data['Email'], password =form.cleaned_data['password'], )
                user.save()
                aircrew = AirCrew()
                aircrew.personal_num = form.cleaned_data['username']
                aircrew.movil = form.cleaned_data['movil']
                aircrew.category = form.cleaned_data['category']
                aircrew.status = form.cleaned_data['status']
                aircrew.InsertToDb()
                return redirect('/profile')
            else:
                return render(request, 'base/notauthorized.html')
    else:
        form = ContactForm()
    args = {'form': form}
    return render(request,'base/register.html', args)
Beispiel #3
0
 def post(self, request):
     form = ContactForm(request.POST)
     if form.is_valid():
         subject = form.cleaned_data['subject']
         from_email = form.cleaned_data['from_email']
         message = form.cleaned_data['message']
         try:
             send_mail(subject, message, from_email,
                       ['*****@*****.**'])
         except BadHeaderError:
             return HttpResponse('Invalid header found.', status=403)
         return HttpResponseRedirect("/veille/")
Beispiel #4
0
def index(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/')
    else:
        form = ContactForm()

    return render(request, 'base/index.html', {
            'contacts': Contact.objects.all(),
            'form': form
        })
Beispiel #5
0
 def test_form_valid(self):
     view = ContactFormView()
     form = ContactForm()
     with patch.object(form, 'send_message') as mock_send_message:
         with patch.object(FormView, 'form_valid', return_value='foobar'):
             result = view.form_valid(form)
     mock_send_message.assert_called_once_with()
     self.assertEqual(result, 'foobar')
Beispiel #6
0
def contact(request):

    if request.method == 'POST':

        f = ContactForm(request.POST)

        if f.is_valid():
            subject    = f.cleaned_data['subject']
            first_name = f.cleaned_data['first_name']
            last_name  = f.cleaned_data['last_name']
            sender     = f.cleaned_data['email']
            phone      = f.cleaned_data['phone']
            message    = f.cleaned_data['message']
            cc_self    = f.cleaned_data['cc_self']

            recipients = ['*****@*****.**']

            if cc_self:
                recipients.append(sender)

            c = {
                'subject': subject,
                'first_name': first_name,
                'last_name': last_name,
                'sender': sender,
                'phone': phone,
                'message': message
                }

            # parse strings and create template objects, pair with context

            text_version = render_to_string('base/contact/email.txt', c)
            html_version = render_to_string('base/contact/email.html', c)

            # subclass EmailMessage with EmailMultiAlternatives and send

            mail = EmailMultiAlternatives(subject, text_version, '', recipients)
            mail.attach_alternative(html_version, 'text/html')
            mail.send()

            return HttpResponseRedirect('/contact/thanks/')

        else:
            f  = ContactForm(request.POST)
            t  = 'base/contact/contact.html'
            c1 = {'form': f}
            c2 = RequestContext(request)

            return render_to_response(t, c1, c2)

    else:

        f  = ContactForm()
        t  = 'base/contact/contact.html'
        c1 = {'form': f}
        c2 = RequestContext(request)

    return render_to_response(t, c1, c2)
def contact(request):
    form = ContactForm()

    if request.is_ajax():
        form = ContactForm(request.POST)
        if form.is_valid():
            data = {
                'name': form.cleaned_data['name'],
                'phone': form.cleaned_data['phone'],
                'email': form.cleaned_data['email'],
                'message': form.cleaned_data['message']
            }

            return JsonResponse({'success': data})
        else:
            return JsonResponse({'errors': form.errors})

    return redirect(
        request.POST.get('url_form'))  # just so. Not really functional
Beispiel #8
0
 def post(self, request):
     form = ContactForm(data=request.POST)
     if form.is_valid():
         receps = sec.CONTACT_ADDRESSES[request.POST['contact']]
         send_mail(
             request.POST.get('contact_topic'),
             request.POST.get('contact_name') + " wrote: \n" +
             request.POST.get('content'),
             request.POST.get('contact_email'),
             receps,
             fail_silently=False,
         )
         return render(request, 'base/contact.html', {
             'form': ContactForm(),
             'success': True
         })
     else:
         return render(request, 'base/contact.html', {
             'form': form,
             'success': False
         })
Beispiel #9
0
 def post(self, request):
     form = ContactForm(data=request.POST)
     if form.is_valid():
         receps = sec.CONTACT_ADDRESSES.get(
             request.POST["contact_category"], "technical")
         send_mail(
             request.POST.get("contact_topic"),
             request.POST.get("contact_name") + " wrote: \n" +
             request.POST.get("content"),
             request.POST.get("contact_email"),
             receps,
             fail_silently=False,
         )
         return render(request, "base/contact.html", {
             "form": ContactForm(),
             "success": True
         })
     else:
         return render(request, "base/contact.html", {
             "form": form,
             "success": False
         })
def register(request):
    if request.user.is_authenticated:
        return render(request, 'base/profile.html')
    if request.method == "POST":
        form = ContactForm(request.POST)
        if form.is_valid():
            user = User.objects.create_user(
                first_name=form.cleaned_data['first_name'],
                username=form.cleaned_data['username'],
                last_name=form.cleaned_data['last_name'],
                password=form.cleaned_data['password'],
            )
            user.save()
            aircrew = AirCrew()
            aircrew.personal_num = form.cleaned_data['username']
            aircrew.movil = form.cleaned_data['movil']
            aircrew.category = form.cleaned_data['category']
            aircrew.status = form.cleaned_data['status']
            aircrew.InsertToDb()
            return redirect('/profile')
    else:
        form = ContactForm()
    args = {'form': form}
    return render(request, 'base/register.html', args)
def Login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = request.POST['username']
            password = request.POST['password']
            user = User()
            name = [username]
            if user.is_exist():
                return render(request, 'base/exists.html', {'name': name})
            else:
                return render(request, 'base/form.html')
        else:
            form = LoginForm()
        return render(request, 'base/login.html')
    else:
        form = ContactForm()
        return render(request, 'base/form.html', {'form': form})
Beispiel #12
0
 def get(self, request):
     form = ContactForm()
     return render(request, self.template, {'form': form})
Beispiel #13
0
def contact(request):

    if request.method == 'POST':

        form = ContactForm(data=request.POST)
        ip_address = get_ip(request)

        if form.is_valid():

            name = request.POST.get('name')
            email = request.POST.get('email')
            subject = request.POST.get('subject')
            message = request.POST.get('message')

            sg = sendgrid.SendGridAPIClient(apikey=SENDGRID_KEY)
            from_email = sendgrid.helpers.mail.Email(email)
            subject = '[Contact Form] %s' % subject
            to_email = sendgrid.helpers.mail.Email(CONTACT_EMAIL)
            content = sendgrid.helpers.mail.Content("text/plain", message)
            mail = sendgrid.helpers.mail.Mail(from_email, subject, to_email, content)

            # Captcha check
            r = requests.post(
                'https://www.google.com/recaptcha/api/siteverify',
                data={
                    'secret': RECAPTCHA_SECRET,
                    'response': request.POST.get('recaptcha', None),
                    'remoteip': ip_address
                }
            )
            print(r.status_code, r.json()['success'])
            if not r.json()['success']:
                return JsonResponse(
                    {
                        'sent': False,
                        'captcha': False,
                        'message': 'Captcha check failed!'
                    },
                    status=400
                )

            # Save email to database
            Email.objects.create(
                name=name,
                email=email,
                subject=subject.replace('[Contact Form] ', ''),
                message=message,
                ip=ip_address
            )

            # Send email
            response = sg.client.mail.send.post(request_body=mail.get())
            print(response.status_code)
            print(response.headers)

            if response.status_code >= 200 and response.status_code < 300:
                return JsonResponse(
                    {
                        'sent': True,
                        'captcha': True,
                        'message': 'Message delivered!'
                    },
                    status=200
                )

            else:
                return JsonResponse(
                    {
                        'sent': False,
                        'captcha': True,
                        'message': 'Error %s, please try again!' % response.status_code
                    },
                    status=400
                )

        else:
            return JsonResponse(
                {
                    'sent': False,
                    'captcha': None,
                    'message': 'Invalid form input!',
                    'errors': form.errors
                },
                status=400
            )

    else:
        return JsonResponse(
            {
                'sent': False,
                'captcha': None,
                'message': 'Only POST method allowed!'
            },
            status=400
        )
Beispiel #14
0
 def get(self, request):
     return render(request, 'base/contact.html', {
         'form': ContactForm(),
         'success': False
     })
Beispiel #15
0
 def get(self, request):
     return render(request, "base/contact.html", {
         "form": ContactForm(),
         "success": False
     })
Beispiel #16
0
class ContactFormTestCase(TestCase):
    def setUp(self):
        self.form = ContactForm()

    @override_settings(MAX_UPLOAD_SIZE='5000')
    def test_clean_attachment(self):
        self.form.cleaned_data = {}
        self.assertIsNone(self.form.clean_attachment())

        small_attachment = MockAttachment(size='400')
        self.form.cleaned_data['attachment'] = small_attachment
        self.assertEqual(self.form.clean_attachment(), small_attachment)

        large_attachment = MockAttachment(size='99999')
        self.form.cleaned_data['attachment'] = large_attachment
        with self.assertRaises(ValidationError) as ctx:
            self.form.clean_attachment()
        self.assertEqual(
            str(ctx.exception),
            str([
                (
                    u'Please keep your attachments smaller than {limit}. '
                    u'This file is {size}'.format(
                        limit=filesizeformat(settings.MAX_UPLOAD_SIZE),
                        size=filesizeformat(large_attachment._size)
                    )
                )
            ])
        )

    def test_get_subject(self):
        self.form.cleaned_data = {
            'email': '*****@*****.**',
            'subject': 'inquiry',
        }
        self.assertEqual(
            self.form.get_subject(),
            '{prefix}Inquiry from {email}'.format(
                prefix=settings.EMAIL_SUBJECT_PREFIX,
                email='*****@*****.**',
            )
        )

        self.form.cleaned_data['subject'] = 'not-a-subject'
        self.assertEqual(
            self.form.get_subject(),
            '{prefix}Contact Form Submission from {email}'.format(
                prefix=settings.EMAIL_SUBJECT_PREFIX,
                email='*****@*****.**'
            )
        )

    @override_settings(DEFAULT_CONTACT_EMAILS=['*****@*****.**'])
    def test_send_message(self):
        self.form.cleaned_data = {}
        with patch('django.core.mail.EmailMessage.send') as mock_send:
            with patch.object(self.form, 'clean') as mock_clean:
                self.form.send_message()
        mock_clean.assert_called_once_with()
        mock_send.assert_called_once_with()

        attachment = MockAttachment()
        self.form.cleaned_data = {
            'message': 'This is the message.',
            'attachment': attachment,
        }
        with patch('django.core.mail.EmailMessage.send') as mock_send:
            with patch('django.core.mail.EmailMessage.attach') as mock_attach:
                self.form.send_message()
        mock_attach.assert_called_once_with(attachment.name, attachment.read())
        mock_send.assert_called_once_with()
Beispiel #17
0
 def setUp(self):
     self.form = ContactForm()
Beispiel #18
0
def cria_forms():
    return ContactForm(None)