views.py
246 lines
| 8.3 KiB
| text/x-python
|
PythonLexer
|
r6 | from django.shortcuts import render_to_response | |
from django.template import RequestContext | |||
|
r118 | from django.shortcuts import redirect, render, get_object_or_404 | |
|
r135 | from django.contrib import messages | |
|
r6 | ||
from apps.main.models import Device | |||
|
r30 | from apps.main.views import sidebar | |
|
r135 | from .models import JARSConfiguration, JARSfilter | |
|
r157 | from .forms import JARSConfigurationForm, JARSfilterForm, JARSImportForm | |
|
r6 | # Create your views here. | |
|
r118 | def jars_conf(request, id_conf): | |
|
r30 | ||
|
r118 | conf = get_object_or_404(JARSConfiguration, pk=id_conf) | |
|
r6 | ||
|
r118 | ip=conf.device.ip_address | |
port=conf.device.port_address | |||
kwargs = {} | |||
kwargs['status'] = conf.device.get_status_display() | |||
kwargs['dev_conf'] = conf | |||
|
r138 | kwargs['dev_conf_keys'] = ['name', | |
|
r136 | 'cards_number', 'channels_number', 'channels', | |
|
r157 | 'rd_directory', 'pd_directory', | |
'data_type', | |||
'acq_profiles', 'profiles_block', 'ftp_interval', 'fftpoints', | |||
'cohe_integr_str', | |||
|
r143 | 'incohe_integr', 'cohe_integr', 'filter', 'spectral_number', | |
|
r136 | 'spectral', 'create_directory', 'include_expname', | |
|
r157 | 'save_ch_dc', 'save_data'] | |
|
r118 | ||
kwargs['title'] = 'JARS Configuration' | |||
kwargs['suptitle'] = 'Details' | |||
kwargs['button'] = 'Edit Configuration' | |||
|
r157 | #kwargs['no_play'] = True | |
kwargs['only_stop'] = True | |||
|
r118 | ||
###### SIDEBAR ###### | |||
kwargs.update(sidebar(conf=conf)) | |||
return render(request, 'jars_conf.html', kwargs) | |||
|
r6 | ||
|
r118 | 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) | |||
|
r123 | conf.save() | |
|
r118 | return redirect('url_jars_conf', id_conf=conf.id) | |
##ERRORS | |||
kwargs = {} | |||
|
r135 | ||
kwargs['filter_id'] = conf.filter.id | |||
|
r118 | kwargs['id_dev'] = conf.id | |
kwargs['form'] = form | |||
kwargs['title'] = 'Device Configuration' | |||
kwargs['suptitle'] = 'Edit' | |||
kwargs['button'] = 'Save' | |||
|
r135 | return render(request, 'jars_conf_edit.html', kwargs) | |
|
r157 | 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) | |||
|
r135 | 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) | |||
|
r139 | 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'] | |||
|
r136 | ||
|
r135 | kwargs = {} | |
kwargs['conf'] = conf | |||
kwargs['filter'] = filter | |||
kwargs['dev_conf'] = filter | |||
kwargs['dev_conf_keys'] = ['name', 'clock', | |||
|
r139 | 'mult', 'fch', 'fch_decimal', | |
|
r135 | 'filter_fir', 'filter_2', | |
'filter_5', 'speed'] | |||
kwargs['title'] = 'Filter View' | |||
kwargs['suptitle'] = 'Details' | |||
kwargs['button'] = 'SI' | |||
kwargs['edit_button'] = 'Edit Filter' | |||
|
r139 | kwargs['add_button'] = 'New Filter' | |
|
r135 | ||
return render(request, 'jars_filter.html', kwargs) | |||
def edit_filter(request, conf_id, filter_id): | |||
conf = get_object_or_404(JARSConfiguration, pk=conf_id) | |||
|
r136 | filter_parms = eval(conf.filter_parms) | |
|
r135 | ||
if filter_id: | |||
filter = get_object_or_404(JARSfilter, pk=filter_id) | |||
if request.method=='GET': | |||
|
r136 | form = JARSfilterForm(initial=filter_parms) | |
|
r135 | ||
if request.method=='POST': | |||
|
r136 | parms = {} | |
|
r139 | 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'] | |||
|
r136 | 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() | |||
|
r135 | #form = JARSfilterForm(request.POST) | |
|
r136 | #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) | |||
|
r135 | ||
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 | |||
|
r139 | 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) |