From 72084210213c72c112101ddb59bb07992a4fc1f7 Mon Sep 17 00:00:00 2001 From: George Lacey Date: Fri, 7 May 2021 20:31:19 +0100 Subject: [PATCH] Create error form --- borgweb/borg/forms/__init__.py | 1 + borgweb/borg/forms/errorform.py | 7 +++++++ borgweb/borg/templates/borg/error.html | 14 ++++++++++++++ borgweb/borg/urls.py | 1 + borgweb/borg/views.py | 21 +++++++++++++++++++-- 5 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 borgweb/borg/forms/errorform.py create mode 100644 borgweb/borg/templates/borg/error.html diff --git a/borgweb/borg/forms/__init__.py b/borgweb/borg/forms/__init__.py index 7e19013..02dcb0a 100644 --- a/borgweb/borg/forms/__init__.py +++ b/borgweb/borg/forms/__init__.py @@ -1,2 +1,3 @@ from .repoform import RepoForm from .archiveform import ArchiveForm +from .errorform import ErrorForm diff --git a/borgweb/borg/forms/errorform.py b/borgweb/borg/forms/errorform.py new file mode 100644 index 0000000..cbf347e --- /dev/null +++ b/borgweb/borg/forms/errorform.py @@ -0,0 +1,7 @@ +from django import forms + + +class ErrorForm(forms.Form): + label = forms.CharField(label='Label') + error = forms.CharField(label='Fingerprint') + time = forms.DateTimeField(label='Last Modified', input_formats=["%Y-%m-%dT%H:%M:%S.%z"]) diff --git a/borgweb/borg/templates/borg/error.html b/borgweb/borg/templates/borg/error.html new file mode 100644 index 0000000..8ac11d8 --- /dev/null +++ b/borgweb/borg/templates/borg/error.html @@ -0,0 +1,14 @@ + + + + + Add error + + +
+ {% csrf_token %} + {{ form }} + +
+ + \ No newline at end of file diff --git a/borgweb/borg/urls.py b/borgweb/borg/urls.py index d6a7476..10b924e 100644 --- a/borgweb/borg/urls.py +++ b/borgweb/borg/urls.py @@ -6,4 +6,5 @@ urlpatterns = [ path('', views.index, name='index'), path('repo', views.get_repo, name='repo'), path('archive', views.get_archive, name='archive'), + path('error', views.get_error, name='error'), ] diff --git a/borgweb/borg/views.py b/borgweb/borg/views.py index 9aa4507..9166d7a 100644 --- a/borgweb/borg/views.py +++ b/borgweb/borg/views.py @@ -1,9 +1,9 @@ from django.shortcuts import render, get_object_or_404 from django.http import HttpResponseRedirect -from .models import Repo, Label, Archive, Cache +from .models import Repo, Label, Archive, Cache, Error from django.urls import reverse -from .forms import RepoForm, ArchiveForm +from .forms import RepoForm, ArchiveForm, ErrorForm def index(request): @@ -69,3 +69,20 @@ def get_archive(request): form = ArchiveForm() return render(request, 'borg/archive.html', {'form': form}) + + +def get_error(request): + if request.method == 'POST': + form = ErrorForm(request.POST) + if form.is_valid(): + cdata = form.cleaned_data + label, _ = Label.objects.get_or_create(label=cdata['label']) + + error = Error(label=label, error=cdata['error'], time=cdata['time']) + error.save() + + return HttpResponseRedirect(reverse('index')) + else: + form = ErrorForm() + + return render(request, 'borg/error.html', {'form': form})