##// END OF EJS Templates
Task #714: Modulo web del ABS ...
Task #714: Modulo web del ABS git-svn-id: http://jro-dev.igp.gob.pe/svn/jro_hard/radarsys/trunk/webapp@189 aa17d016-51d5-4e8b-934c-7b2bbb1bbe71

File last commit:

r166:d72e9c99e97e
r166:d72e9c99e97e
Show More
views.py
327 lines | 9.0 KiB | text/x-python | PythonLexer
Fiorella Quino
Task #714: Modulo web del ABS ...
r166 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
Juan C. Espinoza
Proyecto base en Django (refs #259) ...
r0
Fiorella Quino
Task #714: Modulo web del ABS ...
r166 from apps.main.models import Device, Configuration
from apps.main.views import sidebar
from .models import ABSConfiguration, ABSBeam
from .forms import ABSConfigurationForm, ABSBeamEditForm, ABSBeamAddForm
Juan C. Espinoza
Proyecto base en Django (refs #259) ...
r0 # Create your views here.
Fiorella Quino
Task #714: Modulo web del ABS ...
r166 import json, ast
def get_values_from_form(form_data):
sublistup = []
sublistdown = []
subtxlistup = []
subtxlistdown = []
subrxlistup = []
subrxlistdown = []
up_values_list = []
down_values_list = []
up_txvalues_list = []
down_txvalues_list = []
up_rxvalues_list = []
down_rxvalues_list = []
values_list = {}
cont = 1
for i in range(1,65):
x = float(form_data['abs_up'+str(i)])
y = float(form_data['abs_down'+str(i)])
sublistup.append(x)
sublistdown.append(y)
if str(i) in form_data.getlist('uptx_checks'):
subtxlistup.append(1)
else:
subtxlistup.append(0)
if str(i) in form_data.getlist('downtx_checks'):
subtxlistdown.append(1)
else:
subtxlistdown.append(0)
if str(i) in form_data.getlist('uprx_checks'):
subrxlistup.append(1)
else:
subrxlistup.append(0)
if str(i) in form_data.getlist('downrx_checks'):
subrxlistdown.append(1)
else:
subrxlistdown.append(0)
cont = cont+1
if cont == 9:
up_values_list.append(sublistup)
down_values_list.append(sublistdown)
sublistup = []
sublistdown = []
up_txvalues_list.append(subtxlistup)
down_txvalues_list.append(subtxlistdown)
subtxlistup = []
subtxlistdown = []
up_rxvalues_list.append(subrxlistup)
down_rxvalues_list.append(subrxlistdown)
subrxlistup = []
subrxlistdown = []
cont = 1
list_uesup = []
list_uesdown = []
for i in range(1,5):
if form_data['ues_up'+str(i)] == '':
list_uesup.append(0.0)
else:
list_uesup.append(float(form_data['ues_up'+str(i)]))
if form_data['ues_down'+str(i)] == '':
list_uesdown.append(0.0)
else:
list_uesdown.append(float(form_data['ues_down'+str(i)]))
onlyrx_list = form_data.getlist('onlyrx')
only_rx = {}
if '1' in onlyrx_list:
only_rx['up'] = True
else:
only_rx['up'] = False
if '2' in onlyrx_list:
only_rx['down'] = True
else:
only_rx['down'] = False
antenna = {'antenna_up': up_values_list, 'antenna_down': down_values_list}
tx = {'up': up_txvalues_list, 'down': down_txvalues_list}
rx = {'up': up_rxvalues_list, 'down': down_rxvalues_list}
ues = {'up': list_uesup, 'down': list_uesdown}
name = str(form_data['beam_name'])
beam_data = {'name': name, 'antenna': antenna, 'tx': tx, 'rx': rx, 'ues': ues, 'only_rx': only_rx}
return beam_data
def abs_conf(request, id_conf):
conf = get_object_or_404(ABSConfiguration, pk=id_conf)
beams_dict = ast.literal_eval(conf.beams)
beams = []
for beam_id in range(1,len(beams_dict)+1):
beam = ABSBeam.objects.get(pk=beams_dict['beam'+str(beam_id)])
beams.append(beam)
beams_id = ast.literal_eval(conf.beams)
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',]
kwargs['title'] = 'ABS Configuration'
kwargs['suptitle'] = 'Details'
kwargs['no_play'] = True
kwargs['button'] = 'Edit Configuration'
#kwargs['no_play'] = True
kwargs['beams_id'] = beams_id
kwargs['beams'] = beams
kwargs['beam_selector'] = 0
#kwargs['my_data'] = simplejson.dumps(beams)
kwargs['only_stop'] = True
###### SIDEBAR ######
kwargs.update(sidebar(conf=conf))
return render(request, 'abs_conf.html', kwargs)
def abs_conf_edit(request, id_conf):
conf = get_object_or_404(ABSConfiguration, pk=id_conf)
beams_list = ast.literal_eval(conf.beams)
i = 1
beams = []
for b in beams_list:
beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)])
beams.append(beam)
i=i+1
if request.method=='GET':
form = ABSConfigurationForm(instance=conf)
if request.method=='POST':
form = ABSConfigurationForm(request.POST, instance=conf)
if form.is_valid():
conf = form.save(commit=False)
conf.save()
return redirect('url_abs_conf', id_conf=conf.id)
###### SIDEBAR ######
kwargs = {}
kwargs['dev_conf'] = conf
#kwargs['id_dev'] = conf.id
kwargs['id_conf'] = conf.id
kwargs['form'] = form
kwargs['abs_beams'] = beams
kwargs['title'] = 'Device Configuration'
kwargs['suptitle'] = 'Edit'
kwargs['button'] = 'Save'
kwargs['edit'] = True
return render(request, 'abs_conf_edit.html', kwargs)
def plot_patterns(request, id_conf):
conf = get_object_or_404(ABSConfiguration, pk=id_conf)
beams_list = ast.literal_eval(conf.beams)
i = 1
beams = []
for b in beams_list:
beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)])
beams.append(beam)
i=i+1
###### SIDEBAR ######
kwargs = {}
kwargs['dev_conf'] = conf.device
kwargs['id_dev'] = conf.device
kwargs['id_conf'] = conf.id
kwargs['abs_beams'] = beams
kwargs['title'] = 'ABS Patterns'
kwargs['suptitle'] = conf.name
kwargs['no_sidebar'] = True
return render(request, 'abs_patterns.html', kwargs)
def add_beam(request, id_conf):
conf = get_object_or_404(ABSConfiguration, pk=id_conf)
confs = Configuration.objects.all()
if request.method=='GET':
#form = ABSBeamEditForm()
form = ABSBeamAddForm()
if request.method=='POST':
form = ABSBeamAddForm(request.POST)
beam_data = get_values_from_form(request.POST)
new_beam = ABSBeam(
name =beam_data['name'],
antenna =json.dumps(beam_data['antenna']),
abs_conf=conf,
tx =json.dumps(beam_data['tx']),
rx =json.dumps(beam_data['rx']),
ues =json.dumps(beam_data['ues']),
only_rx =json.dumps(beam_data['only_rx'])
)
new_beam.save()
#---Update 6bits configuration and add beam to abs configuration beams list.
new_beam.modules_6bits()
new_beam.add_beam2list()
messages.success(request, 'Beam: "%s" has been added.' % new_beam.name)
return redirect('url_edit_abs_conf', conf.id)
###### SIDEBAR ######
kwargs = {}
#kwargs['dev_conf'] = conf.device
#kwargs['id_dev'] = conf.device
kwargs['id_conf'] = conf.id
kwargs['form'] = form
kwargs['title'] = 'ABS Beams'
kwargs['suptitle'] = 'Add Beam'
kwargs['button'] = 'Add'
kwargs['no_sidebar'] = True
#kwargs['previous'] = conf.get_absolute_url_edit()
kwargs['edit'] = True
return render(request, 'abs_add_beam.html', kwargs)
def edit_beam(request, id_conf, id_beam):
conf = get_object_or_404(ABSConfiguration, pk=id_conf)
beam = get_object_or_404(ABSBeam, pk=id_beam)
if request.method=='GET':
form = ABSBeamEditForm(initial={'beam': beam})
if request.method=='POST':
form = ABSBeamEditForm(request.POST)
beam_data = get_values_from_form(request.POST)
beam.dict_to_parms(beam_data)
beam.save()
messages.success(request, 'Beam: "%s" has been updated.' % beam.name)
return redirect('url_edit_abs_conf', conf.id)
###### SIDEBAR ######
kwargs = {}
kwargs['id_conf'] = conf.id
kwargs['form'] = form
kwargs['title'] = 'ABS Beams'
kwargs['suptitle'] = 'Edit Beam'
kwargs['button'] = 'Save'
kwargs['no_sidebar'] = True
#kwargs['previous'] = conf.get_absolute_url_edit()
kwargs['edit'] = True
return render(request, 'abs_add_beam.html', kwargs)
def remove_beam(request, id_conf, id_beam):
conf = get_object_or_404(ABSConfiguration, pk=id_conf)
beam = get_object_or_404(ABSBeam, pk=id_beam)
if request.method=='POST':
if beam:
try:
beam.remove_beamfromlist()
beam.delete()
messages.success(request, 'Beam: "%s" has been deleted.' % beam)
except:
messages.error(request, 'Unable to delete beam: "%s".' % beam)
return redirect('url_edit_abs_conf', conf.id)
###### SIDEBAR ######
kwargs = {}
kwargs['object'] = beam
kwargs['delete'] = True
kwargs['title'] = 'Delete'
kwargs['suptitle'] = 'Beam'
kwargs['previous'] = conf.get_absolute_url_edit()
return render(request, 'confirm.html', kwargs)