From 37812921b8ab2cd4ac22342e3a8b4db8831f1a9a Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 16 Feb 2026 09:50:52 +0000 Subject: [PATCH] Enhance primary answer display with edit functionality and conditional rendering based on user permissions --- .../partials/primary_answer_display.html | 24 ++++++++++--------- .../templates/anatomy/question_detail.html | 11 +++++++-- anatomy/views.py | 8 +++---- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/anatomy/templates/anatomy/partials/primary_answer_display.html b/anatomy/templates/anatomy/partials/primary_answer_display.html index e7abfb3e..225645dc 100644 --- a/anatomy/templates/anatomy/partials/primary_answer_display.html +++ b/anatomy/templates/anatomy/partials/primary_answer_display.html @@ -1,25 +1,27 @@
{{ question.get_primary_answer }} + {% if can_edit %} + {% endif %}
diff --git a/anatomy/templates/anatomy/question_detail.html b/anatomy/templates/anatomy/question_detail.html index 4c6bcd91..46f7e640 100644 --- a/anatomy/templates/anatomy/question_detail.html +++ b/anatomy/templates/anatomy/question_detail.html @@ -42,7 +42,14 @@
{% endif %} -
Answers
+
+
Answers
+
+ {% if can_edit %} + Edit answers + {% endif %} +
+
Show answers @@ -69,7 +76,7 @@
{{ answer.get_status_display|default:answer.status }} - {% if answer.proposed %} + {% if answer.proposed and can_edit %}
diff --git a/anatomy/views.py b/anatomy/views.py index ba752c58..3d7b60d8 100644 --- a/anatomy/views.py +++ b/anatomy/views.py @@ -1697,17 +1697,17 @@ def primary_answer_htmx(request, pk: int): return HttpResponse("Invalid answer choice", status=400) # return display fragment - return render(request, "anatomy/partials/primary_answer_display.html", {"question": question}) + return render(request, "anatomy/partials/primary_answer_display.html", {"question": question, "can_edit": question.can_edit(request.user)}) else: return HttpResponse("Invalid form", status=400) # Handle cancel request to restore original state if request.method == "GET" and request.GET.get("cancel"): if question.primary_answer: - return render(request, "anatomy/partials/primary_answer_display.html", {"question": question}) + return render(request, "anatomy/partials/primary_answer_display.html", {"question": question, "can_edit": question.can_edit(request.user)}) else: - return render(request, "anatomy/partials/primary_answer_empty.html", {"question": question}) + return render(request, "anatomy/partials/primary_answer_empty.html", {"question": question, "can_edit": question.can_edit(request.user)}) # GET - render form form = PrimaryAnswerForm(question=question) - return render(request, "anatomy/partials/primary_answer_form.html", {"form": form, "question": question}) \ No newline at end of file + return render(request, "anatomy/partials/primary_answer_form.html", {"form": form, "question": question, "can_edit": question.can_edit(request.user)}) \ No newline at end of file