Exemplo n.º 1
0
def createNotebook(request):
    form = notebookForm()
    userInfo = navBarUserName(request)
    userId = request.user.id
    
    context = {'form':form,
              }
    context = {**context, **userInfo}

    if request.method == 'POST':
        form = notebookForm(request.POST, request.FILES)
        try:
            file = request.FILES['file'] 
            file = request.FILES['file']       
            file_extension = os.path.splitext(file.name)[1]

            if file_extension != '.ipynb':
                context['error'] = 'Please provide a jupyter notebook in with a ipynb ending'
                context['form'] = form
                return render(request, 'notebooks/notebooksCreate.html', context)

        except:
            folderName = request.POST['name']
            if not os.path.isdir(os.path.join(MEDIA_ROOT, 'notebooks', folderName)):
                os.mkdir(os.path.join(MEDIA_ROOT, 'notebooks', folderName))
                copyfile(os.path.join(MEDIA_ROOT, 'notebooks', 'Test.ipynb'), os.path.join(MEDIA_ROOT, 'notebooks', folderName, 'Test.ipynb'))
            
        if form.is_valid():  
            form.save()
            return redirect('notebookList')
   
    
    return render(request, 'notebooks/notebooksCreate.html', context)
Exemplo n.º 2
0
def notebooksList(request):
    userInfo = navBarUserName(request)
    userId = request.user.id

    obj = notebook.objects.all()

    context = {'notebooks':obj}
    context ={**userInfo,**context}
    return render(request, 'notebooks/notebooksList.html', context)
Exemplo n.º 3
0
def updateNotebook(request, pk):
    obj = get_object_or_404(notebook, pk = pk)
    form = notebookForm(instance=obj)
    userInfo = navBarUserName(request)
    if request.method == 'POST':
        form = notebookForm(request.POST, request.FILES, instance=obj)
        if form.is_valid():
            form.save()
            return redirect("notebookList")
        
    context = {'form':form,
              }
    context = {**context, **userInfo}
    return render(request, 'notebooks/notebooksCreate.html', context)
Exemplo n.º 4
0
def updateDB(request, pk):
    obj = get_object_or_404(database, pk=pk)
    form = dataBaseFormUpdate(instance=obj)
    userInfo = navBarUserName(request)
    if request.method == 'POST':
        form = dataBaseFormUpdate(request.POST, request.FILES, instance=obj)
        if form.is_valid():
            form.save()
            return redirect("listDB")

    context = {
        'form': form,
    }
    context = {**context, **userInfo}
    return render(request, 'databases/registerDB.html', context)
Exemplo n.º 5
0
def listCollections(request):
    userInfo = navBarUserName(request)

    userId = request.user.id
    allowedDB = userModel.objects.get(user_id=userId).allowedDB
    registerForm = dataBaseForm()
    objectList = []
    for db in allowedDB:
        try:
            databaseDescription = database.objects.get(dbAbbreviation=db)
            objectList.append(databaseDescription)
        except:
            pass

    context = {'registerForm': registerForm, 'dataBaseList': objectList}
    context = {**userInfo, **context}
    return (render(request, 'databases/listDB.html', context))
Exemplo n.º 6
0
def registerDB(request):
    form = dataBaseForm()
    userInfo = navBarUserName(request)
    userId = request.user.id
    if request.method == 'POST':
        form = dataBaseForm(request.POST, request.FILES)
        if form.is_valid():
            allowedDB = userModel.objects.get(user_id=userId).allowedDB
            allowedDB.append(form.cleaned_data['dbAbbreviation'])
            userModel.objects.filter(user_id=userId).update(
                allowedDB=allowedDB)
            form.save()
            return redirect("listDB")
    context = {
        'form': form,
    }
    context = {**context, **userInfo}
    return render(request, 'databases/registerDB.html', context)
Exemplo n.º 7
0
def notebooksView(request, pk):
    userInfo = navBarUserName(request)
    obj = get_object_or_404(notebook, pk = pk)
    filename = obj.file.url.split('/')[-1]
    if request.method == 'GET':
        
        file_path = 'static'+obj.file.url
        subprocess.Popen(f'jupyter notebook {file_path} --port 9000 --no-browser', shell=True)
        time.sleep(7)

    if request.method == 'POST':
        notes = request.POST.get('notesfield' or None)
        print(notes)
        notebook.objects.filter(pk=pk).update(notes = notes)
        subprocess.Popen(f'kill $(pgrep -f {filename})', shell=True)
        return redirect('notebookList')

    context = {'notebook':obj, 'src':"http://localhost:9000/notebooks/"+filename}
    print(context)
    context = {**context, **userInfo}
    return render(request, 'notebooks/notebooksView.html', context)