Commit 79ea67cf authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

add tasks prune button

parent c4c00a4e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -10,6 +10,9 @@
        @view-transition {
            navigation: auto;
        }
        up-popup, up-cover-box, up-drawer-box, up-modal-box{
            background-color: var(--background-body);
        }
    </style>
    <title>Jama - {% block title %}Page inconnue{% endblock %}</title>
</head>
+10 −0
Original line number Diff line number Diff line
@@ -26,6 +26,16 @@
        {{ page_obj.paginator.count }} résultat(s) au total.
        Affichage page {{ page_obj.number }} / {{ page_obj.paginator.num_pages }}.
    </p>
    <form method="post" action="{{ request.get_full_path }}">
        {% csrf_token %}
        <input type="hidden" name="action" value="delete_successful_tasks" />
        <button
            type="submit"
            onclick="return confirm('Supprimer toutes les tâches SUCCESSFUL ?');"
        >
            Supprimer les tâches SUCCESSFUL
        </button>
    </form>

    <form method="get">
        <input type="hidden" name="sort" value="{{ sort }}">
+13 −2
Original line number Diff line number Diff line
@@ -103,6 +103,11 @@ def ark_collection(request: HttpRequest, collection_id: int) -> HttpResponse:
@user_passes_test(lambda user: user.is_superuser)
@never_cache
def task_results(request: HttpRequest) -> HttpResponse:
    if request.method == "POST":
        if request.POST.get("action") == "delete_successful_tasks":
            DBTaskResult.objects.filter(status="SUCCESSFUL").delete()
        return redirect(request.get_full_path())

    fields = list(DBTaskResult._meta.fields)
    field_names = [field.name for field in fields]
    status_filter_values = ["SUCCESSFUL", "FAILED", "RUNNING", "READY"]
@@ -124,7 +129,7 @@ def task_results(request: HttpRequest) -> HttpResponse:
    displayed_field_names = ["task_path", "enqueued_at", "status"]
    displayed_field_labels = {
        "task_path": "task_path",
        "enqueued_at": "enqueued_at",
        "enqueued_at": "enqueued_at (UTC)",
        "status": "status",
    }
    filter_values = {
@@ -256,6 +261,7 @@ def task_results(request: HttpRequest) -> HttpResponse:
def task_result_details(request: HttpRequest, task_result_id) -> HttpResponse:
    task_result = get_object_or_404(DBTaskResult, pk=task_result_id)
    preferred_order = ["id", "task_path", "status", "enqueued_at"]
    utc_label_fields = {"enqueued_at", "started_at", "finished_at"}
    fields_by_name = {field.name: field for field in DBTaskResult._meta.fields}
    ordered_field_names = [name for name in preferred_order if name in fields_by_name]
    for field in DBTaskResult._meta.fields:
@@ -265,7 +271,12 @@ def task_result_details(request: HttpRequest, task_result_id) -> HttpResponse:
    detail_rows = []
    for field_name in ordered_field_names:
        detail_rows.append(
            {"name": field_name, "value": getattr(task_result, field_name, None)}
            {
                "name": f"{field_name} (UTC)"
                if field_name in utc_label_fields
                else field_name,
                "value": getattr(task_result, field_name, None),
            }
        )
    return render(
        request,