Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1032 → Rev 1033

/impl/conf/app.properties
65,6 → 65,8
email.summary.subject.en=Sumário lançado em {0}
 
 
email.relatorio.aval.unidade.editado.subject.pt=Relatório Avaliação Editado {0}
email.relatorio.aval.unidade.editado.subject.en=Unit Report Evaluation Edited {0}
email.unidade.edicao.subject.pt=Ficha em edição {0}
email.unidade.edicao.subject.en=Unit in edition {0}
email.unidade.editada.subject.pt=Ficha editada {0}
/impl/conf/template/email/unidadeRelatorioAvaliacaoEditado_en.txt
New file
0,0 → 1,13
#Email unidade ficha em edicao
Caro membro da comissão de curso de {0}
 
O BACO informa-o de que o relatorio de avaliação da unidade curricular de {1}
foi alterado
 
Estado {2}
 
Com os melhores cumprimentos
---------------------------------------------
Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Portalegre
http://www.estgp.pt
Property changes:
Added: svn:executable
+ *
/impl/conf/template/email/unidadeRelatorioAvaliacaoEditado_pt.txt
New file
0,0 → 1,13
#Email unidade ficha em edicao
Caro membro da comissão de curso de {0}
 
O BACO informa-o de que o relatorio de avaliação da unidade curricular de {1}
foi editado
 
Estado {2}
 
Cumprimentos
---------------------------------------------
Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Portalegre
http://www.estgp.pt
/impl/src/java/pt/estgp/estgweb/Globals.java
353,6 → 353,10
public static final String EMAIL_UNDADE_EDITADA_TEMPLATE_PT = "unidadeEditada_pt.txt";
public static final String EMAIL_UNDADE_EDITADA_TEMPLATE_EN = "unidadeEditada_en.txt";
 
public static final String EMAIL_RELATORIO_AVALIACAO_UNDADE_EDITADA_TEMPLATE_PT = "unidadeRelatorioAvaliacaoEditado_pt.txt";
public static final String EMAIL_RELATORIO_AVALIACAO_UNDADE_EDITADA_TEMPLATE_EN = "unidadeRelatorioAvaliacaoEditado_en.txt";
 
 
public static final String EMAIL_UNDADE_VALIDADA_TEMPLATE_PT = "unidadeValidada_pt.txt";
public static final String EMAIL_UNDADE_VALIDADA_TEMPLATE_EN = "unidadeValidada_en.txt";
 
360,9 → 364,13
public static final String EMAIL_UNDADE_EDICAO_SUBJECT_PT = "email.unidade.edicao.subject.pt";
public static final String EMAIL_UNDADE_EDICAO_SUBJECT_EN = "email.unidade.edicao.subject.en";
 
public static final String EMAIL_RELATORIO_AVALIACAO_UNDADE_EDITADA_SUBJECT_PT = "email.relatorio.aval.unidade.editado.subject.pt";
public static final String EMAIL_RELATORIO_AVALIACAO_UNDADE_EDITADA_SUBJECT_EN = "email.relatorio.aval.unidade.editado.subject.en";
 
public static final String EMAIL_UNDADE_EDITADA_SUBJECT_PT = "email.unidade.editada.subject.pt";
public static final String EMAIL_UNDADE_EDITADA_SUBJECT_EN = "email.unidade.editada.subject.en";
 
 
public static final String EMAIL_UNDADE_VALIDADA_SUBJECT_PT = "email.unidade.validade.subject.pt";
public static final String EMAIL_UNDADE_VALIDADA_SUBJECT_EN = "email.unidade.validada.subject.en";
 
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java
59,9 → 59,7
if(evaluation == null)
{
evaluation = new CourseUnitEvaluationImpl();
System.out.println(">>>>>>>>>>>>");
DaoFactory.getCourseUnitEvaluationDaoImpl().save(evaluation);
System.out.println("<<<<<<<<<<<<<");
c.setCourseUnitEvaluation(evaluation);
cupv.setCourseUnitEvaluation(evaluation);
}
86,25 → 84,31
cupv.setCourseUnitEvaluation(evaluation);
}
List<String> errors = new ArrayList<String>();
String estado = "POR ENTREGAR";
if(cupv.isFechar())
{
evaluation.setClosed(true);
evaluation.setTeacherComplete(true);
estado = "Aceite pela Comissao de Curso";
}
else if(cupv.isTeacherComplete())
{
estado = "Entregue a Comissao de Curso pelo docente";
evaluation.setTeacherComplete(true);
}
else
{
estado = "Alterado pelo docente";
evaluation.setClosed(false);
//TODO novo
evaluation.setTeacherComplete(false);
}
 
 
 
createPdf(evaluation,c,usession,errors);
if(usession.getUser() instanceof Teacher)
DirectedCoordinatedUnitsService.sendNotificationsEditedInterestedPeople(c,usession);
if(usession != null && usession.getUser() != null && usession.getUser() instanceof Teacher)
DirectedCoordinatedUnitsService.sendNotificationsCourseUnitEvaluationEditedInterestedPeople(c, estado, usession);
else
{
logger.info("Nao vai informar docentes");
131,6 → 135,9
evaluation.setTeacherComplete(false);
}
CourseUnitEvaluationView cupv = new CourseUnitEvaluationView(evaluation);
if(usession != null && usession.getUser() != null && usession.getUser() instanceof Teacher)
DirectedCoordinatedUnitsService.sendNotificationsCourseUnitEvaluationEditedInterestedPeople(c, "Aberto pela Comissao de Curso", usession);
 
return cupv;
}
 
/impl/src/java/pt/estgp/estgweb/services/courseunits/DirectedCoordinatedUnitsService.java
323,6 → 323,19
}
}
 
public static void sendNotificationsCourseUnitEvaluationEditedInterestedPeople(CourseUnit courseUnit,String estado,UserSession u)
{
try{
SendEmailService sendEmailService = new SendEmailService();
List<String> emails = getEmailJobNotifications(courseUnit);
EMAILJob emailJob = new EMAILJob(sendEmailService.getRelatorioAvaliacaoUnidadeEditadaEmail(emails,courseUnit,LangEnum.PORTUGUESE,estado));
JobScheduleService.getInstance().scheduleNow(emailJob,"New Notification EMAIL unit state changed to courseComission and teachers " ,u);
}catch(Throwable t)
{
logger.error(t,t);
}
}
 
public static List<String> getEmailJobNotifications(CourseUnit courseUnit) {
 
List<String> emails = new ArrayList<String>();
/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java
580,6 → 580,36
return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
}
 
public Email getRelatorioAvaliacaoUnidadeEditadaEmail(List<String> emails, CourseUnit c, LangEnum langEnum,String estado)
{
List<String> arguments = new ArrayList<String>();
 
 
String subject;
String template;
 
if(langEnum == LangEnum.PORTUGUESE)
{
template = Globals.EMAIL_RELATORIO_AVALIACAO_UNDADE_EDITADA_TEMPLATE_PT;
subject = Globals.EMAIL_RELATORIO_AVALIACAO_UNDADE_EDITADA_SUBJECT_PT;
}
else
{
template = Globals.EMAIL_RELATORIO_AVALIACAO_UNDADE_EDITADA_TEMPLATE_EN;
subject = Globals.EMAIL_RELATORIO_AVALIACAO_UNDADE_EDITADA_SUBJECT_EN;
}
subject = MessageFormat.format(ConfigProperties.getProperty(subject),new String[]{c.getName()});
 
arguments.add(c.getCourseName());
arguments.add(c.getName());
arguments.add(estado);
 
List<String> recipients = new ArrayList<String>();
for(String email:emails)
recipients.add(email);
return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
}
 
public boolean sendNewGrades(List<String[]> grades, LangEnum langEnum, String studentEmail, String studentName)
{
try
/impl/src/web/imgs/process/leftProcessGray.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/impl/src/web/imgs/process/rightProcessGray.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/impl/src/web/css/style.css
1958,6 → 1958,16
 
}
 
td.processActivityNameGray
{
border-left:0;
border-right: 0;
border-bottom: 1px solid #77B61E;
border-top: 1px solid #77B61E;
background-color: #c8c8c8;
 
}
 
.processesTable .OPEN
{
background-color: green;
/impl/src/web/user/courseunits/courseunitEvaluation.jsp
104,63 → 104,157
UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole()))
{
 
 
%>
 
<%
 
if(closed)
{
%>
<p class="success">Este formulário foi ACEITE pela <bean:message key="user.role.${CourseUnitView.courseView.validationRole}"/></p>
<%
%>
<table>
<tr>
<td>
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcess.gif"/></td>
<td class="processActivityName" style="width: 100%">Criado</td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcess.gif"/></td>
</tr>
</table>
</td>
<td>
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcess.gif"/></td>
<td class="processActivityName" style="width: 100%">Entregue</td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcess.gif"/></td>
</tr>
</table>
</td>
<td>
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcess.gif"/></td>
<td class="processActivityName" style="width: 100%">Aceite</td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcess.gif"/></td>
</tr>
</table>
</td>
</tr>
</table>
<p class="success">Este formulário foi <label style="background-color: green">ACEITE</label> pela <bean:message key="user.role.${CourseUnitView.courseView.validationRole}"/></p>
<%
if(editCoordinatorPart)
{
%>
%>
<html:form action="/user/courseUnitEvaluationController">
<input type="hidden" name="dispatch" value="openEvaluation">
<html:hidden property="courseUnitView.id"/>
 
<p>Caro <%=UserSession.getName()%>, membro da <bean:message key="user.role.${CourseUnitView.courseView.validationRole}"/>,
está autorizado a reabrir o relatório de avaliação para o corpo docente da unidade de ${CourseUnitView.name}.</p>
está autorizado a reabrir o relatório de avaliação para o corpo docente da unidade de ${CourseUnitView.name} poder editar.</p>
<input type="submit" value="Reabrir para edição (Comissão de Curso)"/> (Esta operação está disponível apenas a membros da Comissão de Curso)
</html:form>
 
<%
<%
}
%>
 
 
<%
}
else if(!teacherComplete)
else if(!closed && teacherComplete)
{
%>
<h2>Formulário em fase de edição</h2>
<%
}
else
{
%>
<h2>Relatório em estado ENTREGUE à coordenação, aguarde que a coordenação aceite o relatório ou o abra novamente</h2>
<h2>Relatório em estado <label style="background-color: yellow">ENTREGUE</label> à coordenação, aguarde que a coordenação aceite o relatório ou o abra novamente</h2>
 
<table>
<tr>
<td>
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcess.gif"/></td>
<td class="processActivityName" style="width: 100%">Criado</td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcess.gif"/></td>
</tr>
</table>
</td>
<td>
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcess.gif"/></td>
<td class="processActivityName" style="width: 100%">Entregue</td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcess.gif"/></td>
</tr>
</table>
</td>
<td>
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcessGray.gif"/></td>
<td class="processActivityNameGray" style="width: 100%">Aceite</td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcessGray.gif"/></td>
</tr>
</table>
</td>
</tr>
 
 
 
</table>
<%
if(editCoordinatorPart)
{
%>
<html:form action="/user/courseUnitEvaluationController">
<input type="hidden" name="dispatch" value="openEvaluation">
<html:hidden property="courseUnitView.id"/>
<html:form action="/user/courseUnitEvaluationController">
<input type="hidden" name="dispatch" value="openEvaluation">
<html:hidden property="courseUnitView.id"/>
 
<p>Caro <%=UserSession.getName()%>, membro da <bean:message key="user.role.${CourseUnitView.courseView.validationRole}"/>,
está autorizado a reabrir o relatório de avaliação para o corpo docente da unidade de ${CourseUnitView.name}.</p>
<input type="submit" value="Reabrir para edição (Comissão de Curso)"/> (Esta operação está disponível apenas a membros da Comissão de Curso)
</html:form>
<p>Caro <%=UserSession.getName()%>, membro da <bean:message key="user.role.${CourseUnitView.courseView.validationRole}"/>,
está autorizado a reabrir o relatório de avaliação para o corpo docente da unidade de ${CourseUnitView.name}. poder editar</p>
<input type="submit" value="Reverter o estado ENTREGUE (Comissão de Curso)"/> (Esta operação está disponível apenas a membros da Comissão de Curso)
</html:form>
 
<%
}
}
}
else
{
%>
<h2>Formulário em estado <label style="background-color: red">NÃO ENTREGUE</label> para edição</h2>
 
%>
<table>
<tr>
<td>
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcess.gif"/></td>
<td class="processActivityName" style="width: 100%">Criado</td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcess.gif"/></td>
</tr>
</table>
</td>
<td>
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcessGray.gif"/></td>
<td class="processActivityNameGray" style="width: 100%">Entregue</td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcessGray.gif"/></td>
</tr>
</table>
</td>
<td>
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcessGray.gif"/></td>
<td class="processActivityNameGray" style="width: 100%">Aceite</td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcessGray.gif"/></td>
</tr>
</table>
</td>
</tr>
</table>
<%
}
 
%>
 
<script>
$( document ).ready(function() {
<%
328,7 → 422,7
<tr>
<td colspan="2">
<%
if(!closed && (editCoordinatorPart || editTeacherPart))
if(!teacherComplete && !closed && (editCoordinatorPart || editTeacherPart))
{
%>