def feedback_views(request, template, extra_context=None, context_processors=None, template_loader=loader): if request.method == 'POST': i = FeedBackItem(date=datetime.datetime.now()) form = FeedBackForm(request.POST, instance=i) if form.is_valid(): form.save() current_site = Site.objects.get_current() domain = current_site.domain users = User.objects.filter(is_staff=True, is_active=True) emails = [u.email for u in users] letter_send_mail( 'mail/feedback.txt', _('New message in %s.') % domain, emails, {'obj':i, 'domain':domain} ) messages.add_message(request, messages.INFO, _("Thanks letter send.")) return HttpResponseRedirect(request.META['HTTP_REFERER']) else: form = FeedBackForm() c = RequestContext(request, {'form':form}, context_processors) if extra_context: for key, value in extra_context.items(): if callable(value): c[key] = value() else: c[key] = value t = template_loader.get_template(template) return HttpResponse(t.render(c)) ################################################################################################################ ################################################################################################################
def post(self, request): feedback_form = FeedBackForm(request.POST) sended = 0 if feedback_form.is_valid(): if request.recaptcha_is_valid: current_site = get_current_site(request) mail_subject = 'Новое сообщение на сайте: ' + current_site.domain message = render_to_string( 'feedback/feedback_message.html', { 'domain': current_site.domain, 'email': request.POST.get('email'), 'name': request.POST.get('name'), 'text': request.POST.get('text'), }) to_email = MailToString.objects.first().email email = EmailMessage(mail_subject, message, to=[to_email]) email.send() feedback_form.save() sended = 1 else: sended = None context = { 'sended': sended, } return JsonResponse(context)
def feedback_views(request, template, extra_context={'active': 9}, context_processors=None, template_loader=loader): if request.method == 'POST': i = FeedBackItem() form = FeedBackForm(request.POST, instance=i) if form.is_valid(): form.save() current_site = Site.objects.get_current() domain = current_site.domain users = User.objects.filter(is_staff=True, is_active=True) emails = [u.email for u in users] threading_send_mail('mail/feedback/create_msg_admin.html', u'Новое сообщение на сайте %s' % domain, emails, { 'obj': i, 'domain': domain }) if i.email: threading_send_mail( 'mail/feedback/create_msg.html', u'Спасибо за сообщение на сайте %s' % domain, [ i.email, ], { 'obj': i, 'domain': domain }) messages.add_message(request, messages.INFO, u'Спасибо, Ваше сообщение отправлено!') return HttpResponseRedirect(request.META['HTTP_REFERER']) else: form = FeedBackForm() c = RequestContext(request, { 'form': form, 'active': 4, }, context_processors) if extra_context: for key, value in extra_context.items(): if callable(value): c[key] = value() else: c[key] = value t = template_loader.get_template(template) return HttpResponse(t.render(c)) ################################################################################################################ ################################################################################################################
def feedback(Request): form = FeedBackForm() # An unbound form msg = '' if Request.method == 'POST': form = FeedBackForm(Request.POST) if form.is_valid(): message = form.cleaned_data['message'] sender = form.cleaned_data['sender'] msg = '<h1>Thanks!</h1>' try: send_mail(message[:15], message, sender, ['*****@*****.**'], fail_silently=False) except BadHeaderError: return HttpResponse('Something\'s fishy. Please try again.') form = FeedBackForm() return render_to_response('feedback/feedback_base.html', { 'form': form, 'message': msg })
def send(request): user = request.user if request.method == "POST": form = FeedBackForm(request.POST) if form.is_valid(): cleaned_data = form.cleaned_data if cleaned_data["problem_type"] == "T": recipients = ["*****@*****.**", "*****@*****.**", "*****@*****.**"] else: recipients = ["*****@*****.**"] text = ( cleaned_data["text"] + "\n\n\n" + "From: " + user.UserData.__unicode__() + "\n" + "E-mail: " + user.email ) template = get_template_from_string(text) status = "success" try: send_templated_email( subject=cleaned_data["subject"], email_context={}, recipients=recipients, template_file=template, fail_silently=False, ) except Exception as e: print(str(e)) status = "Error sending mail" return HttpResponse(status) else: form = FeedBackForm() return render(request, "feedback_form.html", {"form": form})
def contacts(request): phones = Phone.objects.all() messengers = Messenger.objects.all() social_links = SocialLink.objects.all() schedule = Schedule.objects.all() emails = Email.objects.all() addresses = Address.objects.all() alert_success = 1 # по умолчанию alert_success2 = 1 # по умолчанию if request.method == "POST": form = FeedBackForm(request.POST) form2 = RepairForm(request.POST) if form2.is_valid(): if request.recaptcha_is_valid: name = form2.cleaned_data['name'] phone = form2.cleaned_data['phone'] repair_date = form2.cleaned_data['repair_date'] repair_time = form2.cleaned_data['repair_time'] car = form2.cleaned_data['car'] description = form2.cleaned_data['description'] repair = Repair.objects.create( phone=phone, name=name, repair_date=repair_date, repair_time=repair_time, car=car, description=description, ) try: current_site = get_current_site(request) mail_subject = 'Новая заявка на сайте: ' + current_site.domain message = render_to_string('repairs/repair_message.html', { 'domain': current_site.domain, 'repair': repair, }) to_email = MailToString.objects.first().email email = EmailMessage(mail_subject, message, to=[to_email]) email.send() alert_success2 = 2 # письмо не отправлено alert_success = 1 except: alert_success2 = 3 # письмо отправлено alert_success = 1 else: alert_success2 = 0 # неправильная рекапча alert_success = 1 if form.is_valid(): if request.recaptcha_is_valid: phone_or_email = form.cleaned_data['phone_or_email'] name = form.cleaned_data['name'] message = form.cleaned_data['message'] feedback = FeedBack.objects.create( phone_or_email=phone_or_email, name=name, message=message) try: current_site = get_current_site(request) mail_subject = 'Новая заявка на сайте: ' + current_site.domain message = render_to_string( 'feedback/feedback_message.html', { 'domain': current_site.domain, 'feedback': feedback, }) to_email = MailToString.objects.first().email email = EmailMessage(mail_subject, message, to=[to_email]) email.send() alert_success = 2 # письмо не отправлено alert_success2 = 1 except: alert_success = 3 alert_success2 = 1 else: alert_success = 0 # неправильная рекапча alert_success2 = 1 else: form = FeedBackForm() form2 = RepairForm() context = { 'phones': phones, 'messengers': messengers, 'social_links': social_links, 'schedule': schedule, 'emails': emails, 'addresses': addresses, 'form': form, 'form2': form2, 'alert_success2': alert_success2, 'alert_success': alert_success, } return render(request, 'contacts/contacts.html', context)