from django.shortcuts import render, redirect from django.db.models import Q from .models import Author, Category, Post, ContactForm, Registrant, RegisterForm from django.core.mail import send_mail from django.template.loader import render_to_string # Create your views here. def newspage(request): categories = Category.objects.all() featured = Post.objects.filter(featured=True) latest = Post.objects.order_by('-timestamp')[0:3] context = { 'featured': featured, 'latest': latest, 'categories': categories, } return render(request, 'newspage.html', context) def about(request): return render(request, 'about_page.html') def post(request, slug): post = Post.objects.get(slug=slug) context = { 'post': post, } return render(request, 'post.html', context) def search(request): queryset = Post.objects.all() query = request.GET.get('q') if query: queryset = queryset.filter( Q(title__icontains=query) | Q(overview__icontains=query) ).values() context = { 'post_list': queryset } return render(request, 'search.html', context) def home(request): return render(request, 'homepage.html') def contact(request): if request.method == 'POST': contact_form = ContactForm(request.POST) if contact_form.is_valid(): contact_form.save() pseudonym = request.POST.get('pseudonym', '') betreff = request.POST.get('betreff', '') nachricht = request.POST.get('nachricht', '') mail = request.POST.get('mail', '') try: send_mail(betreff, nachricht, 'buero@im-puls.org', ['webmaster@denkena-consulting.com'], fail_silently=False) if mail: send_mail('Nachricht erhalten', '''Sehr geehrter ''' + pseudonym + ''', mit Dank bestätigt Ihr Im-Puls-Team den Erhalt Ihrer Nachricht. Wir werden sobald als möglich antworten. Mit freundlichen Grüßen, Federico J. Denkena im Auftrag''', 'buero@im-puls.org', [mail], fail_silently=False) except BadHeaderError: pass return redirect('/success/') else: return redirect('/failure/') contact_form = ContactForm() context = {'contact_form': contact_form} return render(request, 'contact.html', context) def datenschutz(request): return render(request, 'datenschutz.html') def impressum(request): return render(request, 'impressum.html') def tagungsplan(request): return render(request, 'tagungsplan.html') def arbeitsgruppen(request): return render(request, 'arbeitsgruppen.html') def success(request): return render(request, 'success.html') def failure(request): return render(request, 'failure.html') def mail(request): #context = {"form": Registrant.objects.all()[6]} return render(request, 'welcome_mail.html',) def anmeldung(request): if request.method == 'POST': register_form = RegisterForm(request.POST) if register_form.is_valid(): register_form.save() form = register_form.cleaned_data name = register_form.cleaned_data["name"] mail = register_form.cleaned_data["mail"] msg_plain = render_to_string('welcome_mail.txt', {"form": form}) msg_html = render_to_string('welcome_mail.html', {"form": form}) send_mail(f'Herzlich Willkommen zur Im·Puls-Tagung, {name}', msg_plain, 'buero@im-puls.org', ["xenia.medvedeva@posteo.de","buero@im-puls.org","webmaster@denkena-consulting.com"], fail_silently=False, html_message=msg_html) send_mail(f'Herzlich Willkommen zur Im·Puls-Tagung, {name}', msg_plain, 'buero@im-puls.org', [mail], fail_silently=False, html_message=msg_html) register_form = RegisterForm() return redirect('/success/') else: return redirect('/failure/') try: if not register_form: register_form = RegisterForm() except UnboundLocalError: register_form = RegisterForm() context = {"register_form": register_form} return render(request, 'anmeldung.html', context)