Rev 1475 | 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" %> |
||
1475 | jmachado | 3 | <%@ page import="pt.estgp.estgweb.domain.Questionario" %> |
4 | <%@ page import="pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto" %> |
||
5 | <%@ page import="pt.estgp.estgweb.domain.QuestionarioPedagogicoTipologiaRequisitada" %> |
||
6 | <%@ page import="pt.ipportalegre.siges.web.services.Aluno" %> |
||
1406 | jmachado | 7 | <%@ page import="java.util.ArrayList" %> |
8 | <%@ page import="java.util.HashMap" %> |
||
9 | <%@ page import="java.util.List" %> |
||
10 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
||
11 | <jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
||
12 | <% |
||
13 | AbstractDao.getCurrentSession().beginTransaction(); |
||
14 | |||
15 | Query q = AbstractDao.getCurrentSession().createQuery( |
||
16 | "select t from t in class " + QuestionarioPedagogicoTipologiaRequisitada.class.getName() + |
||
1471 | jmachado | 17 | " JOIN t.unidadeAfeta ua " + |
18 | " where ua.usar = true and t.docenteAfeto.id = " + UserSession.getUser().getId() + " and " + |
||
1406 | jmachado | 19 | " (t.unidadeAfeta.cursoAfeto.questionario.state = :s1 OR t.unidadeAfeta.cursoAfeto.questionario.state = :s2)" |
20 | ); |
||
21 | q.setString("s1","PROCESSING_WITH_ANSWERS"); |
||
22 | q.setString("s2","PROCESSING"); |
||
23 | List<QuestionarioPedagogicoTipologiaRequisitada> tipologiaRequisitadas = q.list(); |
||
24 | |||
25 | if(tipologiaRequisitadas.size() == 0) |
||
26 | { |
||
27 | %> |
||
28 | |||
1408 | jmachado | 29 | <div class="col-md-12 col-sm-12 col-xs-12"> |
1406 | jmachado | 30 | <div class="alert alert-success">Olá ${UserSession.shortName} não existem quaisquer questionários ativos nos quais esteja a ser avaliado.</div> |
31 | <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> |
||
32 | </div> |
||
33 | |||
34 | <% |
||
35 | } |
||
36 | else if(tipologiaRequisitadas.size() > 0) |
||
37 | { |
||
38 | %> |
||
39 | |||
1408 | jmachado | 40 | <div class="col-md-12 col-sm-12 col-xs-12"> |
1406 | jmachado | 41 | <div class="panel panel-info"> |
42 | <div class="panel-heading">Olá ${UserSession.shortName}. Existem questinários onde está a ser avaliado <span class="glyphicon glyphicon-alert"/></div> |
||
43 | <div class="panel-body"> |
||
44 | <div class="list-group"> |
||
45 | <% |
||
46 | HashMap<Questionario,List<QuestionarioPedagogicoTipologiaRequisitada>> tipologiasOrdenadas = new HashMap<Questionario, List<QuestionarioPedagogicoTipologiaRequisitada>>(); |
||
47 | for(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada: tipologiaRequisitadas) |
||
48 | { |
||
49 | List<QuestionarioPedagogicoTipologiaRequisitada> tipologias = tipologiasOrdenadas.get(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto().getQuestionario()); |
||
50 | if(tipologias == null) |
||
51 | { |
||
52 | tipologias = new ArrayList<QuestionarioPedagogicoTipologiaRequisitada>(); |
||
53 | tipologiasOrdenadas.put(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto().getQuestionario(),tipologias); |
||
54 | } |
||
55 | tipologias.add(tipologiaRequisitada); |
||
56 | } |
||
57 | for(Questionario questionario: tipologiasOrdenadas.keySet()) |
||
58 | { |
||
59 | %> |
||
1434 | jmachado | 60 | <h2 class="well">Questionário: <%=questionario.getDescription()%></h2> |
1406 | jmachado | 61 | <% |
62 | HashMap<QuestionarioPedagogicoCursoAfeto,Boolean> cursosAfetoHashMap = new HashMap<QuestionarioPedagogicoCursoAfeto, Boolean>(); |
||
63 | for(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada: tipologiasOrdenadas.get(questionario)) |
||
64 | { |
||
65 | cursosAfetoHashMap.put(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto(),true); |
||
66 | } |
||
67 | |||
68 | for(QuestionarioPedagogicoCursoAfeto cursoAfeto: cursosAfetoHashMap.keySet()) |
||
69 | { |
||
70 | %> |
||
1434 | jmachado | 71 | |
1474 | jmachado | 72 | <div class="well well-sm"><%=cursoAfeto.getNome()%> (<%=cursoAfeto.getCodigoCurso()%>)</div> |
1434 | jmachado | 73 | |
1406 | jmachado | 74 | <div class="list-group"> |
1407 | jmachado | 75 | <%--<div class="list-group-item list-group-item-heading clearfix"> |
1406 | jmachado | 76 | 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 | 77 | </div>--%> |
1406 | jmachado | 78 | <% |
79 | for(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada: tipologiasOrdenadas.get(questionario)) |
||
80 | { |
||
81 | if(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto() == cursoAfeto) |
||
82 | { |
||
83 | %> |
||
84 | |||
85 | |||
1407 | jmachado | 86 | |
87 | |||
88 | |||
89 | |||
1471 | jmachado | 90 | |
1407 | jmachado | 91 | <% |
92 | Query qRespondidos = AbstractDao.getCurrentSession().createQuery("" + |
||
93 | "select count(distinct r.id) from t in class " + QuestionarioPedagogicoTipologiaRequisitada.class.getName() + " " + |
||
94 | " join t.alunosRequisitados a " + |
||
95 | " join a.respostaRequisitada rR " + |
||
96 | " join rR.resposta r " + |
||
97 | " where t.id = :id group by t " |
||
98 | ); |
||
99 | qRespondidos.setLong("id",tipologiaRequisitada.getId()); |
||
100 | //List e = qRespondidos.list(); |
||
101 | Object respondidos = qRespondidos.uniqueResult(); |
||
102 | |||
1471 | jmachado | 103 | if(tipologiaRequisitada.getAlunosRequisitados().size() > 0) |
104 | { |
||
1475 | jmachado | 105 | |
1407 | jmachado | 106 | %> |
1471 | jmachado | 107 | <div class="list-group-item clearfix" > |
1477 | jmachado | 108 | <div class="col-sm-7"> |
1474 | jmachado | 109 | <label class="bg-primary" style="padding: 2px"><%=tipologiaRequisitada.getUnidadeAfeta().getCodigoUnidade()%></label> |
110 | <label class="bg-info " style="padding: 2px"><%=tipologiaRequisitada.getUnidadeAfeta().getNome()%></label> |
||
111 | <label class="bg-primary " style="padding: 2px"><%=tipologiaRequisitada.getCdTurma()%></label> |
||
112 | <label class="badge badge-info"><%=tipologiaRequisitada.getDsTipologia()%></label> |
||
113 | </div> |
||
1477 | jmachado | 114 | <div class="col-sm-3"> |
1474 | jmachado | 115 | <% |
116 | int respostas = respondidos == null ? 0 : (int) ((Long) respondidos).longValue(); |
||
117 | int total = tipologiaRequisitada.getAlunosRequisitados().size(); |
||
118 | %> |
||
1434 | jmachado | 119 | |
1474 | jmachado | 120 | <% |
121 | int percentage = (int) (100.0 * ( ((float)respostas/((float)total)))); |
||
122 | String percentageColor = "danger"; |
||
123 | if(percentage < 20) |
||
124 | percentageColor = "danger"; |
||
125 | else if(percentage < 40) |
||
126 | percentageColor = "warning"; |
||
127 | else if(percentage < 60) |
||
128 | percentageColor = "info"; |
||
129 | else |
||
130 | percentageColor = "success"; |
||
131 | %> |
||
132 | <label class="label label-pill label-<%=percentageColor%>" style="font-size: 1em"><%=respondidos == null ? 0 : ((Long)respondidos)%></label> |
||
1477 | jmachado | 133 | <span class="icon icon-user"> </span> / |
134 | <label class="label label-pill label-primary" style="font-size: 1em"><%=tipologiaRequisitada.getAlunosRequisitados().size()%></label> <span class="icon icon-users"> </span> |
||
1475 | jmachado | 135 | <% |
136 | if(UserSession.getUser().isSuperuser() && request.getParameter("super")!=null) |
||
137 | { |
||
138 | %> |
||
139 | <a href="#" class="btn btn-default" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/unidadeAlunosNaoRespondidos.jsp?id=<%=tipologiaRequisitada.getId()%>" data-title="Alunos sem resposta (<%=tipologiaRequisitada.getUnidadeAfeta().getNome()%>) <%=cursoAfeto.getNome()%> da <%=cursoAfeto.getNomeInstituicao()%> )" data-toggle="modal" data-target="#modalAjaxRequest"> |
||
140 | S/R |
||
141 | </a> |
||
142 | <% |
||
143 | } |
||
144 | %> |
||
1474 | jmachado | 145 | </div> |
146 | <div class="col-sm-2"> |
||
147 | <div class="progress" > |
||
148 | <div class="progress-bar progress-bar-<%=percentageColor%>" role="progressbar" aria-valuenow="<%=percentage%>" |
||
149 | aria-valuemin="0" aria-valuemax="100" style="width:<%=percentage%>%"> |
||
150 | <%=percentage%>% |
||
1477 | jmachado | 151 | <span class="icon icon-users"> </span> |
1474 | jmachado | 152 | </div> |
153 | </div> |
||
154 | </div> |
||
1471 | jmachado | 155 | </div> |
1406 | jmachado | 156 | <% |
1471 | jmachado | 157 | } |
1406 | jmachado | 158 | } |
159 | } |
||
160 | %> |
||
161 | </div> |
||
162 | <% |
||
163 | } |
||
164 | } |
||
165 | %> |
||
166 | </div> |
||
167 | </div> |
||
168 | </div> |
||
169 | </div> |
||
170 | |||
171 | <% |
||
172 | } |
||
173 | AbstractDao.getCurrentSession().getTransaction().commit(); |
||
174 | %> |