##// END OF EJS Templates
Interval calculated internally, no more needed in metadata
Interval calculated internally, no more needed in metadata

File last commit:

r31:ee33adc177ff
r32:0d03afbbef2d
Show More
views.py
185 lines | 5.8 KiB | text/x-python | PythonLexer
Developer
New version with cards and status alerts
r11 #!/usr/bin/python
# -*- coding: UTF-8 -*-
Juan C. Espinoza
Test Version
r22
First version RTI, Spectra, Noise + Docker
r0
Juan C. Espinoza
Docker working
r1 import os
Developer
New version with cards and status alerts
r11 import time
First version RTI, Spectra, Noise + Docker
r0 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
Juan C. Espinoza
Add skynoise with python
r30 from django.http import HttpResponse
First version RTI, Spectra, Noise + Docker
r0
Reorganize models, smaller docker, others
r2 import mongoengine
First version RTI, Spectra, Noise + Docker
r0
Juan C. Espinoza
Test Version
r22 from plotter.models import Experiment, ExpDetail, PlotMeta, PlotData
Juan C. Espinoza
Docker working
r1
Juan C. Espinoza
Add skynoise with python
r30 from utils.plots import skynoise_plot
Reorganize models, smaller docker, others
r2 host = os.environ.get('HOST_MONGO', 'localhost')
mongoengine.connect('dbplots', host=host, port=27017)
First version RTI, Spectra, Noise + Docker
r0
Developer
New version with cards and status alerts
r11
First version RTI, Spectra, Noise + Docker
r0 # Forms
class SearchForm(forms.Form):
experiment = forms.ChoiceField()
App only for realtime
r4 plot = forms.ChoiceField()
First version RTI, Spectra, Noise + Docker
r0
def __init__(self, *args, **kwargs):
exp_choices = kwargs.pop('exp_choices', [])
App only for realtime
r4 plt_choices = kwargs.pop('plt_choices', [])
First version RTI, Spectra, Noise + Docker
r0 super(SearchForm, self).__init__(*args, **kwargs)
self.fields['experiment'].choices = [(0, 'Select Experiment')] + exp_choices
App only for realtime
r4 self.fields['plot'].choices = [(0, 'Select Plot')] + plt_choices
Developer
New version with cards and status alerts
r11 # we use this class to change the parameter in Scatter plot using the function plotly.restyle in jroplot.js
Plot's layout now can be updated
r5 class ScatterSetupForm(forms.Form):
plotdiv = forms.CharField(widget=forms.HiddenInput())
ymax = forms.CharField(initial=30)
ymin = forms.CharField(initial=10)
Developer
New version with cards and status alerts
r11 # we use this class to change the parameter in RTI plot using the function plotly.restyle in jroplot.js
Plot's layout now can be updated
r5 class RTISetupForm(forms.Form):
plotdiv = forms.CharField(widget=forms.HiddenInput())
colormap = forms.ChoiceField(choices=[('Jet', 'Jet'), ('Viridis', 'Viridis'), ('RdBu', 'RdBu')])
zmax = forms.CharField(initial=30)
zmin = forms.CharField(initial=10)
ymax = forms.CharField(initial=180)
ymin = forms.CharField(initial=80)
Developer
New version with cards and status alerts
r11 # we use this class to change the parameter in SPC plot using the function plotly.restyle in jroplot.js
Plot's layout now can be updated
r5 class SPCSetupForm(forms.Form):
plotdiv = forms.CharField(widget=forms.HiddenInput())
colormap = forms.ChoiceField(choices=[('Jet', 'Jet'), ('Viridis', 'Viridis'), ('RdBu', 'RdBu')])
Developer
New version with cards and status alerts
r11 #como es un perfil xmin y xmax deben ser iguales a zmin y zmax
Plot's layout now can be updated
r5 xmax = forms.CharField(initial=30)
xmin = forms.CharField(initial=10)
Developer
New version with cards and status alerts
r11 #x2max = forms.CharField(initial=30)
#x2min = forms.CharField(initial=10)
Plot's layout now can be updated
r5 ymax = forms.CharField(initial=180)
ymin = forms.CharField(initial=80)
zmax = forms.CharField(initial=30)
zmin = forms.CharField(initial=10)
First version RTI, Spectra, Noise + Docker
r0 # Create your views here.
Developer
New version with cards and status alerts
r11 def main(request):
First version RTI, Spectra, Noise + Docker
r0
App only for realtime
r4 kwargs = {}
Juan C. Espinoza
Test Version
r22 date = request.GET.get('date', datetime.now().strftime('%d-%m-%Y'))
exps = ExpDetail.objects(date=datetime.strptime(date, '%d-%m-%Y'))
Developer
New version with cards and status alerts
r11 experiments = []
for exp in exps:
dum = {}
Juan C. Espinoza
Test Version
r22 dum['code'] = exp.experiment.code
Juan C. Espinoza
Test version ready
r27 dum['plots'] = []
Juan C. Espinoza
Test Version
r22 dum['name'] = exp.experiment.name
Developer
New version with cards and status alerts
r11 dt = datetime.now()
t = time.mktime(dt.timetuple())
Juan C. Espinoza
Test version ready
r27 if exp.plots()[0]['metadata']['localtime'] == True:
Developer
New version with cards and status alerts
r11 t -= 5*60*60
Juan C. Espinoza
Test version ready
r27
Juan C. Espinoza
Test Version
r22 if (t-exp['last_time']) > 10*60:
Developer
New version with cards and status alerts
r11 status = 'Offline'
clase = 'alertas-offline'
Juan C. Espinoza
New template, clean code, workig for realtime
r21 style = 'danger'
Juan C. Espinoza
Test Version
r22 lastDataDate = exp['last_time']
elif (t-exp['last_time']) > 5*60:
Developer
New version with cards and status alerts
r11 status = 'Delayed'
clase = 'alertas-delayed'
Juan C. Espinoza
New template, clean code, workig for realtime
r21 style = 'warning'
Juan C. Espinoza
Test Version
r22 lastDataDate = exp['last_time']
Developer
New version with cards and status alerts
r11 else:
status = 'Online'
clase = 'alertas-online'
Juan C. Espinoza
New template, clean code, workig for realtime
r21 style = 'success'
Juan C. Espinoza
Test Version
r22 lastDataDate = exp['last_time']
Developer
New version with cards and status alerts
r11
dum['status'] = status
dum['class'] = clase
Juan C. Espinoza
New template, clean code, workig for realtime
r21 dum['style']= style
dum['date']= datetime.utcfromtimestamp(lastDataDate)
Juan C. Espinoza
Test version ready
r27 for plot in exp.plots():
dum['plots'].append({'plot': plot.plot, 'name': plot.plot.replace('_', ' ').title(), 'id':plot.id})
Developer
New version with cards and status alerts
r11 experiments.append(dum)
App only for realtime
r4
kwargs['date'] = date
Developer
New version with cards and status alerts
r11 kwargs['experiments'] = experiments
Juan C. Espinoza
Styles and templates updated
r25 kwargs['menu_list'] = ['Realtime']
Developer
New version with cards and status alerts
r11
return render(request, 'home.html', kwargs)
Juan C. Espinoza
Styles and templates updated
r25 def tools(request):
'''
'''
kwargs = {
'menu_list': ['Tools']
}
return render(request, 'tools.html', kwargs)
def reports(request):
'''
'''
kwargs = {
'menu_list': ['Reports']
}
return render(request, 'reports.html', kwargs)
First version RTI, Spectra, Noise + Docker
r0
Developer
New version with cards and status alerts
r11 def plot(request, code=None, plot=None):
'''
'''
Juan C. Espinoza
New template, clean code, workig for realtime
r21
realtime = False
date = request.GET.get('date', None)
if date is None:
Juan C. Espinoza
Test Version
r22 date = datetime.now().strftime('%d-%m-%Y')
Juan C. Espinoza
New template, clean code, workig for realtime
r21 realtime = True
exp = Experiment.objects.get(code=int(code))
Juan C. Espinoza
Test Version
r22 detail = ExpDetail.objects.get(experiment=exp, date=datetime.strptime(date, '%d-%m-%Y'))
meta = PlotMeta.objects.get(exp_detail=detail, plot=plot)
Developer
New version with cards and status alerts
r11
kwargs = {
'code': code,
'plot': plot,
Juan C. Espinoza
Test version ready
r27 'meta':meta,
Developer
New version with cards and status alerts
r11 'date': date,
Juan C. Espinoza
Test Version
r22 'id': meta.pk,
Juan C. Espinoza
New template, clean code, workig for realtime
r21 'realtime': realtime,
Juan C. Espinoza
Test version ready
r27 'menu_list': ['Realtime', exp.name, meta.plot.replace('_', ' ').title()]
Developer
New version with cards and status alerts
r11 }
# Logic to show my views
Juan C. Espinoza
Test version ready
r27 if meta.metadata['type'] == 'pcolorbuffer':
Plot's layout now can be updated
r5 kwargs['setup_form'] = RTISetupForm()
Juan C. Espinoza
New template, clean code, workig for realtime
r21 kwargs['fn_plot'] = 'PcolorBuffer'
return render(request, 'plot.html', kwargs)
Juan C. Espinoza
Test version ready
r27 elif meta.metadata['type'] == 'pcolor':
Plot's layout now can be updated
r5 kwargs['setup_form'] = SPCSetupForm()
Juan C. Espinoza
New template, clean code, workig for realtime
r21 kwargs['fn_plot'] = 'Pcolor'
return render(request, 'plot.html', kwargs)
Juan C. Espinoza
Update jroplots.js
r31 elif meta.metadata['type'] == 'scatterbuffer':
Plot's layout now can be updated
r5 kwargs['setup_form'] = ScatterSetupForm()
Juan C. Espinoza
Update jroplots.js
r31 kwargs['fn_plot'] = 'ScatterBuffer'
Juan C. Espinoza
New template, clean code, workig for realtime
r21 return render(request, 'plot.html', kwargs)
First version RTI, Spectra, Noise + Docker
r0 else:
Developer
New version with cards and status alerts
r11 return render(request, 'home.html', {})
Juan C. Espinoza
Add skynoise with python
r30 def plot_skynoise(request):
date = request.GET.get('date', None)
if date is None:
date = datetime.now()
else:
date = datetime.strptime(date, '%d-%m-%Y')
data = skynoise_plot(date.year, date.month, date.day)
response = HttpResponse(data.getvalue(), content_type='image/png')
Juan C. Espinoza
Update jroplots.js
r31
Juan C. Espinoza
Add skynoise with python
r30 return response