summaryrefslogtreecommitdiffstats
path: root/core/views/other.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/views/other.py')
-rw-r--r--core/views/other.py60
1 files changed, 49 insertions, 11 deletions
diff --git a/core/views/other.py b/core/views/other.py
index 89fac23..186616a 100644
--- a/core/views/other.py
+++ b/core/views/other.py
@@ -204,25 +204,63 @@ def ajax_test(request):
@login_required_if_public
-def scanupload(request, year='2050'):
- print(f'! - FORM scanupload - start')
+def scanupload(request, wallet=None):
+ '''Upload one scanned image file into a wallet on /expofiles
+ '''
+ filesaved = False
+ actual_saved = []
+ print(f'! - FORM scanupload - start {wallet}')
+ if wallet is None:
+ wallet = "2021#01" # improve this later
+ if not re.match('(19|20)\d\d:\d\d', wallet):
+ wallet = "2021:01" # improve this later
+
+ year = wallet[:4]
+ nexty = f'{int(year)+1}'
+ prevy = f'{int(year)-1}'
+ wnumber = wallet[5:]
+ next = f'{int(wnumber)+1:02d}'
+ prev = f'{int(wnumber)-1:02d}'
+
+ if int(wnumber) == 0:
+ prev = f'{int(wnumber):02d}'
+
+ wallet = wallet.replace(':','#')
+ dirpath = Path(settings.SURVEY_SCANS, year, wallet)
+
if request.method == 'POST':
form = SimpleUploadFileForm(request.POST,request.FILES)
if form.is_valid():
#form.save() # comment out so nothing saved in MEDIA_ROOT/fileuploads
f = request.FILES["simplefile"]
w = request.POST["title"]
- print(f'! - FORM scanupload uploaded {f.name}')
+ multiple = request.FILES.getlist('simplefile')
fs = FileSystemStorage(os.path.join(settings.SURVEY_SCANS, year, w))
- actual_saved = fs.save(f.name, content=f) # name may chnage to avoid clash
- # INSERT check if name is changed, to allow user to abort and rename - or lets do a chaecjk anyway.
-
- print(f'! - FORM scanupload {actual_saved}')
-
- form = SimpleUploadFileForm()
- return render(request, 'scanuploadform.html', {'form': form,'filesaved': True, 'actual_saved': actual_saved})
+ actual_saved = []
+ if multiple:
+ for f in multiple:
+ actual_saved.append( fs.save(f.name, content=f) )
+ print(f'! - FORM scanupload multiple {actual_saved}')
+ filesaved = True
+
+ files = []
+ dirs = []
+ print(f'! - FORM scanupload - start {wallet} {dirpath}')
+ try:
+ for f in dirpath.iterdir():
+ if f.is_dir():
+ dirs.append(f.name)
+ if f.is_file():
+ if f.name != 'contents.json' and f.name != 'walletindex.html':
+ files.append(f.name)
+ except FileNotFoundError:
+ files.append('(no wallet yet - would be created)')
+ if len(files) ==0 :
+ files.append('(no image files in wallet)')
+
else:
form = SimpleUploadFileForm()
- return render(request, 'scanuploadform.html', {'form':form,})
+ return render(request, 'scanuploadform.html',
+ {'form': form, 'wallet': wallet, 'year': year, 'prev': prev, 'next': next, 'prevy': prevy, 'nexty': nexty, 'files': files, 'dirs': dirs, 'filesaved': filesaved, 'actual_saved': actual_saved})