Rev 1471 | Rev 1475 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1406 | jmachado | 1 | <%@ page import="jomm.dao.impl.AbstractDao" %> |
2 | <%@ page import="org.hibernate.Query" %> |
||
3 | <%@ page import="java.util.ArrayList" %> |
||
4 | <%@ page import="java.util.HashMap" %> |
||
5 | <%@ page import="java.util.List" %> |
||
6 | <%@ page import="pt.estgp.estgweb.domain.*" %> |
||
7 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
||
8 | <jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
||
9 | <% |
||
10 | AbstractDao.getCurrentSession().beginTransaction(); |
||
11 | |||
12 | Query q = AbstractDao.getCurrentSession().createQuery( |
||
13 | "select t from t in class " + QuestionarioPedagogicoTipologiaRequisitada.class.getName() + |
||
1471 | jmachado | 14 | " JOIN t.unidadeAfeta ua " + |
15 | " where ua.usar = true and t.docenteAfeto.id = " + UserSession.getUser().getId() + " and " + |
||
1406 | jmachado | 16 | " (t.unidadeAfeta.cursoAfeto.questionario.state = :s1 OR t.unidadeAfeta.cursoAfeto.questionario.state = :s2)" |
17 | ); |
||
18 | q.setString("s1","PROCESSING_WITH_ANSWERS"); |
||
19 | q.setString("s2","PROCESSING"); |
||
20 | List<QuestionarioPedagogicoTipologiaRequisitada> tipologiaRequisitadas = q.list(); |
||
21 | |||
22 | if(tipologiaRequisitadas.size() == 0) |
||
23 | { |
||
24 | %> |
||
25 | |||
1408 | jmachado | 26 | <div class="col-md-12 col-sm-12 col-xs-12"> |
1406 | jmachado | 27 | <div class="alert alert-success">Olá ${UserSession.shortName} não existem quaisquer questionários ativos nos quais esteja a ser avaliado.</div> |
28 | <div class="alert alert-success">Vá consultando o sistema pois poderemos ativar algum questionário e poderá saber por aqui se os seus alunos estão a responder. Obrigado</div> |
||
29 | </div> |
||
30 | |||
31 | <% |
||
32 | } |
||
33 | else if(tipologiaRequisitadas.size() > 0) |
||
34 | { |
||
35 | %> |
||
36 | |||
1408 | jmachado | 37 | <div class="col-md-12 col-sm-12 col-xs-12"> |
1406 | jmachado | 38 | <div class="panel panel-info"> |
39 | <div class="panel-heading">Olá ${UserSession.shortName}. Existem questinários onde está a ser avaliado <span class="glyphicon glyphicon-alert"/></div> |
||
40 | <div class="panel-body"> |
||
41 | <div class="list-group"> |
||
42 | <% |
||
43 | HashMap<Questionario,List<QuestionarioPedagogicoTipologiaRequisitada>> tipologiasOrdenadas = new HashMap<Questionario, List<QuestionarioPedagogicoTipologiaRequisitada>>(); |
||
44 | for(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada: tipologiaRequisitadas) |
||
45 | { |
||
46 | List<QuestionarioPedagogicoTipologiaRequisitada> tipologias = tipologiasOrdenadas.get(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto().getQuestionario()); |
||
47 | if(tipologias == null) |
||
48 | { |
||
49 | tipologias = new ArrayList<QuestionarioPedagogicoTipologiaRequisitada>(); |
||
50 | tipologiasOrdenadas.put(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto().getQuestionario(),tipologias); |
||
51 | } |
||
52 | tipologias.add(tipologiaRequisitada); |
||
53 | } |
||
54 | for(Questionario questionario: tipologiasOrdenadas.keySet()) |
||
55 | { |
||
56 | %> |
||
1434 | jmachado | 57 | <h2 class="well">Questionário: <%=questionario.getDescription()%></h2> |
1406 | jmachado | 58 | <% |
59 | HashMap<QuestionarioPedagogicoCursoAfeto,Boolean> cursosAfetoHashMap = new HashMap<QuestionarioPedagogicoCursoAfeto, Boolean>(); |
||
60 | for(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada: tipologiasOrdenadas.get(questionario)) |
||
61 | { |
||
62 | cursosAfetoHashMap.put(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto(),true); |
||
63 | } |
||
64 | |||
65 | for(QuestionarioPedagogicoCursoAfeto cursoAfeto: cursosAfetoHashMap.keySet()) |
||
66 | { |
||
67 | %> |
||
1434 | jmachado | 68 | |
1474 | jmachado | 69 | <div class="well well-sm"><%=cursoAfeto.getNome()%> (<%=cursoAfeto.getCodigoCurso()%>)</div> |
1434 | jmachado | 70 | |
1406 | jmachado | 71 | <div class="list-group"> |
1407 | jmachado | 72 | <%--<div class="list-group-item list-group-item-heading clearfix"> |
1406 | jmachado | 73 | Unidade Curricular (Código da Unidade) <label class="label label-pill label-success" style="font-size: 1em">Questionários Preenchidos</label> de <label class="label label-pill label-info" style="font-size: 1em">Número de Solicitados</label> <label class="badge badge-info">Tipologia de Aula</label> |
1407 | jmachado | 74 | </div>--%> |
1406 | jmachado | 75 | <% |
76 | for(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada: tipologiasOrdenadas.get(questionario)) |
||
77 | { |
||
78 | if(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto() == cursoAfeto) |
||
79 | { |
||
80 | %> |
||
81 | |||
82 | |||
1407 | jmachado | 83 | |
84 | |||
85 | |||
86 | |||
1471 | jmachado | 87 | |
1407 | jmachado | 88 | <% |
89 | Query qRespondidos = AbstractDao.getCurrentSession().createQuery("" + |
||
90 | "select count(distinct r.id) from t in class " + QuestionarioPedagogicoTipologiaRequisitada.class.getName() + " " + |
||
91 | " join t.alunosRequisitados a " + |
||
92 | " join a.respostaRequisitada rR " + |
||
93 | " join rR.resposta r " + |
||
94 | " where t.id = :id group by t " |
||
95 | ); |
||
96 | qRespondidos.setLong("id",tipologiaRequisitada.getId()); |
||
97 | //List e = qRespondidos.list(); |
||
98 | Object respondidos = qRespondidos.uniqueResult(); |
||
99 | |||
1471 | jmachado | 100 | if(tipologiaRequisitada.getAlunosRequisitados().size() > 0) |
101 | { |
||
1407 | jmachado | 102 | %> |
1471 | jmachado | 103 | <div class="list-group-item clearfix" > |
1474 | jmachado | 104 | <div class="col-sm-8"> |
105 | <label class="bg-primary" style="padding: 2px"><%=tipologiaRequisitada.getUnidadeAfeta().getCodigoUnidade()%></label> |
||
106 | <label class="bg-info " style="padding: 2px"><%=tipologiaRequisitada.getUnidadeAfeta().getNome()%></label> |
||
107 | <label class="bg-primary " style="padding: 2px"><%=tipologiaRequisitada.getCdTurma()%></label> |
||
108 | <label class="badge badge-info"><%=tipologiaRequisitada.getDsTipologia()%></label> |
||
109 | </div> |
||
110 | <div class="col-sm-2"> |
||
111 | <% |
||
112 | int respostas = respondidos == null ? 0 : (int) ((Long) respondidos).longValue(); |
||
113 | int total = tipologiaRequisitada.getAlunosRequisitados().size(); |
||
114 | %> |
||
1434 | jmachado | 115 | |
1474 | jmachado | 116 | <% |
117 | int percentage = (int) (100.0 * ( ((float)respostas/((float)total)))); |
||
118 | String percentageColor = "danger"; |
||
119 | if(percentage < 20) |
||
120 | percentageColor = "danger"; |
||
121 | else if(percentage < 40) |
||
122 | percentageColor = "warning"; |
||
123 | else if(percentage < 60) |
||
124 | percentageColor = "info"; |
||
125 | else |
||
126 | percentageColor = "success"; |
||
127 | %> |
||
128 | <label class="label label-pill label-<%=percentageColor%>" style="font-size: 1em"><%=respondidos == null ? 0 : ((Long)respondidos)%></label> |
||
129 | / |
||
130 | <label class="label label-pill label-info" style="font-size: 1em"><%=tipologiaRequisitada.getAlunosRequisitados().size()%></label> |
||
131 | </div> |
||
132 | <div class="col-sm-2"> |
||
133 | <div class="progress" > |
||
134 | <div class="progress-bar progress-bar-<%=percentageColor%>" role="progressbar" aria-valuenow="<%=percentage%>" |
||
135 | aria-valuemin="0" aria-valuemax="100" style="width:<%=percentage%>%"> |
||
136 | <%=percentage%>% |
||
137 | </div> |
||
138 | </div> |
||
139 | </div> |
||
1471 | jmachado | 140 | </div> |
1406 | jmachado | 141 | <% |
1471 | jmachado | 142 | } |
1406 | jmachado | 143 | } |
144 | } |
||
145 | %> |
||
146 | </div> |
||
147 | <% |
||
148 | } |
||
149 | } |
||
150 | %> |
||
151 | </div> |
||
152 | </div> |
||
153 | </div> |
||
154 | </div> |
||
155 | |||
156 | <% |
||
157 | } |
||
158 | AbstractDao.getCurrentSession().getTransaction().commit(); |
||
159 | %> |