diff options
author | Philip Sargent <philip.sargent@klebos.com> | 2021-04-30 03:44:53 +0100 |
---|---|---|
committer | Philip Sargent <philip.sargent@klebos.com> | 2021-04-30 03:44:53 +0100 |
commit | bdf535fcbfe66c424e52e86fa554ba567b0ec63b (patch) | |
tree | 28c076f02eb7e4fda34a5f77f400df8cf2919245 /core/views/other.py | |
parent | 03a5f5989e74ba50ff63ba599f98cd36dc0fa5d0 (diff) | |
download | troggle-bdf535fcbfe66c424e52e86fa554ba567b0ec63b.tar.gz troggle-bdf535fcbfe66c424e52e86fa554ba567b0ec63b.tar.bz2 troggle-bdf535fcbfe66c424e52e86fa554ba567b0ec63b.zip |
Scan Upload working nicely
Diffstat (limited to 'core/views/other.py')
-rw-r--r-- | core/views/other.py | 60 |
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}) |