Adding file uploading function

This commit is contained in:
Sebastien Laithier 2022-08-19 09:24:26 +02:00
parent ea7f32c7c9
commit 533a7993a9
7 changed files with 53 additions and 6 deletions

View File

@ -1,5 +1,5 @@
from django.contrib import admin
from .models import Os, ServerStatus, Server, Group, PackageStatus, Team
from .models import Os, ServerStatus, Server, PackageStatus, Team
class OsAdmin(admin.ModelAdmin):

4
dashboard/forms.py Normal file
View File

@ -0,0 +1,4 @@
from django import forms
class DocumentForm(forms.Form):
docfile = forms.FileField(label='Select a file')

View File

@ -134,3 +134,13 @@ class ServerStatus(models.Model):
class Meta:
unique_together = ('date', 'server')
verbose_name_plural = "Server status"
class Document_Servers(models.Model):
description = models.CharField(max_length=255, blank=True)
docfile = models.FileField(upload_to='results/')
uploaded_at = models.DateTimeField(auto_now_add=True)
class Document_Packages(models.Model):
description = models.CharField(max_length=255, blank=True)
docfile = models.FileField(upload_to='results-packages/')
uploaded_at = models.DateTimeField(auto_now_add=True)

View File

@ -63,9 +63,12 @@ urlpatterns = [
re_path(r'^manage/import/(?P<year>[0-9]{4})/(?P<month>[0-9]{1,2})/(?P<day>[0-9]{1,2})/?$',
views.import_csv,
name='import'),
re_path(r'^manage/update-groups/?$',
views.update_groups,
name='update_groups'),
re_path(r'^manage/upload_csv_results',
views.upload_csv_results,
name='upload_csv_results'),
# re_path(r'^manage/update-groups/?$',
# views.update_groups,
# name='update_groups'),
# manage packages
re_path(r'^manage-packages/?$',

View File

@ -8,7 +8,7 @@ from statistics import mean, median
from yaml import load as yaml_load
from requests import get as requests_get
# django
from django.shortcuts import render, get_object_or_404
from django.shortcuts import render, get_object_or_404, redirect
from django.http import HttpResponse, HttpResponseNotFound
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
@ -16,7 +16,8 @@ from django.core.cache import cache
from django.db import IntegrityError
from django.contrib.auth.decorators import login_required
# project
from .models import Os, Group, Server, ServerStatus, PackageStatus, Team
from .models import Os, Group, Server, ServerStatus, PackageStatus, Team, Document_Servers, Document_Packages
from .forms import DocumentForm
## -----------------------------------------------------------------------------
@ -586,3 +587,32 @@ def manage_packages(request):
return render(request, 'manage-packages.html', {
'all_dates': reversed(all_dates),
})
## -----------------------------------------------------------------------------
## UPLOAD FILE
## Upload csv file
## -----------------------------------------------------------------------------
@login_required
def upload_csv_results(request):
message = 'File must be name YYYY-MM-DD.csv'
# Handle file upload
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
newdoc = Document_Servers(docfile=request.FILES['docfile'])
newdoc.save()
# Redirect to the document list after POST
return redirect('manage')
else:
message = 'The form is not valid. Fix the following error:'
else:
form = DocumentForm() # An empty, unbound form
# Load documents for the list page
documents = Document_Servers.objects.all()
# Render list page with the documents and the form
context = {'documents': documents, 'form': form, 'message': message}
return render(request, 'manage.html', context)

View File

0
results/.gitkeep Normal file
View File