Loading src/jama/templates/common.html +3 −0 Original line number Diff line number Diff line Loading @@ -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> Loading src/jama/templates/task_results.html +10 −0 Original line number Diff line number Diff line Loading @@ -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 }}"> Loading src/jama/views.py +13 −2 Original line number Diff line number Diff line Loading @@ -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"] Loading @@ -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 = { Loading Loading @@ -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: Loading @@ -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, Loading Loading
src/jama/templates/common.html +3 −0 Original line number Diff line number Diff line Loading @@ -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> Loading
src/jama/templates/task_results.html +10 −0 Original line number Diff line number Diff line Loading @@ -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 }}"> Loading
src/jama/views.py +13 −2 Original line number Diff line number Diff line Loading @@ -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"] Loading @@ -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 = { Loading Loading @@ -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: Loading @@ -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, Loading