+@require_POST
+@login_required
+def job_clean(request, job_id):
+ return obj_clean(request, get_object_or_404(request.user.jobs, job_id=job_id))
+
+
+@require_POST
+@login_required
+def task_clean(request, job_id, task_id):
+ return obj_clean(request, get_object_or_404(request.user.tasks, job__job_id=job_id, task_id=task_id))
+
+
+def obj_clean(request, obj):
+ try:
+ clean(obj, request.session['proxy'])
+ except PyqcgException as e:
+ messages.error(request, format_html('<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span> {}',
+ e.message))
+ else:
+ messages.success(request, format_html('<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span> '
+ 'Usunięto katalog roboczy.'))
+
+ return redirect(obj)
+
+