feat: status transition and allowed fields consolidated
This commit is contained in:
@@ -40,8 +40,8 @@
|
||||
<label class="block text-sm font-medium mb-1">Kurs:</label>
|
||||
<select name="course"
|
||||
id="id_course"
|
||||
{% if not view.can_edit %}disabled{% endif %}
|
||||
class="w-full p-2 border border-gray-300 rounded shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 {% if not view.can_edit %}bg-gray-100{% endif %}">
|
||||
{% if not view.can_edit or form.course.field.disabled %}disabled{% endif %}
|
||||
class="w-full p-2 border border-gray-300 rounded shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 {% if not view.can_edit or form.course.field.disabled %}bg-gray-100{% endif %}">
|
||||
{% for course in form.course.field.queryset %}
|
||||
<option value="{{ course.pk }}"
|
||||
{% if course.pk == ticket.course.pk %}selected{% endif %}>{{ course }}</option>
|
||||
@@ -52,8 +52,8 @@
|
||||
<label class="block text-sm font-medium mb-1">Material:</label>
|
||||
<select name="material"
|
||||
id="id_material"
|
||||
{% if not view.can_edit %}disabled{% endif %}
|
||||
class="w-full p-2 border border-gray-300 rounded shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 {% if not view.can_edit %}bg-gray-100{% endif %}">
|
||||
{% if not view.can_edit or form.material.field.disabled %}disabled{% endif %}
|
||||
class="w-full p-2 border border-gray-300 rounded shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 {% if not view.can_edit or form.material.field.disabled %}bg-gray-100{% endif %}">
|
||||
{% for value, display in form.fields.material.choices %}
|
||||
<option value="{{ value }}"
|
||||
{% if form.material.value == value %}selected{% endif %}>{{ display }}</option>
|
||||
@@ -65,19 +65,20 @@
|
||||
<div>
|
||||
<label class="block text-sm font-medium mb-1">Status:</label>
|
||||
<select name="status"
|
||||
{% if not view.can_edit %}disabled{% endif %}
|
||||
class="w-full p-2 border border-gray-300 rounded shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 {% if not view.can_edit %}bg-gray-100{% endif %}">
|
||||
{% if not view.can_edit or form.status.field.disabled %}disabled{% endif %}
|
||||
class="w-full p-2 border border-gray-300 rounded shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 {% if not view.can_edit or form.status.field.disabled %}bg-gray-100{% endif %}">
|
||||
{% for value, label in form.status.field.choices %}
|
||||
<option value="{{ value }}"
|
||||
{% if value == ticket.status %}selected{% endif %}>{{ label }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
{% if form.status.errors %}<div class="text-red-600 text-sm mt-1">{{ form.status.errors }}</div>{% endif %}
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium mb-1">Priorität:</label>
|
||||
<select name="priority"
|
||||
{% if not view.can_edit %}disabled{% endif %}
|
||||
class="w-full p-2 border border-gray-300 rounded shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 {% if not view.can_edit %}bg-gray-100{% endif %}">
|
||||
{% if not view.can_edit or form.priority.field.disabled %}disabled{% endif %}
|
||||
class="w-full p-2 border border-gray-300 rounded shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 {% if not view.can_edit or form.priority.field.disabled %}bg-gray-100{% endif %}">
|
||||
<option value="low" {% if ticket.priority == 'low' %}selected{% endif %}>Niedrig</option>
|
||||
<option value="medium"
|
||||
{% if ticket.priority == 'medium' %}selected{% endif %}>Normal</option>
|
||||
@@ -123,7 +124,7 @@
|
||||
class="w-full p-2 border border-gray-300 rounded shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 placeholder:text-black {% if not view.can_edit or ticket.status != 'resolved' %}bg-gray-100 cursor-not-allowed{% endif %}">{{ ticket.answer|default:'' }}</textarea>
|
||||
{% if form.answer.errors %}<div class="text-red-600 text-sm mt-1">{{ form.answer.errors }}</div>{% endif %}
|
||||
<p class="text-xs text-gray-500 mt-1">
|
||||
{% if ticket.status != 'resolved' %}Eine Antwort ist erforderlich beim Setzen des Status auf "Gelöst"{% endif %}
|
||||
{% if ticket.status != 'resolved' or ticket.status != 'closed' %}Eine Antwort ist erforderlich beim Setzen des Status auf "Gelöst"{% endif %}
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -233,7 +234,7 @@
|
||||
const answerLabel = answerField.previousElementSibling;
|
||||
|
||||
function toggleAnswerField() {
|
||||
if (statusSelect.value === 'resolved') {
|
||||
if (statusSelect.value === 'resolved' || statusSelect.value === 'closed') {
|
||||
answerField.disabled = false;
|
||||
answerField.classList.remove('bg-gray-100', 'cursor-not-allowed');
|
||||
answerField.classList.add('bg-white');
|
||||
|
||||
Reference in New Issue
Block a user