From 7f38d603650c5331399c113d55c24f747a5f8a6e Mon Sep 17 00:00:00 2001 From: Gabriel Augendre Date: Tue, 5 Mar 2024 19:05:41 +0100 Subject: [PATCH] feat: allow players to update party effects (#206) --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .../templates/party/snippets/effect_card.html | 20 +++++----- .../templates/party/snippets/effects.html | 38 +++++++++---------- src/party/tests/test_interactions.py | 32 ---------------- src/party/views.py | 6 +-- 4 files changed, 30 insertions(+), 66 deletions(-) diff --git a/src/party/templates/party/snippets/effect_card.html b/src/party/templates/party/snippets/effect_card.html index 764e973..98aa9f9 100644 --- a/src/party/templates/party/snippets/effect_card.html +++ b/src/party/templates/party/snippets/effect_card.html @@ -3,17 +3,15 @@
- {% if party.game_master == request.user %} - - {% endif %} + {{ effect.name }}
diff --git a/src/party/templates/party/snippets/effects.html b/src/party/templates/party/snippets/effects.html index 5bdf15f..437c2d3 100644 --- a/src/party/templates/party/snippets/effects.html +++ b/src/party/templates/party/snippets/effects.html @@ -9,26 +9,24 @@ id="add-effect" class="btn btn-primary"> Ajouter un effet - {% if party.game_master == request.user %} -
- - -
- {% endif %} +
+ + +
{% for effect in party.effects.all %} diff --git a/src/party/tests/test_interactions.py b/src/party/tests/test_interactions.py index 3b6aefb..404981a 100644 --- a/src/party/tests/test_interactions.py +++ b/src/party/tests/test_interactions.py @@ -4,7 +4,6 @@ import pytest from django.urls import reverse from model_bakery import baker from pytest_django.live_server_helper import LiveServer -from selenium.common import NoSuchElementException from selenium.webdriver.common.by import By from selenium.webdriver.firefox.webdriver import WebDriver from selenium.webdriver.support.select import Select @@ -285,37 +284,6 @@ def test_gm_can_delete_any_existing_effect( BattleEffect.objects.get(pk=effects[1].pk) -@pytest.mark.django_db() -def test_player_cant_change_existing_running_effect( - selenium: WebDriver, - live_server: LiveServer, -): - """Members of the group can only view existing running effects, no update.""" - user, password = "player", "password" - player = User.objects.create_user(user, password=password) - character = baker.make(Character, player=player) - party = baker.make(Party) - party.characters.set([character]) - effects = baker.make(BattleEffect, _quantity=2, party=party) - - go_to_party(selenium, live_server, party, user, password) - effect = effects[0] - effect_element = selenium.find_element( - By.CSS_SELECTOR, - f'.effect[data-id="{effect.pk}"]', - ) - assert effect.name in effect_element.text - assert effect.target in effect_element.text - assert effect.description in effect_element.text - - with pytest.raises(NoSuchElementException): - selenium.find_element(By.CSS_SELECTOR, ".effect .delete") - with pytest.raises(NoSuchElementException): - selenium.find_element(By.ID, "increase-rounds") - with pytest.raises(NoSuchElementException): - selenium.find_element(By.ID, "decrease-rounds") - - def fill_effect( selenium: WebDriver, name: str, diff --git a/src/party/views.py b/src/party/views.py index e987b5f..d8bda9b 100644 --- a/src/party/views.py +++ b/src/party/views.py @@ -96,7 +96,7 @@ def party_add_effect(request, pk): @require_GET @login_required def party_increase_rounds(request, pk): - party = get_object_or_404(Party.objects.managed_by(request.user), pk=pk) + party = get_object_or_404(Party.objects.played_or_mastered_by(request.user), pk=pk) party.effects.increase_rounds() return render(request, "party/snippets/effects.html", {"party": party}) @@ -104,7 +104,7 @@ def party_increase_rounds(request, pk): @require_GET @login_required def party_decrease_rounds(request, pk): - party = get_object_or_404(Party.objects.managed_by(request.user), pk=pk) + party = get_object_or_404(Party.objects.played_or_mastered_by(request.user), pk=pk) party.effects.decrease_rounds() return render(request, "party/snippets/effects.html", {"party": party}) @@ -112,7 +112,7 @@ def party_decrease_rounds(request, pk): @require_GET @login_required def party_delete_effect(request, pk, effect_pk): - party = get_object_or_404(Party.objects.managed_by(request.user), pk=pk) + party = get_object_or_404(Party.objects.played_or_mastered_by(request.user), pk=pk) BattleEffect.objects.filter(pk=effect_pk).delete() return render(request, "party/snippets/effects.html", {"party": party})