Subversion Repositories bacoAlunos

Rev

Rev 1355 | Rev 1479 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1320 jmachado 1
<%@ page import="jomm.dao.impl.AbstractDao" %>
2
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %>
3
<%@ page import="pt.estgp.estgweb.domain.CourseUnitGrade" %>
4
<%@ page import="pt.estgp.estgweb.domain.Student" %>
5
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
6
<%@ page import="pt.estgp.estgweb.domain.views.CourseUnitGradeView" %>
7
<%@ page import="pt.estgp.estgweb.web.utils.DatesUtils" %>
881 jmachado 8
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
9
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
1320 jmachado 10
<%@ page import="java.util.*" %>
881 jmachado 11
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
12
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
13
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
14
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
15
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
16
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
17
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
18
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
19
<jsp:useBean id="CourseUnitEvaluationForm" type="pt.estgp.estgweb.web.form.courseunits.CourseUnitEvaluationForm" scope="request"/>
20
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/>
21
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
1312 jmachado 22
<baco:initCourseUnitEvaluationClearances name="CourseUnitView"/>
23
 
881 jmachado 24
 
1133 jmachado 25
<script>
26
    //Manter a sessão activa para os docentes não perderem os dados
27
    ping();
28
</script>
29
 
881 jmachado 30
<%
31
    IServiceManager sm = ServiceManager.getInstance();
1320 jmachado 32
%>
881 jmachado 33
 
1320 jmachado 34
<%
35
    long lastUpdate = 0;
36
    Map<Student,CourseUnitGrade> approvedStudents = new HashMap<Student,CourseUnitGrade>();
37
    Map<String,List<CourseUnitGrade>> epocaGrades = new HashMap<String, List<CourseUnitGrade>>();
38
    Map<Student,CourseUnitGrade> finalGrades = new HashMap<Student, CourseUnitGrade>();
1097 jmachado 39
 
1320 jmachado 40
    AbstractDao.getCurrentSession().beginTransaction();
41
    CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(CourseUnitView.getId());
42
    for(CourseUnitGrade grade: cu.getCourseUnitGrades())
43
    {
44
        if(grade.getUpdateDate().getTime() > lastUpdate)
45
            lastUpdate = grade.getUpdateDate().getTime();
46
        CourseUnitGrade gradeA = approvedStudents.get(grade.getStudent());
47
        if(gradeA == null || gradeA.getGrade() < grade.getGrade())
48
        {
49
            if(grade.getGrade() >= 10)
50
                approvedStudents.put(grade.getStudent(),grade);
881 jmachado 51
 
1320 jmachado 52
        }
53
        CourseUnitGrade gradeF = finalGrades.get(grade.getStudent());
54
        if(gradeF == null || gradeF.getGrade() < grade.getGrade())
55
        {
56
            finalGrades.put(grade.getStudent(),grade);
57
        }
881 jmachado 58
 
1320 jmachado 59
        List<CourseUnitGrade> eg = epocaGrades.get(grade.getDescEpoca());
60
        if(eg == null)
61
        {
62
            eg = new ArrayList<CourseUnitGrade>();
63
            epocaGrades.put(grade.getDescEpoca(),eg);
64
        }
65
        eg.add(grade);
66
    }
881 jmachado 67
 
68
 
69
 
1320 jmachado 70
%>
1077 jmachado 71
 
72
 
1320 jmachado 73
<div class="modal fade" id="modalNotas" role="dialog" >
74
    <div class="modal-dialog" data-width="90%" style="display: block; width: 90%; margin-top: 50px;" aria-hidden="false">
75
        <!-- Modal content-->
76
        <div class="modal-content">
77
            <div class="modal-header">
78
                <h1 class="modal-title">
79
                    Notas da Unidade Curricular de <%=CourseUnitView.getName()%> / <%=CourseUnitView.getImportYear()%>
80
                    <button type="button" class="btn btn-danger btn-xs pull-right" data-dismiss="modal"><span class="glyphicon glyphicon-remove"> </span> </button>
81
                </h1>
82
            </div>
83
            <div class="modal-body">
84
                <div class="alert alert-info">
85
                    Esta informação foi sincronizada a partir do sistema central do IPP poderá não estar atualizada.
86
                    Última atualização a (<%=DatesUtils.getStringFromDate(new Date(lastUpdate))%>)
87
                </div>
1077 jmachado 88
 
1320 jmachado 89
                <%
90
                    int aprovadosNormal20 = 0;
91
                    int aprovadosRecurso36 = 0;
92
                    int aprovadosEspecial38 = 0;
93
                    int aprovados1013 = 0;
94
                    int aprovados1416 = 0;
95
                    int aprovados1720 = 0;
96
                %>
1312 jmachado 97
 
1320 jmachado 98
                <div class="panel panel-success">
99
                    <div class="panel-heading">
100
                        Pauta Final (Pauta construida com as melhores notas de todos os alunos)
101
                    </div>
102
                    <div class="panel-body">
103
 
104
                        <%
105
 
106
                            int reprovados = 0;
107
                            int semElementos = 0;
108
                            int aprovados = 0;
109
                            for(CourseUnitGrade grade: finalGrades.values())
110
                            {
111
 
112
 
113
                                if(grade.getGrade() >= 10)
114
                                {
115
                                    aprovados++;
116
                                    if(grade.getCodigoEpoca().equals("20"))
117
                                        aprovadosNormal20++;
118
                                    else if(grade.getCodigoEpoca().equals("36"))
119
                                        aprovadosRecurso36++;
120
                                    else if(grade.getCodigoEpoca().equals("38"))
121
                                        aprovadosEspecial38++;
122
 
123
                                    if(grade.getGrade() <= 13)
124
                                        aprovados1013++;
125
                                    else if(grade.getGrade() <= 16)
126
                                        aprovados1416++;
127
                                    else
128
                                        aprovados1720++;
129
 
130
                                }
131
                                else if(grade.getGrade() > 0)
132
                                {
133
                                    reprovados++;
134
                                }
135
                                else
136
                                    semElementos ++;
137
                            }
138
                            int aprovados1013Per = (int) (((float)aprovados1013)/((float)aprovados)*100.0);
139
                            int aprovados1416Per = (int) (((float)aprovados1416)/((float)aprovados)*100.0);
140
                            int aprovados1720Per = (int) (((float)aprovados1720)/((float)aprovados)*100.0);
141
                        %>
142
                        <div class="col-md-4">
143
                            <p><strong>Inscritos:</strong> <%=finalGrades.values().size()%> </p>
144
                            <p><strong>Aprovados:</strong> <%=aprovados%> </p>
145
                            <p><strong>Reprovados:</strong>  <%=reprovados%></p>
146
                            <p><strong>Sem Elementos de Avaliação:</strong>  <%=semElementos%></p>
147
                        </div>
148
                        <div class="col-md-4">
149
                            <p><strong>Aprovados em Época Normal:</strong> <%=aprovadosNormal20%> </p>
150
                            <p><strong>Aprovados em Época Recurso:</strong> <%=aprovadosRecurso36%> </p>
151
                            <p><strong>Aprovados em Época Especial:</strong> <%=aprovadosEspecial38%> </p>
152
                        </div>
153
                        <div class="col-md-4">
154
                            <p><strong>Aprovados entre 10 e 13:</strong> <%=aprovados1013%> (<%=aprovados1013Per%>%) </p>
155
                            <p><strong>Aprovados entre 14 e 16:</strong> <%=aprovados1416%> (<%=aprovados1416Per%>%)  </p>
156
                            <p><strong>Aprovados entre 17 e 20:</strong> <%=aprovados1720%> (<%=aprovados1720Per%>%) </p>
157
                        </div>
158
                        <table class="tablesorterfiltered" id="pautaFinal">
159
                            <thead>
160
                            <tr>
161
                                <th>
162
                                    <bean:message key="code"/>
163
                                </th>
164
                                <th>
165
                                    <bean:message key="student"/>
166
                                </th>
167
                                <th>
168
                                    <bean:message key="grade"/>
169
                                </th>
170
                                <th>
171
                                    <bean:message key="date"/>
172
                                </th>
173
                                <th>
174
                                    Epoca de Avaliação
175
                                </th>
176
                                <th>
177
                                    Status de Época
178
                                </th>
179
                            </tr>
180
                            </thead>
181
                            <tbody>
182
                            <%
183
                                for(CourseUnitGrade grade: finalGrades.values())
184
                                {
185
                                    request.setAttribute("grade",new CourseUnitGradeView(grade));
186
                            %>
187
                            <tr>
188
                                <td>
189
                                    ${grade.student.code}
190
                                </td>
191
                                <td>
192
                                    ${grade.student.name}
193
                                </td>
194
                                <td>
195
                                    <logic:greaterThan value="0" name="grade" property="grade">
196
                                        ${grade.grade}
197
                                    </logic:greaterThan>
198
                                    <logic:lessThan value="0" name="grade" property="grade">
199
                                        S/N
200
                                    </logic:lessThan>
201
                                </td>
202
                                <td>
203
                                    ${grade.formatedDate}
204
                                </td>
205
 
206
                                <td>
207
                                    ${grade.descEpoca}
208
                                </td>
209
                                <td>
210
                                    ${grade.descStatusEpoca}
211
                                </td>
212
                            </tr>
213
                            <%
214
                                }
215
                            %>
216
                            </tbody>
217
                        </table>
218
 
219
                    </div>
220
                </div>
221
 
222
 
223
 
224
                <%
225
                for(Map.Entry<String,List<CourseUnitGrade>> grades: epocaGrades.entrySet())
226
                {
227
                    int reprovadosEp = 0;
228
                    int semElementosEp = 0;
229
                    int aprovadosEp = 0;
230
                    for(CourseUnitGrade grade: grades.getValue())
231
                    {
232
                        if(grade.getGrade() >= 10)
233
                        {
234
                            aprovadosEp++;
235
                        }
236
                        else if(grade.getGrade() > 0)
237
                        {
238
                            reprovadosEp++;
239
                        }
240
                        else
241
                            semElementosEp ++;
242
                    }
243
                %>
244
                <div class="panel panel-default">
245
                    <div class="panel-heading">
246
                        <%=grades.getKey()%>
247
                    </div>
248
                    <div class="panel-body">
249
                        <p><strong>Aprovados nesta época:</strong> <%=aprovadosEp%> </p>
250
                        <p><strong>Reprovados nesta época:</strong>  <%=reprovadosEp%></p>
251
                        <p><strong>Sem Elementos de Avaliação nesta época:</strong>  <%=semElementosEp%></p>
252
                        <table class="tablesorterfiltered">
253
                            <thead>
254
                                <tr>
255
                                <th>
256
                                    <bean:message key="code"/>
257
                                </th>
258
                                <th>
259
                                    <bean:message key="student"/>
260
                                </th>
261
                                <th>
262
                                    <bean:message key="grade"/>
263
                                </th>
264
                                <th>
265
                                    <bean:message key="date"/>
266
                                </th>
267
                                <th>
268
                                    Epoca de Avaliação
269
                                </th>
270
                                <th>
271
                                    Status de Época
272
                                </th>
273
                            </tr>
274
                            </thead>
275
                            <tbody>
276
                            <%
277
                            for(CourseUnitGrade grade: grades.getValue())
278
                            {
279
                                request.setAttribute("grade",new CourseUnitGradeView(grade));
280
                            %>
281
                                <tr>
282
                                    <td>
283
                                            ${grade.student.code}
284
                                    </td>
285
                                    <td>
286
                                            ${grade.student.name}
287
                                    </td>
288
                                    <td>
289
                                        <logic:greaterThan value="0" name="grade" property="grade">
290
                                            ${grade.grade}
291
                                        </logic:greaterThan>
292
                                        <logic:lessThan value="0" name="grade" property="grade">
293
                                            S/N
294
                                        </logic:lessThan>
295
                                    </td>
296
                                    <td>
297
                                            ${grade.formatedDate}
298
                                    </td>
299
                                    <td>
300
                                            ${grade.descEpoca}
301
                                    </td>
302
                                    <td>
303
                                            ${grade.descStatusEpoca}
304
                                    </td>
305
                                </tr>
306
                            <%
307
                                }
308
                            %>
309
                            </tbody>
310
                        </table>
311
 
312
                    </div>
313
                </div>
314
                <%
315
                    }
316
                %>
317
 
318
            </div>
319
        </div>
320
    </div>
321
</div>
322
 
323
 
324
<%
325
    AbstractDao.getCurrentSession().getTransaction().commit();
881 jmachado 326
%>
327
 
1320 jmachado 328
 
329
 
330
 
331
 
332
 
333
 
334
 
335
 
336
 
337
 
1312 jmachado 338
<div class="panel panel-primary">
339
    <div class="panel-heading">
340
        <bean:message key="courseunit.evaluation"/> - <%=CourseUnitView.getName()%> / <%=CourseUnitView.getImportYear()%>
881 jmachado 341
 
1320 jmachado 342
 
1312 jmachado 343
        <%
344
            if( CourseUnitView.getEvaluationStreamId() !=null ){
345
        %>
346
        <span class="badge icon">
347
            <a href="javascript:invoqueDataVersionForm(${CourseUnitView.evaluationStreamId})"><span class="icon icon-history icon-large"></span></a>
348
        </span>
349
        <span class="badge icon">
350
            <a href="<%=request.getContextPath()%>/repositoryStream/<%=CourseUnitView.getEvaluationStreamId()%>">
351
                <span class="icon icon-file-pdf icon-large"/>
352
            </a>
353
        </span>
354
        <%
355
            }
356
        %>
987 jmachado 357
 
1312 jmachado 358
    </div>
359
    <div class="panel-body">
1320 jmachado 360
 
361
        <html:errors/>
362
        <jomm:messages/>
363
 
1312 jmachado 364
        <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_ACTIVE">
365
            <div class="alert alert-info">
366
                <bean:message key="courseunit.evaluation.period.inactive"/>
367
            </div>
368
        </baco:notClearOperation>
369
        <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_ACTIVE_SPECIAL_ADMIN">
370
            <div class="alert alert-warning">
371
                <bean:message key="courseunit.evaluation.period.admin.active"/>
372
            </div>
373
        </baco:clearOperation>
374
        <logic:equal value="true" name="CourseUnitEvaluationForm" property="courseUnitEvaluationView.fechar">
375
            <div class="alert alert-success"><bean:message key="courseunit.evaluation.dtp.info"/></div>
376
        </logic:equal>
887 jmachado 377
 
1312 jmachado 378
        <div class="row-centered">
379
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_STATE_EDIT">
380
                <div class="alert alert-info col-md-3 col-sm-3">
381
                    <bean:message key="courseunit.evaluation.state.edit"/>
382
                </div>
383
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
384
                <div class="alert alert-disabled col-md-3 col-sm-3">
385
                    <bean:message key="courseunit.evaluation.state.complete"/>
386
                </div>
387
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
388
                <div class="alert alert-disabled col-md-3 col-sm-3">
389
                    <bean:message key="courseunit.evaluation.state.closed"/>
390
                </div>
391
            </baco:clearOperation>
392
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_STATE_COMPLETE">
393
                <div class="alert alert-info col-md-3 col-sm-3">
394
                    <bean:message key="courseunit.evaluation.state.edit"/>
395
                </div>
396
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
397
                <div class="alert alert-info col-md-3 col-sm-3">
398
                    <bean:message key="courseunit.evaluation.state.complete"/>
399
                </div>
400
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
401
                <div class="alert alert-disabled col-md-3 col-sm-3">
402
                    <bean:message key="courseunit.evaluation.state.closed"/>
403
                </div>
404
            </baco:clearOperation>
405
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_STATE_CLOSED">
406
                <div class="alert alert-info col-md-3 col-sm-3">
407
                    <bean:message key="courseunit.evaluation.state.edit"/>
408
                </div>
409
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
410
                <div class="alert alert-info col-md-3 col-sm-3">
411
                    <bean:message key="courseunit.evaluation.state.complete"/>
412
                </div>
413
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
414
                <div class="alert alert-info col-md-3 col-sm-3">
415
                    <bean:message key="courseunit.evaluation.state.closed"/>
416
                </div>
417
            </baco:clearOperation>
418
        </div>
1033 jmachado 419
 
1312 jmachado 420
        <div class="row-centered">
421
            <div class="col-md-3 col-sm-3">
422
                <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_EDIT">
423
                    <html:form action="/user/courseUnitEvaluationController">
1355 jmachado 424
 
1312 jmachado 425
                        <input type="hidden" name="dispatch" value="openEvaluation">
426
                        <html:hidden property="courseUnitView.id"/>
427
                        <button type="submit" class="btn btn-default">
428
                            <bean:message key="courseunit.evaluation.transit.to.edition"/>
429
                        </button>
430
                    </html:form>
431
                </baco:clearOperation>
432
            </div>
433
            <div class="col-md-1 col-sm-1"></div>
434
            <div class="col-md-3 col-sm-3">
435
                <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_COMPLETE">
436
                    <button type="button" class="btn btn-default">
437
                        <bean:message key="courseunit.evaluation.transit.to.complete"/>
438
                    </button>
439
                </baco:clearOperation>
440
            </div>
441
            <div class="col-md-1 col-sm-1"></div>
442
            <div class="col-md-3 col-sm-3">
443
                <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_CLOSE">
1379 jmachado 444
                    <button type="button" class="btn btn-default" onclick="set(form,'publishEvaluation');submitFormWaitAutoSave(form);"><bean:message key="courseunit.evaluation.transit.to.closed"/></button>
1312 jmachado 445
                </baco:clearOperation>
446
            </div>
447
        </div>
987 jmachado 448
 
1312 jmachado 449
    </div>
450
    <div class="panel-body">
950 jmachado 451
 
987 jmachado 452
 
1033 jmachado 453
 
454
 
1312 jmachado 455
        <html:form styleId="formEval" styleClass="form-horizontal" action="/user/courseUnitEvaluationController">
456
            <input type="hidden" id="dispatch" name="dispatch" value="saveEvaluation">
457
            <html:hidden property="id"/>
458
            <html:hidden property="courseUnitView.id"/>
1033 jmachado 459
 
460
 
881 jmachado 461
 
1312 jmachado 462
            <div class="panel panel-default">
463
                <div class="panel-heading">
464
                    Dados alterados pelo Docente da Unidade
465
                </div>
466
                <div class="panel-body">
467
                    <div id="autosave"></div>
1032 jmachado 468
 
1320 jmachado 469
 
1355 jmachado 470
                    <h3>Dados para confirmar pelo Docente da Unidade
471
 
472
                    <button type="button" data-toggle="modal" data-target="#modalNotas" class="btn btn-info" href="">
473
                    Consultar Notas
474
                    <span class="icon icon-table2"> </span> </button>
475
 
476
 
477
                    </h3>
1320 jmachado 478
                    <table class="tablesorter-blue"   width="100%">
1033 jmachado 479
                        <tr>
1312 jmachado 480
                            <th rowspan="2">
481
                                Nº Alunos Inscritos
482
                            </th>
483
                            <th rowspan="2">
484
                                Nº de alunos sem elementos de avaliação
485
                            </th>
486
                            <th colspan="5">
487
                                Nº de alunos aprovados em
488
                            </th>
489
                            <th rowspan="2">
490
                                Aprovados com a classificação entre 10 e 13 valores (%)
491
                            </th>
492
                            <th rowspan="2">
493
                                Aprovados com a classificação entre 14 e 16 valores (%)
494
                            </th>
495
                            <th rowspan="2">
496
                                Aprovados com a classificação entre 17 e 20 valores (%)
497
                            </th>
498
                        </tr>
499
                        <tr>
500
                            <th>Avaliação de frequência</th>
501
                            <th>Exame Época Normal</th>
502
                            <th>Exame Época Recurso</th>
503
                            <th>Exame Época Especial</th>
504
                            <th>Total</th>
505
                        </tr>
506
                        <tr>
1320 jmachado 507
                            <td class="text-center">
508
                                <html:text styleClass="form-control" style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosInscritos"/>
1033 jmachado 509
                            </td>
1320 jmachado 510
                            <td class="text-center">
511
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosSemElementosAvaliacao"/>
1033 jmachado 512
                            </td>
1320 jmachado 513
                            <td class="text-center">
514
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovFrequencia"/>
1033 jmachado 515
                            </td>
1320 jmachado 516
                            <td class="text-center">
517
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovNormal"/>
1312 jmachado 518
                            </td>
1320 jmachado 519
                            <td class="text-center">
520
                                <html:text styleClass="form-control"  style="width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovRecurso"/>
1312 jmachado 521
                            </td>
1320 jmachado 522
                            <td style="text-align: center">
523
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovEspecial"/>
1312 jmachado 524
                            </td>
1320 jmachado 525
                            <td class="text-center">
526
                                <html:text styleClass="form-control" style="margin:auto; width: 50px"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovTotal"/>
1312 jmachado 527
                            </td>
1320 jmachado 528
                            <td class="text-center">
529
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1013"/>%
1312 jmachado 530
                            </td>
1320 jmachado 531
                            <td class="text-center">
532
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1416"/>%
1312 jmachado 533
                            </td>
1320 jmachado 534
                            <td class="text-center">
535
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1720"/>%
1312 jmachado 536
                            </td>
1033 jmachado 537
                        </tr>
1320 jmachado 538
                        <tr>
539
                            <th colspan="10">
540
                                Os dados abaixo são obtidos da sincronização de notas (servem apenas como consulta para confirmação pelo docente)
541
                            </th>
542
                        </tr>
543
                        <tr>
544
                            <td class="text-center">
545
                                <%=finalGrades.size()%>
546
                            </td>
547
                            <td class="text-center">
548
                                <%=semElementos%>
549
                            </td>
550
                            <td class="text-center">
551
                                ?
552
                            </td>
553
                            <td class="text-center">
554
                                <%=aprovadosNormal20%>
555
                            </td>
556
                            <td class="text-center">
557
                                <%=aprovadosRecurso36%>
558
                            </td>
559
                            <td class="text-center">
560
                                <%=aprovadosEspecial38%>
561
                            </td>
562
                            <td class="text-center">
563
                                <%=aprovados%>
564
                            </td>
565
                            <td class="text-center">
566
                                <%=aprovados1013Per%> %
567
                            </td>
568
                            <td class="text-center">
569
                                <%=aprovados1416Per%> %
570
                            </td>
571
                            <td class="text-center">
572
                                <%=aprovados1720Per%> %
573
                            </td>
574
                        </tr>
1033 jmachado 575
                    </table>
950 jmachado 576
 
1033 jmachado 577
 
1312 jmachado 578
                    <h3>Auto-avaliação</h3>
579
                    <table class="tablesorter-blue" width="100%">
580
                        <tr>
581
                            <th>Apreciação dos resultados quantitativos obtidos pelos estudantes</th>
582
                            <td width="80%">
583
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoQuantitivos"/>
584
                            </td>
585
                        </tr>
586
                        <tr>
587
                            <th>Apreciação do funcionamento da UC<br/>
588
                                (Condições de funcionamento da UC; problemas detetados; identificação de práticas pedagógicas de mérito ou deficientes; etc.)</th>
589
                            <td  width="80%">
590
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoUC"/>
591
                            </td>
592
                        </tr>
593
                        <tr>
594
                            <th>Apreciação do cumprimento do programa da UC<br/>
595
                                (Adequação das metodologias de ensino/aprendizagem utilizadas; competências efetivamente adquiridas e cumprimento dos conteúdos planificados)
596
                            </th>
597
                            <td  width="80%">
598
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma"/>
599
                            </td>
600
                        </tr>
601
                        <tr>
602
                            <th>
603
                                Conclusões<br/>
604
                                (Pontos fortes e fracos; sugestões de melhoria e respetivo plano de ação para a sua concretização)
605
                            </th>
606
                            <td  width="80%">
607
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualConclusoes"/>
608
                            </td>
609
                        </tr>
610
                    </table>
1215 jmachado 611
 
1312 jmachado 612
                    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE">
613
                        <button type="button" class="btn btn-default" onclick="set(form,'saveEvaluation');submitFormWaitAutoSave(form);"><bean:message key="save"/></button>
614
                    </baco:clearOperation>
1215 jmachado 615
 
1312 jmachado 616
                    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_COMPLETE">
617
                        <button type="button" class="btn btn-default" onclick="set(form,'teacherCompleteEvaluation');submitFormWaitAutoSave(form);"><bean:message key="deliverEvaluation"/></button>
618
                    </baco:clearOperation>
1215 jmachado 619
 
1312 jmachado 620
                    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_CLOSE">
621
                        <button type="button" class="btn btn-default" onclick="set(form,'publishEvaluation');submitFormWaitAutoSave(form);">VALIDAR e FECHAR pela Comissão de Curso</button>
622
                    </baco:clearOperation>
1215 jmachado 623
 
624
 
1312 jmachado 625
                </div>
1215 jmachado 626
            </div>
627
 
628
 
1312 jmachado 629
        </html:form>
630
 
631
 
1215 jmachado 632
    </div>
633
</div>
1312 jmachado 634
 
635
 
636
 
637
 
638
 
639
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE">
640
 
641
    <!-- Modal SAVE -->
642
    <!-- Modal -->
643
    <div class="modal fade" id="myModal" role="dialog" >
644
        <div class="modal-dialog" data-width="760" style="display: block; width: 760px; margin-top: 50px;" aria-hidden="false">
645
 
646
            <!-- Modal content-->
647
            <div class="modal-content">
648
                <div class="modal-header">
649
 
650
                    <h1 class="modal-title"><bean:message key="courseunit.evaluation.sending.report.title"/></h1>
651
                </div>
652
                <div class="modal-body">
653
                    <p>
654
                        <bean:message key="courseunit.evaluation.sending.report.text"/> <img src="<%=request.getContextPath()%>/imgs/wait.gif"/>
655
                    </p>
656
                </div>
657
                <div class="modal-footer">
658
 
659
                </div>
660
            </div>
661
 
662
        </div>
663
    </div>
664
 
887 jmachado 665
    <script>
1215 jmachado 666
        function submitFormWaitAutoSave()
667
        {
668
            stopAutoSave = true;
669
            $('#myModal').modal({
670
                show: 'true'
671
            });
672
            //esperar se houver algum update a executar 1500 segundos é o maximo de espera
673
            //se a pagina não recarregar e porque a thread parou
674
            setTimeout("submitForm()",40000);
675
        }
676
 
1312 jmachado 677
        function submitForm()
678
        {
679
            $("#formEdit").submit();
680
        }
1215 jmachado 681
 
889 jmachado 682
        $( document ).ready(function() {
1312 jmachado 683
 
684
            <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_ACTIVE">
1215 jmachado 685
                $("#formEdit :input").attr("disabled", true);
1312 jmachado 686
            </baco:notClearOperation>
687
 
688
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_STATE_CLOSED">
950 jmachado 689
                $("#formEdit :input").attr("disabled", true);
1312 jmachado 690
            </baco:clearOperation>
1153 jmachado 691
 
1312 jmachado 692
            <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_PERSIST_TEACHER_PART">
693
                <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_PERSIST_COMISSION_PART">
694
                    $("#formEdit :input").attr("disabled", true);
695
                </baco:notClearOperation>
696
            </baco:notClearOperation>
1153 jmachado 697
 
1312 jmachado 698
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE">
699
                setTimeout("serData()",5000);
700
            </baco:clearOperation>
1215 jmachado 701
 
889 jmachado 702
        });
1312 jmachado 703
 
1215 jmachado 704
        var stopAutoSave = false;
889 jmachado 705
 
1153 jmachado 706
        function serData()
707
        {
1215 jmachado 708
            if(stopAutoSave)
709
            {
710
                $("#formEval").submit();
711
                return;
712
            }
713
            else
714
            {
715
                $("#dispatch").val("saveEvaluation");
716
                var data = $("#formEval").serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n");
717
                //alert(data);
1208 jmachado 718
 
1215 jmachado 719
                //alert($("#dispatch").val())
1312 jmachado 720
                $("#autosave").html('<div class="alert alert-info">Enviando ...</div>');
1215 jmachado 721
                $.ajax({
722
                    url: "<%=request.getContextPath()%>/user/courseUnitEvaluationController.do",
723
                    type: "POST",
724
                    data: data + "&json=true",
725
                    dataType: "json",
726
                    success: function(resposta) {
727
                        if(resposta.service && resposta.service == "ok")
1312 jmachado 728
                            $("#autosave").html('<div class="alert alert-success">Salvo Automaticamente (Apenas Dados, não gerou PDF, para gerar PDF terá de salvar o docente)</div>');
1215 jmachado 729
                        else
1312 jmachado 730
                            $("#autosave").html('<div class="alert alert-warning">Deve salvar o seu relatório periodicamente</div>');
1215 jmachado 731
                        setTimeout("serData()",5000);
732
                    },
733
                    error: function() {
1312 jmachado 734
                        $("#autosave").html('<div class="alert alert-danger">Erro de comunicação, tentando novamente em 5 segundos</div>');
1215 jmachado 735
                        setTimeout("serData()",5000);
736
                    }
737
                });
738
            }
1153 jmachado 739
        }
740
 
887 jmachado 741
    </script>
1312 jmachado 742
</baco:clearOperation>
887 jmachado 743