Exemplo n.º 1
0
    def send_message_after_making_name_tag(self):
        # p = re.compile(r'(^@\w+)')
        p = re.compile(r'(@\w+)')
        tag_name_list = re.findall(p, self.content)
        ori_content = self.content

        for tag_name in tag_name_list:
            tag = tag_name.replace('@', '')
            change_tag = "<a href='#' class='name-tag'>{tag_name}</a>".format(
                tag_name=tag_name, )
            ori_content = ori_content.replace(tag_name, change_tag)
            user = MyUser.objects.get(nickname=tag)

            data = {
                'recipient': user.username,
                'subject': '회원님이 언급되었습니다.',
                'body': self.content,
            }
            compose_form = ComposeForm(data)
            sender = MyUser.objects.get(pk=1)

            if compose_form.is_valid():
                compose_form.save(sender=sender)

        self.content = ori_content
        return self.content
Exemplo n.º 2
0
def sell_book_register(request, ):
    """ 팔려는 책 등록하기 """

    if request.method == 'POST':
        files = request.FILES.getlist('sell_book_status')
        form = SellBookRegisterForm(request.POST, request.FILES)

        if form.is_valid():
            sell_book = form.save(seller=request.user.my_seller)
            sell_isbn = form.data.get('isbn')
            book_info = Book.objects.get(isbn=sell_isbn)
            for f in files:
                BookStatus.objects.create(
                    sell_book_status=sell_book,
                    photo=f,
                )

            if BuyBookRegister.objects.filter(book_info_id=book_info.pk):
                data = {
                    'recipient': request.user.username,
                    'subject': '안녕하세요!',
                    'body': '{}님이 판매하시려는 책의 구매 리스트에 존재합니다. 구매 리스트를 확인해보세요 :-)'.format(request.user.username),
                }
                compose_form = ComposeForm(data)
                sender = MyUser.objects.get(pk=1)

                if compose_form.is_valid():
                    compose_form.save(sender=sender)

            news = News.objects.filter(follow_other_id=request.user.id)
            if news:
                for other in news:
                    data = {
                        'recipient': other.my_follow.username,
                        'subject': '{}님께서 새로운 글을 등록했습니다.'.format(request.user.username, ),
                        'body': 'test',
                    }
                    compose_form = ComposeForm(data)
                    sender = request.user

                    if compose_form.is_valid():
                        compose_form.save(sender=sender)

            return redirect('book:sell_book_detail', sell_pk=sell_book.pk)

    register_form = SellBookRegisterForm()
    search_form = NaverBooksSearchForm()
    context = {
        'register_form': register_form,
        'search_form': search_form,
    }
    return render(request, 'book/sell_book_register.html', context)
Exemplo n.º 3
0
 def test_save_with_parent(self):
     form = ComposeForm(
         {
             'recipient': self.user2.username,
             'subject': 'this is not empty',
             'body': 'this is not empty',
         }, 
         sender=self.user1,
     )
     self.assertTrue(form.is_valid())
     parent_message = form.save()
     message = form.save(parent_message)
     self.assertIsNotNone(message.pk)
     self.assertIsNotNone(message.parent_msg)
     self.assertIsNotNone(message.conversation)
Exemplo n.º 4
0
def buy_book_register(request, ):
    """ 사려는 책 등록하기 """

    if request.method == 'POST':
        form = BuyBookRegisterForm(data=request.POST)

        if form.is_valid():
            buy_book = form.save(buyer=request.user)
            buy_isbn = form.data.get('isbn')
            book_info = Book.objects.get(isbn=buy_isbn)

            if SellBookRegister.objects.filter(book_info_id=book_info.pk):
                data = {
                    'recipient': request.user.username,
                    'subject': '안녕하세요!',
                    'body': '{}님이 구매하시려는 책의 판매 리스트에 존재합니다. 판매 리스트를 확인해보세요 :-)'.format(request.user.username),
                }
                compose_form = ComposeForm(data)
                sender = MyUser.objects.get(pk=1)

                if compose_form.is_valid():
                    compose_form.save(sender=sender)

            news = News.objects.filter(follow_other_id=request.user.id)
            if news:
                for other in news:
                    data = {
                        'recipient': other.my_follow.username,
                        'subject': '{}님께서 새로운 글을 등록했습니다.'.format(request.user.username, ),
                        'body': 'test',
                    }
                    compose_form = ComposeForm(data)
                    sender = request.user

                    if compose_form.is_valid():
                        compose_form.save(sender=sender)

            return redirect('book:buy_book_detail', buy_pk=buy_book.pk)

    register_form = BuyBookRegisterForm()
    search_form = NaverBooksSearchForm()
    context = {
        'register_form': register_form,
        'search_form': search_form,
    }
    return render(request, 'book/buy_book_register.html', context)
Exemplo n.º 5
0
def contact(
    request, slug, recipient=None, success_url=None, recipient_filter=None
):
    row = get_object_or_404(Ad, slug=slug)

    if request.method == "POST":
        # sender = request.user
        form = ComposeForm(request.POST, recipient_filter=recipient_filter)
        if form.is_valid():
            form.save(sender=request.user)
            messages.info(request, "Message and email successfully sent.")
            if success_url is None:
                success_url = reverse("ads:ad_detail", kwargs={"slug": slug})
            if "next" in request.GET:
                success_url = request.GET["next"]
            return HttpResponseRedirect(success_url)
    else:
        form = ComposeForm(
            initial={"recipient": row.user.username, "subject": row.title}
        )

        if recipient is not None:
            recipients = [
                u
                for u in User.objects.filter(
                    **{
                        "%s__in"
                        % get_username_field(): [
                            r.strip() for r in recipient.split("+")
                        ]
                    }
                )
            ]
            form.fields["recipient"].initial = recipients

    context = {
        "form": form,
    }

    return render(request, "ads/contact.html", context)
Exemplo n.º 6
0
def contact(request,
            slug,
            recipient=None,
            success_url=None,
            recipient_filter=None):
    row = get_object_or_404(Ad, slug=slug)

    if request.method == "POST":
        form = ComposeForm(request.POST, recipient_filter=recipient_filter)
        if form.is_valid():
            subject = form.cleaned_data['subject']
            message = form.cleaned_data['body']
            sender = request.user.email
            recipient = row.user.email
            form.save(sender=request.user)
            send_mail(subject, message, sender, [recipient])
            messages.info(request, "Message successfully sent.")
            if success_url is None:
                success_url = reverse('ads:ad', kwargs={'slug': slug})
            if 'next' in request.GET:
                success_url = request.GET['next']
            return HttpResponseRedirect(success_url)
    else:
        form = ComposeForm(initial={
            'recipient': row.user.username,
            'subject': row.title
        })

        if recipient is not None:
            recipients = [
                u for u in User.objects.filter(
                    **{
                        '%s__in' % get_username_field():
                        [r.strip() for r in recipient.split('+')]
                    })
            ]
            form.fields['recipient'].initial = recipients

    return render(request, 'ads/contact.html', {'form': form})
Exemplo n.º 7
0
def compose(request, recipient):
    if request.method == "POST":
        print(request.POST)
        form = ComposeForm(request.POST)
        if form.is_valid():
            form.save(sender=request.user)
            messages.info(request, "Message successfully sent.")
            success_url = reverse('profile')
            if 'next' in request.GET:
                success_url = request.GET['next']
            return redirect(success_url)
    else:
        form = ComposeForm()
        if recipient is not None:
            recipients = [
                u for u in User.objects.filter(**{
                    'username__in': [r.strip() for r in recipient.split('+')]
                })
            ]
            form.fields['recipient'].initial = recipients
    return render(request, 'django_messages/compose.html', {
        'form': form,
    })
Exemplo n.º 8
0
def create_reply(request,
                 message_id,
                 template_name='django_messages/compose.html',
                 success_url=None,
                 subject_template=_(u"Re: %(subject)s")):
    """  """

    parent = get_object_or_404(Message, id=message_id)

    if parent.sender != request.user and parent.recipient != request.user:
        raise Http404

    if request.method == "POST":
        data = {
            'recipient': request.POST.get('recipient', ''),
            'subject': request.POST.get('subject', ''),
            'body': request.POST.get('body', ''),
        }

        compose_form = ComposeForm(data)

        if compose_form.is_valid():
            compose_form.save(sender=request.user, parent_msg=parent)
            messages.info(request, _(u"Message successfully sent."))
            if success_url is None:
                success_url = reverse('messages_inbox')
            return HttpResponseRedirect(success_url)

    context = {
        'message_id': message_id,
        'subject': subject_template % {
            'subject': parent.subject
        },
        'recipient': parent.sender.username,
    }

    return render(request, template_name, context)
Exemplo n.º 9
0
def send_message(request, data, is_registered, source=None):
	dajax = Dajax()

#	sender = request.user
	if is_registered:
		form = ComposeForm(QueryDict(data))
		if form.is_valid():
			sender = str(request.user.client)

			lines = []
			lines.append("From: %s" % sender)
			lines.append("Email: %s" % request.user.email)
			lines.append("")
			lines.append("Subject: %s" % form.cleaned_data['subject'])
			lines.append("")
			lines.append(form.cleaned_data['body'])

			message = "\n".join(lines)

			ctx = {
				"SITE_NAME": settings.SITE_NAME,
				"sender": sender,
				"message": message,
				"reply_url": absolute_url(reverse('messages_inbox'))
			}

			subject = render_to_string("account/emails/send_message_unregistered_subject.txt", ctx)

			send_hs_mail(subject, "account/emails/send_message_unregistered_body.txt", ctx, settings.DEFAULT_FROM_EMAIL, [form.cleaned_data['recipient'][0].email])

	else:
		qd = QueryDict(data)

		try:
			recipient = Healer.objects.get(user__username__iexact=qd['recipient_username'])
		except Healer.DoesNotExist:
			return

		form = ComposeFormUnregistered(qd)
		form.recipient = recipient.user.email

	dajax.remove_css_class('#new_message_form input','error')
	dajax.remove_css_class('#new_message_form textarea','error')
	if form.is_valid():
		m = form.save(sender=request.user)
		if source:
			MessageExtra.objects.create(message=m[0], source=source)
#		request.user.message_set.create(
#			message=_(u"Message successfully sent."))
#		success_url = reverse('messages_inbox')
#		if request.GET.has_key('next'):
#			success_url = request.GET['next']

		dajax.script("new_message_success();")

	else:
		for error in form.errors:
			if error == "captcha":
				css_class = '#new_message_form #id_%s_1'
			else:
				css_class = '#new_message_form #id_%s'
			dajax.add_css_class(css_class % error,'error')

	#update captcha
	challenge, response = captcha_settings.get_challenge()()
	store = CaptchaStore.objects.create(challenge=challenge, response=response)
	dajax.assign('img.captcha', 'src', reverse('captcha-image',kwargs=dict(key=store.hashkey)))
	dajax.assign('#id_msg_security_verification_0', 'value', store.hashkey)
	dajax.assign('#id_msg_security_verification_1', 'value', '')

	return dajax.json()

#def new_message_form_processor(request):
#
#	if request.user.is_authenticated():
#		new_message_form = ComposeForm()
#	else:
#		new_message_form = None
#
#	return { "new_message_form" : new_message_form }
Exemplo n.º 10
0
	def post(self, request, format=None):
		try:
			data = request.POST['data'].encode('utf-8')
			source = request.POST.get('source', None)
		except:
			return HttpResponseBadRequest()

		if request.user.is_authenticated():
			form = ComposeForm(QueryDict(data))
			if form.is_valid():
				sender = str(request.user.client)

				lines = []
				lines.append("From: %s" % sender)
				lines.append("Email: %s" % request.user.email)
				lines.append("")
				lines.append("Subject: %s" % form.cleaned_data['subject'])
				lines.append("")
				lines.append(form.cleaned_data['body'])

				message = "\n".join(lines)

				ctx = {
					"SITE_NAME": settings.SITE_NAME,
					"sender": sender,
					"message": message,
					"reply_url": absolute_url(reverse('messages_inbox'))
				}

				subject = render_to_string("account/emails/send_message_unregistered_subject.txt", ctx)

				send_hs_mail(subject, "account/emails/send_message_unregistered_body.txt", ctx, settings.DEFAULT_FROM_EMAIL, [form.cleaned_data['recipient'][0].email])

		else:
			qd = QueryDict(data)

			try:
				recipient = Healer.objects.get(user__username__iexact=qd['recipient_username'])
			except Healer.DoesNotExist:
				return

			form = ComposeFormUnregistered(qd)
			form.recipient = recipient.user.email

		if form.is_valid():
			m = form.save(sender=request.user)
			if source:
				MessageExtra.objects.create(message=m[0], source=source)
	#		request.user.message_set.create(
	#			message=_(u"Message successfully sent."))
	#		success_url = reverse('messages_inbox')
	#		if request.GET.has_key('next'):
	#			success_url = request.GET['next']

		#update captcha
		challenge, captcha_response = captcha_settings.get_challenge()()
		store = CaptchaStore.objects.create(challenge=challenge, response=captcha_response)
		errors, error_elements, _ = get_errors(form)

		return Response({'errors': errors,
						'error_elements': error_elements,
						'captcha': {
							'img': reverse('captcha-image', kwargs=dict(key=store.hashkey)),
							'code': store.hashkey}})