示例#1
0
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 })
示例#2
0
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
    })