2025-05-09 14:06:21 +02:00
|
|
|
from django.http import HttpResponse
|
2025-06-13 21:56:19 +02:00
|
|
|
from django.shortcuts import render, redirect, get_object_or_404
|
2025-05-09 16:15:17 +02:00
|
|
|
from django.template import loader
|
2025-06-18 08:24:22 +02:00
|
|
|
from django.db.models import Count
|
2025-07-05 11:49:07 +02:00
|
|
|
from .models import Person, UserAccount
|
|
|
|
|
from .forms import PersonForm, AccountForm
|
2025-05-09 14:06:21 +02:00
|
|
|
|
|
|
|
|
def members(request):
|
2025-06-18 08:24:22 +02:00
|
|
|
mymembers=Person.objects.annotate(accounts=Count('benutzerkonten'))
|
2025-05-09 16:15:17 +02:00
|
|
|
template=loader.get_template("memberlist.html")
|
2025-05-11 09:49:36 +02:00
|
|
|
context = {
|
|
|
|
|
'mymembers': mymembers
|
|
|
|
|
}
|
|
|
|
|
return HttpResponse(template.render(context, request))
|
2025-05-09 13:27:51 +02:00
|
|
|
|
2025-05-11 11:51:23 +02:00
|
|
|
def details(request, id):
|
|
|
|
|
mymember = Person.objects.get(id=id)
|
2025-07-05 11:49:07 +02:00
|
|
|
accounts = UserAccount.objects.filter(person_id=id)
|
2025-05-11 11:51:23 +02:00
|
|
|
template = loader.get_template("details.html")
|
|
|
|
|
context = {
|
2025-07-05 11:49:07 +02:00
|
|
|
'mymember': mymember,
|
|
|
|
|
'accounts': accounts
|
2025-05-11 11:51:23 +02:00
|
|
|
}
|
|
|
|
|
return HttpResponse(template.render(context, request))
|
2025-06-13 21:56:19 +02:00
|
|
|
|
|
|
|
|
def create(request):
|
|
|
|
|
if request.method == "POST":
|
|
|
|
|
form = PersonForm(request.POST)
|
|
|
|
|
if form.is_valid():
|
|
|
|
|
form.save()
|
|
|
|
|
return redirect('members')
|
|
|
|
|
else:
|
|
|
|
|
form = PersonForm()
|
|
|
|
|
return render(request, "person_form.html", {'form': form, 'action': "Neu anlegen"})
|
2025-06-14 21:37:45 +02:00
|
|
|
|
|
|
|
|
def edit(request, id):
|
|
|
|
|
person = get_object_or_404(Person, id=id)
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
form = PersonForm(request.POST, instance=person)
|
|
|
|
|
if form.is_valid():
|
|
|
|
|
form.save()
|
|
|
|
|
return redirect('members')
|
|
|
|
|
else:
|
|
|
|
|
form = PersonForm(instance=person)
|
|
|
|
|
return render(request, 'person_form.html', {'form': form, 'action': 'Bearbeiten'})
|
2025-06-14 22:38:41 +02:00
|
|
|
|
|
|
|
|
def delete(request, id):
|
|
|
|
|
person = get_object_or_404(Person, id=id)
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
person.delete()
|
|
|
|
|
return redirect('members')
|
|
|
|
|
return render(request, 'confirm_delete.html', { 'person': person})
|
2025-07-05 11:49:07 +02:00
|
|
|
|
|
|
|
|
def details_account(request, id):
|
|
|
|
|
account = get_object_or_404(Account, id=id)
|
|
|
|
|
template = loader.get_template("details_account.html")
|
|
|
|
|
context = {
|
|
|
|
|
'account': account,
|
|
|
|
|
}
|
|
|
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
|
|
|
|
|
|
def create_account(request, id):
|
|
|
|
|
person = get_object_or_404(Person, id=id)
|
|
|
|
|
if request.method == "POST":
|
|
|
|
|
form = AccountForm(request.POST)
|
|
|
|
|
if form.is_valid():
|
|
|
|
|
account=form.save(commit=False)
|
|
|
|
|
account.person = person
|
|
|
|
|
account.save()
|
|
|
|
|
return redirect("details", person.id)
|
|
|
|
|
else:
|
|
|
|
|
form = AccountForm()
|
|
|
|
|
return render(request, "account_form.html", {'form': form, 'action': 'Erstellen', 'id': id})
|
|
|
|
|
|
|
|
|
|
def edit_account(request, id):
|
|
|
|
|
account = get_object_or_404(UserAccount, id=id)
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
form = AccountForm(request.POST, instance=account)
|
|
|
|
|
if form.is_valid():
|
|
|
|
|
form.save()
|
|
|
|
|
return redirect('details', account.person.id)
|
|
|
|
|
else:
|
|
|
|
|
form = AccountForm(instance=account)
|
|
|
|
|
return render(request, 'account_form.html', {'form': form, 'action': "Bearbeiten" , 'id': account.person.id})
|
|
|
|
|
|
|
|
|
|
def delete_account(request, id):
|
|
|
|
|
account=get_object_or_404(UserAccount, id=id)
|
|
|
|
|
person_id=account.person.id
|
|
|
|
|
if (request.method=='POST'):
|
|
|
|
|
account.delete()
|
|
|
|
|
return redirect("details", person_id)
|
|
|
|
|
return render(request, "confirm_account_delete.html", {'account': account, 'id': account.person.id})
|
|
|
|
|
|