Subversion Repositories bacoAlunos

Rev

Rev 1320 | Rev 1379 | 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">
444
                    <button type="button" class="btn btn-default">
445
                        <bean:message key="courseunit.evaluation.transit.to.closed"/>
446
                    </button>
447
                </baco:clearOperation>
448
            </div>
449
        </div>
987 jmachado 450
 
1312 jmachado 451
    </div>
452
    <div class="panel-body">
950 jmachado 453
 
987 jmachado 454
 
1033 jmachado 455
 
456
 
1312 jmachado 457
        <html:form styleId="formEval" styleClass="form-horizontal" action="/user/courseUnitEvaluationController">
458
            <input type="hidden" id="dispatch" name="dispatch" value="saveEvaluation">
459
            <html:hidden property="id"/>
460
            <html:hidden property="courseUnitView.id"/>
1033 jmachado 461
 
462
 
881 jmachado 463
 
1312 jmachado 464
            <div class="panel panel-default">
465
                <div class="panel-heading">
466
                    Dados alterados pelo Docente da Unidade
467
                </div>
468
                <div class="panel-body">
469
                    <div id="autosave"></div>
1032 jmachado 470
 
1320 jmachado 471
 
1355 jmachado 472
                    <h3>Dados para confirmar pelo Docente da Unidade
473
 
474
                    <button type="button" data-toggle="modal" data-target="#modalNotas" class="btn btn-info" href="">
475
                    Consultar Notas
476
                    <span class="icon icon-table2"> </span> </button>
477
 
478
 
479
                    </h3>
1320 jmachado 480
                    <table class="tablesorter-blue"   width="100%">
1033 jmachado 481
                        <tr>
1312 jmachado 482
                            <th rowspan="2">
483
                                Nº Alunos Inscritos
484
                            </th>
485
                            <th rowspan="2">
486
                                Nº de alunos sem elementos de avaliação
487
                            </th>
488
                            <th colspan="5">
489
                                Nº de alunos aprovados em
490
                            </th>
491
                            <th rowspan="2">
492
                                Aprovados com a classificação entre 10 e 13 valores (%)
493
                            </th>
494
                            <th rowspan="2">
495
                                Aprovados com a classificação entre 14 e 16 valores (%)
496
                            </th>
497
                            <th rowspan="2">
498
                                Aprovados com a classificação entre 17 e 20 valores (%)
499
                            </th>
500
                        </tr>
501
                        <tr>
502
                            <th>Avaliação de frequência</th>
503
                            <th>Exame Época Normal</th>
504
                            <th>Exame Época Recurso</th>
505
                            <th>Exame Época Especial</th>
506
                            <th>Total</th>
507
                        </tr>
508
                        <tr>
1320 jmachado 509
                            <td class="text-center">
510
                                <html:text styleClass="form-control" style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosInscritos"/>
1033 jmachado 511
                            </td>
1320 jmachado 512
                            <td class="text-center">
513
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosSemElementosAvaliacao"/>
1033 jmachado 514
                            </td>
1320 jmachado 515
                            <td class="text-center">
516
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovFrequencia"/>
1033 jmachado 517
                            </td>
1320 jmachado 518
                            <td class="text-center">
519
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovNormal"/>
1312 jmachado 520
                            </td>
1320 jmachado 521
                            <td class="text-center">
522
                                <html:text styleClass="form-control"  style="width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovRecurso"/>
1312 jmachado 523
                            </td>
1320 jmachado 524
                            <td style="text-align: center">
525
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovEspecial"/>
1312 jmachado 526
                            </td>
1320 jmachado 527
                            <td class="text-center">
528
                                <html:text styleClass="form-control" style="margin:auto; width: 50px"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovTotal"/>
1312 jmachado 529
                            </td>
1320 jmachado 530
                            <td class="text-center">
531
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1013"/>%
1312 jmachado 532
                            </td>
1320 jmachado 533
                            <td class="text-center">
534
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1416"/>%
1312 jmachado 535
                            </td>
1320 jmachado 536
                            <td class="text-center">
537
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1720"/>%
1312 jmachado 538
                            </td>
1033 jmachado 539
                        </tr>
1320 jmachado 540
                        <tr>
541
                            <th colspan="10">
542
                                Os dados abaixo são obtidos da sincronização de notas (servem apenas como consulta para confirmação pelo docente)
543
                            </th>
544
                        </tr>
545
                        <tr>
546
                            <td class="text-center">
547
                                <%=finalGrades.size()%>
548
                            </td>
549
                            <td class="text-center">
550
                                <%=semElementos%>
551
                            </td>
552
                            <td class="text-center">
553
                                ?
554
                            </td>
555
                            <td class="text-center">
556
                                <%=aprovadosNormal20%>
557
                            </td>
558
                            <td class="text-center">
559
                                <%=aprovadosRecurso36%>
560
                            </td>
561
                            <td class="text-center">
562
                                <%=aprovadosEspecial38%>
563
                            </td>
564
                            <td class="text-center">
565
                                <%=aprovados%>
566
                            </td>
567
                            <td class="text-center">
568
                                <%=aprovados1013Per%> %
569
                            </td>
570
                            <td class="text-center">
571
                                <%=aprovados1416Per%> %
572
                            </td>
573
                            <td class="text-center">
574
                                <%=aprovados1720Per%> %
575
                            </td>
576
                        </tr>
1033 jmachado 577
                    </table>
950 jmachado 578
 
1033 jmachado 579
 
1312 jmachado 580
                    <h3>Auto-avaliação</h3>
581
                    <table class="tablesorter-blue" width="100%">
582
                        <tr>
583
                            <th>Apreciação dos resultados quantitativos obtidos pelos estudantes</th>
584
                            <td width="80%">
585
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoQuantitivos"/>
586
                            </td>
587
                        </tr>
588
                        <tr>
589
                            <th>Apreciação do funcionamento da UC<br/>
590
                                (Condições de funcionamento da UC; problemas detetados; identificação de práticas pedagógicas de mérito ou deficientes; etc.)</th>
591
                            <td  width="80%">
592
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoUC"/>
593
                            </td>
594
                        </tr>
595
                        <tr>
596
                            <th>Apreciação do cumprimento do programa da UC<br/>
597
                                (Adequação das metodologias de ensino/aprendizagem utilizadas; competências efetivamente adquiridas e cumprimento dos conteúdos planificados)
598
                            </th>
599
                            <td  width="80%">
600
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma"/>
601
                            </td>
602
                        </tr>
603
                        <tr>
604
                            <th>
605
                                Conclusões<br/>
606
                                (Pontos fortes e fracos; sugestões de melhoria e respetivo plano de ação para a sua concretização)
607
                            </th>
608
                            <td  width="80%">
609
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualConclusoes"/>
610
                            </td>
611
                        </tr>
612
                    </table>
1215 jmachado 613
 
1312 jmachado 614
                    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE">
615
                        <button type="button" class="btn btn-default" onclick="set(form,'saveEvaluation');submitFormWaitAutoSave(form);"><bean:message key="save"/></button>
616
                    </baco:clearOperation>
1215 jmachado 617
 
1312 jmachado 618
                    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_COMPLETE">
619
                        <button type="button" class="btn btn-default" onclick="set(form,'teacherCompleteEvaluation');submitFormWaitAutoSave(form);"><bean:message key="deliverEvaluation"/></button>
620
                    </baco:clearOperation>
1215 jmachado 621
 
1312 jmachado 622
                    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_CLOSE">
623
                        <button type="button" class="btn btn-default" onclick="set(form,'publishEvaluation');submitFormWaitAutoSave(form);">VALIDAR e FECHAR pela Comissão de Curso</button>
624
                    </baco:clearOperation>
1215 jmachado 625
 
626
 
1312 jmachado 627
                </div>
1215 jmachado 628
            </div>
629
 
630
 
1312 jmachado 631
        </html:form>
632
 
633
 
1215 jmachado 634
    </div>
635
</div>
1312 jmachado 636
 
637
 
638
 
639
 
640
 
641
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE">
642
 
643
    <!-- Modal SAVE -->
644
    <!-- Modal -->
645
    <div class="modal fade" id="myModal" role="dialog" >
646
        <div class="modal-dialog" data-width="760" style="display: block; width: 760px; margin-top: 50px;" aria-hidden="false">
647
 
648
            <!-- Modal content-->
649
            <div class="modal-content">
650
                <div class="modal-header">
651
 
652
                    <h1 class="modal-title"><bean:message key="courseunit.evaluation.sending.report.title"/></h1>
653
                </div>
654
                <div class="modal-body">
655
                    <p>
656
                        <bean:message key="courseunit.evaluation.sending.report.text"/> <img src="<%=request.getContextPath()%>/imgs/wait.gif"/>
657
                    </p>
658
                </div>
659
                <div class="modal-footer">
660
 
661
                </div>
662
            </div>
663
 
664
        </div>
665
    </div>
666
 
887 jmachado 667
    <script>
1215 jmachado 668
        function submitFormWaitAutoSave()
669
        {
670
            stopAutoSave = true;
671
            $('#myModal').modal({
672
                show: 'true'
673
            });
674
            //esperar se houver algum update a executar 1500 segundos é o maximo de espera
675
            //se a pagina não recarregar e porque a thread parou
676
            setTimeout("submitForm()",40000);
677
        }
678
 
1312 jmachado 679
        function submitForm()
680
        {
681
            $("#formEdit").submit();
682
        }
1215 jmachado 683
 
889 jmachado 684
        $( document ).ready(function() {
1312 jmachado 685
 
686
            <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_ACTIVE">
1215 jmachado 687
                $("#formEdit :input").attr("disabled", true);
1312 jmachado 688
            </baco:notClearOperation>
689
 
690
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_STATE_CLOSED">
950 jmachado 691
                $("#formEdit :input").attr("disabled", true);
1312 jmachado 692
            </baco:clearOperation>
1153 jmachado 693
 
1312 jmachado 694
            <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_PERSIST_TEACHER_PART">
695
                <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_PERSIST_COMISSION_PART">
696
                    $("#formEdit :input").attr("disabled", true);
697
                </baco:notClearOperation>
698
            </baco:notClearOperation>
1153 jmachado 699
 
1312 jmachado 700
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE">
701
                setTimeout("serData()",5000);
702
            </baco:clearOperation>
1215 jmachado 703
 
889 jmachado 704
        });
1312 jmachado 705
 
1215 jmachado 706
        var stopAutoSave = false;
889 jmachado 707
 
1153 jmachado 708
        function serData()
709
        {
1215 jmachado 710
            if(stopAutoSave)
711
            {
712
                $("#formEval").submit();
713
                return;
714
            }
715
            else
716
            {
717
                $("#dispatch").val("saveEvaluation");
718
                var data = $("#formEval").serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n");
719
                //alert(data);
1208 jmachado 720
 
1215 jmachado 721
                //alert($("#dispatch").val())
1312 jmachado 722
                $("#autosave").html('<div class="alert alert-info">Enviando ...</div>');
1215 jmachado 723
                $.ajax({
724
                    url: "<%=request.getContextPath()%>/user/courseUnitEvaluationController.do",
725
                    type: "POST",
726
                    data: data + "&json=true",
727
                    dataType: "json",
728
                    success: function(resposta) {
729
                        if(resposta.service && resposta.service == "ok")
1312 jmachado 730
                            $("#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 731
                        else
1312 jmachado 732
                            $("#autosave").html('<div class="alert alert-warning">Deve salvar o seu relatório periodicamente</div>');
1215 jmachado 733
                        setTimeout("serData()",5000);
734
                    },
735
                    error: function() {
1312 jmachado 736
                        $("#autosave").html('<div class="alert alert-danger">Erro de comunicação, tentando novamente em 5 segundos</div>');
1215 jmachado 737
                        setTimeout("serData()",5000);
738
                    }
739
                });
740
            }
1153 jmachado 741
        }
742
 
887 jmachado 743
    </script>
1312 jmachado 744
</baco:clearOperation>
887 jmachado 745