diff options
author | Philip Sargent <philip.sargent@klebos.com> | 2021-04-27 20:44:24 +0100 |
---|---|---|
committer | Philip Sargent <philip.sargent@klebos.com> | 2021-04-27 20:44:24 +0100 |
commit | 5e478c7eb0a2bcd23ca46d1c4bd200750fbc9231 (patch) | |
tree | 5d6088d27a50dcf2b0a17ac863350f8d5100abc8 /core/views/other.py | |
parent | 821aaa1f66b003c34a8d568ff1dfdae057c17091 (diff) | |
download | troggle-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.py | 61 |
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): |