diff --git a/ifcbdb/secure/urls.py b/ifcbdb/secure/urls.py index 08c72f3d..7b97b07a 100644 --- a/ifcbdb/secure/urls.py +++ b/ifcbdb/secure/urls.py @@ -49,6 +49,8 @@ path('api/sync/', views.sync_dataset, name='sync_dataset'), path('api/sync/status/', views.sync_dataset_status, name='sync_dataset_status'), path('api/sync/cancel/', views.sync_cancel, name='sync_cancel'), + path('api/dataset//bin-count', views.dataset_bin_count, name='dataset_bin_count'), + path('api/delete-dataset/', views.delete_dataset, name='delete_dataset'), path('api/metadata-upload/status', views.metadata_upload_status, name='metadata_upload_status'), path('api/metadata-upload/cancel', views.metadata_upload_cancel, name="metadata_upload_cancel"), path('api/toggle-skip', views.toggle_skip, name='toggle_skip'), diff --git a/ifcbdb/secure/views.py b/ifcbdb/secure/views.py index 11c6c668..04b97005 100644 --- a/ifcbdb/secure/views.py +++ b/ifcbdb/secure/views.py @@ -243,6 +243,36 @@ def edit_dataset(request, id): }) +@login_required +def dataset_bin_count(request, dataset_id): + if not auth.can_manage_datasets(request.user): + return HttpResponseForbidden() + + dataset = get_object_or_404(Dataset, pk=dataset_id) + + if not auth.is_admin(request.user) and not TeamDataset.objects.filter(dataset=dataset).exists(): + return HttpResponseForbidden() + + return JsonResponse({ + "bin_count": dataset.bins.count(), + }) + + +@require_POST +def delete_dataset(request, dataset_id): + if not auth.can_manage_datasets(request.user): + return HttpResponseForbidden() + + dataset = get_object_or_404(Dataset, pk=dataset_id) + + if not auth.is_admin(request.user) and not TeamDataset.objects.filter(dataset=dataset).exists(): + return HttpResponseForbidden() + + dataset.delete() + + return JsonResponse({}) + + @login_required def edit_directory(request, dataset_id, id): if not auth.is_admin(request.user): diff --git a/ifcbdb/templates/secure/dataset-management.html b/ifcbdb/templates/secure/dataset-management.html index ca94378e..39710c00 100644 --- a/ifcbdb/templates/secure/dataset-management.html +++ b/ifcbdb/templates/secure/dataset-management.html @@ -37,27 +37,7 @@ - - - + {% endblock %} {% block scripts %} {% endblock %} \ No newline at end of file