Scan Upload working nicely

This commit is contained in:
Philip Sargent
2021-04-30 03:44:53 +01:00
parent 03a5f5989e
commit bdf535fcbf
6 changed files with 86 additions and 32 deletions

View File

@@ -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})