Adding file uploading function
This commit is contained in:
parent
ea7f32c7c9
commit
533a7993a9
@ -1,5 +1,5 @@
|
|||||||
from django.contrib import admin
|
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):
|
class OsAdmin(admin.ModelAdmin):
|
||||||
|
|||||||
4
dashboard/forms.py
Normal file
4
dashboard/forms.py
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
from django import forms
|
||||||
|
|
||||||
|
class DocumentForm(forms.Form):
|
||||||
|
docfile = forms.FileField(label='Select a file')
|
||||||
@ -134,3 +134,13 @@ class ServerStatus(models.Model):
|
|||||||
class Meta:
|
class Meta:
|
||||||
unique_together = ('date', 'server')
|
unique_together = ('date', 'server')
|
||||||
verbose_name_plural = "Server status"
|
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)
|
||||||
|
|||||||
@ -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})/?$',
|
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,
|
views.import_csv,
|
||||||
name='import'),
|
name='import'),
|
||||||
re_path(r'^manage/update-groups/?$',
|
re_path(r'^manage/upload_csv_results',
|
||||||
views.update_groups,
|
views.upload_csv_results,
|
||||||
name='update_groups'),
|
name='upload_csv_results'),
|
||||||
|
# re_path(r'^manage/update-groups/?$',
|
||||||
|
# views.update_groups,
|
||||||
|
# name='update_groups'),
|
||||||
|
|
||||||
# manage packages
|
# manage packages
|
||||||
re_path(r'^manage-packages/?$',
|
re_path(r'^manage-packages/?$',
|
||||||
|
|||||||
@ -8,7 +8,7 @@ from statistics import mean, median
|
|||||||
from yaml import load as yaml_load
|
from yaml import load as yaml_load
|
||||||
from requests import get as requests_get
|
from requests import get as requests_get
|
||||||
# django
|
# 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.http import HttpResponse, HttpResponseNotFound
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
@ -16,7 +16,8 @@ from django.core.cache import cache
|
|||||||
from django.db import IntegrityError
|
from django.db import IntegrityError
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
# project
|
# 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', {
|
return render(request, 'manage-packages.html', {
|
||||||
'all_dates': reversed(all_dates),
|
'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)
|
||||||
|
|||||||
0
results-packages/.gitkeep
Normal file
0
results-packages/.gitkeep
Normal file
0
results/.gitkeep
Normal file
0
results/.gitkeep
Normal file
Loading…
x
Reference in New Issue
Block a user