from django.http import HttpResponse from django.shortcuts import render, redirect, get_object_or_404 from django.template import loader from django.db.models import Count from .models import Person, UserAccount from .forms import PersonForm, AccountForm def members(request): mymembers=Person.objects.annotate(accounts=Count('benutzerkonten')) template=loader.get_template("memberlist.html") context = { 'mymembers': mymembers } return HttpResponse(template.render(context, request)) def details(request, id): mymember = Person.objects.get(id=id) accounts = UserAccount.objects.filter(person_id=id) template = loader.get_template("details.html") context = { 'mymember': mymember, 'accounts': accounts } return HttpResponse(template.render(context, request)) 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"}) 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'}) 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}) 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})