Imports in control panel work again

This commit is contained in:
Philip Sargent
2021-04-27 20:44:24 +01:00
parent 821aaa1f66
commit 5e478c7eb0
5 changed files with 106 additions and 54 deletions

View File

@@ -9,7 +9,9 @@ from django.shortcuts import render
from django.template import Context, loader
from django.core.files.storage import FileSystemStorage, default_storage
import troggle.parsers.imports
from troggle.parsers.imports import import_caves, import_people, import_surveyscans
from troggle.parsers.imports import import_logbooks, import_QMs, import_drawingsfiles, import_survex
# from databaseReset import reinit_db # don't do this. databaseRest runs code *at import time*
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
from troggle.core.models.caves import LogbookEntry, QM, Cave, PersonTrip
from .login import login_required_if_public
@@ -82,27 +84,60 @@ def frontpage(request):
return render(request,'frontpage.html', locals())
@login_required_if_public
def controlpanel(request):
'''This should be re-written to use ajax so that the user can see the progress
of the actions.
Also need to add reinit_db option
'''
jobs_completed=[]
if request.method=='POST':
if request.user.is_superuser: # expoadmin is both .is_staff and ._is_superuser
# NONE of this works now that databaseReset (now parsers.imports) has been so extensively rewritten
reinit_db()
def process_imports():
'''databaseReset.py
jq.enq("reinit",reinit_db)
jq.enq("caves",import_caves)
jq.enq("people",import_people)
jq.enq("scans",import_surveyscans)
jq.enq("logbooks",import_logbooks)
jq.enq("QMs",import_QMs)
jq.enq("drawings",import_drawingsfiles)
jq.enq("survex",import_survex)
'''
if request.POST.get("import_caves", False):
import_caves()
jobs_completed.append('Caves')
if request.POST.get("import_people", False):
import_people()
jobs_completed.append('People')
if request.POST.get("import_surveyscans", False):
import_surveyscans()
jobs_completed.append('Scans')
if request.POST.get("import_logbooks", False):
import_logbooks()
jobs_completed.append('Logbooks')
if request.POST.get("import_QMs", False):
import_QMs()
import_dwgfiles()
import_survexblks()
import_survexpos()
else:
if request.user.is_authenticated: #The user is logged in, but is not a superuser.
return render(request,'controlPanel.html', {'caves':Cave.objects.all(),'error':'You must be a superuser to use that feature.'})
else:
return HttpResponseRedirect(reverse('auth_login'))
jobs_completed.append('QMs')
if request.POST.get("import_drawingsfiles", False):
import_drawingsfiles()
jobs_completed.append('Drawings')
if request.POST.get("import_survex", False):
import_survex()
jobs_completed.append('Survex')
print("", flush=True)
if not request.user.is_superuser: # expoadmin is both .is_staff and ._is_superuser
return render(request,'controlPanel.html', {'error': 'You are logged in, but not logged in as "expoadmin". \nLogout and login again to contnue.'})
else:
if request.method=='POST':
#reinit_db()
process_imports()
return render(request,'controlPanel.html', {'expeditions':Expedition.objects.all(),'jobs_completed':jobs_completed})
else:
return render(request,'controlPanel.html', {'expeditions':Expedition.objects.all(),'jobs_completed':jobs_completed})
return render(request,'controlPanel.html', {'caves':Cave.objects.all(),'expeditions':Expedition.objects.all(),'jobs_completed':jobs_completed})
def downloadlogbook(request,year=None,extension=None,queryset=None):