From d719822199ca66c7cd3717532ecba618fbd7bbf9 Mon Sep 17 00:00:00 2001 From: Michael Bergbauer Date: Sat, 19 Jul 2025 16:07:33 +0200 Subject: [PATCH] Refactoring views in several files --- member/urls.py | 23 ++++++----- member/views/__init__.py | 0 member/views/account_views.py | 47 ++++++++++++++++++++++ member/{views.py => views/person_views.py} | 45 +-------------------- 4 files changed, 61 insertions(+), 54 deletions(-) create mode 100644 member/views/__init__.py create mode 100644 member/views/account_views.py rename member/{views.py => views/person_views.py} (51%) diff --git a/member/urls.py b/member/urls.py index 4d08b49..9bb568f 100644 --- a/member/urls.py +++ b/member/urls.py @@ -1,15 +1,16 @@ from django.urls import path -from . import views +from .views import person_views +from .views import account_views urlpatterns = [ - path('members/', views.members, name='members'), - path('members/details/', views.details, name="details"), - path('members/create/', views.create, name="create"), - path('members/edit/', views.edit, name="edit"), - path('members/delete/', views.delete, name="delete"), - path('members/account/details/', views.details_account, name="details_account"), - path('members/account/edit/', views.edit_account, name="edit_account"), - path('members/account/create/', views.create_account, name="create_account"), - path('members/account/edit/', views.edit_account, name="edit_account"), - path('members/account/delete/', views.delete_account, name="delete_account"), + path('members/', person_views.members, name='members'), + path('members/details/', person_views.details, name="details"), + path('members/create/', person_views.create, name="create"), + path('members/edit/', person_views.edit, name="edit"), + path('members/delete/', person_views.delete, name="delete"), + path('members/account/details/', account_views.details_account, name="details_account"), + path('members/account/edit/', account_views.edit_account, name="edit_account"), + path('members/account/create/', account_views.create_account, name="create_account"), + path('members/account/edit/', account_views.edit_account, name="edit_account"), + path('members/account/delete/', account_views.delete_account, name="delete_account"), ] diff --git a/member/views/__init__.py b/member/views/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/member/views/account_views.py b/member/views/account_views.py new file mode 100644 index 0000000..d074d2e --- /dev/null +++ b/member/views/account_views.py @@ -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}) diff --git a/member/views.py b/member/views/person_views.py similarity index 51% rename from member/views.py rename to member/views/person_views.py index 5406f79..09ec8f0 100644 --- a/member/views.py +++ b/member/views/person_views.py @@ -2,8 +2,8 @@ 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 +from ..models import Person, UserAccount +from ..forms import PersonForm def members(request): mymembers=Person.objects.annotate(accounts=Count('benutzerkonten')) @@ -50,44 +50,3 @@ def delete(request, id): 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}) - \ No newline at end of file