##// END OF EJS Templates
First version RTI, Spectra, Noise + Docker
First version RTI, Spectra, Noise + Docker

File last commit:

r0:476448e11002
r0:476448e11002
Show More
views.py
71 lines | 2.0 KiB | text/x-python | PythonLexer
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from datetime import datetime
from django import forms
from django.contrib import messages
from django.utils.safestring import mark_safe
from django.shortcuts import render
from bootstrap3_datetime.widgets import DateTimePicker
from pymongo import MongoClient
CLIENT = MongoClient('mongo:27017')
DB = CLIENT['dbplots']
# Forms
class SearchForm(forms.Form):
experiment = forms.ChoiceField()
plot = forms.ChoiceField(
choices = [(0, 'Select Plot'), ('rti', 'RTI'),('spc', 'Spectra'),('noise', 'Noise')]
)
date = forms.DateField(
widget=DateTimePicker(options={"format": "DD/MM/YYYY"})
)
def __init__(self, *args, **kwargs):
exp_choices = kwargs.pop('exp_choices', [])
super(SearchForm, self).__init__(*args, **kwargs)
self.fields['experiment'].choices = [(0, 'Select Experiment')] + exp_choices
# Create your views here.
def main(request, code=None, plot=None):
initial = {}
date = request.GET.get('date', datetime.now().strftime('%d/%m/%Y'))
initial['date'] = date
if code is not None:
initial['experiment'] = code
if plot is not None:
initial['plot'] = plot
codes = DB.experiment.find().distinct('code')
exps = [DB.experiment.find_one({'code': c}, ['name']) for c in codes]
names = [q['name'] for q in exps]
form = SearchForm(
initial = initial,
exp_choices = [(e[0], e[1]) for e in zip(codes, names)]
)
kwargs = {
'code': code,
'plot': plot,
'date': date,
'form': form,
}
if codes:
kwargs['title'] = [t[1] for t in zip(codes, names) if t[0]==int(code)][0]
if plot == 'rti':
return render(request, 'rti.html', kwargs)
elif plot == 'spc':
return render(request, 'spectra.html', kwargs)
elif plot == 'noise':
return render(request, 'scatter.html', kwargs)
else:
return render(request, 'base.html', kwargs)