def manage(request): """Show snapshot list.""" if not snapshot_module.is_supported(): return not_supported_view(request) if request.method == 'POST': if 'create' in request.POST: actions.superuser_run('snapshot', ['create']) messages.success(request, _('Created snapshot.')) if 'delete_selected' in request.POST: to_delete = request.POST.getlist('snapshot_list') if to_delete: # Send values using GET params instead of session variables so # that snapshots can be deleted even when disk is full. params = [('snapshots', number) for number in to_delete] params = urllib.parse.urlencode(params) url = reverse('snapshot:delete-selected') return HttpResponseRedirect(f'{url}?{params}') output = actions.superuser_run('snapshot', ['list']) snapshots = json.loads(output) has_deletable_snapshots = any([ snapshot for snapshot in snapshots if not snapshot['is_default'] and not snapshot['is_active'] ]) return TemplateResponse( request, 'snapshot_manage.html', { 'title': snapshot_module.app.info.name, 'app_info': snapshot_module.app.info, 'snapshots': snapshots, 'has_deletable_snapshots': has_deletable_snapshots, 'subsubmenu': subsubmenu, })
def manage(request): """Show snapshot list.""" if not snapshot_module.is_supported(): return not_supported_view(request) if request.method == 'POST': if 'create' in request.POST: actions.superuser_run('snapshot', ['create']) messages.success(request, _('Created snapshot.')) if 'delete_selected' in request.POST: if request.POST.getlist('snapshot_list'): snapshot_to_delete = request.POST.getlist('snapshot_list') request.session['snapshots'] = snapshot_to_delete return redirect(reverse('snapshot:delete-selected')) output = actions.superuser_run('snapshot', ['list']) snapshots = json.loads(output) has_deletable_snapshots = any( [snapshot for snapshot in snapshots[1:] if not snapshot['is_default']]) return TemplateResponse( request, 'snapshot_manage.html', { 'title': snapshot_module.app.info.name, 'app_info': snapshot_module.app.info, 'snapshots': snapshots, 'has_deletable_snapshots': has_deletable_snapshots, 'subsubmenu': subsubmenu, })
def index(request): """Show snapshot list.""" if not snapshot_module.is_supported(): return not_supported_view(request) status = get_configuration() if request.method == 'POST': form = SnapshotForm(request.POST) if 'update' in request.POST and form.is_valid(): update_configuration(request, status, form.cleaned_data) status = get_configuration() form = SnapshotForm(initial=status) else: form = SnapshotForm(initial=status) return TemplateResponse( request, 'snapshot.html', { 'app_info': snapshot_module.app.info, 'title': snapshot_module.app.info.name, 'subsubmenu': subsubmenu, 'form': form })