default priority

This commit is contained in:
Corban-Lee Jones 2024-01-10 18:06:24 +00:00
parent 33c721c5a6
commit 4c7a81e076
3 changed files with 47 additions and 21 deletions

View File

@ -54,6 +54,8 @@ def get_tickets(request):
queryset = Ticket.objects.all() queryset = Ticket.objects.all()
for key, values in filters.items(): for key, values in filters.items():
print(key, values)
for value in values: for value in values:
queryset = queryset.filter(**{key: [value]}) queryset = queryset.filter(**{key: [value]})

View File

@ -29,13 +29,27 @@
<h6>Priorities</h6> <h6>Priorities</h6>
</li> </li>
<li id="filterPriorityAll" class="nav-item filter-priority">
<label for="filterPriority-all" class="nav-link c-grey-800 cH-blue-500 actived">
<div class="peers ai-c jc-sb">
<div class="peer peer-greed">
<input type="radio" id="filterPriority-all" name="filterPriorities" class="form-check-input me-2" checked="checked" value="all">
<span>All</span>
</div>
<div class="peer">
<span class="badge rounded-pill bgc-green-50 c-green-700">0</span>
</div>
</div>
</label>
</li>
{% for priority in priorities %} {% for priority in priorities %}
<li class="nav-item filter-priority" data-uuid="{{ priority.id }}"> <li class="nav-item filter-priority">
<label for="filterPriority-{{ priority.id }}" class="nav-link c-grey-800 cH-blue-500 actived"> <label for="filterPriority-{{ priority.id }}" class="nav-link c-grey-800 cH-blue-500 actived">
<div class="peers ai-c jc-sb"> <div class="peers ai-c jc-sb">
<div class="peer peer-greed"> <div class="peer peer-greed">
<input type="checkbox" id="filterPriority-{{ priority.id }}" class="form-check-input me-2"> <input type="radio" id="filterPriority-{{ priority.id }}" name="filterPriorities" class="form-check-input me-2" value="{{ priority.id }}">
<span>{{ priority.title }}</span> <span>{{ priority.title }}</span>
</div> </div>
<div class="peer"> <div class="peer">
@ -57,11 +71,11 @@
{% for tag in tags %} {% for tag in tags %}
<li class="nav-item filter-tag" data-uuid="{{ tag.id }}"> <li class="nav-item filter-tag">
<label for="filterTag-{{ tag.id }}" class="nav-link c-grey-800 cH-blue-500 actived"> <label for="filterTag-{{ tag.id }}" class="nav-link c-grey-800 cH-blue-500 actived">
<div class="peers ai-c jc-sb"> <div class="peers ai-c jc-sb">
<div class="peer peer-greed"> <div class="peer peer-greed">
<input type="checkbox" id="filterTag-{{ tag.id }}" class="form-check-input me-2"> <input type="checkbox" id="filterTag-{{ tag.id }}" class="form-check-input me-2" value="{{ priority.id }}">
<span>{{ tag.title }}</span> <span>{{ tag.title }}</span>
</div> </div>
<div class="peer"> <div class="peer">
@ -83,11 +97,11 @@
{% for department in departments %} {% for department in departments %}
<li class="nav-item filter-department" data-uuid="{{ department.id }}"> <li class="nav-item filter-department">
<label for="filterDepartment-{{ department.id }}" class="nav-link c-grey-800 cH-blue-500 actived"> <label for="filterDepartment-{{ department.id }}" class="nav-link c-grey-800 cH-blue-500 actived">
<div class="peers ai-c jc-sb"> <div class="peers ai-c jc-sb">
<div class="peer peer-greed"> <div class="peer peer-greed">
<input type="checkbox" id="filterDepartment-{{ department.id }}" class="form-check-input me-2"> <input type="checkbox" id="filterDepartment-{{ department.id }}" class="form-check-input me-2" value="{{ department.id }}">
<span>{{ department.title }}</span> <span>{{ department.title }}</span>
</div> </div>
<div class="peer"> <div class="peer">
@ -297,7 +311,7 @@
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label for="newDesc" class="form-label">Description</label> <label for="newDesc" class="form-label">Description</label>
<div id="newDesc" class="form-control"></div> <div id="newDesc" class="form-control"></div>
<small class="text-muted">Describe your issue in detail here.</small> <small class="text-muted">Describe your issue in detail here.</small>
<!-- class="form-control" --> <!-- class="form-control" -->
</div> </div>
@ -311,7 +325,7 @@
<small class="text-muted">How important is this ticket?</small> <small class="text-muted">How important is this ticket?</small>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label for="newTagss" class="form-label">Tags</label> <label for="newTags" class="form-label">Tags</label>
<select name="newTags" id="newTags" class="select-2" multiple="multiple"> <select name="newTags" id="newTags" class="select-2" multiple="multiple">
{% for tag in tags %} {% for tag in tags %}
<option value="{{ tag.id }}">{{ tag.title }}</option> <option value="{{ tag.id }}">{{ tag.title }}</option>
@ -348,6 +362,11 @@
console.error(error) console.error(error)
}); });
// $("#filterPriorityAll").click(function() {
// delete filters[".filter-priority"];
// loadAllTickets();
// });
setupFilter("#filterSidebar .filter-department", "author__department__in"); setupFilter("#filterSidebar .filter-department", "author__department__in");
setupFilter("#filterSidebar .filter-tag", "tags__in") setupFilter("#filterSidebar .filter-tag", "tags__in")
setupFilter("#filterSidebar .filter-priority", "priority__in") setupFilter("#filterSidebar .filter-priority", "priority__in")
@ -358,17 +377,23 @@
function setupFilter(selector, key) { function setupFilter(selector, key) {
$(selector).each(function () { $(selector).each(function () {
var uuid = $(this).data("uuid"); var uuid = $(this).val();
var checkbox = $(this).find("input[type=checkbox]"); var input = $(this).find("input[type=checkbox], input[type=radio]");
checkbox.on("change", function () {
if ($(this).is(":checked")) { input.on("change", function () {
filters[key] = filters[key] || []; if (input.is(":checkbox")) {
filters[key].push(uuid); if ($(this).is(":checked")) {
} else { filters[key] = filters[key] || [];
filters[key].splice(filters[key].indexOf(uuid), 1); filters[key].push(uuid);
if (filters[key].length === 0) { } else {
delete filters[key]; // filters[key].splice(filters[key].indexOf(uuid), 1);
filters[key] = filters[key].filter(id => id !== uuid);
if (filters[key].length === 0) {
delete filters[key];
}
} }
} else if (input.is(":radio") && input.is(":checked")) {
filters[key] = [uuid];
} }
loadAllTickets(); loadAllTickets();
@ -426,6 +451,8 @@
updateFilterCounts('priority', data); updateFilterCounts('priority', data);
updateFilterCounts('tag', data); updateFilterCounts('tag', data);
updateFilterCounts('department', data); updateFilterCounts('department', data);
$("#filterPriorityAll .badge").text(data.ticket_count);
}, },
error: function(data) { error: function(data) {
alert(JSON.stringify(data, null, 4)) alert(JSON.stringify(data, null, 4))

View File

@ -1,7 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python
"""
Copyright (c) 2019 - present AppSeed.us
"""
import os import os
import sys import sys