def importing(request): form = FileForm(request.POST or None) if request.method == 'POST': form = FileForm(request.POST, request.FILES) if form.is_valid(): f = request.FILES['file'] # TODO: should probably get the file type in a better way than looking at the extension (similar to linux `file`?) # file exension really says nothing about the type if os.path.splitext(f.name)[1] == ".csv": filetype = FileType.CSV elif os.path.splitext(f.name)[1] == ".xlsx": filetype = FileType.XLSX else: # TODO: correct way to error out here? context1 = { 'error': True, 'message': "Incorrect file extension", } return render(request, 'importing.html', { 'context': context1, 'form': form }) filepath = saveUploadedFile(f) # save file to disk temporarily name = request.POST.get("name", "") description = request.POST.get("description", "") try: data = JSONDataSet(filepath, filetype, name, description) data.SaveDataset(request.user) # save dataset to database as json except InputException as e: # TODO: correct way to error out here? os.remove(filepath) # delete the temporary file context2 = { 'error': True, 'message': str(e), } return render(request, 'importing.html', {'context': context2, 'form': form }) os.remove(filepath) # delete the temporary file data = list(map(lambda x: x.json_dict["title"], JSONDataSet.GetDatasets(request.user))) datasets = JSONDataSet.GetDatasets(request.user) username = request.user.username data = list() for d in datasets: temp = dict() temp['id'] = d.id temp['name'] = d.json_dict["title"] data.append(temp) return redirect('http://127.0.0.1:8000/colSelect?dataset=' + str(d.id)) return render(request, 'importing.html', { 'form': form })
def profile(request): data = list( map(lambda x: x.json_dict["title"], JSONDataSet.GetDatasets(request.user))) datasets = JSONDataSet.GetDatasets(request.user) username = request.user.username data = list() for d in datasets: temp = dict() temp['id'] = d.id temp['name'] = d.json_dict["title"] data.append(temp) return render(request, 'profile.html', { "data": data, "username": username })