Allow creation of repo with label from form

This commit is contained in:
George Lacey 2021-05-07 18:36:15 +01:00
parent 3853f2ba2d
commit c7da5c26c8
2 changed files with 21 additions and 12 deletions

View File

@ -5,3 +5,4 @@ class RepoForm(forms.Form):
fingerprint = forms.CharField(label='Fingerprint')
location = forms.CharField(label='Location')
last_modified = forms.DateTimeField(label='Last Modified', input_formats=["%Y-%m-%dT%H:%M:%S.%z"])
label = forms.CharField(label='Label')

View File

@ -1,9 +1,9 @@
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseNotAllowed
from .models import Repo
from .forms import RepoForm
from .models import Repo, Label
from django.urls import reverse
from .forms import RepoForm
def index(request):
@ -13,23 +13,31 @@ def index(request):
context = {
'repo_list': repo_list,
'hour_list': hour_list
}
}
return render(request, 'borg/index.html', context)
def get_repo(request):
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = RepoForm(request.POST)
# check whether it's valid:
if form.is_valid():
print(form.cleaned_data)
# process the data in form.cleaned_data as required
# ...
# redirect to a new URL:
return HttpResponseRedirect(reverse('index'))
cdata = form.cleaned_data
# if a GET (or any other method) we'll create a blank form
repo_query = Repo.objects.all().filter(fingerprint=cdata['fingerprint'])
if len(repo_query) > 0:
label = repo_query[0].label
label.label = cdata['label']
label.save()
label, _ = Label.objects.get_or_create(label=cdata['label'])
label.save()
repo, repo_exists = Repo.objects.update_or_create(fingerprint=cdata['fingerprint'],
defaults={'location': cdata['location'],
'last_modified': cdata['last_modified'],
'label': label})
repo.save()
return HttpResponseRedirect(reverse('index'))
else:
form = RepoForm()