Create archive form
This commit is contained in:
parent
cc35f276ef
commit
194afd9c66
|
@ -1 +1,2 @@
|
||||||
from .repoform import RepoForm
|
from .repoform import RepoForm
|
||||||
|
from .archiveform import ArchiveForm
|
||||||
|
|
20
borgweb/borg/forms/archiveform.py
Normal file
20
borgweb/borg/forms/archiveform.py
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
from django import forms
|
||||||
|
|
||||||
|
|
||||||
|
class ArchiveForm(forms.Form):
|
||||||
|
label = forms.CharField(label='Label')
|
||||||
|
fingerprint = forms.CharField(label='Fingerprint')
|
||||||
|
name = forms.CharField(label='Name')
|
||||||
|
start = forms.DateTimeField(label='Start', input_formats=["%Y-%m-%dT%H:%M:%S.%z"])
|
||||||
|
end = forms.DateTimeField(label='End', input_formats=["%Y-%m-%dT%H:%M:%S.%z"])
|
||||||
|
file_count = forms.IntegerField(label='File Count', min_value=0)
|
||||||
|
original_size = forms.IntegerField(label='Original Size', min_value=0)
|
||||||
|
compressed_size = forms.IntegerField(label='Compressed Size', min_value=0)
|
||||||
|
deduplicated_size = forms.IntegerField(label='Deduplicated Size', min_value=0)
|
||||||
|
|
||||||
|
total_chunks = forms.IntegerField(label='Total Chunks', min_value=0)
|
||||||
|
total_csize = forms.IntegerField(label='Total Compressed Size', min_value=0)
|
||||||
|
total_size = forms.IntegerField(label='Total Size', min_value=0)
|
||||||
|
total_unique_chunks = forms.IntegerField(label='Total Unique Chunks', min_value=0)
|
||||||
|
unique_csize = forms.IntegerField(label='Unique Size', min_value=0)
|
||||||
|
unique_size = forms.IntegerField(label='Unique Compressed Size', min_value=0)
|
14
borgweb/borg/templates/borg/archive.html
Normal file
14
borgweb/borg/templates/borg/archive.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Add archive</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form action="archive" method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form }}
|
||||||
|
<input type="submit" value="Submit">
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -4,5 +4,6 @@ from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.index, name='index'),
|
path('', views.index, name='index'),
|
||||||
path('repo', views.get_repo, name='repo')
|
path('repo', views.get_repo, name='repo'),
|
||||||
|
path('archive', views.get_archive, name='archive'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render, get_object_or_404
|
||||||
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseNotAllowed
|
from django.http import HttpResponseRedirect
|
||||||
|
|
||||||
from .models import Repo, Label
|
from .models import Repo, Label, Archive, Cache
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from .forms import RepoForm
|
from .forms import RepoForm, ArchiveForm
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
|
@ -42,3 +42,30 @@ def get_repo(request):
|
||||||
form = RepoForm()
|
form = RepoForm()
|
||||||
|
|
||||||
return render(request, 'borg/repo.html', {'form': form})
|
return render(request, 'borg/repo.html', {'form': form})
|
||||||
|
|
||||||
|
|
||||||
|
def get_archive(request):
|
||||||
|
if request.method == 'POST':
|
||||||
|
form = ArchiveForm(request.POST)
|
||||||
|
if form.is_valid():
|
||||||
|
cdata = form.cleaned_data
|
||||||
|
|
||||||
|
repo = get_object_or_404(Repo, label__label=cdata['label'])
|
||||||
|
|
||||||
|
cache_dict = {k: cdata[k] for k in ('total_chunks', 'total_csize', 'total_size',
|
||||||
|
'total_unique_chunks', 'unique_csize', 'unique_size')}
|
||||||
|
|
||||||
|
cache = Cache(**cache_dict)
|
||||||
|
cache.save()
|
||||||
|
|
||||||
|
archive_dict = {k: cdata[k] for k in ('fingerprint', 'name', 'start', 'end', 'file_count',
|
||||||
|
'original_size', 'compressed_size', 'deduplicated_size')}
|
||||||
|
|
||||||
|
archive = Archive(**archive_dict, repo=repo, cache=cache)
|
||||||
|
archive.save()
|
||||||
|
|
||||||
|
return HttpResponseRedirect(reverse('index'))
|
||||||
|
else:
|
||||||
|
form = ArchiveForm()
|
||||||
|
|
||||||
|
return render(request, 'borg/archive.html', {'form': form})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user