From 98d182f1a66af5ffd51270da90678c8ad4674774 Mon Sep 17 00:00:00 2001 From: Mike Rae Date: Sun, 8 Oct 2023 22:14:27 +0000 Subject: [PATCH] [#170] Fix CRUD for Admin Seating Position For Admin User: In Views: Each CRUD Class accepts ssection_id as kwargs and sets the value of section. Each returns to a dedicated 'office' url modified: string_rota/views.py Fix for Add Seating Position: conditional routing modified: string_rota/templates/string_rota/add_sp.html modified: string_rota/templates/string_rota/rota.html Fix for Edit Seating position: conditional routing modified: string_rota/templates/string_rota/edit_sp.html Add dedicated office urls for each CRUD url modified: string_rota/urls.py Add testing for Fix CRUD for Admin Seating Position in README modified: README.md new file: readme_assets/images/testing-issue170-2.png --- README.md | 2 + readme_assets/images/testing-issue170-2.png | Bin 0 -> 60069 bytes string_rota/templates/string_rota/add_sp.html | 5 ++ .../templates/string_rota/edit_sp.html | 8 +++ string_rota/templates/string_rota/rota.html | 9 ++- string_rota/urls.py | 10 ++++ string_rota/views.py | 53 ++++++++++++++---- 7 files changed, 76 insertions(+), 11 deletions(-) create mode 100644 readme_assets/images/testing-issue170-2.png diff --git a/README.md b/README.md index 15ea75f..1f2262c 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,8 @@ The following manual tests were made: - [see issue #156 here](https://github.com/mikerae/string-rota/issues/156) - [Admin Add Seating Position View Rotas #170 Testing](/readme_assets/images/testing-issue170-1.png) - [see issue #170 here](https://github.com/mikerae/string-rota/issues/170) +- [Admin Seating Position CRUD #170 Testing](/readme_assets/images/testing-issue170-2.png) + - [see issue #170 here](https://github.com/mikerae/string-rota/issues/170) #### Human Testing No human testing was done for this MVP, but once office manager functionality, and the hiding of draft rotas is implemented, user feedback will be sort. diff --git a/readme_assets/images/testing-issue170-2.png b/readme_assets/images/testing-issue170-2.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c2c49bd5ea62a5b22789bccee66d3768df76b9 GIT binary patch literal 60069 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 literal 0 HcmV?d00001 diff --git a/string_rota/templates/string_rota/add_sp.html b/string_rota/templates/string_rota/add_sp.html index 9a7c6ef..dde725f 100644 --- a/string_rota/templates/string_rota/add_sp.html +++ b/string_rota/templates/string_rota/add_sp.html @@ -32,8 +32,13 @@

Add Seating Position

{{player_project_form|crispy }}
+ {% if user.is_staff %} + + Cancel + {% else %} Cancel + {% endif %}
diff --git a/string_rota/templates/string_rota/edit_sp.html b/string_rota/templates/string_rota/edit_sp.html index ab42a59..e7b8e3d 100644 --- a/string_rota/templates/string_rota/edit_sp.html +++ b/string_rota/templates/string_rota/edit_sp.html @@ -36,10 +36,18 @@

Edit Seating Position for {{player}} {{player_project_form | crispy }}
+ {% if user.is_staff %} + + Cancel + + Delete + {% else %} Cancel Delete + {% endif %} +
diff --git a/string_rota/templates/string_rota/rota.html b/string_rota/templates/string_rota/rota.html index e5e6ee9..9cbfc82 100644 --- a/string_rota/templates/string_rota/rota.html +++ b/string_rota/templates/string_rota/rota.html @@ -102,7 +102,14 @@

Please contact your Rota Manager
{% if rota_manager %} - {{position.player}} + {% if user.is_staff %} + {{position.player}} + + {% else %} + {{position.player}} + + {% endif %} {{position.position_number}} {% else %} diff --git a/string_rota/urls.py b/string_rota/urls.py index 022b050..b746196 100644 --- a/string_rota/urls.py +++ b/string_rota/urls.py @@ -24,6 +24,11 @@ views.EditSeatingPosition.as_view(), name="edit_sp", ), + path( + "edit_sp////", + views.EditSeatingPosition.as_view(), + name="edit_sp_office", + ), path( "reserve//", views.Reserve.as_view(), @@ -34,6 +39,11 @@ views.DeleteSeatingPosition.as_view(), name="delete_sp", ), + path( + "delete_sp////", + views.DeleteSeatingPosition.as_view(), + name="delete_sp_office", + ), path( "toggle///", views.ToggleSeatingPlanStatus.as_view(), diff --git a/string_rota/views.py b/string_rota/views.py index 3167b74..5baec44 100644 --- a/string_rota/views.py +++ b/string_rota/views.py @@ -124,7 +124,7 @@ def get(self, request, slug, **kwargs): messages.warning( request, f"There are no all_playerproject \ - records for the {project} project. Please contact a manager", + records for the {project} project. Please contact a manager", # noqa E501 ) return redirect(reverse("rota")) @@ -285,11 +285,18 @@ def post(self, request, slug, seating_plan_id, **kwargs): class EditSeatingPosition(Rota): """View and Edit the seating positions in a Seating Plan""" - def get(self, request, slug, seating_position_id): - projects = Project.objects.all() + def get(self, request, slug, seating_position_id, **kwargs): + """Show Edit Seating Position Form""" + office = request.user.groups.filter(name="Office") + sections = Section.objects.all() project = get_project(slug) - player = get_player(request) - section = get_section(player) + if office: + section = get_object_or_404(Section, pk=kwargs["section_id"]) + else: + player = get_player(request) + section = get_section(player) + projects = Project.objects.all() + seating_position = get_object_or_404( SeatingPosition, pk=seating_position_id ) # noqa E501 @@ -308,6 +315,7 @@ def get(self, request, slug, seating_position_id): context = { "player": sp_player, + "sections": sections, "projects": projects, "project": project, "section": section, @@ -318,13 +326,20 @@ def get(self, request, slug, seating_position_id): return render(request, template, context) - def post(self, request, slug, seating_position_id): + def post(self, request, slug, seating_position_id, **kwargs): """Edit a seating position in a seating Plan""" + office = request.user.groups.filter(name="Office") + sections = Section.objects.all() projects = Project.objects.all() + project = get_object_or_404(projects, slug=slug) - player = get_object_or_404(Player, users_django=request.user.id) - section = player.section + if office: + section = get_object_or_404(Section, pk=kwargs["section_id"]) + else: + player = get_object_or_404(Player, users_django=request.user.id) + section = player.section + projects = Project.objects.all() seating_position = get_object_or_404( SeatingPosition, pk=seating_position_id ) # noqa E501 @@ -348,6 +363,7 @@ def post(self, request, slug, seating_position_id): context = { "projects": projects, + "sections": sections, "project": project, "section": section, "position": seating_position, @@ -367,6 +383,7 @@ def post(self, request, slug, seating_position_id): context = { "projects": projects, + "sections": sections, "project": project, "section": section, "seating_position_form": seating_position_form, @@ -376,7 +393,13 @@ def post(self, request, slug, seating_position_id): return render(request, template, context) messages.success(request, "Your seating position is updated ") - + if office: + return HttpResponseRedirect( + reverse( + "rota_office", + args=[slug, section.id], + ), # noqa E501 + ) return HttpResponseRedirect(reverse("rota", args=[slug])) @@ -486,11 +509,14 @@ def post(self, request, slug): class DeleteSeatingPosition(View): """Delete a seating position in a project""" - def get(self, request, slug, position_id): + def get(self, request, slug, position_id, **kwargs): """Logic for deleting a seating position""" + office = request.user.groups.filter(name="Office") seating_position = get_object_or_404( SeatingPosition, id=position_id ) # noqa E501 + if office: + section = get_object_or_404(Section, pk=kwargs["section_id"]) player = seating_position.player project = seating_position.seating_plan.project player_project = get_object_or_404( @@ -508,6 +534,13 @@ def get(self, request, slug, position_id): messages.success( request, f"{player.first_name} has been removed from this rota." ) # noqa E501 + if office: + return HttpResponseRedirect( + reverse( + "rota_office", + args=[slug, section.id], + ), # noqa E501 + ) return HttpResponseRedirect(reverse("rota", args=[slug]))