Subversion Repositories bacoAlunos

Rev

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
%>