118 lines
4.1 KiB
Python
118 lines
4.1 KiB
Python
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)
|