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
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)
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)
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)
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)
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})
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, })
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)
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 }
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}})