Refactoring views in several files

This commit is contained in:
Michael Bergbauer 2025-07-19 16:07:33 +02:00
parent f3f829184d
commit d719822199
4 changed files with 61 additions and 54 deletions

View File

@ -1,15 +1,16 @@
from django.urls import path from django.urls import path
from . import views from .views import person_views
from .views import account_views
urlpatterns = [ urlpatterns = [
path('members/', views.members, name='members'), path('members/', person_views.members, name='members'),
path('members/details/<int:id>', views.details, name="details"), path('members/details/<int:id>', person_views.details, name="details"),
path('members/create/', views.create, name="create"), path('members/create/', person_views.create, name="create"),
path('members/edit/<int:id>', views.edit, name="edit"), path('members/edit/<int:id>', person_views.edit, name="edit"),
path('members/delete/<int:id>', views.delete, name="delete"), path('members/delete/<int:id>', person_views.delete, name="delete"),
path('members/account/details/<int:id>', views.details_account, name="details_account"), path('members/account/details/<int:id>', account_views.details_account, name="details_account"),
path('members/account/edit/<int:id>', views.edit_account, name="edit_account"), path('members/account/edit/<int:id>', account_views.edit_account, name="edit_account"),
path('members/account/create/<int:id>', views.create_account, name="create_account"), path('members/account/create/<int:id>', account_views.create_account, name="create_account"),
path('members/account/edit/<int:id>', views.edit_account, name="edit_account"), path('members/account/edit/<int:id>', account_views.edit_account, name="edit_account"),
path('members/account/delete/<int:id>', views.delete_account, name="delete_account"), path('members/account/delete/<int:id>', account_views.delete_account, name="delete_account"),
] ]

0
member/views/__init__.py Normal file
View File

View File

@ -0,0 +1,47 @@
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 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})

View File

@ -2,8 +2,8 @@ from django.http import HttpResponse
from django.shortcuts import render, redirect, get_object_or_404 from django.shortcuts import render, redirect, get_object_or_404
from django.template import loader from django.template import loader
from django.db.models import Count from django.db.models import Count
from .models import Person, UserAccount from ..models import Person, UserAccount
from .forms import PersonForm, AccountForm from ..forms import PersonForm
def members(request): def members(request):
mymembers=Person.objects.annotate(accounts=Count('benutzerkonten')) mymembers=Person.objects.annotate(accounts=Count('benutzerkonten'))
@ -50,44 +50,3 @@ def delete(request, id):
person.delete() person.delete()
return redirect('members') return redirect('members')
return render(request, 'confirm_delete.html', { 'person': person}) 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})