|
|
from django.shortcuts import render_to_response
|
|
|
from django.template import RequestContext
|
|
|
from django.shortcuts import redirect, render, get_object_or_404
|
|
|
from django.contrib import messages
|
|
|
|
|
|
from apps.main.models import Device
|
|
|
from apps.main.views import sidebar
|
|
|
|
|
|
from .models import JARSConfiguration, JARSfilter
|
|
|
from .forms import JARSConfigurationForm, JARSfilterForm, JARSImportForm
|
|
|
# Create your views here.
|
|
|
|
|
|
def jars_conf(request, id_conf):
|
|
|
|
|
|
conf = get_object_or_404(JARSConfiguration, pk=id_conf)
|
|
|
|
|
|
ip=conf.device.ip_address
|
|
|
port=conf.device.port_address
|
|
|
|
|
|
kwargs = {}
|
|
|
kwargs['status'] = conf.device.get_status_display()
|
|
|
|
|
|
|
|
|
kwargs['dev_conf'] = conf
|
|
|
kwargs['dev_conf_keys'] = ['name',
|
|
|
'cards_number', 'channels_number', 'channels',
|
|
|
'rd_directory', 'pd_directory',
|
|
|
'data_type',
|
|
|
'acq_profiles', 'profiles_block', 'ftp_interval', 'fftpoints',
|
|
|
'cohe_integr_str',
|
|
|
'incohe_integr', 'cohe_integr', 'filter', 'spectral_number',
|
|
|
'spectral', 'create_directory', 'include_expname',
|
|
|
'save_ch_dc', 'save_data']
|
|
|
|
|
|
kwargs['title'] = 'JARS Configuration'
|
|
|
kwargs['suptitle'] = 'Details'
|
|
|
|
|
|
kwargs['button'] = 'Edit Configuration'
|
|
|
|
|
|
#kwargs['no_play'] = True
|
|
|
|
|
|
kwargs['only_stop'] = True
|
|
|
|
|
|
###### SIDEBAR ######
|
|
|
kwargs.update(sidebar(conf=conf))
|
|
|
|
|
|
return render(request, 'jars_conf.html', kwargs)
|
|
|
|
|
|
def jars_conf_edit(request, id_conf):
|
|
|
|
|
|
conf = get_object_or_404(JARSConfiguration, pk=id_conf)
|
|
|
|
|
|
if request.method=='GET':
|
|
|
form = JARSConfigurationForm(instance=conf)
|
|
|
|
|
|
if request.method=='POST':
|
|
|
form = JARSConfigurationForm(request.POST, instance=conf)
|
|
|
|
|
|
if form.is_valid():
|
|
|
conf = form.save(commit=False)
|
|
|
conf.save()
|
|
|
return redirect('url_jars_conf', id_conf=conf.id)
|
|
|
|
|
|
##ERRORS
|
|
|
|
|
|
kwargs = {}
|
|
|
|
|
|
kwargs['filter_id'] = conf.filter.id
|
|
|
kwargs['id_dev'] = conf.id
|
|
|
kwargs['form'] = form
|
|
|
kwargs['title'] = 'Device Configuration'
|
|
|
kwargs['suptitle'] = 'Edit'
|
|
|
kwargs['button'] = 'Save'
|
|
|
|
|
|
return render(request, 'jars_conf_edit.html', kwargs)
|
|
|
|
|
|
def import_file(request, conf_id):
|
|
|
|
|
|
conf = get_object_or_404(JARSConfiguration, pk=conf_id)
|
|
|
if request.method=='POST':
|
|
|
form = JARSImportForm(request.POST, request.FILES)
|
|
|
if form.is_valid():
|
|
|
try:
|
|
|
parms = conf.import_from_file(request.FILES['file_name'])
|
|
|
|
|
|
if parms:
|
|
|
conf.update_from_file(parms)
|
|
|
messages.success(request, 'Configuration "%s" loaded succesfully' % request.FILES['file_name'])
|
|
|
return redirect(conf.get_absolute_url_edit())
|
|
|
|
|
|
except Exception as e:
|
|
|
messages.error(request, 'Error parsing file: "%s" - %s' % (request.FILES['file_name'], e))
|
|
|
|
|
|
else:
|
|
|
messages.warning(request, 'Your current configuration will be replaced')
|
|
|
form = JARSImportForm()
|
|
|
|
|
|
kwargs = {}
|
|
|
kwargs['form'] = form
|
|
|
kwargs['title'] = 'JARS Configuration'
|
|
|
kwargs['suptitle'] = 'Import file'
|
|
|
kwargs['button'] = 'Upload'
|
|
|
kwargs['previous'] = conf.get_absolute_url()
|
|
|
|
|
|
return render(request, 'jars_import.html', kwargs)
|
|
|
|
|
|
def read_conf(request, conf_id):
|
|
|
|
|
|
conf = get_object_or_404(JARSConfiguration, pk=conf_id)
|
|
|
#filter = get_object_or_404(JARSfilter, pk=filter_id)
|
|
|
|
|
|
if request.method=='GET':
|
|
|
|
|
|
parms = conf.read_device()
|
|
|
conf.status_device()
|
|
|
|
|
|
if not parms:
|
|
|
messages.error(request, conf.message)
|
|
|
return redirect(conf.get_absolute_url())
|
|
|
|
|
|
form = JARSConfigurationForm(initial=parms, instance=conf)
|
|
|
|
|
|
if request.method=='POST':
|
|
|
form = JARSConfigurationForm(request.POST, instance=conf)
|
|
|
|
|
|
if form.is_valid():
|
|
|
form.save()
|
|
|
return redirect(conf.get_absolute_url())
|
|
|
|
|
|
messages.error(request, "Parameters could not be saved")
|
|
|
|
|
|
kwargs = {}
|
|
|
kwargs['id_dev'] = conf.id
|
|
|
kwargs['filter_id'] = conf.filter.id
|
|
|
kwargs['form'] = form
|
|
|
kwargs['title'] = 'Device Configuration'
|
|
|
kwargs['suptitle'] = 'Parameters read from device'
|
|
|
kwargs['button'] = 'Save'
|
|
|
|
|
|
###### SIDEBAR ######
|
|
|
kwargs.update(sidebar(conf=conf))
|
|
|
|
|
|
return render(request, 'jars_conf_edit.html', kwargs)
|
|
|
|
|
|
def view_filter(request, conf_id, filter_id):
|
|
|
|
|
|
conf = get_object_or_404(JARSConfiguration, pk=conf_id)
|
|
|
filter = get_object_or_404(JARSfilter, pk=filter_id)
|
|
|
|
|
|
filter_parms = eval(conf.filter_parms)
|
|
|
filter.name = filter_parms['name']
|
|
|
filter.clock = filter_parms['clock']
|
|
|
filter.mult = filter_parms['mult']
|
|
|
filter.fch = filter_parms['fch']
|
|
|
filter.fch_decimal = filter_parms['fch_decimal']
|
|
|
filter.filter_fir = filter_parms['filter_fir']
|
|
|
filter.filter_2 = filter_parms['filter_2']
|
|
|
filter.filter_5 = filter_parms['filter_5']
|
|
|
filter.speed = filter_parms['speed']
|
|
|
|
|
|
kwargs = {}
|
|
|
kwargs['conf'] = conf
|
|
|
kwargs['filter'] = filter
|
|
|
kwargs['dev_conf'] = filter
|
|
|
kwargs['dev_conf_keys'] = ['name', 'clock',
|
|
|
'mult', 'fch', 'fch_decimal',
|
|
|
'filter_fir', 'filter_2',
|
|
|
'filter_5', 'speed']
|
|
|
|
|
|
kwargs['title'] = 'Filter View'
|
|
|
kwargs['suptitle'] = 'Details'
|
|
|
kwargs['button'] = 'SI'
|
|
|
kwargs['edit_button'] = 'Edit Filter'
|
|
|
kwargs['add_button'] = 'New Filter'
|
|
|
|
|
|
return render(request, 'jars_filter.html', kwargs)
|
|
|
|
|
|
def edit_filter(request, conf_id, filter_id):
|
|
|
|
|
|
conf = get_object_or_404(JARSConfiguration, pk=conf_id)
|
|
|
filter_parms = eval(conf.filter_parms)
|
|
|
|
|
|
if filter_id:
|
|
|
filter = get_object_or_404(JARSfilter, pk=filter_id)
|
|
|
|
|
|
if request.method=='GET':
|
|
|
form = JARSfilterForm(initial=filter_parms)
|
|
|
|
|
|
if request.method=='POST':
|
|
|
parms = {}
|
|
|
parms['name'] = request.POST['name']
|
|
|
parms['clock'] = request.POST['clock']
|
|
|
parms['mult'] = request.POST['mult']
|
|
|
parms['fch'] = request.POST['fch']
|
|
|
parms['fch_decimal'] = request.POST['fch_decimal']
|
|
|
parms['filter_fir'] = request.POST['filter_fir']
|
|
|
parms['filter_2'] = request.POST['filter_2']
|
|
|
parms['filter_5'] = request.POST['filter_5']
|
|
|
parms['speed'] = request.POST['speed']
|
|
|
|
|
|
conf.filter_parms = parms
|
|
|
conf.save()
|
|
|
|
|
|
#form = JARSfilterForm(request.POST)
|
|
|
#form = JARSfilterForm(request.POST, instance=filter)
|
|
|
#if form.is_valid():
|
|
|
#form.save()
|
|
|
# messages.success(request, 'JARS Filter successfully updated')
|
|
|
# return redirect('url_jars_filter', conf.id, filter.id)
|
|
|
return redirect('url_jars_filter', conf.id, filter.id)
|
|
|
|
|
|
kwargs = {}
|
|
|
kwargs['form'] = form
|
|
|
kwargs['title'] = conf.name
|
|
|
kwargs['suptitle'] = 'Edit Filter'
|
|
|
kwargs['button'] = 'Save'
|
|
|
# kwargs['previous'] = conf.get_absolute_url_edit()
|
|
|
kwargs['dev_conf'] = conf
|
|
|
|
|
|
return render(request, 'jars_filter_edit.html', kwargs)
|
|
|
|
|
|
def new_filter(request, conf_id):
|
|
|
|
|
|
conf = get_object_or_404(JARSConfiguration, pk=conf_id)
|
|
|
|
|
|
if request.method=='GET':
|
|
|
form = JARSfilterForm()
|
|
|
|
|
|
if request.method=='POST':
|
|
|
form = JARSfilterForm(request.POST)
|
|
|
if form.is_valid():
|
|
|
form.save()
|
|
|
new_filter = get_object_or_404(JARSfilter, name=request.POST['name'])
|
|
|
conf.filter = new_filter
|
|
|
conf.add_parms_to_filter()
|
|
|
messages.success(request, 'New JARS Filter successfully created')
|
|
|
return redirect('url_edit_jars_conf', id_conf=conf.id)
|
|
|
|
|
|
kwargs = {}
|
|
|
kwargs['form'] = form
|
|
|
kwargs['title'] = 'New Filter'
|
|
|
kwargs['suptitle'] = ''
|
|
|
kwargs['button'] = 'Create'
|
|
|
# kwargs['previous'] = conf.get_absolute_url_edit()
|
|
|
kwargs['dev_conf'] = conf
|
|
|
|
|
|
return render(request, 'jars_new_filter.html', kwargs)
|