##// END OF EJS Templates
Fixing plots
Fixing plots

File last commit:

r6:7771bbd8f772
r7:4e0b343b0c61
Show More
views.py
83 lines | 2.9 KiB | text/x-python | PythonLexer
from django.contrib.auth.decorators import login_required
from django.shortcuts import render
from .forms import UpdataForm, ExpForm
from django.core.files.storage import FileSystemStorage
from django.contrib import messages
import os
# madrigal imports
import madrigal.metadata
import madrigal.ui.web
import madrigal.admin
@login_required(login_url='/madrigal/accounts/login/')
def index(request):
'''
Uploading experiments data view. Allows user to upload experiment files
'''
dbAdminObj = madrigal.admin.MadrigalDBAdmin()
madDB = madrigal.metadata.MadrigalDB()
madWebObj = madrigal.ui.web.MadrigalWeb(madDB)
siteName, siteList = madWebObj.getSiteInfo()
if request.method == 'POST':
form = UpdataForm(request.POST, request.FILES)
files = request.FILES.getlist('file')
if form.is_valid():
try:
description = form.cleaned_data['description']
instCode = int(form.cleaned_data['instruments'])
expId = form.cleaned_data['experiments']
perm = int(form.cleaned_data['type'])
#saving file
for f in files:
fs = FileSystemStorage(location='/tmp')
fs.save(f.name, f)
madExp = madrigal.metadata.MadrigalExperiment()
filepath = os.path.join('/tmp', f.name)
expTitle = madExp.getExpNameByExpId(expId)
dbAdminObj.createMadrigalExperiment(filepath,expTitle, perm, description, instCode)
madInstParams = madrigal.metadata.MadrigalInstrumentParameters()
madInstKindats = madrigal.metadata.MadrigalInstrumentKindats()
print('*** Updating local metadata ***')
dbAdminObj.__updateLocalMetadata__()
print('*** Rebuilding instParmTab.txt ***')
madInstParams.rebuildInstParmTable()
print('*** Rebuilding instKindatTab.txt ***')
madInstKindats.rebuildInstKindatTable()
messages.success(
request, 'Experimento(s) creado(s) exitosamente')
form = UpdataForm()
except Exception as e:
messages.error(
request, str(e))
else:
form = UpdataForm()
return render(request, 'updata/index.html', {
'form': form,
'site_name': siteName,
'site_list': siteList,
})
def get_experiments(request):
"""get_experiments is a Ajax call that returns the experiments select html to support the
updata UI. Called when a user modifies the intruments select field.
Inputs:
request
"""
form = ExpForm(request.GET)
return render(request, 'updata/experiments.html', {'form': form})