Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 938 → Rev 953

/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())
)
{
%>