summaryrefslogtreecommitdiffstats
path: root/core/views/other.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2021-04-27 20:44:24 +0100
committerPhilip Sargent <philip.sargent@klebos.com>2021-04-27 20:44:24 +0100
commit5e478c7eb0a2bcd23ca46d1c4bd200750fbc9231 (patch)
tree5d6088d27a50dcf2b0a17ac863350f8d5100abc8 /core/views/other.py
parent821aaa1f66b003c34a8d568ff1dfdae057c17091 (diff)
downloadtroggle-5e478c7eb0a2bcd23ca46d1c4bd200750fbc9231.tar.gz
troggle-5e478c7eb0a2bcd23ca46d1c4bd200750fbc9231.tar.bz2
troggle-5e478c7eb0a2bcd23ca46d1c4bd200750fbc9231.zip
Imports in control panel work again
Diffstat (limited to 'core/views/other.py')
-rw-r--r--core/views/other.py61
1 files changed, 48 insertions, 13 deletions
diff --git a/core/views/other.py b/core/views/other.py
index 8a4dd37..552bf6f 100644
--- a/core/views/other.py
+++ b/core/views/other.py
@@ -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()
+ 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:
- 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'))
+ 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):