/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitProgram.java |
---|
8,7 → 8,6 |
import org.apache.log4j.Logger; |
import org.dom4j.*; |
import org.hibernate.Query; |
import org.hibernate.proxy.HibernateProxy; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
195,7 → 194,7 |
private String generatePdfFile(CourseUnit cu, List<String> errors, UserSession u) throws TransformerException, IOException, FOPException { |
CourseUnitProgramImpl cProgram = (CourseUnitProgramImpl) (cu.getCourseUnitProgram() instanceof HibernateProxy ? ((HibernateProxy) cu.getCourseUnitProgram()).getHibernateLazyInitializer().getImplementation() : cu.getCourseUnitProgram()); |
CourseUnitProgramImpl cProgram = (CourseUnitProgramImpl) DaoFactory.getCourseUnitProgramDaoImpl().narrow(cu.getCourseUnitProgram()); |
cProgram.consistNullValues(); |
Document responseDoc = DocumentHelper.createDocument(); |
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java |
---|
57,6 → 57,7 |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(coursUnitId); |
CourseUnitEvaluation evaluation = c.getCourseUnitEvaluation(); |
if(evaluation == null) |
{ |
127,16 → 128,19 |
//NOVO |
/* |
if(cuv.isClosed()) |
{ |
RepositoryFileImpl repoFile = repositoryService.loadView(cu.getEvaluationStreamId()); |
sendPdfFtpIonline(cu,errors,userSession,path,repoFile.getLastVersion().getSaveDate(),null); |
} |
*/ |
} |
public String generatePdf(CourseUnitEvaluation cuv, CourseUnit c) throws IOException, TransformerException, FOPException { |
Document responseDoc = ((CourseUnitEvaluationImpl)cuv).getDom(); |
CourseUnitEvaluationImpl cuvImpl = (CourseUnitEvaluationImpl) DaoFactory.getCourseUnitEvaluationDaoImpl().narrow(cuv); |
Document responseDoc = cuvImpl.getDom(c); |
responseDoc.setXMLEncoding("ISO-8859-1"); |
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); |
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadCourseUnitService.java |
---|
42,8 → 42,9 |
public CourseUnitView run(long id, boolean initTeachers, boolean initStudents, boolean initBlog, UserSession userSession) throws ServiceException |
{ |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id); |
c.setCourseUnitEvaluation(DaoFactory.getCourseUnitEvaluationDaoImpl().narrow(c.getCourseUnitEvaluation())); |
c.setCourseUnitProgram(DaoFactory.getCourseUnitProgramDaoImpl().narrow(c.getCourseUnitProgram())); |
if(c == null) |
return null; |
CourseUnitView cV = new CourseUnitView(c,initTeachers,initStudents,initBlog); |
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitAdminService.java |
---|
1,16 → 1,14 |
package pt.estgp.estgweb.services.courseunits; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView; |
import pt.estgp.estgweb.domain.UserSession; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.CourseUnitAssignement; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
38,7 → 36,12 |
CourseUnit courseUnit; |
if(cUV.getId() > 0) |
{ |
courseUnit = DaoFactory.getCourseUnitDaoImpl().get(cUV.getId()); |
courseUnit.setCourseUnitEvaluation(DaoFactory.getCourseUnitEvaluationDaoImpl().narrow(courseUnit.getCourseUnitEvaluation())); |
courseUnit.setCourseUnitProgram(DaoFactory.getCourseUnitProgramDaoImpl().narrow(courseUnit.getCourseUnitProgram())); |
} |
else |
{ |
courseUnit = DomainObjectFactory.createCourseUnitImpl(); |
/impl/src/java/pt/estgp/estgweb/services/courseunits/courseunitevaluation.fo.xsl |
---|
164,7 → 164,50 |
<xsl:template name="gen_line"> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
Ano Lectivo |
</fo:table-cell> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<xsl:value-of select="//anoLectivo"/> |
</fo:table-cell> |
</fo:table-row> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
Curso |
</fo:table-cell> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<xsl:value-of select="//curso/nome"/> / <xsl:value-of select="//curso/codigo"/> |
</fo:table-cell> |
</fo:table-row> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
Unidade Curricular |
</fo:table-cell> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<xsl:value-of select="//unidadeCurricular/nome"/> <xsl:value-of select="//unidadeCurricular/codigo"/> |
</fo:table-cell> |
</fo:table-row> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
Professor Resposnável |
</fo:table-cell> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<xsl:value-of select="//responsavel"/> |
</fo:table-cell> |
</fo:table-row> |
<xsl:for-each select="//docente"> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
Docente |
</fo:table-cell> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<xsl:value-of select="./nome"/> / <xsl:value-of select="./email"/> |
</fo:table-cell> |
</fo:table-row> |
</xsl:for-each> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block text-align="right" padding="3pt" font-weight="bold"> |
Dados relativos ao processo de avaliação |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentsService.java |
---|
135,7 → 135,7 |
List<String> arguments = new ArrayList<String>(); |
String cause = e.getCause() == null ? "" : e.getCause().toString(); |
arguments.add((e.toString() + "\n" + cause).replace("\n","<br/>")); |
Email email = new Email("Erro de importação de alunos",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments); |
Email email = new Email("Erro de importa��o de alunos",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments); |
new SendEmailService().sendEmail(email); |
} |
268,7 → 268,7 |
public static void main(String[] args) throws ServiceException |
{ |
String year = DatesUtils.getImportYear(); |
System.out.println("YEAR:" + year); |
System.out.println("YEAR:" + year); |
if(args != null && args.length > 0) |
year = args[0]; |
new ImportStudentsService().run(year); |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/SincronizeLastYearCourseUnitProgramsService.java |
---|
107,7 → 107,8 |
if(novaFicha || (!cu.isValidProgram() && !cloneOnlyNews)) |
{ |
updated++; |
((CourseUnitProgramImpl)cu.getCourseUnitProgram()).cloneFrom(cuOld.getCourseUnitProgram()); |
CourseUnitProgramImpl cProgram = (CourseUnitProgramImpl) DaoFactory.getCourseUnitProgramDaoImpl().narrow(cu.getCourseUnitProgram()); |
cProgram.cloneFrom(cuOld.getCourseUnitProgram()); |
List<String> errors = new ArrayList<String>(); |
service.createPdf(cu,errors); |
} |
243,9 → 244,10 |
cuInto.setValidProgram(false); |
} |
logger.info("AQUI"); |
((CourseUnitProgramImpl)cuInto.getCourseUnitProgram()).cloneFrom(cuFrom.getCourseUnitProgram()); |
DaoFactory.getCourseUnitProgramDaoImpl().saveOrUpdate(((CourseUnitProgramImpl)cuInto.getCourseUnitProgram())); |
DaoFactory.getCourseUnitProgramPart2DaoImpl().saveOrUpdate(((CourseUnitProgramImpl)cuInto.getCourseUnitProgram()).getCourseUnitProgramPart2()); |
CourseUnitProgramImpl cProgram = (CourseUnitProgramImpl) DaoFactory.getCourseUnitProgramDaoImpl().narrow(cuInto.getCourseUnitProgram()); |
cProgram.cloneFrom(cuFrom.getCourseUnitProgram()); |
DaoFactory.getCourseUnitProgramDaoImpl().saveOrUpdate((cuInto.getCourseUnitProgram())); |
DaoFactory.getCourseUnitProgramPart2DaoImpl().saveOrUpdate((cuInto.getCourseUnitProgram()).getCourseUnitProgramPart2()); |
SaveCourseUnitProgram service = new SaveCourseUnitProgram(); |
List<String> errors = new ArrayList<String>(); |
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitView.java |
---|
48,8 → 48,10 |
private String objectives; |
private String programStreamId; |
private String evaluationStreamId; |
private boolean validProgram; |
private UserView validatorUser; |
private boolean validEvaluation = false; |
private int programSize; |
private String extension; |
private List<CourseUnitAssignementView> courseUnitAssignements; |
118,6 → 120,7 |
this.semestre = courseUnit.getSemestre(); |
this.courseCode = courseUnit.getCourseCode(); |
// this.objectives = courseUnit.getObjectives(); DEPRECATED |
if(courseUnit.getCourseUnitProgram() !=null && courseUnit.getCourseUnitProgram().getCourseUnitProgramPart2() != null) |
this.objectives = courseUnit.getCourseUnitProgram().getCourseUnitProgramPart2().getObjectivos(); |
135,6 → 138,12 |
} |
} |
if(courseUnit.getEvaluationStreamId() != null) |
{ |
evaluationStreamId = courseUnit.getEvaluationStreamId(); |
validEvaluation = courseUnit.getCourseUnitEvaluation().isClosed(); |
} |
// if(courseUnit.getBlog() != null) |
// this.blog = new BlogView(courseUnit.getBlog()); |
this.id = courseUnit.getId(); |
174,6 → 183,17 |
} |
public String getEvaluationStreamId() { |
return evaluationStreamId; |
} |
public boolean isValidEvaluation() { |
return validEvaluation; |
} |
public long getCoordinatorId() { |
return coordinatorId; |
} |
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitEvaluationImpl.java |
---|
41,10 → 41,54 |
} |
public Document getDom(){ |
public Document getDom(CourseUnit cu){ |
Document dom = DOMDocumentFactory.getInstance().createDocument(); |
Element elemCourseUnitEvaluationImpl = dom.addElement("CourseUnitEvaluation"); |
Element anoLectivo = elemCourseUnitEvaluationImpl.addElement("anoLectivo"); |
anoLectivo.setText(cu.getImportYear()); |
Element curso = elemCourseUnitEvaluationImpl.addElement("curso"); |
Element nomeCur = curso.addElement("nome"); |
nomeCur.setText(cu.getCourseName()); |
Element codigoCur = curso.addElement("codigo"); |
codigoCur.setText(cu.getCourseCode()); |
Element unidadecurricular = elemCourseUnitEvaluationImpl.addElement("unidadecurricular"); |
Element nome = unidadecurricular.addElement("nome"); |
nome.setText(cu.getName()); |
Element codigo = unidadecurricular.addElement("codigo"); |
codigo.setText(cu.getCode()); |
if(cu.getResponsableTeacher() != null) |
{ |
Element responsavel = elemCourseUnitEvaluationImpl.addElement("responsavel"); |
Element nomeRes = responsavel.addElement("nome"); |
nomeRes.setText(cu.getResponsableTeacher().getName()); |
Element emailRes = responsavel.addElement("email"); |
if(cu.getResponsableTeacher().getEmail()!= null) |
emailRes.setText(cu.getResponsableTeacher().getEmail()); |
else |
emailRes.setText(""); |
} |
if(cu.getTeachers() != null && cu.getTeachers().size()>0) |
{ |
for(Teacher t: cu.getTeachers()) |
{ |
Element docente = elemCourseUnitEvaluationImpl.addElement("docente"); |
Element nomeRes = docente.addElement("nome"); |
nomeRes.setText(t.getName()); |
Element emailRes = docente.addElement("email"); |
if(t.getEmail()!= null) |
emailRes.setText(t.getEmail()); |
else |
emailRes.setText(""); |
} |
} |
Element id = elemCourseUnitEvaluationImpl.addElement("id"); |
id.setText(getId()+""); |
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml |
---|
262,6 → 262,7 |
<property name="qualApreciacaoCumprimentoPrograma" type="text"/> |
<property name="qualConclusoes" type="text"/> |
<subclass name="pt.estgp.estgweb.domain.CourseUnitEvaluationImpl" discriminator-value="CourseUnitEvaluationImpl"/> |
</class> |
/impl/src/web/user/courseunits/courseunitEvaluation.jsp |
---|
74,7 → 74,7 |
if(u instanceof pt.estgp.estgweb.domain.Teacher) |
{ |
pt.estgp.estgweb.domain.Teacher t = (pt.estgp.estgweb.domain.Teacher) u; |
if(t.isTeacherOfCourseUnit(CourseUnitView.getId())) |
if(t.isTeacherOfCourseUnit(CourseUnitView.getId()) || (CourseUnitView.getResponsableTeacher() != null && CourseUnitView.getResponsableTeacher().getId() == t.getId())) |
{ |
editTeacherPart = true; |
} |
91,7 → 91,7 |
<% |
boolean closed = CourseUnitEvaluationForm.getCourseUnitEvaluationView().getCourseUnitEvaluation().isClosed(); |
//todo é necessário um servico para ver se tem estes papeis |
if(CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId() |
if((CourseUnitView.getResponsableTeacher() != null && CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId()) |
|| |
CourseUnitView.isOwnedBy(UserSession.getUser(),false) |
|| |
102,7 → 102,9 |
if(closed) |
{ |
%> |
<h2>Este formulário está FECHADO para edição</h2> |
<h2>Este formulário está FECHADO para edição |
</h2> |
<% |
} |
else |
112,19 → 114,29 |
<% |
} |
if(closed) |
{ |
%> |
<script> |
$( document ).ready(function() { |
$("#formEdit :input").attr("disabled", true); |
<% |
if(closed) |
{ |
%> |
$("#formEdit :input").attr("disabled", true); |
<% |
} |
if(!editTeacherPart && !editCoordinatorPart) |
{ |
%> |
$("#formEdit :input").attr("disabled", true); |
<% |
} |
%> |
}); |
</script> |
<% |
} |
%> |
<div id="formEdit"> |
<html:form action="/user/courseUnitEvaluationController"> |
<input type="hidden" name="dispatch" value="saveEvaluation"> |
133,9 → 145,27 |
<%--DOCENTE--%> |
<logic:equal value="true" name="CourseUnitEvaluationForm" property="courseUnitEvaluationView.fechar"> |
<p class="alert-success">Esta avaliação está publicada no DTP em formato PDF</p> |
<p class="alert-success">Esta avaliação será publicada no DTP em formato PDF após ordens dos orgãos competentes</p> |
</logic:equal> |
<% |
if(closed) |
{ |
%> |
<p class="alert-success">Esta avaliação está concluida e aprovada pela comissão de curso</p> |
<% |
if(editCoordinatorPart || editTeacherPart) |
{ |
%> |
<p class="WARNING"> <a href="<%=request.getContextPath()%>/repositoryStream/<%=CourseUnitView.getEvaluationStreamId()%>">Relatório de avaliação em PDF</a></p> |
<% |
} |
%> |
<% |
} |
%> |
<table class="dataTable tableDisabled" width="100%"> |
<tr> |
<th colspan="2">Dados alterados pelo Docente da Unidade</th> |
251,15 → 281,24 |
<tr> |
<td colspan="2"> |
<% |
if(!closed) |
if(!closed && (editCoordinatorPart || editTeacherPart)) |
{ |
%> |
<input type="button" value="<bean:message key="save"/>" onclick="set(form,'saveEvaluation');form.submit()"/> |
<!--<input type="button" value="FECHAR E PUBLICAR" onclick="set(form,'publishEvaluation');form.submit()"/>--> |
<% |
} |
if(!closed && editCoordinatorPart) |
{ |
%> |
<label class="WARNING"> |
A ficha estará disponivel para VALIDAÇÃO o mais brevemente possivel por parte das comissões de curso |
</label> |
<%--<input type="button" value="VALIDAR e FECHAR" onclick="set(form,'publishEvaluation');form.submit()"/>--%> |
<% |
} |
%> |
</td> |
</tr> |
/impl/src/web/user/courseunits/courseunit.jsp |
---|
30,11 → 30,29 |
<jomm:messages/> |
<div id="contentPane"> |
<h1>${CourseUnitView.name} (${CourseUnitView.code}) - (${CourseUnitView.semestre})</h1> |
<h1>${CourseUnitView.name} (${CourseUnitView.code}) - (${CourseUnitView.semestre}) - ${CourseUnitView.importYear})</h1> |
<table width="100%" cellpadding="0" cellspacing="2" border="0"> |
<tr> |
<td valign="top" class="seccao"> |
<label class="WARNING">Atenção o relatório de avaliação deve ser preenchido no ano 2014-2015 (Entrar no 2014-2015 pelo menu lateral esquerdo antes de clicar em relatório de avaliação e confirmar no titulo da unidade).</label> |
<% |
if((CourseUnitView.getResponsableTeacher() != null && CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId()) |
|| |
CourseUnitView.isOwnedBy(UserSession.getUser(),false) |
|| |
//Validation Role e o papel da comissão de curso |
UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole())) |
{ |
if(CourseUnitView.isValidEvaluation()) |
{ |
%> |
<label class="INFO"> <a href="<%=request.getContextPath()%>/repositoryStream/<%=CourseUnitView.getEvaluationStreamId()%>">Relatório de avaliação em PDF</a></label> |
<% |
} |
} |
%> |
<baco:hasRole role="admin,all,services"> |
<ul> |
<li> |
/impl/src/web/user/courseunits/menu.jsp |
---|
71,9 → 71,9 |
if(CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId() |
|| |
CourseUnitView.isOwnedBy(UserSession.getUser(),false) |
// || |
//Validation Role e o papel da comissão de curso |
//UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole()) |
|| |
// Validation Role e o papel da comissão de curso |
UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole()) |
) |
{ |
%> |