示例#1
0
def post_share(request, post_id):
    # Retrieve post by id
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False

    if request.method == 'POST':
        # Fomr was submitted
        form = EmailPostForm(request.POST)
        if form.is_valid():
            # Form fields passed validation
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{} ({}) recommends you reading "{}"'.format(
                cd['name'], cd['email'], post.title)
            message = 'Read "{}" at {}\n\n{}\'s comments: {}'.format(
                post.title, post_url, cd['name'], cd['comments'])
            send_mail(subject, message, '*****@*****.**', [cd['to']])
            sent = True
    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {
        'post': post,
        'form': form,
        'sent': sent
    })
示例#2
0
文件: views.py 项目: SeanWitt/mysite
def post_share(request, post_id):
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False
    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            cleaned_name = cd.get('name')
            cleaned_email = cd.get('email')
            cleaned_comments = cd.get('comments')
            cleaned_to_field = cd.get('to')

            subject = '{} ({}) Recommends you read "{}"'.format(
                cleaned_name, cleaned_email, cleaned_comments)
            message = "Read '{}'' at {}\n\n{}\'s comments: {}".format(
                post.title, post_url, cleaned_name, cleaned_comments)
            send_mail(
                subject,
                message,
                EMAIL_HOST_USER,
                [cleaned_to_field],
            )
            sent = True

    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {
        'post': post,
        'form': form,
        'sent': sent
    })
示例#3
0
def post_share(request, post_id):
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False
    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{name} ({email}) recommends you reading' \
                      '"{post_title}"'.format(name=cd['name'],
                                              email=cd['email'],
                                              post_title=post.title)
            message = 'Read "{post_title}" at {url}\n\n {name}\'s comments: ' \
                      '{comments}'.format(post_title=post.title, url=post_url,
                                          name=cd['name'],
                                          comments=cd['comments'])
            send_mail(subject, message, '*****@*****.**',
                      [cd['to']])
            sent = True
    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {
        'post': post,
        'form': form,
        'sent': sent
    })
示例#4
0
def post_share(request, post_id):
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False
    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            # in cd opbject we have valid data
            cd = form.cleaned_data
            # retrived data to mail
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = f"{cd['name']} recommended you read " \
                      f"{post.title}"
            message = f"Read {post.title} at {post_url}\n\n" \
                      f"{cd['name']} \'s comments: {cd['comments']}"
            to = (cd['to'], )
            send_mail(subject, message, EMAIL_HOST_USER, to)
            sent = True
    else:  # we assume that we get GET request
        # display empty form
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {
        'post': post,
        'form': form,
        'sent': sent
    })
示例#5
0
def post_share_email(request, post_id):
    post = get_object_or_404(Post, id=post_id, status="published")
    sent = False

    if request.method == "POST":
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{} ({}) recommends you reading "{}"'.format(
                cd["name"], cd["email"], post.title)
            message = 'read "{}" at {}\n\n{}\'s comments: {}'.format(
                post.title, post_url, cd["name"], cd["comments"])
            send_mail(subject, message, "*****@*****.**", [cd["to"]])
            sent = True
    else:
        form = EmailPostForm()
    return render(
        request,
        "blog/post/share.html",
        {
            "post": post,
            "form": form,
            "sent": sent
        },
    )
示例#6
0
def post_share(request, post_id):
    # Obtém a postagem com base no id
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False

    if request.method == 'POST':
        # Formulário foi submetido
        form = EmailPostForm(request.POST)
        if form.is_valid():
            # FCampos do formulário passaram pela validação
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = f"{cd['name']} recommends you read {post.title}"
            message = f"Read {post.title} at {post_url}\n\n" \
                      f"{cd['name']}\'s comments: {cd['comments']}"
            send_mail(subject, message, '*****@*****.**', [cd['to']])
            sent = True

    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {
        'post': post,
        'form': form,
        'sent': sent
    })
示例#7
0
def post_share(request, post_id):
    search_form = SearchForm()
    #  Retrieve the corresponding post
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False

    if request.method == 'POST':
        # This means a form has been submited
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{} ({}) recommends you reading "{}"' \
                .format(cd['name'], cd['email'], post.title)
            message = 'Read "{}" at {}\n\n{}\'s comments : {}' \
                .format(post.title,
                        post_url,
                        cd['name'],
                        cd['comments'])
            try:
                send_mail(subject, message, '*****@*****.**', [cd['to']])
                sent = True
            except SMTPAuthenticationError:
                sent = False
    else:
        form = EmailPostForm()

    return render(request, 'blog/post/share.html', {'post': post,
                                                    'form': form,
                                                    'sent': sent,
                                                    'search_form': search_form})
示例#8
0
def post_share(req, pk):
    obj = get_object_or_404(Post, pk=pk, status='published')
    sent = False
    data = None
    if req.method == 'POST':
        form = EmailPostForm(req.POST)
        if form.is_valid():
            data = form.cleaned_data
            print('obj.get_absoulute_url %s' % obj.get_absoulute_url())
            print('obj.get_absoulute_url %s' % req.build_absolute_uri())
            obj_url = req.build_absolute_uri(obj.get_absoulute_url())
            subject = '{}({}) recommends you reading "{}"'.format(
                data['name'], data['email'], data['name'])
            message = 'Read "{}" at {}\n\n{}\'s comments: {}'.format(
                obj.title, obj_url, data['name'], data['comments'])
            if send_mail(subject, message, '*****@*****.**',
                         [data['to']]):
                sent = True
    else:
        form = EmailPostForm()

    return render(req, 'blog/post/share.html', {
        'obj': obj,
        'form': form,
        'sent': sent,
        'data': data
    })
示例#9
0
def post_share(request, post_id):
    # Retrieve post by id

    post = get_object_or_404(Post, pk=pk, status='published')
    sent = False
    if request.method == 'POST':
        # Form was submitted
        form = EmailPostForm(request.POST)
        if form.is_valid():
            # Form fields passed validation
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = f"{cd['name']} recommends you read " \
                      f"{post.title}"
            message = f"Read {post.title} at {post_url}\n\n" \
                      f"{cd['name']}\'s comments: {cd['comments']}"
            send_mail(subject, message, '*****@*****.**', [cd['to']])
            sent = True
    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {
        'post': post,
        'form': form,
        'sent': sent
    })
示例#10
0
def post_share(request, post_id):
    """
        обратоботчик принимающий post и get запросы для отправки
        вызывает функцию concat_and_send_email(request, post, data)
        где post - экземпляр модели Post
        data - cleaned_data
    """

    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False
    # print('\n\n--------------------------------------------\n',
    #       request.method,
    #       request.get_port,
    #       request.get_raw_uri(),
    #       request.headers,
    #       request.body,
    #       '---------------------------------------------\n\n',sep='\n')
    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            sent = concat_and_send_email(request=request, post=post, data=data)

    # elif request.method == 'GET':
    else:
        form = EmailPostForm()
    context = {
        'form': form,
        'sent': sent,
        'post': post,
    }
    return render(request, 'blog/share.html', context=context)
示例#11
0
def post_share(request, post_id):
    # Retrieving post by id
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False
    context = dict()

    if request.method == 'POST':
        # Meaning form was submitted
        form = EmailPostForm(request.POST)
        if form.is_valid():
            # Validation passed
            cd = form.cleaned_data

            # Make sure you allow email from unsecure apps is turned on if using gmail
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{} ({}) recommends you reading "{}"'.format(
                cd['name'], cd['email'], post.title)
            message = 'Read "{}" at {}\n\n{}\'s comments: {}'.format(
                post.title, post_url, cd['name'], cd['comments'])
            send_mail(subject, message, config('EMAIL_HOST_USER'), [cd['to']])
            sent = True

            # Add to context if validation is passed
            context['cd'] = cd
    else:
        form = EmailPostForm()

    context['post'] = post
    context['form'] = form
    context['sent'] = sent
    return render(request, 'blog/post/share.html', context)
示例#12
0
def post_share(request, post_id):
    # Получение статьи по идентификатору.
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False
    if request.method == 'POST':
        # Форма была отправлена на сохранение.
        form = EmailPostForm(request.POST)
        print(form)
        if form.is_valid():
            # Все поля формы прошли валидацию.
            cd = form.cleaned_data
            print(cd)
            post_url = request.build_absolute_uri(post.get_absolute_url())
            print(post_url)
            subject = '{} ({}) recommends you reading "{}"'.format(
                cd['name'], cd['email'], post.title)

            message = 'Read "{}" at {}\n\n{}\'s comments:{}'.format(
                post.title, post_url, cd['name'], cd['comments'])
            send_mail(subject, message, '*****@*****.**',
                      [cd['to']])
            sent = True
            # {'name':'asdsa', 'email': 'adsad'}
        # ... Отправка электронной почты.
    else:
        form = EmailPostForm()

    return render(request, 'blog/share.html', {
        'post': post,
        'form': form,
        'sent': sent
    })
示例#13
0
def post_share(request, year, month, day, post):
    """
    A View function that shares posts via email
    :param request:
    :param year:
    :param month:
    :param day:
    :param post:
    :return:
    """
    post = get_object_or_404(Post,
                             slug=post,
                             publish__year=year,
                             publish__month=month,
                             publish__day=day,
                             status='published')
    template = "blog/post/share.html"
    sent = False
    if request.method == "POST":
        form = EmailPostForm(request.POST)
        # import pdb; pdb.set_trace()
        if form.is_valid():
            cd = form.cleaned_data
            # TODO: Send the email
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = f"{cd['first_name']} {cd['last_name']} recommends you read {post.title}"
            message = f"Read {post.title} at {post_url}\n\n{cd['name']}\'s comments: {cd['comments']}"
            send_mail(subject, message, '*****@*****.**', [cd['to']])
            sent = True
        else:
            form = EmailPostForm()
        context = {"post": post, "form": form, "sent": sent}
        return render(request, template, context)
示例#14
0
    def test_send_email_with_email_post_form(self):
        """
        Test sharing post with EmailPostForm
        """
        post = PostFactory.create()

        form = EmailPostForm({
            'name': 'John Doe',
            'email': '*****@*****.**',
            'to': '*****@*****.**',
            'comments': 'some comments'
        })

        post_url = post.get_absolute_url()

        if form.is_valid():
            cd = form.cleaned_data
            subject = f"{cd['name']} recommends you read {post.title}"
            message = f"Read {post.title} at {post_url}\n\n" \
                f"{cd['name']}\'s comments: {cd['comments']}"
            mail.send_mail(subject, message, '*****@*****.**', [cd['to']])

            self.assertEqual(len(mail.outbox), 1)
            self.assertEqual(mail.outbox[0].subject, subject)
        else:
            self.assertTrue(form.is_valid)
示例#15
0
def post_share(request, post_id):
    """获取post对象的id"""
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False

    if request.method == 'POST':
        """提交表格"""
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            print(cd)
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{} ({}) recommends you reading "{}"'.format(
                cd['name'], cd['email'], post.title)
            message = 'Read "{}" at {}\n\n{}\'s comments: {}'.format(
                post.title, post_url, cd['name'], cd['comments'])
            send_mail(subject, message, '*****@*****.**', [cd["to"]])
            sent = True
    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {
        "post": post,
        "form": form,
        "sent": sent
    })
示例#16
0
 def test_valid_email_post_form_sends_email(self):
     form = EmailPostForm({
         'name': 'Luke Skywalker',
         'email': '*****@*****.**',
         'to': '*****@*****.**',
         'comments': 'This is comments...'
     })
     self.assertTrue(form.is_valid())
示例#17
0
 def test_form_validation_minimum_data(self):
     form = EmailPostForm(
         data={
             'name': 'user',
             'sender': '*****@*****.**',
             'recipient': '*****@*****.**'
         })
     self.assertTrue(form.is_valid())
示例#18
0
    def test_email_valid_data(self):
        form = EmailPostForm(data={
            'name': 'jmr',
            'email': '*****@*****.**',
            'to': '*****@*****.**',
            'comments': 'I learn a lot from your stuff'
            })

        self.assertTrue(form.is_valid())
示例#19
0
 def test_email_post_form_with_invaild_data(self):
     """
     Test email post form with invalid data
     """
     form = EmailPostForm({
         'name': 'John Doe',
         'email': 'invalidemail',
         'to': 'invalidemail'
     })
     self.assertFalse(form.is_valid())
示例#20
0
 def test_email_post_form_with_vaild_data(self):
     """
     Test email post form with valid data
     """
     form = EmailPostForm({
         'name': 'John Doe',
         'email': '*****@*****.**',
         'to': '*****@*****.**',
         'comments': 'some comments'
     })
     self.assertTrue(form.is_valid())
示例#21
0
def post_share(request, post_id):
    post = get_object_or_404(Post, id=post_id, status='published')
    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {
        'post': post,
        'form': form
    })
示例#22
0
 def post(self, request, *args, **kwargs):
     post = self.get_post(**kwargs)
     form = EmailPostForm(request.POST)
     if form.is_valid():
         cd = form.cleaned_data
         post_url = request.build_absolute_uri(post.get_absolute_url())
         subject = f"{cd['name']} ({cd['email']}) recommends you reading {post.title}"
         message = f"Read {post.title} at {post_url}\n\n{cd['name']}\'s comments: {cd['comments']}"
         msg = EmailMessage(subject, message, to=['*****@*****.**'])
         msg.send(fail_silently=False)
     sent = True
     return render(request, 'blog/post/share.html', {'post': post, 'form': form, 'sent': sent})
示例#23
0
def post_share(req, post_id):
    obj = get_object_or_404(Post, id=post_id, status='published')
    data = None
    if req.method == 'POST':
        form = EmailPostForm(req.POST)
        if form.is_valid():
            data = form.cleaned_data
    else:
        form = EmailPostForm()
    return render(req, 'blog/post/share.html', {
        'obj': obj,
        'form': form,
        'data': data
    })
示例#24
0
def post_share(request, post_id):
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False
    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{}({}) zachęca do przeczytania "{}"'.format(cd['name'], cd['email'], post.title)
            message = 'Przeczytaj post "{}" na stronie {}\n\n Komentarz dodany przez {}: {}'.format(
                post.title, post_url, cd['name'], cd['comments'])
            send_mail(subject, message, '*****@*****.**', [cd['to']])
            sent = True
    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {'post': post, 'form': form, 'sent': sent, 'cd':cd})
示例#25
0
def post_share(request, post_id):
    # Pobranie posta na podstawie jego identyfikatora.
    post = get_object_or_404(Post, id=post_id, status='published')
    if request.method == 'POST':
        # Formularz został wysłany.
        form = EmailPostForm(request.POST)
        if form.is_valid():
            # Weryfikacja pól formularza zakończyła się powodzeniem…
            cd = form.cleaned_data
            # … więc można wysłać wiadomość e-mail.
            sent = True
    else:
        form = EmailPostForm()

    return render(request, 'blog/post/share.html', {
        'post': post,
        'form': form
    })
示例#26
0
def post_share(request, post_id):
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False
    cd = ''
    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{} ({}) recommends you reading "{}"'.\
                format(cd['name'], cd['email'], post.title)
            message = 'Read "{}" at {}\n\n{}\'s comments: {}'.\
                format(post.title, post_url, cd['name'], cd['comments'])
            send_mail(subject, message, '*****@*****.**',[cd['to']])
            sent = True
    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {'post':post, 'form':form, 'sent':sent,'cd':cd})
示例#27
0
def post_share(request, post_id):
	post = get_object_or_404(Post, id=post_id, status='published')
	sent = False

	if request.method == 'POST':
		form = EmailPostForm(request.POST)

		if form.is_valid():
			cd = form.cleaned_data
			post_url = request.build_absolute_uri(post.get_absolute_url())
			subject = f"{cd['name']} recommends that you read {post.title}"
			message = f"Read {post.title} at {post_url}"

			send_mail(subject=subject, message=message, recipient_list=[cd['to'], ], from_email='*****@*****.**')
			sent = True
	else:
		form = EmailPostForm()

	return render(request, 'blog/post/share.html', {'post': post, 'form': form, 'sent': sent})
示例#28
0
def post_share(request, post_id):
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False

    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{} ({}) recommends you read "{}"'.format(cd['name'], cd['email'],
                                                                post.title)
            message = 'Read "{}" at {}\n\n{}\'s comments: {}'.format(post.title, post_url,
                                                                     cd['name'], cd['comments'])
            send_mail(subject, message, '*****@*****.**', [cd['to']])
            sent = True
    else:
        form = EmailPostForm()

    return render(request, 'blog/post/share.html', {'post': post, 'form': form, 'sent': sent})
示例#29
0
def post_share(request, post_id):
    post = get_object_or_404(Post, id=post_id, status='published')
    sent= False
    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())

            subject = f'{cd["name"]} ({cd["email"]}) recommends you reading {post.title}'
            message = f'Read {post.title} at {post_url} \n\n {cd["name"]}\'s comments {cd["comments"]}'

            send_mail(subject, message, EMAIL_HOST_USER,
                      [cd['to']], fail_silently=False)
            sent = True
    else:
        form = EmailPostForm()

    return render(request, 'blog/post/share.html',
        {'post': post, 'form': form, 'sent': sent})
示例#30
0
def post_share(request, post_id):
    #Retrieve post by id
    post = get_object_or_404(Post, id=post_id,status='published')
    sent = False
    if request.method==POST:
        #Form was submitted
        form = EmailPostForm(request.POST)
        if form.is_valid():
            #Form fields passed validation
            cd = form.cleaned_data
            post_url = request.build_absolute_url(post.get_absolute_url())
            subject = '{} ({}) recommends you reading "{}"'.format(cd['name'], cd['email'], post.title)
            message = 'Read "{}" at {}\n\n{}\'s comments: {}'.format(post.title, post_url, cd['name'], cd['comments'])
            send_mail(subject, message, '*****@*****.**',[cd['to']])
            sent = True

            #...send email
        else:
            form = EmailPostForm()
        return render(request, 'blog/post/share.html',{'post':post, 'form':form})
示例#31
0
def post_share(request, post_id):
    # Поиск поста по id
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False
    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = f"Пользователь {cd['name']} рекомендует Вам прочитать {post.title}"
            message = f"Прочитайте статью {post.title} по ссылке {post_url}\n\n " \
                      f"Коментарии пользователя {cd['name']}: {cd['comments']}"
            send_mail(subject, message, EMAIL_HOST_USER, [cd['to']])
            sent = True
    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {
        'post': post,
        'form': form,
        'sent': sent
    })
示例#32
0
def post_share(request, post_id):
    post = get_object_or_404(Post, id=post_id, status='published')
    sent = False

    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = f"{cd['name']} ({cd['email']}) recommends you reading {post.title}"
            message = f"Read {post.title} at {post_url} {cd['name']} {cd['comments']}"
            send_mail(subject, message, '*****@*****.**', [cd['to']])
            sent = True
    else:
        form = EmailPostForm()
    context = {
        'post': post,
        'form': form,
        'sent': sent,
    }
    return render(request, 'post/share.html', context)
示例#33
0
def post_share(request, post_id):
    post = get_object_or_404(Post, id=post_id, status='publiched')
    sent = False
    if request.method == 'POST':
        form = EmailPostForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{} ({}) рекомендую к прочтению "{}"'.format(cd['name'], cd['email'], post.title)

            message = 'Читать "{}" at {}\n\n{}\'s комментарий: {}'.format(post.title, post_url, cd['name'],
                                                                          cd['comments'])

            send_mail(subject, message, '*****@*****.**', [cd['to']])

            sent = True

    else:
        form = EmailPostForm()
    return render(request, 'blog/post/share.html', {'post': post,
                                                    'form': form,
                                                    'sent': sent})