# SVN changeset patch # User jsalyrosas # Date 2013-04-25 22:46:00.342772 # Revision 135 - Agregadas las vistas y funciones para administrar los patrones de cada perfil. Index: trunk/webapp/abscontrol/urls.py =================================================================== diff --git a/trunk/webapp/abscontrol/urls.py b/trunk/webapp/abscontrol/urls.py --- a/trunk/webapp/abscontrol/urls.py (revision 134) +++ b/trunk/webapp/abscontrol/urls.py (revision 135) @@ -5,7 +5,13 @@ url(r'^new/$', 'new'), url(r'^save/$', 'save'), url(r'^view/(?P\d+)/$', 'view'), + url(r'^edit/(?P\d+)/$', 'edit'), #url(r'^(?P\d+)/$', 'detail'), + url(r'^(?P\d+)/add/$', 'addPattern'), + url(r'^(?P\d+)/save/$', 'savePattern'), + url(r'^(?P\d+)/edit/(?P\d+)/$', 'editPattern'), + url(r'^(?P\d+)/view/(?P\d+)/$', 'viewPattern'), + url(r'^(?P\d+)/delete/(?P\d+)/$', 'deletePattern'), #url(r'^(?P\d+)/results/$', 'results'), #url(r'^(?P\d+)/vote/$', 'vote'), ) \ No newline at end of file Index: trunk/webapp/abscontrol/views.py =================================================================== diff --git a/trunk/webapp/abscontrol/views.py b/trunk/webapp/abscontrol/views.py --- a/trunk/webapp/abscontrol/views.py (revision 134) +++ b/trunk/webapp/abscontrol/views.py (revision 135) @@ -1,5 +1,52 @@ from django.shortcuts import render_to_response, redirect -from abscontrol.models import Profile +from abscontrol.models import Profile, Pattern + +txtAntenna = "[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \ + "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \ + "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \ + "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \ + "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \ + "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \ + "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \ + "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]" + +txtTxUp = "[[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]]" + +txtTxDown = "[[1,1,1,1,0,0,0,0]," \ + "[1,1,1,1,0,0,0,0]," \ + "[1,1,1,1,0,0,0,0]," \ + "[1,1,1,1,0,0,0,0]," \ + "[0,0,0,0,1,1,1,1]," \ + "[0,0,0,0,1,1,1,1]," \ + "[0,0,0,0,1,1,1,1]," \ + "[0,0,0,0,1,1,1,1]]" + +txtRxUp = "[[0,0,0,0,1,1,1,1]," \ + "[0,0,0,0,1,1,1,1]," \ + "[0,0,0,0,1,1,1,1]," \ + "[0,0,0,0,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]]" + +txtRxDown = "[[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]," \ + "[1,1,1,1,1,1,1,1]]" + +txtUes = "[0.533333,0.00000,1.06667,0.00000]" def index(request): #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5] @@ -8,48 +55,6 @@ def new(request): profile_list = Profile.objects.all() - txtAntenna = "[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \ - "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \ - "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \ - "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \ - "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \ - "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \ - "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \ - "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]" - txtTxUp = "[[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]]" - txtTxDown = "[[1,1,1,1,0,0,0,0]," \ - "[1,1,1,1,0,0,0,0]," \ - "[1,1,1,1,0,0,0,0]," \ - "[1,1,1,1,0,0,0,0]," \ - "[0,0,0,0,1,1,1,1]," \ - "[0,0,0,0,1,1,1,1]," \ - "[0,0,0,0,1,1,1,1]," \ - "[0,0,0,0,1,1,1,1]]" - txtRxUp = "[[0,0,0,0,1,1,1,1]," \ - "[0,0,0,0,1,1,1,1]," \ - "[0,0,0,0,1,1,1,1]," \ - "[0,0,0,0,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]]" - txtRxDown = "[[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]," \ - "[1,1,1,1,1,1,1,1]]" - - txtUes = "[0.533333,0.00000,1.06667,0.00000]" return render_to_response('abscontrol/new.html', {'profile_list': profile_list, 'txtAntenna' : txtAntenna, @@ -84,6 +89,8 @@ return redirect(newurl) def view(request, profile_id): + nextPattern = 0 + if request.method == 'GET' and 'pattern' in request.GET: pattern_value = request.GET["pattern"] else: @@ -97,7 +104,108 @@ objAntennaUp = patternChoosen.antennaup_set.get() objAntennaDown = patternChoosen.antennadown_set.get() + if len(lsPatterns) > 1: + if pattern_value == 1: + nextValuePattern = pattern_value + 1 + nextPattern = objProfile.pattern_set.get(value=nextValuePattern) + + return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list, 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns, 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown, + 'nextPattern' : nextPattern, }) + +def edit(request, profile_id): + if request.method == 'GET' and 'pattern' in request.GET: + pattern_value = request.GET["pattern"] + else: + pattern_value = 1 + + profile_list = Profile.objects.all() + objProfile = Profile.objects.get(pk=profile_id) + + lsPatterns = objProfile.pattern_set.all() + patternChoosen = objProfile.pattern_set.get(value=pattern_value) + objAntennaUp = patternChoosen.antennaup_set.get() + objAntennaDown = patternChoosen.antennadown_set.get() + + return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list, + 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns, + 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown, + }) + +def addPattern(request, profile_id): + profile_list = Profile.objects.all() + objProfile = Profile.objects.get(pk=profile_id) + + return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list, + 'txtAntenna' : txtAntenna, 'txtUes' : txtUes, + 'txtTxUp' : txtTxUp, 'txtTxDown' : txtTxDown, + 'txtRxUp' : txtRxUp, 'txtRxDown' : txtRxDown, + }) + +def editPattern(request, profile_id, pattern_id): + profile_list = Profile.objects.all() + objProfile = Profile.objects.get(pk=profile_id) + lsPatterns = objProfile.pattern_set.all() + patternChoosen = Pattern.objects.get(pk=pattern_id) + objAntennaUp = patternChoosen.antennaup_set.get() + objAntennaDown = patternChoosen.antennadown_set.get() + + return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list, + 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns, + 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown, + }) + +def savePattern(request, profile_id): + maxValuePattern = 0 + txtAntennaUp = request.POST["txtAntennaUp"] + txtTxUp = request.POST["txtTxUp"] + txtRxUp = request.POST["txtRxUp"] + txtUesUp = request.POST["txtUesUp"] + + txtAntennaDown = request.POST["txtAntennaDown"] + txtTxDown = request.POST["txtTxDown"] + txtRxDown = request.POST["txtRxDown"] + txtUesDown = request.POST["txtUesDown"] + + objProfile = Profile.objects.get(pk=profile_id) + lsPatterns = objProfile.pattern_set.all() + for element in lsPatterns: + if element.value > maxValuePattern: + maxPattern = element.value + + if maxPattern < 10 : + newValuePattern = maxPattern + 1 + newpattern = objProfile.pattern_set.create(value=newValuePattern) + newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp) + newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown) + + newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id) + else: + newurl = '/abscontrol/edit/%d' % (int(profile_id)) + + return redirect(newurl) + +def viewPattern(request, profile_id, pattern_id): + + profile_list = Profile.objects.all() + objProfile = Profile.objects.get(pk=profile_id) + + patternChoosen = Pattern.objects.get(pk=pattern_id) + + objAntennaUp = patternChoosen.antennaup_set.get() + objAntennaDown = patternChoosen.antennadown_set.get() + + lsPatterns = objProfile.pattern_set.all() + + return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list, + 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns, + 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown, + }) + +def deletePattern(request, profile_id, pattern_id): + newurl = '/abscontrol/edit/%d' % int(profile_id) + + return redirect(newurl) Index: trunk/webapp/static/css/style.css =================================================================== diff --git a/trunk/webapp/static/css/style.css b/trunk/webapp/static/css/style.css --- a/trunk/webapp/static/css/style.css (revision 134) +++ b/trunk/webapp/static/css/style.css (revision 135) @@ -68,8 +68,14 @@ #content #maincolumn {float: left; border: 1px solid #000; width: 800px; padding-left: 20px;} footer {border: 1px solid #200; font-size: 0.9em; height: 30px; text-align: center; line-height: 20px} -.cleardivs {clear: both; border: 1px solid #400; height: 0px} - +.cleardivs {clear: both; border: 0px solid #400; height: 0px} +/****************************************************************************************/ +/****** ESTILOS GENERALES *****************/ +/****************************************************************************************/ +.mnu{ height: 22px; border: 1px solid #c55 !important;} +.mnu li{ display:inline;} +/*.MnuHorizontal{ display: -webkit-box; -webkit-box-orient:horizontal;}*/ +/*.MnuHorizontal a{ display:block; padding:10px; -webkit-box-flex:1; text-align:center; }*/ /****************************************************************************************/ /****** MENU DE NAVEGACION DE PERFILES **********************************/ @@ -77,27 +83,38 @@ #content #infoProfiles {border: 1px solid #d00; width: 140px; margin: 0px; padding-top: 2px; padding-bottom: 2px} .lblInfo {padding-left: 12px; line-height: 20px;} #infoProfiles select {padding-left: 12px; line-height: 20px;margin-left: 12px} -#content nav {border: 1px solid #c55; width: 140px; margin: 0px; font-family: Monaco; font-size: 1.2em;} -#content nav ul{list-style: none; list-style-type: none; margin: 15px 15px 15px 15px; padding-left: 20px; border: 0px solid #eee} -#content nav ul li{line-height: 20px} +#content nav {border: 0px solid #c55 !important; margin: 0px; font-family: Monaco; font-size: 1.2em;} +#content nav ul{list-style: none; list-style-type: none; margin: 0; padding-left: 20px; border: 0px solid #eee !important} +#content nav ul li{line-height: 22px; } /****************************************************************************************/ /******** FORMULARIO DE PERFILES *************************************/ /****************************************************************************************/ -#divProfile {border: 0px solid #dff; margin: 10px 0px; padding: 10px 10px; width: 500px} -.flsAntenna {margin: 10px 0px; width: 750px; padding: 10px 10px} -#divPattern textarea,input[type=text],label {font-family: Monaco; font-size: inherit;} +#divProfile { border: 0px solid #dff; margin: 10px 0px; padding: 10px 10px; width: 500px } +.flsAntenna { margin: 10px 0px; width: 750px; padding: 10px 10px } +#divPattern textarea,input[type=text],label{ font-family: Monaco; font-size: inherit; } #divPattern textarea {resize: none; overflow: hidden} -.divAntenna {float: left; margin: 10px; height: 160px; border: 1px solid #fcc !important; width: 260px} -.divAntenna label {display: block} -.txtAntenna {max-width: 250px; max-height: 125px; width: 250px; height: 125px} +.divAntenna { float: left; margin: 10px; height: 160px; border: 0px solid #fcc !important; width: 260px } +.divAntenna label{ display: block } +.txtAntenna { max-width: 250px; max-height: 125px; width: 250px; height: 125px } +.divAntenna p{ max-width: 250px; max-height: 125px; width: 250px; height: 125px } -.divTx {display: block; float: left; margin: 10px; height: 150px} -.divTx label {display: block} -.divTx textarea {width: 135px; max-width: 135px; height: 125px; max-height: 125px; text-align: justify} +.divTx { display: block; float: left; margin: 10px; height: 150px } +.divTx label{ display: block } +.divTx textarea{ width: 135px; max-width: 135px; height: 125px; max-height: 125px; text-align: justify } +.divTx p{ width: 135px; max-width: 135px; height: 125px; max-height: 125px; text-align: justify } -.divUes {display: block; margin: 10px} -.divUes input[type=text] {width: 240px; max-width: 240px;} +.divUes { display: block; margin: 10px} +.divUes input[type=text] { width: 240px; max-width: 240px;} +/****************************************************************************************/ +/****** MENU DE NAVEGACION DE PATRONES **********************************/ +/****************************************************************************************/ +#divMnuPattern{ width: 350px; height: 25px; display: block; border: 1px solid #1cc !important; float: right } +#infoPattern{ display: block; border: 1px solid #1494f6 !important, margin: 5px 2px; } +#navPatterns{ margin: 5px auto; padding: 2px; border: 1px solid #d00 !important; width: 400px; height: 25px} +#navPatterns ul li{ width: 50px; border: 1px solid #1cc !important} +#navPatterns a{ width: 50px; border: 0px solid #1cc !important} +#navPatternList{ margin: 0px auto; border: 1px solid #ecc !important} Index: trunk/webapp/static/js/patterns.js =================================================================== diff --git a/trunk/webapp/static/js/patterns.js b/trunk/webapp/static/js/patterns.js new file mode 10644 --- /dev/null (revision 0) +++ b/trunk/webapp/static/js/patterns.js (revision 135) @@ -0,0 +1,25 @@ +/** + * @author Jose Antonio Sal y Rosas Celi + * @contact: jose.salyrosas@jro.igp.gob.pe, arturo.jasyrc@gmail.com + */ + +$(document).on('ready',function(){ + $('#listProfiles').change(function() { + if($(this).val() != -1){ + location.href="/abscontrol/view/" + $(this).val(); + } + }); + + $('#lnkSave').click(function() { + $('#frmPattern').submit(); + }); + + $('#lnkCancel').click(function() { + if ($("#pattern_id").val() == 0){ + location.href="/abscontrol/edit/" + $("#profile_id").val(); + }else{ + location.href="/abscontrol/" + $("#profile_id").val() + "/view/" + $("#pattern_id").val() + } + + }); +}); \ No newline at end of file Index: trunk/webapp/static/js/profiles.js =================================================================== diff --git a/trunk/webapp/static/js/profiles.js b/trunk/webapp/static/js/profiles.js new file mode 10644 --- /dev/null (revision 0) +++ b/trunk/webapp/static/js/profiles.js (revision 135) @@ -0,0 +1,12 @@ +/** + * @author Jose Antonio Sal y Rosas Celi + * @contact: jose.salyrosas@jro.igp.gob.pe, arturo.jasyrc@gmail.com + */ + +$(document).on('ready',function(){ + $('#listProfiles').change(function() { + if($(this).val() != -1){ + location.href="/abscontrol/view/" + $(this).val(); + } + }); +}); \ No newline at end of file Index: trunk/webapp/templates/abscontrol/addPattern.html =================================================================== diff --git a/trunk/webapp/templates/abscontrol/addPattern.html b/trunk/webapp/templates/abscontrol/addPattern.html new file mode 10644 --- /dev/null (revision 0) +++ b/trunk/webapp/templates/abscontrol/addPattern.html (revision 135) @@ -0,0 +1,65 @@ +{% extends "abscontrol/edit.html" %} + +{% block mnuPattern %} +
+ +
+
+{% endblock %} +{% block pattern %} +
+
+
+
+ UP +
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+
+
+
+ DOWN +
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+
+ + +
+
+{% endblock %} Index: trunk/webapp/templates/abscontrol/edit.html =================================================================== diff --git a/trunk/webapp/templates/abscontrol/edit.html b/trunk/webapp/templates/abscontrol/edit.html new file mode 10644 --- /dev/null (revision 0) +++ b/trunk/webapp/templates/abscontrol/edit.html (revision 135) @@ -0,0 +1,93 @@ +{% extends "abscontrol/index.html" %} +{% block title %}ABS CONTROL:::PROFILE:::{{ objProfile.name }}{% endblock %} +{% block scripting %} + +{% endblock %} +{% block maincolumn%} +
+
+ + +
+
+ {% block mnuPattern %} +
+ +
+
+ {% endblock %} + {% block pattern %} +
+ {% if patternChoosen %} + + {% endif %} +
+
+ UP +
+ +

{{ antennaUp.value }}

+
+
+ +

{{ antennaUp.tx }}

+
+
+ +

{{ antennaUp.rx }}

+
+
+
+ + +
+
+
+
+
+ DOWN +
+ +

{{ antennaDown.value }} +

+
+ +

{{ antennaDown.tx }}

+
+
+ +

{{ antennaDown.rx }}

+
+
+
+ + +
+
+
+
+ {% endblock %} +
+
+{% endblock %} Index: trunk/webapp/templates/abscontrol/editPattern.html =================================================================== diff --git a/trunk/webapp/templates/abscontrol/editPattern.html b/trunk/webapp/templates/abscontrol/editPattern.html new file mode 10644 --- /dev/null (revision 0) +++ b/trunk/webapp/templates/abscontrol/editPattern.html (revision 135) @@ -0,0 +1,69 @@ +{% extends "abscontrol/edit.html" %} + +{% block mnuPattern %} +
+ +
+
+{% endblock %} +{% block pattern %} +
+ {% if patternChoosen %} + + {% endif %} +
+
+ UP +
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+
+
+
+ DOWN +
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+
+ + +
+{% endblock %} Index: trunk/webapp/templates/abscontrol/index.html =================================================================== diff --git a/trunk/webapp/templates/abscontrol/index.html b/trunk/webapp/templates/abscontrol/index.html --- a/trunk/webapp/templates/abscontrol/index.html (revision 134) +++ b/trunk/webapp/templates/abscontrol/index.html (revision 135) @@ -3,15 +3,7 @@ {% block title %}ABS CONTROL:::::{% endblock %} {% block scripting %} {% if profile_list %} - + {% endif %} {% endblock %} {% block content %} @@ -45,6 +37,10 @@