Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorceci <caggsld@gmail.com>2013-09-14 13:17:21 (GMT)
committer ceci <caggsld@gmail.com>2013-09-14 13:17:21 (GMT)
commit40f460faf988086df63c948e8afba141dfa41f6c (patch)
treef0bda2b41d2023f535592bf538328948e74228ee
parentbbbcbf2624416a9e9c00b48904b2da117364eeea (diff)
parent4c6261d9bcc5368b867c935d52c9ee9d273c7c61 (diff)
Merge remote-tracking branch 'remotes/origin/samu' into Cecilia
-rw-r--r--EjercitarJPA/src/model/Concepto.java6
-rw-r--r--EjercitarJPA/src/model/Ejercicio.java5
-rw-r--r--EjercitarWeb/WebContent/Ejercicios.jsp3
-rw-r--r--EjercitarWeb/WebContent/js/Attc/attc.css99
-rw-r--r--EjercitarWeb/WebContent/js/Attc/attc.googleCharts.js302
-rw-r--r--EjercitarWeb/WebContent/login.jsp1
-rw-r--r--EjercitarWeb/WebContent/ver_resultados.jsp122
-rw-r--r--EjercitarWeb/src/src/CargarDatosPersonalesServlet.java73
-rw-r--r--EjercitarWeb/src/src/CargarEntornoPersonalServlet.java320
-rw-r--r--EjercitarWeb/src/src/CargarResultadosGeneralesConceptosServlet.java (copied from EjercitarWeb/src/src/CargarResultadosGeneralesServlet.java)77
-rw-r--r--EjercitarWeb/src/src/CargarResultadosGeneralesTemasServlet.java (copied from EjercitarWeb/src/src/CargarResultadosGeneralesServlet.java)16
-rw-r--r--EjercitarWeb/src/src/CargarResultadosIndividualesServlet.java (renamed from EjercitarWeb/src/src/CargarResultadosGeneralesServlet.java)126
-rw-r--r--EjercitarWeb/src/src/LogInServlet.java24
-rw-r--r--EjercitarWeb/src/src/NuevoEjercicioServlet.java1
14 files changed, 1027 insertions, 148 deletions
diff --git a/EjercitarJPA/src/model/Concepto.java b/EjercitarJPA/src/model/Concepto.java
index 2202bcc..41b4d86 100644
--- a/EjercitarJPA/src/model/Concepto.java
+++ b/EjercitarJPA/src/model/Concepto.java
@@ -73,11 +73,7 @@ public class Concepto implements Serializable {
private List<Tarea> tareaList;
-
- @JoinTable(name = "ejercicio_concepto", joinColumns = {
- @JoinColumn(name = "id_concepto", referencedColumnName = "id_concepto")}, inverseJoinColumns = {
- @JoinColumn(name = "id_ejercicio", referencedColumnName = "id_ejercicio")})
- @ManyToMany
+ @ManyToMany(mappedBy = "conceptoList")
private List<Ejercicio> ejercicioList;
@JoinColumn(name = "tema", referencedColumnName = "id_tema")
@ManyToOne
diff --git a/EjercitarJPA/src/model/Ejercicio.java b/EjercitarJPA/src/model/Ejercicio.java
index 026555c..693a34e 100644
--- a/EjercitarJPA/src/model/Ejercicio.java
+++ b/EjercitarJPA/src/model/Ejercicio.java
@@ -53,7 +53,10 @@ public class Ejercicio implements Serializable {
private String enunciado;
@Column(name = "nivel_dificultad")
private Integer nivelDificultad;
- @ManyToMany(mappedBy = "ejercicioList")
+ @JoinTable(name = "ejercicio_concepto", joinColumns = {
+ @JoinColumn(name = "id_ejercicio", referencedColumnName = "id_ejercicio")}, inverseJoinColumns = {
+ @JoinColumn(name = "id_concepto", referencedColumnName = "id_concepto")})
+ @ManyToMany()
private List<Concepto> conceptoList;
@JoinTable(name = "respuesta_ejercicio", joinColumns = {
@JoinColumn(name = "id_ejercicio", referencedColumnName = "id_ejercicio")}, inverseJoinColumns = {
diff --git a/EjercitarWeb/WebContent/Ejercicios.jsp b/EjercitarWeb/WebContent/Ejercicios.jsp
index 335f48b..df70f86 100644
--- a/EjercitarWeb/WebContent/Ejercicios.jsp
+++ b/EjercitarWeb/WebContent/Ejercicios.jsp
@@ -31,7 +31,8 @@
<div id="content">
<form style="width: 1071px; height: 521px;" method="post"
name="ejercicio_form">
-
+ <input type="hidden" name="lista_conceptos" id="lista_conceptos" value="asdf">
+
<input type=hidden id="asignatura" name="asignatura" value=<%=request.getParameter("asignatura")%>>
<%Profesor profesor = (Profesor) request.getSession().getAttribute("profesor");%>
diff --git a/EjercitarWeb/WebContent/js/Attc/attc.css b/EjercitarWeb/WebContent/js/Attc/attc.css
new file mode 100644
index 0000000..ac12ee0
--- /dev/null
+++ b/EjercitarWeb/WebContent/js/Attc/attc.css
@@ -0,0 +1,99 @@
+@media screen {
+/* override css in main */
+body{
+ margin-left: auto; margin-right: auto;
+ margin-top:20px;
+ width:100%;
+ position:relative;
+ left:0px;
+ top:0px;
+ z-index:0;
+ background-color:#FFFFFF;
+ color:#47535E;
+ font-size:0.7em;
+ font-family:Arial, sans-serif;
+}
+
+div.mainContent{
+ margin-left: auto; margin-right: auto;
+ width:800px;
+}
+table{
+ margin-left: auto; margin-right: auto;
+ width:98%;
+ border:1px solid #E6E6E6;
+ border-radius:5px;
+ box-sizing: border-box;
+ background-color:#F6F6F6;
+ border-collapse: collapse;
+}
+table td,table th{
+ border:1px solid #E6E6E6;
+ border-top:1px solid #FFFFFF;
+}
+table th{
+ background-color:#FFFFFF;
+}
+/*attc classes*/
+/*attc classes*/
+div.attcControls{
+ width:100%;
+ border:1px solid #E6E6E6;
+ border-radius:5px;
+ box-sizing: border-box;
+ background-color:#F6F6F6;
+}
+div.attcControls ul{
+ overflow:hidden;
+ padding:2px 2px 2px 2px;
+ margin:0px;
+}
+div.attcControls ul li{
+ margin:0px;
+ padding:0px 0px 0px 10px;
+ list-style-type: none;
+ display: inline;
+ float:right;
+ clear:none;
+}
+div.attcControls ul li a{
+ border:1px solid #9CDFF7;
+ border-radius:3px;
+ box-sizing: border-box;
+ background-color:#86D6F5;
+ padding:2px;
+ color:white;
+ text-decoration:none;
+ display:inline-block;
+ background-image:none;
+ font-weight:normal;
+}
+div.attcControls ul li a:hover{
+ border:1px solid white;
+ color:#47535E;
+}
+div.attcControls ul li fieldset{
+ border:1px solid #9CDFF7;
+ border-radius:3px;
+ box-sizing: border-box;
+ background-color:#86D6F5;
+ padding:2px;
+ margin:0px;
+ color:white;
+ text-decoration:none;
+}
+div.attcControls ul li fieldset label{
+ padding-right:5px;
+}
+div.attcControls ul li fieldset select{
+ font-size:1em;
+ padding:0px;
+ margin:0px;
+}
+
+input.attcEditCheckRadioBoxes{
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+} \ No newline at end of file
diff --git a/EjercitarWeb/WebContent/js/Attc/attc.googleCharts.js b/EjercitarWeb/WebContent/js/Attc/attc.googleCharts.js
new file mode 100644
index 0000000..c8bd0fb
--- /dev/null
+++ b/EjercitarWeb/WebContent/js/Attc/attc.googleCharts.js
@@ -0,0 +1,302 @@
+google.load("visualization", "1", {packages:["corechart"]});
+(function( $ ){
+ $.fn.attc = function(options) {
+ var numPattern = /[^0-9\.]/g;
+ var tableEl = this;
+ var dataArray=new Array();
+ var numRows = tableEl.find('tbody tr').length;
+ //defaults
+ var settings = $.extend( {
+ 'location':tableEl.attr('id'),
+ 'hideTable' : false,
+ 'hideChart' : false,
+ 'type':'bar',
+ 'googleOptions':new Object(),
+ 'controls':{
+ showHide:true,
+ create:true,
+ chartType:true
+ },
+ 'controlsLabels':{
+ showChart:"Show chart",
+ hideChart:"Hide chart",
+ showTable:"Show table",
+ hideTable:"Hide table",
+ createChart:"Edit chart",
+ changeChart:"Change chart"
+ },
+ chartOptionList:'<option value="bar">Bar</option><option value="pie">Pie</option><option value="column">Column</option><option value="area">Area</option><option value="line">Line</option>'
+ }, options);
+ //set editing attribute to false so it can be tested:
+ tableEl.attr('data-attc-editing',false);
+ //function to create a table
+ var CreateChart = function(type,location,tableEl)
+ {
+ var dataArray=new Array();
+ switch(type){
+ case 'pie':
+ //console.log("making a pie");
+ var headerValues=$('#'+tableEl.attr('data-attc-colvalues'));
+ var headerDesc=tableEl.attr('data-attc-colDescription');
+ if(headerDesc.split(',').length >0){
+ headerDesc=$('#'+headerDesc.split(',')[0]);
+ }else{
+ headerDesc=$('#'+headerDesc);
+ }
+ var colIndexValues=headerValues.index()+1;
+ var colIndexDesc=headerDesc.index()+1;
+ dataArray[0]=[headerDesc.text(), headerValues.text()];
+ for(i=1;i <=numRows;i++){
+ //loop values and description to get array
+ var value=tableEl.find('tbody tr:nth-child('+i+') td:nth-child('+colIndexValues+')').text();
+ value=parseFloat(value.replace(numPattern,''));
+ var description=tableEl.find('tbody tr:nth-child('+i+') td:nth-child('+colIndexDesc+')').text();
+ //console.log(colIndexDesc+ ':'+description);
+ dataArray[i]=[description,value];
+ }
+ var chart = new google.visualization.PieChart(document.getElementById(location));
+ break;
+
+ case 'bar':
+ case 'column':
+ case 'area':
+ case 'line':
+ var headerDesc=$('#'+tableEl.attr('data-attc-colDescription'));
+ var colIndexDesc=headerDesc.index()+1;
+ var headerValuesArray=tableEl.attr('data-attc-colvalues').split(',');
+ //var headerValuesArray=$('#'+tableEl.attr('data-attc-colvalues')).split(',');
+ var headerIndexArray=new Array();
+ var colIndexValues=0;
+ var value="";
+ var description="";
+ //get index for each column
+ for(x=0;x<headerValuesArray.length;x++){
+ headerIndexArray.push($('#'+headerValuesArray[x]).index()+1);
+ }
+ //console.log(headerIndexArray);
+ var theadEls = tableEl.find('thead th');
+ var headArray=new Array();
+ description=tableEl.find('thead tr:nth-child(1) th:nth-child('+colIndexDesc+')').text();
+ headArray.push(description);
+ for(x=0;x<headerValuesArray.length;x++){
+ colIndexValues=headerIndexArray[x];
+ value=tableEl.find('thead tr:nth-child(1) th:nth-child('+colIndexValues+')').text();
+ headArray.push(value);
+ }
+ dataArray[0]=headArray;
+ for(i=1;i <=numRows;i++){
+ var rowArray=new Array();
+ description=tableEl.find('tbody tr:nth-child('+i+') td:nth-child('+colIndexDesc+')').text();
+
+ rowArray.push(description);
+ for(x=0;x<headerValuesArray.length;x++){
+ colIndexValues=headerIndexArray[x];
+ value=tableEl.find('tbody tr:nth-child('+i+') td:nth-child('+colIndexValues+')').text();
+ value=parseFloat(value.replace(numPattern,''));
+ //console.log(colIndexDesc+ ':'+description);
+ rowArray.push(value);
+ }
+ dataArray[i]=rowArray;
+
+ }
+
+ switch(type){
+ case 'bar':
+ var chart = new google.visualization.BarChart(document.getElementById(location));
+ break;
+ case 'column':
+ var chart = new google.visualization.ColumnChart(document.getElementById(location));
+ break;
+ case 'area':
+ var chart = new google.visualization.AreaChart(document.getElementById(location));
+ break;
+ case 'line':
+ var chart = new google.visualization.LineChart(document.getElementById(location));
+ break;
+
+ default:
+ var chart = new google.visualization.BarChart(document.getElementById(location));
+ break;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ var data = google.visualization.arrayToDataTable(dataArray);
+ chart.draw(data, settings.googleOptions);
+ };
+
+ if(tableEl.attr('title')!='' && settings.googleOptions.title==undefined){
+ settings.googleOptions.title=tableEl.attr('title');
+ }
+
+ //look for the settings in the data-attc-googleOptions
+ if(tableEl.attr('data-attc-googleOptions')!=undefined){
+ settings.googleOptions=jQuery.parseJSON(tableEl.attr('data-attc-googleOptions'));
+ }
+ //look for the settings in the data-attc-controls
+ if(tableEl.attr('data-attc-controls')!=undefined){
+ settings.controls=jQuery.parseJSON(tableEl.attr('data-attc-controls'));
+ }
+ //look for type in data-attc-type
+ if(tableEl.attr('data-attc-type')!=undefined){
+ settings.type=tableEl.attr('data-attc-type');
+ }
+
+ if(tableEl.attr('data-attc-hideTable')!=undefined){
+ settings.hideTable=tableEl.attr('data-attc-hideTable');
+ }
+ if(tableEl.attr('data-attc-hideChart')!=undefined){
+ settings.hideChart=tableEl.attr('data-attc-hideChart');
+ }
+ //look for location in data-attc-location
+ if(tableEl.attr('data-attc-location')!=undefined){
+ settings.location=tableEl.attr('data-attc-location');
+ }
+
+ if(tableEl.length>0 ){
+ if(tableEl.get(0).tagName=='TABLE'){
+ //fork depending on the setting
+ CreateChart(settings.type,settings.location,tableEl);
+
+ //hide the table
+ if(settings.hideTable=="true"){
+ tableEl.hide();
+ }
+ if(settings.hideChart=="true"){
+ $('#'+settings.location).hide();
+ }
+ //start making the controls
+ var controls='';
+ if(settings.controls.showHide){
+ controls+='<li><a href="#" \
+ data-attc-textShow="'+settings.controlsLabels.showChart+'" \
+ data-attc-textHide="'+settings.controlsLabels.hideChart+'" \
+ data-attc-controls-showHide="'+settings.location+'" \
+ class="attcChartIcon">'+(settings.hideChart ? settings.controlsLabels.showChart : settings.controlsLabels.hideChart)+'</a></li>';
+
+ controls+='<li><a href="#" \
+ data-attc-textShow="'+settings.controlsLabels.showTable+'" \
+ data-attc-textHide="'+settings.controlsLabels.hideTable+'" \
+ data-attc-controls-showHide="'+tableEl.attr('id')+'" \
+ class="attcTableIcon">'+(settings.hideTable ? settings.controlsLabels.showTable : settings.controlsLabels.hideTable)+'</a></li>';
+ }
+ //start making the controls
+ if(settings.controls.create){
+ controls+='<li><a href="#" \
+ data-attc-controls-addCreateOptions="'+tableEl.attr('id')+'" \
+ class="attcTableIcon">'+(settings.controlsLabels.createChart)+'</a></li>'
+ }
+ if(settings.controls.chartType){
+ controls+='<li><fieldset><label>'+settings.controlsLabels.changeChart+'</label><select data-attc-controls-updateChart="'+tableEl.attr('id')+'" class="attcUpdateChart">'+settings.chartOptionList+'</select></fieldset></li>';
+ }
+ //if there are any controls to show
+ if(controls !=''){
+ controls='<div class="attcControls"><ul>'+controls+'</ul><div>';
+ var controlsEl=$(controls);
+ //set the select list to show current selected chart
+ controlsEl.find("select[data-attc-controls-updateChart]").val(settings.type);
+ //
+ controlsEl.on("click", "a[data-attc-controls-showHide]", function(e){
+ e.preventDefault();
+ var el=$('#'+$(this).attr('data-attc-controls-showHide'));
+ el.find('tbody').show();
+ el.toggle();
+ $(this).text(el.is(':visible') ? $(this).attr('data-attc-textHide') : $(this).attr('data-attc-textShow'));
+ });
+ controlsEl.on("change", "select[data-attc-controls-updateChart]", function(){
+ //update chart type for other functions
+ tableEl.attr('data-attc-type',$(this).val());
+ //grab the new chart and re-run the creation
+ CreateChart($(this).val(),settings.location,tableEl);
+ //if editing then update the editing controls
+ if(tableEl.attr('data-attc-editing')=='true'){
+ controlsEl.find("a[data-attc-controls-addCreateOptions]").click();
+ }
+ });
+ controlsEl.find("a[data-attc-controls-addCreateOptions]").on("click", function(e){
+ e.preventDefault();
+ if(!tableEl.is(':visible')){
+ //show the thead only
+ tableEl.show();
+ tableEl.find('tbody').hide();
+ }
+ //set table as editing
+ tableEl.attr('data-attc-editing',true);
+ //remove existing edit boxes
+ tableEl.find('thead th input.attcEditCheckRadioBoxes').remove();
+ //add check boxes to the th elements
+ tableEl.find('thead th').each(function(index) {
+ //find col type by adding all values together and checking if it's not NaN
+ var items=0;
+ var col=index+1;
+ var inputType='checkbox';
+ var inputColType='value';
+ var descriptionCol=tableEl.attr('data-attc-colDescription');
+ var valuesCols=tableEl.attr('data-attc-colvalues').split(',');
+ valuesCols.push(descriptionCol);
+ tableEl.find('tbody>tr>td:nth-child('+col+')').each( function(){
+ items+=parseFloat($(this).text().replace(numPattern,''));
+ });
+
+ if(isNaN(items)){
+ inputType='radio';
+ inputColType='desc';
+ }
+ //force back to radio if pie chart
+ if(tableEl.attr('data-attc-type')=='pie'){
+ inputType='radio';
+ }
+ var appendEl='<input data-attc-colType="'+inputColType+'" type="'+inputType+'" name=attc'+inputColType+'" value="'+index+'"';
+ if($.inArray($(this).attr('id'), valuesCols)>-1){
+ appendEl+=' checked="checked"';
+ }
+ appendEl+=' class="attcEditCheckRadioBoxes"/>';
+ appendEl=$(appendEl).on("click", function(){
+ //give this col an id if it doesn't have one
+ var myId='attcCol'+$(this).val();
+ if($(this).parents('th').attr('id')!= undefined){
+ myId=$(this).parents('th').attr('id');
+ }else{
+ $(this).parents('th').attr('id',myId);
+ }
+ //change the attribute to this column
+ if($(this).attr('data-attc-colType')=='desc'){
+ tableEl.attr('data-attc-colDescription',myId);
+ }else{
+ //todo remove value if unchecked
+ if(tableEl.attr('data-attc-type') =='pie'){
+ tableEl.attr('data-attc-colValues',myId);
+ }else{
+ //select all the checked inputs
+ var checkedIds=tableEl.find('input[data-attc-colType=value]:checked').parents('th').map(function() { return this.id; }).get().toString();
+ tableEl.attr('data-attc-colValues',checkedIds);
+ }
+ }
+ //re-create chart
+ CreateChart(tableEl.attr('data-attc-type'),settings.location,tableEl);
+ });
+ $(this).prepend(appendEl);
+
+
+ });
+ });
+ //add controls above the table el
+ tableEl.before(controlsEl);
+ }
+ }else{
+ alert(tableEl.attr('id')+' is not a table it\'s a: ' + tableEl.get(0).tagName);
+ }
+ }else{
+ //
+ }
+ //maintain chain
+ return this
+ };
+})( jQuery );
+
+$(document).ready(function(){
+ $('[data-attc-createChart]').attc();
+}); \ No newline at end of file
diff --git a/EjercitarWeb/WebContent/login.jsp b/EjercitarWeb/WebContent/login.jsp
index f4a5f71..cbe2e1b 100644
--- a/EjercitarWeb/WebContent/login.jsp
+++ b/EjercitarWeb/WebContent/login.jsp
@@ -26,6 +26,7 @@ a:link {
</style>
<body>
<div align="center">
+<p> <%= request.getAttribute("error") %></p>
<form id="form1" name="form1" method="post" action="" >
<p>&nbsp;</p>
<p>&nbsp;</p>
diff --git a/EjercitarWeb/WebContent/ver_resultados.jsp b/EjercitarWeb/WebContent/ver_resultados.jsp
index 8d82e65..3d1d596 100644
--- a/EjercitarWeb/WebContent/ver_resultados.jsp
+++ b/EjercitarWeb/WebContent/ver_resultados.jsp
@@ -11,26 +11,40 @@
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script src="js/attc.googleCharts.js" type="text/javascript"></script>
- <link rel="stylesheet" type="text/css" href="js/attc.css">
+
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/ui-lightness/jquery-ui.css" type="text/css" />
-<%@page import="java.util.List" import="model.Tema" import="model.Profesor"%>
+<%@page import="java.util.List" import="model.Tema" import="model.Alumno" import="model.Profesor"%>
+<style>
+ .ui-tabs-vertical { width: 55em; }
+ .ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 12em; }
+ .ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
+ .ui-tabs-vertical .ui-tabs-nav li a { display:block; }
+ .ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
+ .ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}
+ </style>
</head>
<body>
<div id="content">
<div id="tabs">
<ul>
- <li onclick="cargarResultadosGenerales(<%= request.getParameter("asignatura") %>)"><a href="#tabs-1">General</a></li>
+ <li><a href="#tabs-1">General</a></li>
<li><a href="#tabs-2">Alumnos por tema </a></li>
- <li><a href="#tabs-3">Individual</a></li>
+ <li onclick="$('#tabs-individual').slideToggle()"><a href="#tabs-3">Individual</a></li>
</ul>
<div id=tabs-1 >
<div id="resultados"> </div>
+ <br>
+ <h2>Promedio de Temas </h2>
<div id="grafico_temas"> </div>
-
+ <br>
+ <h2>Promedio de Conceptos</h2>
+ <div id="resultados_conceptos"> </div>
+ <div id="grafico_conceptos"> </div>
+
</div>
<div id=tabs-2>
@@ -49,33 +63,60 @@
<br>
<div id="tabla" >
-
-
+
</div>
- <div id="grafico"> </div>
- <input type="button" onclick="boton()" value="boton">
+
</form>
</div>
<div id=tabs-3>
+ <fieldset>
+ <legend> Seleccione un Alumno </legend>
+ <label> Alumno: </label>
+ <select id="alumnos" name="alumno" onchange="cargarInformacionAlumno(<%= request.getParameter("asignatura") %>)">
+ <option value='-1'> Seleccione un Alumno... </option>
+ <% List<Alumno> alumnos = (List<Alumno>)request.getAttribute("alumnoList"); %>
+ <% for(Alumno alumno : alumnos) {%>
+ <option value="<%= alumno.getIdAlumno() %>"><%= alumno.getNombre() + " " + alumno.getApellido() %></option>
+ <% } %>
+ </select>
+ </fieldset>
<div id="tabs-individual">
<ul>
- <li><a href="#tabs-11">General</a></li>
- <li><a href="#tabs-22">Alumnos por tema </a></li>
- <li><a href="#tabs-33">Individual</a></li>
+ <li><a href="#tabs-11">Datos Personales</a></li>
+ <li><a href="#tabs-22">Entorno Personal </a></li>
+ <li><a href="#tabs-33">Resultados</a></li>
</ul>
<div id=tabs-11>
- <p> holas1 </p>
+ <div id="datos_personales">Cargando.. </div>
</div>
<div id=tabs-22>
- <p> holas2 </p>
+
+ <div id="datos_entorno"> </div>
+ Estados de animo
+ <div id="grafico_animo"> </div>
+ <br>
+ Recibio ayuda de sus padres?
+ <div id="grafico_padres"> </div>
+ <br>
+ Hizo sus tareas en el hogar?
+ <div id="grafico_hogar"> </div>
+
</div>
<div id=tabs-33>
- <p> holas3 </p>
+
+ <div id="resultados_ind"> </div>
+ <br>
+ <h2>Probabilidades de Temas </h2>
+ <div id="grafico_temas_ind"> </div>
+ <br>
+ <h2>Probabilidades de Conceptos</h2>
+ <div id="resultados_conceptos_ind"> </div>
+ <div id="grafico_conceptos_ind"> </div>
</div>
</div>
@@ -88,36 +129,55 @@
<script type="text/javascript">
function cargarResultados(asignatura, alumnoList){
- //obtiene los objetos productCode, y obtiene el valor del objeto
var tema_id=$("#temas").val(); //ya se tiene el objeto select
- //llama al servlet con el parametro seleccionado
-
$("#tabla").load("CargarResultadosServlet", {asignatura:asignatura, tema_id:tema_id});
- //$("#conceptos").multiselect("refresh");
- $("#grafico").attc();
-
+ }
+
+ function cargarInformacionAlumno(asignatura){
+ var alumno_id=$("#alumnos").val(); //ya se tiene el objeto select
+ $("#tabs-individual").slideToggle();
+ $("#datos_personales").load("CargarDatosPersonalesServlet", {alumno_id:alumno_id});
+ $("#datos_entorno").load("CargarEntornoPersonalServlet", {alumno_id:alumno_id}, function() {
+
+ $('#animo_grafico').attc();
+ $('#padres_grafico').attc();
+ $('#hogar_grafico').attc();
+ }
+ );
+ $("#resultados_ind").load("CargarResultadosIndividualesServlet", {asignatura:asignatura, alumno_id:alumno_id}, function() {
+
+ $('#tema_grafico_ind').attc();
+ $('#concepto_grafico_ind').attc();}
+ );
}
function cargarResultadosGenerales(asignatura){
-
- $("#resultados").load("CargarResultadosGeneralesServlet", {asignatura:asignatura}, function() {
+ $("#resultados").load("CargarResultadosGeneralesTemasServlet", {asignatura:asignatura}, function() {
$('#tema_grafico').attc();}
);
-
-
-
- }
- function boton(){
- $("#grafico").attc();
+ $("#resultados_conceptos").load("CargarResultadosGeneralesConceptosServlet", {asignatura:asignatura}, function() {
+
+ $('#concepto_grafico').attc();}
+ );
}
+
+ $( "#tabs" ).tabs();
+ //$( "#tabs-individual" ).tabs();
+ $( "#tabs-individual" ).tabs().addClass( "ui-tabs-vertical ui-helper-clearfix" );
+
+
- $( "#tabs" ).tabs();
- $( "#tabs-individual" ).tabs();
+ $(document).ready(function() {
+
+ cargarResultadosGenerales(<%= request.getParameter("asignatura") %>)
+
+ });
</script>
+
</body>
</html> \ No newline at end of file
diff --git a/EjercitarWeb/src/src/CargarDatosPersonalesServlet.java b/EjercitarWeb/src/src/CargarDatosPersonalesServlet.java
new file mode 100644
index 0000000..2d89b45
--- /dev/null
+++ b/EjercitarWeb/src/src/CargarDatosPersonalesServlet.java
@@ -0,0 +1,73 @@
+package src;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.List;
+
+import javax.ejb.EJB;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import model.Alumno;
+import model.Sesion;
+
+import beans.AdministracionBeanRemote;
+
+/**
+ * Servlet implementation class CargarDatosPersonalesServlet
+ */
+@WebServlet("/CargarDatosPersonalesServlet")
+public class CargarDatosPersonalesServlet extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
+ @PersistenceContext
+ EntityManager em;
+
+ @EJB
+ AdministracionBeanRemote abr;
+ /**
+ * @see HttpServlet#HttpServlet()
+ */
+ public CargarDatosPersonalesServlet() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ // TODO Auto-generated method stub
+
+ response.setContentType("text/html;charset=UTF-8");
+ PrintWriter out = response.getWriter();
+
+ String alumno_id = request.getParameter("alumno_id");
+ Alumno alumno = em.find(Alumno.class, Integer.valueOf(alumno_id));
+
+ try {
+
+ out.printf("<h1>" + alumno.getNombre() + " " + alumno.getApellido() + "</h1>");
+
+
+ out.printf("<p>" + alumno.getFechaNacimiento() + "</p>");
+
+ } finally {
+ out.close();
+ }
+
+ }
+
+ /**
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ doGet(request, response);
+ }
+
+}
diff --git a/EjercitarWeb/src/src/CargarEntornoPersonalServlet.java b/EjercitarWeb/src/src/CargarEntornoPersonalServlet.java
new file mode 100644
index 0000000..c7fb4a7
--- /dev/null
+++ b/EjercitarWeb/src/src/CargarEntornoPersonalServlet.java
@@ -0,0 +1,320 @@
+package src;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.ejb.EJB;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import model.Alumno;
+import model.Asignatura;
+import model.Concepto;
+import model.Curso;
+import model.Sesion;
+import model.Tema;
+
+import beans.AdministracionBeanRemote;
+
+/**
+ * Servlet implementation class CargarEntornoPersonalServlet
+ */
+@WebServlet("/CargarEntornoPersonalServlet")
+public class CargarEntornoPersonalServlet extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
+ @PersistenceContext
+ EntityManager em;
+
+ @EJB
+ AdministracionBeanRemote abr;
+ /**
+ * @see HttpServlet#HttpServlet()
+ */
+ public CargarEntornoPersonalServlet() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ response.setContentType("text/html;charset=UTF-8");
+ PrintWriter out = response.getWriter();
+
+ String alumno_id = request.getParameter("alumno_id");
+ Alumno alumno = em.find(Alumno.class, Integer.valueOf(alumno_id));
+
+
+ List<Sesion> sesionList = em.createQuery("Select e from Sesion e where e.alumno = :alumno")
+ .setParameter("alumno", alumno).getResultList();
+
+
+ //List<Sesion> sesionList = alumno.getSesionList();
+
+ int cantidadFeliz = 0;
+ int cantidadTriste = 0;
+ int cantidadEnamorado = 0;
+ int cantidadSuenho = 0;
+ int cantidadPadres = 0;
+ int cantidadHogar = 0;
+
+
+ for(Sesion sesion : sesionList) {
+
+ String estado = sesion.getEstadoAnimo();
+ if(estado.equals("Feliz")) cantidadFeliz++;
+ if(estado.equals("Triste")) cantidadTriste++;
+ if(estado.equals("Enamorado")) cantidadEnamorado++;
+ if(estado.equals("Suenho")) cantidadSuenho++;
+
+ if(sesion.getAyudaPadres()) cantidadPadres++;
+ if(sesion.getDesdeHogar()) cantidadHogar++;
+ }
+
+ //Tabla Animos
+ try {
+ out.printf("<table title=\"Resultados\"" +
+ "id=\"animo_grafico\"" +
+ "summary=\"tema\"" +
+ "data-attc-createChart=\"true\" " +
+ "data-attc-colDescription=\"estado\" " +
+ "data-attc-colValues=\"cantidad\"" +
+ "data-attc-location=\"grafico_animo\" " +
+ "data-attc-hideTable=\"true\" " +
+ "data-attc-type=\"pie\" " +
+ "data-attc-googleOptions=" + "\'" + "{\"is3D\":true}\'" +
+ "data-attc-controls='{\"showHide\":false,\"create\":false,\"chartType\":false}'>");
+ out.printf("<thead>");
+ out.printf("<tr>");
+
+
+ out.printf("<th id=\"estado\">");
+ out.printf("Estado");
+ out.printf("</th>");
+
+ out.printf("<th id=\"cantidad\">");
+ out.printf("Cantidad");
+ out.printf("</th>");
+
+ out.printf("</tr>");
+ out.printf("</thead>");
+ out.printf("<tbody>");
+
+ //fila
+ out.printf("<tr>");
+
+ out.printf("<td class='lname'>");
+ out.printf("Feliz");
+ out.printf("</td>");
+
+ out.printf("<td class='lname'>");
+ out.printf(Integer.toString(cantidadFeliz));
+ out.printf("</td>");
+
+ out.printf("</tr>");
+ //fin fila
+
+ //fila
+ out.printf("<tr>");
+
+ out.printf("<td class='lname'>");
+ out.printf("Triste");
+ out.printf("</td>");
+
+ out.printf("<td class='lname'>");
+ out.printf(Integer.toString(cantidadTriste));
+ out.printf("</td>");
+
+ out.printf("</tr>");
+ //fin fila
+
+ //fila
+ out.printf("<tr>");
+
+ out.printf("<td class='lname'>");
+ out.printf("Enamorado");
+ out.printf("</td>");
+
+ out.printf("<td class='lname'>");
+ out.printf(Integer.toString(cantidadEnamorado));
+ out.printf("</td>");
+
+ out.printf("</tr>");
+ //fin fila
+
+ //fila
+ out.printf("<tr>");
+
+ out.printf("<td class='lname'>");
+ out.printf("Suenho");
+ out.printf("</td>");
+
+ out.printf("<td class='lname'>");
+ out.printf(Integer.toString(cantidadSuenho));
+ out.printf("</td>");
+
+ out.printf("</tr>");
+ //fin fila
+
+ out.printf("</tbody>");
+ out.printf("</table>");
+ } finally {
+ //out.close();
+ }
+
+
+
+
+ //tabla padres
+ try {
+ out.printf("<table title=\"Resultados\"" +
+ "id=\"padres_grafico\"" +
+ "summary=\"tema\"" +
+ "data-attc-createChart=\"true\" " +
+ "data-attc-colDescription=\"estado\" " +
+ "data-attc-colValues=\"cantidad\"" +
+ "data-attc-location=\"grafico_padres\" " +
+ "data-attc-hideTable=\"true\" " +
+ "data-attc-type=\"pie\" " +
+ "data-attc-googleOptions=" + "\'" + "{\"is3D\":true}\'" +
+ "data-attc-controls='{\"showHide\":false,\"create\":false,\"chartType\":false}'>");
+ out.printf("<thead>");
+ out.printf("<tr>");
+
+
+ out.printf("<th id=\"estado\">");
+ out.printf("Estado");
+ out.printf("</th>");
+
+ out.printf("<th id=\"cantidad\">");
+ out.printf("Cantidad");
+ out.printf("</th>");
+
+ out.printf("</tr>");
+ out.printf("</thead>");
+ out.printf("<tbody>");
+
+ //fila
+ out.printf("<tr>");
+
+ out.printf("<td class='lname'>");
+ out.printf("Si");
+ out.printf("</td>");
+
+ out.printf("<td class='lname'>");
+ out.printf(Integer.toString(cantidadPadres));
+ out.printf("</td>");
+
+ out.printf("</tr>");
+ //fin fila
+
+ //fila
+ out.printf("<tr>");
+
+ out.printf("<td class='lname'>");
+ out.printf("No");
+ out.printf("</td>");
+
+ out.printf("<td class='lname'>");
+ out.printf(Integer.toString(sesionList.size() - cantidadPadres));
+ out.printf("</td>");
+
+ out.printf("</tr>");
+ //fin fila
+
+
+ out.printf("</tbody>");
+ out.printf("</table>");
+ } finally {
+ //out.close();
+ }
+
+
+
+ //tabla hogar
+ try {
+ out.printf("<table title=\"Resultados\"" +
+ "id=\"hogar_grafico\"" +
+ "summary=\"tema\"" +
+ "data-attc-createChart=\"true\" " +
+ "data-attc-colDescription=\"estado\" " +
+ "data-attc-colValues=\"cantidad\"" +
+ "data-attc-location=\"grafico_hogar\" " +
+ "data-attc-hideTable=\"true\" " +
+ "data-attc-type=\"pie\" " +
+ "data-attc-googleOptions=" + "\'" + "{\"is3D\":true}\'" +
+ "data-attc-controls='{\"showHide\":false,\"create\":false,\"chartType\":false}'>");
+ out.printf("<thead>");
+ out.printf("<tr>");
+
+
+ out.printf("<th id=\"estado\">");
+ out.printf("Estado");
+ out.printf("</th>");
+
+ out.printf("<th id=\"cantidad\">");
+ out.printf("Cantidad");
+ out.printf("</th>");
+
+ out.printf("</tr>");
+ out.printf("</thead>");
+ out.printf("<tbody>");
+
+ //fila
+ out.printf("<tr>");
+
+ out.printf("<td class='lname'>");
+ out.printf("Si");
+ out.printf("</td>");
+
+ out.printf("<td class='lname'>");
+ out.printf(Integer.toString(cantidadHogar));
+ out.printf("</td>");
+
+ out.printf("</tr>");
+ //fin fila
+
+ //fila
+ out.printf("<tr>");
+
+ out.printf("<td class='lname'>");
+ out.printf("No");
+ out.printf("</td>");
+
+ out.printf("<td class='lname'>");
+ out.printf(Integer.toString(sesionList.size() - cantidadHogar));
+ out.printf("</td>");
+
+ out.printf("</tr>");
+ //fin fila
+
+
+ out.printf("</tbody>");
+ out.printf("</table>");
+ } finally {
+ out.close();
+ }
+
+ //List<Concepto> conceptoList = abr.getConceptoList(idTema);
+ System.out.println("prueba");
+ //System.out.println(conceptoList.toString());
+ }
+
+ /**
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ doGet(request, response);
+ }
+
+}
diff --git a/EjercitarWeb/src/src/CargarResultadosGeneralesServlet.java b/EjercitarWeb/src/src/CargarResultadosGeneralesConceptosServlet.java
index 48c4e33..d76ecd2 100644
--- a/EjercitarWeb/src/src/CargarResultadosGeneralesServlet.java
+++ b/EjercitarWeb/src/src/CargarResultadosGeneralesConceptosServlet.java
@@ -2,6 +2,10 @@ package src;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import javax.ejb.EJB;
@@ -22,10 +26,10 @@ import model.Curso;
import model.Tema;
/**
- * Servlet implementation class CargarResultadosGeneralesServlet
+ * Servlet implementation class CargarResultadosGeneralesConceptosServlet
*/
-@WebServlet("/CargarResultadosGeneralesServlet")
-public class CargarResultadosGeneralesServlet extends HttpServlet {
+@WebServlet("/CargarResultadosGeneralesConceptosServlet")
+public class CargarResultadosGeneralesConceptosServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@PersistenceContext
@@ -37,7 +41,7 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
/**
* @see HttpServlet#HttpServlet()
*/
- public CargarResultadosGeneralesServlet() {
+ public CargarResultadosGeneralesConceptosServlet() {
super();
// TODO Auto-generated constructor stub
}
@@ -62,52 +66,48 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
.setParameter("asignatura", asignatura).getResultList();
request.setAttribute("alumnoList", alumnoList);
System.out.println(alumnoList.toString());
-
- double promedioGeneral = 0;
- double [] promedioTemas = new double[temaList.size()];
- //inicializacion
- for(int i = 0; i < temaList.size(); i++)
- promedioTemas[i] = 0;
-
+ HashMap<String, Double> promedioConceptos = new HashMap<String, Double>();
for(Alumno alumno : alumnoList) {
- promedioGeneral = promedioGeneral + Double.valueOf(abr.getValorNodoRed(asignatura.getNombre(), asignatura.getIdAsignatura(), alumno.getIdAlumno()));
- System.out.println("promedio " + promedioGeneral);
- int c=0;
- //Promedio por temas
+
for(Tema tema: temaList){
- promedioTemas[c] = promedioTemas[c] + Double.valueOf(abr.getValorNodoRed(tema.getNombre(), asignatura.getIdAsignatura(), alumno.getIdAlumno()));
- c++;
+ List<Concepto> conceptoList = em.createQuery("Select e from Concepto e where e.tema = :tema")
+ .setParameter("tema", tema).getResultList();
+
+ for(Concepto concepto : conceptoList) {
+ if (!promedioConceptos.containsKey(concepto.getNombre())) {
+ promedioConceptos.put(concepto.getNombre(), Double.valueOf("0"));
+ System.out.println("valor hash: " + promedioConceptos.get(concepto.getNombre().toString()));
+
+ }
+ //double valorActual =
+ promedioConceptos.put(concepto.getNombre(), promedioConceptos.get(concepto.getNombre())
+ + Double.valueOf(abr.getValorNodoRed(concepto.getNombre(), asignatura.getIdAsignatura(), alumno.getIdAlumno())));
+
+ }
}
}
- promedioGeneral = promedioGeneral/alumnoList.size();
-
- //calculo promedio temas
- for(int i = 0; i < temaList.size(); i++)
- promedioTemas[i] = promedioTemas[i]/temaList.size();
-
+ Iterator<String> keySetIterator = promedioConceptos.keySet().iterator();
+ while(keySetIterator.hasNext()){
+ String key = keySetIterator.next();
+ System.out.println("valor hash: " + promedioConceptos.get(key).toString());
+ promedioConceptos.put(key, promedioConceptos.get(key)/alumnoList.size());
+ }
try {
-
-
- out.printf(asignatura.getNombre());
- out.printf("</br>");
- out.printf("Promedio: ");
- out.print(promedioGeneral);
-
out.printf("<table title=\"Resultados\"" +
- "id=\"tema_grafico\"" +
+ "id=\"concepto_grafico\"" +
"summary=\"tema\"" +
"data-attc-createChart=\"true\" " +
"data-attc-colDescription=\"tema\" " +
"data-attc-colValues=\"promedio\"" +
- "data-attc-location=\"grafico_temas\" " +
+ "data-attc-location=\"grafico_conceptos\" " +
"data-attc-hideTable=\"true\" " +
- "data-attc-type=\"pie\" " +
+ "data-attc-type=\"column\" " +
"data-attc-googleOptions=" + "\'" + "{\"is3D\":true}\'" +
"data-attc-controls='{\"showHide\":false,\"create\":false,\"chartType\":false}'>");
out.printf("<thead>");
@@ -126,17 +126,18 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
out.printf("</thead>");
out.printf("<tbody>");
- int c = 0;
- for (Tema tema : temaList){
+ keySetIterator = promedioConceptos.keySet().iterator();
+ while(keySetIterator.hasNext()){
+ String key = keySetIterator.next();
//System.out.println(tema.getConceptoList().toString());
out.printf("<tr>");
out.printf("<td class='lname'>");
- out.printf(tema.getNombre());
+ out.printf(key);
out.printf("</td>");
out.printf("<td class='lname'>");
- out.printf(Double.toString(promedioTemas[c]));
+ out.printf(Double.toString(promedioConceptos.get(key)));
out.printf("</td>");
out.printf("</tr>");
@@ -156,8 +157,8 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
doGet(request, response);
}
}
+
diff --git a/EjercitarWeb/src/src/CargarResultadosGeneralesServlet.java b/EjercitarWeb/src/src/CargarResultadosGeneralesTemasServlet.java
index 48c4e33..fe88277 100644
--- a/EjercitarWeb/src/src/CargarResultadosGeneralesServlet.java
+++ b/EjercitarWeb/src/src/CargarResultadosGeneralesTemasServlet.java
@@ -22,10 +22,10 @@ import model.Curso;
import model.Tema;
/**
- * Servlet implementation class CargarResultadosGeneralesServlet
+ * Servlet implementation class CargarResultadosGeneralesTemasServlet
*/
-@WebServlet("/CargarResultadosGeneralesServlet")
-public class CargarResultadosGeneralesServlet extends HttpServlet {
+@WebServlet("/CargarResultadosGeneralesTemasServlet")
+public class CargarResultadosGeneralesTemasServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@PersistenceContext
@@ -37,7 +37,7 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
/**
* @see HttpServlet#HttpServlet()
*/
- public CargarResultadosGeneralesServlet() {
+ public CargarResultadosGeneralesTemasServlet() {
super();
// TODO Auto-generated constructor stub
}
@@ -85,7 +85,7 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
//calculo promedio temas
for(int i = 0; i < temaList.size(); i++)
- promedioTemas[i] = promedioTemas[i]/temaList.size();
+ promedioTemas[i] = promedioTemas[i]/alumnoList.size();
@@ -94,9 +94,9 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
try {
- out.printf(asignatura.getNombre());
+ out.printf("<h1>" + asignatura.getNombre() + "</h2>");
out.printf("</br>");
- out.printf("Promedio: ");
+ out.printf("Promedio general: ");
out.print(promedioGeneral);
out.printf("<table title=\"Resultados\"" +
@@ -107,7 +107,7 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
"data-attc-colValues=\"promedio\"" +
"data-attc-location=\"grafico_temas\" " +
"data-attc-hideTable=\"true\" " +
- "data-attc-type=\"pie\" " +
+ "data-attc-type=\"column\" " +
"data-attc-googleOptions=" + "\'" + "{\"is3D\":true}\'" +
"data-attc-controls='{\"showHide\":false,\"create\":false,\"chartType\":false}'>");
out.printf("<thead>");
diff --git a/EjercitarWeb/src/src/CargarResultadosGeneralesServlet.java b/EjercitarWeb/src/src/CargarResultadosIndividualesServlet.java
index 48c4e33..e37eb6c 100644
--- a/EjercitarWeb/src/src/CargarResultadosGeneralesServlet.java
+++ b/EjercitarWeb/src/src/CargarResultadosIndividualesServlet.java
@@ -2,6 +2,7 @@ package src;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
@@ -13,31 +14,32 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import beans.AdministracionBeanRemote;
-
import model.Alumno;
import model.Asignatura;
import model.Concepto;
import model.Curso;
import model.Tema;
+import beans.AdministracionBeanRemote;
+
/**
- * Servlet implementation class CargarResultadosGeneralesServlet
+ * Servlet implementation class CargarResultadosIndividualesServlet
*/
-@WebServlet("/CargarResultadosGeneralesServlet")
-public class CargarResultadosGeneralesServlet extends HttpServlet {
+@WebServlet("/CargarResultadosIndividualesServlet")
+public class CargarResultadosIndividualesServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
+
@PersistenceContext
- EntityManager em;
+ EntityManager em;
@EJB
- AdministracionBeanRemote abr;
+ AdministracionBeanRemote abr;
/**
* @see HttpServlet#HttpServlet()
*/
- public CargarResultadosGeneralesServlet() {
+ public CargarResultadosIndividualesServlet() {
super();
// TODO Auto-generated constructor stub
}
@@ -46,6 +48,7 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ // TODO Auto-generated method stub
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//int idTema = Integer.valueOf(request.getParameter("tema_id"));
@@ -53,61 +56,35 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
String idAsignatura = request.getParameter("asignatura");
Asignatura asignatura = em.find(Asignatura.class, Integer.valueOf(idAsignatura));
- Curso curso = asignatura.getCurso();
+ String idAlumno = request.getParameter("alumno_id");
+ Alumno alumno = em.find(Alumno.class, Integer.valueOf(idAlumno));
+
- //Promedio General
- List<Alumno> alumnoList = em.createQuery("Select e from Alumno e where e.curso = :curso")
- .setParameter("curso", curso).getResultList();
List<Tema> temaList = em.createQuery("Select e from Tema e where e.asignatura = :asignatura")
.setParameter("asignatura", asignatura).getResultList();
- request.setAttribute("alumnoList", alumnoList);
- System.out.println(alumnoList.toString());
-
- double promedioGeneral = 0;
- double [] promedioTemas = new double[temaList.size()];
- //inicializacion
- for(int i = 0; i < temaList.size(); i++)
- promedioTemas[i] = 0;
-
-
- for(Alumno alumno : alumnoList) {
- promedioGeneral = promedioGeneral + Double.valueOf(abr.getValorNodoRed(asignatura.getNombre(), asignatura.getIdAsignatura(), alumno.getIdAlumno()));
- System.out.println("promedio " + promedioGeneral);
- int c=0;
- //Promedio por temas
- for(Tema tema: temaList){
- promedioTemas[c] = promedioTemas[c] + Double.valueOf(abr.getValorNodoRed(tema.getNombre(), asignatura.getIdAsignatura(), alumno.getIdAlumno()));
- c++;
- }
+ List<Concepto> conceptoList = new ArrayList();
+ for (Tema tema : temaList) {
+ conceptoList.addAll(em.createQuery("Select e from Concepto e where e.tema = :tema")
+ .setParameter("tema", tema).getResultList());
}
- promedioGeneral = promedioGeneral/alumnoList.size();
-
- //calculo promedio temas
- for(int i = 0; i < temaList.size(); i++)
- promedioTemas[i] = promedioTemas[i]/temaList.size();
-
-
-
-
-
try {
- out.printf(asignatura.getNombre());
+ out.printf("<h1>" + asignatura.getNombre() + "</h2>");
out.printf("</br>");
- out.printf("Promedio: ");
- out.print(promedioGeneral);
+ out.printf("Promedio general: ");
+ out.print(abr.getValorNodoRed(asignatura.getNombre(), asignatura.getIdAsignatura(), alumno.getIdAlumno()));
out.printf("<table title=\"Resultados\"" +
- "id=\"tema_grafico\"" +
+ "id=\"tema_grafico_ind\"" +
"summary=\"tema\"" +
"data-attc-createChart=\"true\" " +
"data-attc-colDescription=\"tema\" " +
"data-attc-colValues=\"promedio\"" +
- "data-attc-location=\"grafico_temas\" " +
+ "data-attc-location=\"grafico_temas_ind\" " +
"data-attc-hideTable=\"true\" " +
- "data-attc-type=\"pie\" " +
+ "data-attc-type=\"column\" " +
"data-attc-googleOptions=" + "\'" + "{\"is3D\":true}\'" +
"data-attc-controls='{\"showHide\":false,\"create\":false,\"chartType\":false}'>");
out.printf("<thead>");
@@ -128,7 +105,6 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
int c = 0;
for (Tema tema : temaList){
- //System.out.println(tema.getConceptoList().toString());
out.printf("<tr>");
out.printf("<td class='lname'>");
@@ -136,20 +112,64 @@ public class CargarResultadosGeneralesServlet extends HttpServlet {
out.printf("</td>");
out.printf("<td class='lname'>");
- out.printf(Double.toString(promedioTemas[c]));
+ out.printf(abr.getValorNodoRed(tema.getNombre(), asignatura.getIdAsignatura(), alumno.getIdAlumno()));
out.printf("</td>");
out.printf("</tr>");
}
out.printf("</tbody>");
out.printf("</table>");
+
+ // Tabla conceptos
+ out.printf("<table title=\"Resultados\"" +
+ "id=\"concepto_grafico_ind\"" +
+ "summary=\"concepto\"" +
+ "data-attc-createChart=\"true\" " +
+ "data-attc-colDescription=\"concepto\" " +
+ "data-attc-colValues=\"promedio\"" +
+ "data-attc-location=\"grafico_conceptos_ind\" " +
+ "data-attc-hideTable=\"true\" " +
+ "data-attc-type=\"column\" " +
+ "data-attc-googleOptions=" + "\'" + "{\"is3D\":true}\'" +
+ "data-attc-controls='{\"showHide\":false,\"create\":false,\"chartType\":false}'>");
+ out.printf("<thead>");
+ out.printf("<tr>");
+
+
+ out.printf("<th id=\"concepto\">");
+ out.printf("Concepto");
+ out.printf("</th>");
+
+ out.printf("<th id=\"promedio\">");
+ out.printf("Promedio");
+ out.printf("</th>");
+
+ out.printf("</tr>");
+ out.printf("</thead>");
+ out.printf("<tbody>");
+
+ //int c = 0;
+ for (Concepto concepto : conceptoList){
+ out.printf("<tr>");
+
+ out.printf("<td class='lname'>");
+ out.printf(concepto.getNombre());
+ out.printf("</td>");
+
+ out.printf("<td class='lname'>");
+ out.printf(abr.getValorNodoRed(concepto.getNombre(), asignatura.getIdAsignatura(), alumno.getIdAlumno()));
+ out.printf("</td>");
+
+ out.printf("</tr>");
+ }
+ out.printf("</tbody>");
+ out.printf("</table>");
+
+
} finally {
out.close();
}
-
- //List<Concepto> conceptoList = abr.getConceptoList(idTema);
- System.out.println("prueba");
- //System.out.println(conceptoList.toString());
+
}
/**
diff --git a/EjercitarWeb/src/src/LogInServlet.java b/EjercitarWeb/src/src/LogInServlet.java
index bdeb7db..851acb1 100644
--- a/EjercitarWeb/src/src/LogInServlet.java
+++ b/EjercitarWeb/src/src/LogInServlet.java
@@ -52,25 +52,27 @@ public class LogInServlet extends HttpServlet {
// TODO Auto-generated method stub
String usuario = request.getParameter("usuario");
String password = request.getParameter("password");
-
- Profesor profesor = abr.logIn(usuario, password);
-
+ Profesor profesor = null;
+ try {
+ profesor = abr.logIn(usuario, password);
if (profesor != null) {
- response.setContentType("text/html;charset=UTF-8");
- System.out.println("ok");
request.getSession().setAttribute("auth", true);
request.getSession().setAttribute("profesor", profesor);
- //RequestDispatcher rd = getServletContext().getRequestDispatcher("/menu_principal.jsp");
- //rd.forward(request, response);
-
+
response.sendRedirect("/EjercitarWeb/MenuPrincipalServlet");
- } else {
+ }else{
+ response.setContentType("text/html;charset=UTF-8");
+ System.out.println("fail");
+ request.setAttribute("error", "Usuario o contraseņa incorrectos");
+ RequestDispatcher rd = getServletContext().getRequestDispatcher("/login.jsp");
+ rd.forward(request, response);
+ }
+ } catch(Exception e) {
response.setContentType("text/html;charset=UTF-8");
System.out.println("fail");
- request.setAttribute("error", "Usuario o contrasena invalidos");
+ request.setAttribute("error", "Usuario o contraseņa incorrectos");
RequestDispatcher rd = getServletContext().getRequestDispatcher("/login.jsp");
rd.forward(request, response);
}
-
}
}
diff --git a/EjercitarWeb/src/src/NuevoEjercicioServlet.java b/EjercitarWeb/src/src/NuevoEjercicioServlet.java
index 111fb91..4b1c0ba 100644
--- a/EjercitarWeb/src/src/NuevoEjercicioServlet.java
+++ b/EjercitarWeb/src/src/NuevoEjercicioServlet.java
@@ -76,6 +76,7 @@ public class NuevoEjercicioServlet extends HttpServlet {
Concepto concepto = em.find(Concepto.class, Integer.valueOf(idConcepto));
conceptoList.add(concepto);
}
+ System.out.println(conceptoList.toString());
ejercicio.setConceptoList(conceptoList);
List<Respuesta> respuestaList = new ArrayList<Respuesta>();