Add question review list view and template with filtering options
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
{% extends 'sbas/base.html' %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Filtered questions</h2>
|
||||
|
||||
<p>Showing questions matching the selected filters.</p>
|
||||
|
||||
<div class="mb-3">
|
||||
Active filters:
|
||||
{% if filters.category %}
|
||||
<span class="badge bg-primary me-1">Category: {{ filters.category }}</span>
|
||||
{% else %}
|
||||
<span class="badge bg-secondary me-1">Category: Any</span>
|
||||
{% endif %}
|
||||
{% if filters.status %}
|
||||
<span class="badge bg-primary me-1">Status: {{ filters.status }}</span>
|
||||
{% else %}
|
||||
<span class="badge bg-secondary me-1">Status: Any</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if questions %}
|
||||
<ul class="list-group">
|
||||
{% for q in questions %}
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<a href="{% url app_name|add:':question_detail' q.pk %}">{{ q.title|default:q.stem|truncatechars:80 }}</a>
|
||||
<div class="small text-muted">ID: {{ q.pk }}</div>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-sm btn-outline-secondary" href="{% url app_name|add:':question_detail' q.pk %}">View</a>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
<div class="alert alert-info">No questions match the selected filters.</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="mt-3">
|
||||
<a href="{% url app_name|add:':question_review_start' %}" class="btn btn-secondary">Back to filters</a>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -24,6 +24,9 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary">Start review</button>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="id_status" class="form-label">Review status</label>
|
||||
<select name="status" id="id_status" class="form-select">
|
||||
@@ -32,8 +35,28 @@
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary">Start review</button>
|
||||
<div>
|
||||
<p>You can also view the list of questions matching the filters below.</p>
|
||||
<button id="view-list-btn" type="button" class="btn btn-outline-primary">View list</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
<script>
|
||||
// When View list is clicked, read the values from the main filter form and navigate
|
||||
(function(){
|
||||
const btn = document.getElementById('view-list-btn');
|
||||
btn.addEventListener('click', function(){
|
||||
const base = "{% url 'sbas:question_review_list' %}";
|
||||
const params = new URLSearchParams();
|
||||
const categoryEl = document.getElementById('id_category');
|
||||
const statusEl = document.getElementById('id_status');
|
||||
if (categoryEl && categoryEl.value) params.set('category', categoryEl.value);
|
||||
if (statusEl && statusEl.value) params.set('status', statusEl.value);
|
||||
const url = base + (params.toString() ? ('?' + params.toString()) : '');
|
||||
window.location.href = url;
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user