def project_delete(request, project_slug): """Project delete confirmation view Make a project as deleted on POST, otherwise show a form asking for confirmation of delete. """ project = get_object_or_404(Project.objects.for_admin_user(request.user), slug=project_slug) if request.method == 'POST': # Support hacky "broadcast" with MULTIPLE_APP_SERVERS setting, # otherwise put in normal celery queue for server in getattr(settings, "MULTIPLE_APP_SERVERS", ['celery']): log.info('Removing files on %s' % server) remove_dir.apply_async( args=[project.doc_path], queue=server, ) # Delete the project and everything related to it project.delete() messages.success(request, _('Project deleted')) project_dashboard = reverse('projects_dashboard') return HttpResponseRedirect(project_dashboard) return render_to_response('projects/project_delete.html', {'project': project}, context_instance=RequestContext(request))
def wipe_version(request, project_slug, version_slug): version = get_object_or_404(Version, project__slug=project_slug, slug=version_slug) if request.user not in version.project.users.all(): raise Http404("You must own this project to wipe it.") if request.method == 'POST': del_dirs = [ os.path.join(version.project.doc_path, 'checkouts', version.slug), os.path.join(version.project.doc_path, 'envs', version.slug), os.path.join(version.project.doc_path, 'conda', version.slug), ] for del_dir in del_dirs: # Support hacky "broadcast" with MULTIPLE_BUILD_SERVERS setting, # otherwise put in normal celery queue for server in getattr(settings, "MULTIPLE_BUILD_SERVERS", ['celery']): log.info('Removing files on %s' % server) remove_dir.apply_async( args=[del_dir], queue=server, ) return redirect('project_version_list', project_slug) else: return render_to_response('wipe_version.html', context_instance=RequestContext(request))
def wipe_version(request, project_slug, version_slug): version = get_object_or_404(Version, project__slug=project_slug, slug=version_slug) if request.user not in version.project.users.all(): raise Http404("You must own this project to wipe it.") if request.method == 'POST': del_dirs = [ version.project.checkout_path(version.slug), version.project.venv_path(version.slug) ] for del_dir in del_dirs: # Support hacky "broadcast" with MULTIPLE_BUILD_SERVERS setting, # otherwise put in normal celery queue for server in getattr(settings, "MULTIPLE_BUILD_SERVERS", ['celery']): log.info('Removing files on %s' % server) remove_dir.apply_async( args=[del_dir], queue=server, ) return redirect('project_version_list', project_slug) else: return render_to_response('wipe_version.html', context_instance=RequestContext(request))
def project_delete(request, project_slug): """Project delete confirmation view Make a project as deleted on POST, otherwise show a form asking for confirmation of delete. """ project = get_object_or_404(Project.objects.for_admin_user(request.user), slug=project_slug) if request.method == 'POST': # Support hacky "broadcast" with MULTIPLE_APP_SERVERS setting, # otherwise put in normal celery queue for server in getattr(settings, "MULTIPLE_APP_SERVERS", ['celery']): log.info('Removing files on %s' % server) remove_dir.apply_async( args=[project.doc_path], queue=server, ) # Delete the project and everything related to it project.delete() messages.success(request, _('Project deleted')) project_dashboard = reverse('projects_dashboard') return HttpResponseRedirect(project_dashboard) return render_to_response( 'projects/project_delete.html', {'project': project}, context_instance=RequestContext(request) )