impuls/website/views.py

120 lines
4.4 KiB
Python
Raw Normal View History

2023-10-03 17:55:41 +02:00
from django.shortcuts import render, redirect
from django.db.models import Q
from .models import Author, Category, Post, ContactForm, Registrant2024, RegisterForm2024
2023-10-03 17:55:41 +02:00
from django.core.mail import send_mail
from django.template.loader import render_to_string
2023-10-03 17:55:41 +02:00
# 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:
2024-01-28 16:47:05 +01:00
send_mail(betreff, nachricht, 'buero@im-puls.org', ['webmaster@denkena-consulting.com'], fail_silently=False)
2023-10-03 17:55:41 +02:00
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
2024-01-28 16:47:05 +01:00
im Auftrag''', 'buero@im-puls.org', [mail], fail_silently=False)
2023-10-03 17:55:41 +02:00
except BadHeaderError:
pass
2023-11-06 15:07:35 +01:00
return redirect('/success/')
else:
return redirect('/failure/')
2023-10-03 17:55:41 +02:00
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')
2023-10-03 21:32:44 +02:00
2023-11-03 16:47:44 +01:00
def tagungsplan(request):
return render(request, 'tagungsplan.html')
2023-12-13 19:01:17 +01:00
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 = {"RegistrantList": filter(lambda x: not x.canceled, sorted(Registrant2024.objects.all(), key=lambda x: x.name))}
#return render(request, 'final_mail.html', context)
return render(request, 'final_mail.html')
2023-10-03 21:32:44 +02:00
def anmeldung(request):
ANMELDUNG_AKTIVIERT = False
if request.method == 'POST':
register_form = RegisterForm2024(request.POST)
if register_form.is_valid() and ANMELDUNG_AKTIVIERT:
register_form.save()
form = register_form.cleaned_data
2024-02-01 17:58:13 +01:00
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})
2024-02-01 17:58:13 +01:00
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 = RegisterForm2024()
2023-11-06 15:07:35 +01:00
return redirect('/success/')
else:
2023-11-06 15:07:35 +01:00
return redirect('/failure/')
try:
if not register_form:
register_form = RegisterForm2024()
except UnboundLocalError:
register_form = RegisterForm2024()
context = {"register_form": register_form, 'AKTIVIERT': ANMELDUNG_AKTIVIERT}
2023-10-04 21:06:28 +02:00
return render(request, 'anmeldung.html', context)