Refactor question review and form templates to use innerHTML for HTMX swaps, enhancing dynamic content updates
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<button class="btn btn-sm btn-outline-secondary" hx-get="{% url app_name|add:':question_set_review' question.pk %}?edit=1" hx-target="#question-review-block" hx-swap="outerHTML">Edit</button>
|
||||
<button class="btn btn-sm btn-outline-secondary" hx-get="{% url app_name|add:':question_set_review' question.pk %}?edit=1" hx-target="#question-review-block" hx-swap="innerHTML">Edit</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,7 +1,7 @@
|
||||
<form method="post"
|
||||
hx-post="{% url app_name|add:':question_set_review' question.pk %}?edit=1"
|
||||
hx-target="#question-review-block"
|
||||
hx-swap="outerHTML"
|
||||
hx-swap="innerHTML"
|
||||
class="d-flex gap-2 align-items-start">
|
||||
{% csrf_token %}
|
||||
<div class="form-select-sm">
|
||||
@@ -15,6 +15,6 @@
|
||||
<input type="text" name="comment" class="form-control form-control-sm" placeholder="Comment (optional)" value="{% if latest %}{{ latest.comment }}{% endif %}">
|
||||
<div>
|
||||
<button class="btn btn-sm btn-primary" type="submit">Save</button>
|
||||
<button class="btn btn-sm btn-outline-secondary" type="button" hx-get="{{ request.path }}" hx-target="#question-review-block" hx-swap="outerHTML">Cancel</button>
|
||||
<button class="btn btn-sm btn-outline-secondary" type="button" hx-get="{{ request.path }}" hx-target="#question-review-block" hx-swap="innerHTML">Cancel</button>
|
||||
</div>
|
||||
</form>
|
||||
@@ -26,6 +26,7 @@ class Category(models.Model):
|
||||
return self.category
|
||||
|
||||
|
||||
@reversion.register
|
||||
class Question(QuestionBase):
|
||||
title = models.CharField(max_length=200, help_text="Short title for question", blank=True, null=True)
|
||||
stem = models.TextField(
|
||||
|
||||
@@ -1,29 +1,38 @@
|
||||
{% extends 'sbas/base.html' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<div id="question-review-block" hx-get="{% url 'sbas:question_set_review' question.pk %}" hx-trigger="load" hx-swap="innerHTML">
|
||||
{# Placeholder while HTMX fetches review/form #}
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-start mb-3 flex-column flex-md-row">
|
||||
<div>
|
||||
<h2 class="h4 mb-1">{{ question.title|default:"(No title set)" }}</h2>
|
||||
<div class="text-muted small">Created: {{ question.created_date|date:"d/m/Y" }}</div>
|
||||
</div>
|
||||
{% load partials %}
|
||||
|
||||
{% partialdef links-partial %}
|
||||
|
||||
<div class="btn-group mt-3 mt-md-0" role="group" aria-label="Actions">
|
||||
<a class="btn btn-sm btn-outline-primary" href="{% url 'sbas:question_update' question.id %}">Edit</a>
|
||||
<a class="btn btn-sm btn-outline-secondary" href="{% url 'sbas:question_clone' question.id %}">Clone</a>
|
||||
<a class="btn btn-sm btn-outline-danger" href="{% url 'sbas:question_delete' pk=question.pk %}">Delete</a>
|
||||
<a class="btn btn-sm btn-outline-light" href="{% url 'admin:sbas_question_change' question.id %}">Admin</a>
|
||||
<button class="btn btn-sm btn-outline-info" onclick="return window.create_popup_window('{% url 'feedback_create' question_type='sbas' pk=question.pk %}')">Add Note</button>
|
||||
<button class="btn btn-sm btn-outline-success" hx-get="{% url 'sbas:question_set_review' question.pk %}?edit=1&new=1" hx-target="#question-review-block" hx-swap="outerHTML">Add Review</button>
|
||||
<button class="btn btn-sm btn-outline-success" hx-get="{% url 'sbas:question_set_review' question.pk %}?edit=1&new=1" hx-target="#question-review-block" hx-swap="innerHTML">Add Review</button>
|
||||
</div>
|
||||
{% endpartialdef %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<div class="d-flex justify-content-between align-items-start mb-3 flex-column flex-md-row">
|
||||
<div>
|
||||
<h2 class="h4 mb-1">{{ question.title|default:"(No title set)" }}</h2>
|
||||
<div class="text-muted small">Created: {{ question.created_date|date:"d/m/Y" }}</div>
|
||||
</div>
|
||||
{% partial links-partial %}
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 col-lg-8">
|
||||
<div class="mb-3">
|
||||
<div>Review status:
|
||||
<div id="question-review-block" hx-get="{% url 'sbas:question_set_review' question.pk %}" hx-trigger="load" hx-swap="innerHTML">
|
||||
{# Placeholder while HTMX fetches review/form #}
|
||||
</div>
|
||||
</div>
|
||||
{% autoescape off %}
|
||||
<div class="card p-3 bg-body-secondary">{{ question.stem }}</div>
|
||||
<ol class="abcde list-group list-group-numbered mt-3">
|
||||
|
||||
@@ -1,23 +1,30 @@
|
||||
{% extends "sbas/base.html" %}
|
||||
|
||||
{% load static %}
|
||||
{% load partials %}
|
||||
|
||||
{% block js %}
|
||||
<!--<script type="text/javascript" src="/admin/jsi18n/"></script>-->
|
||||
|
||||
<script type="text/javascript">
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
</script>
|
||||
|
||||
{{ form.media }}
|
||||
{{ form.media }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<h2>Submit Question</h2>
|
||||
<form action="" method="post" enctype="multipart/form-data" id="anatomyquestion-form">
|
||||
{% csrf_token %}
|
||||
<div class="d-flex justify-content-between align-items-start mb-3 flex-column flex-md-row">
|
||||
<div>
|
||||
<h2>Submit Question</h2>
|
||||
</div>
|
||||
{% include "sbas/question_detail.html#links-partial" %}
|
||||
</div>
|
||||
|
||||
<table>
|
||||
{{ form.as_table }}
|
||||
</table>
|
||||
<input type="submit" class="submit-button" value="Submit" name="submit">
|
||||
</form>
|
||||
<form action="" method="post" enctype="multipart/form-data" id="anatomyquestion-form">
|
||||
{% csrf_token %}
|
||||
|
||||
<table>
|
||||
{{ form.as_table }}
|
||||
</table>
|
||||
<input type="submit" class="submit-button" value="Submit" name="submit">
|
||||
</form>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user