Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 874 → Rev 884

/impl/conf/language/MessageResourcesCourseUnits.properties
168,7 → 168,14
courseunit.program.cargaHorariaOT=OT
 
 
courseunit.evaluation=Ficha de Avalia\u00e7\u00e3o da Unidade Curricular
courseunit.evaluation.mapa1=Mapa 1
courseunit.evaluation.mapa1.desc=Dados relativos ao processo de avalia\u00e7\u00e3o
courseunit.menu.evaluation=Relat\u00f3rio de Avalia\u00e7\u00e3o
courseunit.evaluation.success=Ficha de Avalia\u00e7\u00e3o alterada com sucesso
 
 
 
courseunit.consultaroutros=Consultar outros programas
courseunit.confirmaclonagem=Tem a certeza que deseja clonar o programa do ano na caixa de selecção para este programa actualmente aberto para edição? Vai gerar uma nova versão de programa e a anterior será arquivada em PDF.
 
/impl/conf/WEB-INF/struts/struts-courseunits.xml
9,6 → 9,7
<form-beans>
<form-bean type="pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm" name="CourseUnitsForm"/>
<form-bean type="pt.estgp.estgweb.web.form.courseunits.CourseUnitProgramForm" name="CourseUnitProgramForm"/>
<form-bean type="pt.estgp.estgweb.web.form.courseunits.CourseUnitEvaluationForm" name="CourseUnitEvaluationForm"/>
</form-beans>
 
<global-exceptions>
31,6 → 32,9
<action path="/startLoadCourseUnit" forward="/courseUnitController.do?dispatch=load"/>
<action path="/startLoadTeacherCourseUnit" forward="/courseUnitController.do?dispatch=loadTeacher"/>
<action path="/startLoadStudentCourseUnit" forward="/courseUnitController.do?dispatch=loadStudent"/>
 
<action path="/startLoadCourseUnitSiges" forward="/courseUnitController.do?dispatch=loadCourseUnitWebSiteBySigesCodes"/>
 
<action path="/courseUnitController"
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController"
name="CourseUnitsForm"
58,6 → 62,20
<forward name="edit.program" path="page.edit.courseunit.program"/>
</action>
 
 
<action path="/user/startLoadCourseUnitEvaluation" forward="/user/courseUnitEvaluationController.do?dispatch=editEvaluation"/>
 
<action path="/user/courseUnitEvaluationController"
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsEvaluationController"
name="CourseUnitEvaluationForm"
scope="request"
parameter="dispatch"
validate="false"
input="page.welcome">
<forward name="load" path="page.load.courseunit"/>
<forward name="edit.evaluation" path="page.edit.courseunit.evaluation"/>
</action>
 
<!--<action path="/user/startLoadCourseUnitFromHome" forward="page.load.courseunit.from.home"/>-->
 
<action path="/user/startLoadCourseUnitRootFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadRoot&amp;from=Home"/>
74,6 → 92,10
<action path="/user/startLoadCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=load&amp;from=Home"/>
<action path="/user/startLoadTeacherCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadTeacher&amp;from=Home"/>
<action path="/user/startLoadStudentCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadStudent&amp;from=Home"/>
 
<action path="/user/startLoadCourseUnitSigesFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadCourseUnitWebSiteBySigesCodes&amp;from=Home"/>
 
 
<action path="/user/courseUnitControllerFromHome"
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController"
name="CourseUnitsForm"
/impl/conf/WEB-INF/struts/tiles-courseunits.xml
20,6 → 20,14
<put name="body" value="/user/courseunits/courseunitworks.jsp"/>
</definition>
 
 
<definition name="page.edit.courseunit.evaluation" extends="page.separators.home">
<put name="title" value="Ficha de Avaliação da Unidade Curricular"/>
<put name="topnav" value="/user/courseunits/topnavEvaluation.jsp"/>
<put name="navigation" value="/user/courseunits/menu.jsp"/>
<put name="body" value="/user/courseunits/courseunitEvaluation.jsp"/>
</definition>
 
<definition name="page.edit.courseunit.program" extends="base.layout1">
<put name="title" value="Ficha da Unidade Curricular"/>
<put name="topnav" value="/public/courseunits/topnavCourseUnitProgram.jsp"/>
/impl/conf/app.properties
83,6 → 83,7
module.assessments=true
 
module.processes=true
module.courseunitevaluation=true
##################################################
# SMS
#
106,6 → 107,12
ionline.user=Baco_web
ionline.use.default.credentials.to.updates.and.deletes=false
 
server.grupos=ftp://ftppublic:ftppublic@w2.estgp.pt
server.grupos.start.path=/grupos
grupos.pass=ftppublic
grupos.user=ftppublic
 
 
server.estgp.start.path=
server.estgp=http://localhost:9090/static
estgp.encoding=UTF-8
/impl/conf/directories/futureStudent.xml
53,10 → 53,16
</node>
<node label="Orgãos de Gestão" id="OrgaosGestao" group="1">
<leaf absolute="false" url="/public/portal/orgaoDirector.html" proxy="estgp" id="orgaosDirector" label="Director"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoTecnicoCientifico.html" proxy="estgp" id="orgaosConselhoTecnicoCientifico" label="Conselho Técnico Científico"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoPedagogico.html" proxy="estgp" id="orgaosConselhoPedagogico" label="Conselho Pedagógico"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoRepresentantes.html" proxy="estgp" id="orgaosConselhoRepresentantes" label="Conselho Representantes"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoGestao.html" proxy="estgp" id="orgaosConselhogestao" label="Conselho de Gestão"></leaf>
 
<leaf absolute="false" url="/public/portal/orgaosConselhoTecnicoCientifico.html" proxy="estgp" id="orgaosConselhoTecnicoCientifico" label="Conselho Técnico Científico"></leaf>
<leaf absolute="false" url="/Conselho.Tecnico.Cientifico.Externo" proxy="grupos" id="pastaConselhoTecnicoCientificoExterna" label=" -----> Documentação CTC" remoteExtensionRoot="true" style="true" layout="true" />
<leaf absolute="false" url="/public/portal/orgaosConselhoPedagogico.html" proxy="estgp" id="orgaosConselhoPedagogico" label="Conselho Pedagógico"></leaf>
<leaf absolute="false" url="/Conselho.Pedagogico.Externo" proxy="grupos" id="pastaConselhoPegagogicoExterna" label=" -----> Documentação CP" remoteExtensionRoot="true" style="true" layout="true" />
<leaf absolute="false" url="/public/portal/orgaosConselhoRepresentantes.html" proxy="estgp" id="orgaosConselhoRepresentantes" label="Conselho Representantes"></leaf>
<leaf absolute="false" url="/Conselho.Representantes.Externo" proxy="grupos" id="pastaConselhoRepresentantesExterna" label=" -----> Documentação CR" remoteExtensionRoot="true" style="true" layout="true" />
 
 
<leaf absolute="false" url="/public/portal/orgaosConselhoGestao.html" proxy="estgp" id="orgaosConselhogestao" label="Conselho de Gestão"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoInterdepartamental.html" proxy="estgp" id="orgaosConselhoDepartamental" label="Conselho Departamental"></leaf>
</node>
<node label="Informação Académica" id="infoAcademica" group="2">
/impl/conf/directories/student.xml
20,7 → 20,7
<leaf absolute="false" url="/public/portal/contactosCentroInformatico.html" proxy="estgp" id="contCentroInformatico" label="Centro Informático"></leaf>
<leaf absolute="false" url="/public/portal/contactosGabineteComunicacao.html" proxy="estgp" id="contGabinetedeComunicacao" label="Gabinete de Comunicação"></leaf>
</node>
<node label="Biblioteca" id="biblioteca" group="1">
<node label="Biblioteca" id="biblioteca" group="1">
<leaf absolute="false" url="/public/portal/servicosBibliotecaApresentacao.html" proxy="estgp" id="servBiblioteca" label="Apresentação"></leaf>
<leaf absolute="false" url="/public/portal/servicosBibliotecaServicos.html" proxy="estgp" id="servBibliotecaServ" label="Serviços"></leaf>
<leaf absolute="false" url="/public/portal/servicosBibliotecaColeccoes.html" proxy="estgp" id="servBibliotecaColeccoes" label="Coleções"></leaf>
43,10 → 43,15
</node>
<node label="Orgãos de Gestão" id="OrgaosGestao" group="1">
<leaf absolute="false" url="/public/portal/orgaoDirector.html" proxy="estgp" id="orgaosDirector" label="Diretor"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoTecnicoCientifico.html" proxy="estgp" id="orgaosConselhoTecnicoCientifico" label="Conselho Técnico Científico"></leaf>
<leaf absolute="false" url="/conteudos/pagina.php?id=34" proxy="conteudos" id="orgaosConselhoPedagogico" label="Conselho Pedagógico"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoRepresentantes.html" proxy="estgp" id="orgaosConselhoRepresentantes" label="Conselho Representantes"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoGestao.html" proxy="estgp" id="orgaosConselhogestao" label="Conselho de Gestão"></leaf>
 
<leaf absolute="false" url="/public/portal/orgaosConselhoTecnicoCientifico.html" proxy="estgp" id="orgaosConselhoTecnicoCientifico" label="Conselho Técnico Científico"></leaf>
<leaf absolute="false" url="/Conselho.Tecnico.Cientifico.Externo" proxy="grupos" id="pastaConselhoTecnicoCientificoExterna" label=" -----> Documentação CTC" remoteExtensionRoot="true" style="true" layout="true" />
<leaf absolute="false" url="/public/portal/orgaosConselhoPedagogico.html" proxy="estgp" id="orgaosConselhoPedagogico" label="Conselho Pedagógico"></leaf>
<leaf absolute="false" url="/Conselho.Pedagogico.Externo" proxy="grupos" id="pastaConselhoPegagogicoExterna" label=" -----> Documentação CP" remoteExtensionRoot="true" style="true" layout="true" />
<leaf absolute="false" url="/public/portal/orgaosConselhoRepresentantes.html" proxy="estgp" id="orgaosConselhoRepresentantes" label="Conselho Representantes"></leaf>
<leaf absolute="false" url="/Conselho.Representantes.Externo" proxy="grupos" id="pastaConselhoRepresentantesExterna" label=" -----> Documentação CR" remoteExtensionRoot="true" style="true" layout="true" />
 
<leaf absolute="false" url="/public/portal/orgaosConselhoGestao.html" proxy="estgp" id="orgaosConselhogestao" label="Conselho de Gestão"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoInterdepartamental.html" proxy="estgp" id="orgaosConselhoDepartamental" label="Conselho Interdepartamental"></leaf>
</node>
/impl/conf/directories/teacher.xml
42,13 → 42,15
<leaf absolute="false" url="/public/portal/PALVErasmusFormularioDocentes.html" proxy="estgp" id="PALVErasmusFomularioDocentes" label="Formulários Docentes"></leaf>
<leaf absolute="false" url="/public/portal/PALVErasmusContactos.html" proxy="estgp" id="PALVErasmusContactos" label="Contactos"></leaf>
</node>
><node label="Orgãos de Gestão" id="OrgaosGestao" group="1">
<node label="Orgãos de Gestão" id="OrgaosGestao" group="1">
<leaf absolute="false" url="/public/portal/orgaoDirector.html" proxy="estgp" id="orgaosDirector" label="Director"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoTecnicoCientifico.html" proxy="estgp" id="orgaosConselhoTecnicoCientifico" label="Conselho Técnico Científico"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoPedagogico.html" proxy="estgp" id="orgaosConselhoPedagogico" label="Conselho Pedagógico"></leaf>
<leaf absolute="false" url="/Conselho.Pedagogico.Externo" proxy="grupos" id="pastaConselhoPegagogicoExterna" label="--> Pasta Docs" remoteExtensionRoot="true" style="true" layout="true" />
<leaf absolute="false" url="/Conselho.Tecnico.Cientifico.Externo" proxy="grupos" id="pastaConselhoTecnicoCientificoExterna" label=" -----> Documentação CTC" remoteExtensionRoot="true" style="true" layout="true" />
<leaf absolute="false" url="/public/portal/orgaosConselhoPedagogico.html" proxy="estgp" id="orgaosConselhoPedagogico" label="Conselho Pedagógico"></leaf>
<leaf absolute="false" url="/Conselho.Pedagogico.Externo" proxy="grupos" id="pastaConselhoPegagogicoExterna" label=" -----> Documentação CP" remoteExtensionRoot="true" style="true" layout="true" />
<leaf absolute="false" url="/public/portal/orgaosConselhoRepresentantes.html" proxy="estgp" id="orgaosConselhoRepresentantes" label="Conselho Representantes"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoGestao.html" proxy="estgp" id="orgaosConselhogestao" label="Conselho de Gestão"></leaf>
<leaf absolute="false" url="/Conselho.Representantes.Externo" proxy="grupos" id="pastaConselhoRepresentantesExterna" label=" -----> Documentação CR" remoteExtensionRoot="true" style="true" layout="true" />
<leaf absolute="false" url="/public/portal/orgaosConselhoGestao.html" proxy="estgp" id="orgaosConselhogestao" label="Conselho de Gestão"></leaf>
<leaf absolute="false" url="/public/portal/orgaosConselhoInterdepartamental.html" proxy="estgp" id="orgaosConselhoInterdepartamental" label="Conselho Interdepartamental"></leaf>
</node>
<node label="Informação Académica" id="infoAcademica" group="2">
/impl/conf/berserk/sd.xml
810,6 → 810,17
</service>
 
<service>
<name>SaveCourseUnitEvaluation</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation</implementationClass>
<description>Save course unit evaluation</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
 
<service>
<name>LoadCourseUnitsBySigesCodes</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass>
<description>Load course old units</description>
819,7 → 830,20
<chain name="Session"/>
</filterChains>
</service>
 
<service>
<name>LoadCourseUnitsBySigesCodesSemestreLastYear</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass>
<description>Load a unique unit by sigescode, semestre and course code</description>
<isTransactional>true</isTransactional>
<defaultMethod>loadLastYear</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
 
<service>
<name>LoadCourseUnitWorks</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
<description>Load course unit works</description>
/impl/src/java/pt/estgp/estgweb/Globals.java
246,6 → 246,8
public static final boolean MODULE_STATUS_ASSESSMENTS = ConfigProperties.getBooleanProperty("module.assessments");
//Filipe Matos
 
 
public static final boolean MODULE_STATUS_COURSEUNITEVALUATION = ConfigProperties.getBooleanProperty("module.courseunitevaluation");
public static final boolean MODULE_STATUS_PROCESSES = ConfigProperties.getBooleanProperty("module.processes");
 
 
/impl/src/java/pt/estgp/estgweb/services/courses/CoursesService.java
24,7 → 24,9
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
139,7 → 141,9
try
{
Document dom = Dom4jUtil.parse(stream);
String html = Dom4jUtil.styleDocument(dom, Globals.TEMPLATE_COURSE_XSL_PATH);
Map<String,Object> parameters = new HashMap<String,Object>();
parameters.put("COURSE_SIGES_CODE",c.getCode());
String html = Dom4jUtil.styleDocument(dom, Globals.TEMPLATE_COURSE_XSL_PATH,parameters);
c.setCacheWebDocument(html);
}
catch (Exception e)
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java
New file
0,0 → 1,99
package pt.estgp.estgweb.services.courseunits;
 
import jomm.utils.PdfUtils;
import org.apache.fop.apps.FOPException;
import org.apache.log4j.Logger;
import org.dom4j.*;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView;
import pt.estgp.estgweb.domain.views.CourseUnitProgramView;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.utils.DatesUtils;
import pt.estgp.estgweb.utils.Dom4jUtil;
import pt.estgp.estgweb.utils.StringsUtils;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMSource;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
 
/**
* @author Jorge Machado
*
*
* So pode editar o programa da unidade o coordenador do curso ou o responsavel da unidade
* ou o docente da unidade ou tem o role de validacao do curso a comissao de curso
*
* Created at 17/Out/2003 , 23:45:24
*
*/
public class SaveCourseUnitEvaluation implements IService
{
 
 
 
private static final Logger logger = Logger.getLogger(SaveCourseUnitEvaluation.class);
 
public CourseUnitEvaluationView run(CourseUnitEvaluationView cupv, Long coursUnitId, UserSession usession) throws ServiceException, TransformerException, IOException, FOPException {
 
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(coursUnitId);
 
CourseUnitEvaluation evaluation = c.getCourseUnitEvaluation();
if(evaluation == null)
{
evaluation = new CourseUnitEvaluationImpl();
DaoFactory.getCourseUnitEvaluationDaoImpl().save(evaluation);
c.setCourseUnitEvaluation(evaluation);
}
//
 
if(usession.getUser() instanceof Teacher &&
((((Teacher)(usession.getUser())).isTeacherOfCourseUnit(c.getId(),true))
||
(c.getResponsableTeacher()!=null && usession.getUser().getId() == c.getResponsableTeacher().getId())
))
{
cupv.persistViewInObjectTeacher(evaluation);
}
if(usession.getUser() instanceof Teacher
&& (((usession.getUser())).hasRole(c.getCourse().getValidationRole())
||
((usession.getUser()) == c.getCourse().getCoordinator()))
)
{
cupv.persistViewInObjectTeacher(evaluation);
}
List<String> errors = new ArrayList<String>();
 
if(usession.getUser() instanceof Teacher)
DirectedCoordinatedUnitsService.sendNotificationsEditedInterestedPeople(c,usession);
else
{
logger.info("Nao vai informar docentes");
}
return cupv;
}
 
 
}
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadCourseUnitsBySigesCodesService.java
39,4 → 39,24
}
return courseUnitViews;
}
 
public CourseUnitView loadLastYear(String code, String courseCode, String semestre, UserSession userSession) throws ServiceException {
 
if(semestre.equals("S3"))
semestre = "S1";
else if(semestre.equals("S4"))
semestre = "S2";
else if(semestre.equals("S5"))
semestre = "S1";
else if(semestre.equals("S6"))
semestre = "S2";
else if(semestre.startsWith("A"))
semestre = "A";
 
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueLastYear(code, courseCode,semestre);
 
if(courseUnit == null)
return null;
return new CourseUnitView(courseUnit);
}
}
/impl/src/java/pt/estgp/estgweb/domain/ProcessEventImpl.java
176,4 → 176,35
}
return false;
}
 
 
 
@Override
public String toString() {
return "ProcessEvent{" +
"id=" + getId() +
", updateDate=" + getUpdateDate() +
", openDate=" + getOpenDate() +
", acceptedDate=" + getAcceptedDate() +
", dispatchedDate=" + getDispatchedDate() +
", lastChangeDate=" + getLastChangeDate() +
", closeDate=" + getCloseDate() +
", nowState='" + getNowState() + '\'' +
", accepted=" + isAccepted() +
", destinationRole='" + getDestinationRole() + '\'' +
", notes='" + getNotes() + '\'' +
", notesAccessLevel='" + getNotesAccessLevel() + '\'' +
", notesAccessIdentifiers='" + getNotesAccessIdentifiers() + '\'' +
", notesAccessRoles='" + getNotesAccessRoles() + '\'' +
", notesToStarter='" + getNotesToStarter() + '\'' +
", process=" + getProcess().getId() +
", previousEvent=" + getPreviousEvent().getId() +
", nextEvent=" +
", owner=" + getOwner().getUsername() +
", files=" + getFiles() +
'}';
}
 
 
 
}
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitEvaluationView.java
New file
0,0 → 1,70
package pt.estgp.estgweb.domain.views;
 
import pt.estgp.estgweb.domain.CourseUnitEvaluation;
import pt.estgp.estgweb.domain.CourseUnitEvaluationImpl;
import pt.estgp.estgweb.domain.CourseUnitProgram;
import pt.estgp.estgweb.domain.CourseUnitProgramImpl;
 
import java.io.Serializable;
 
/**
* @author Jorge Machado
* @date 2/Mar/2008
* @time 19:34:49
* @see pt.estgp.estgweb.domain.views
*/
public class CourseUnitEvaluationView extends DomainObjectView
{
 
 
 
private CourseUnitEvaluation courseUnitEvaluation;
 
public Class getReferenceClass()
{
return CourseUnitEvaluationImpl.class;
}
 
public Serializable getSerializable()
{
return courseUnitEvaluation.getId();
}
 
public CourseUnitEvaluationView()
{
}
 
public CourseUnitEvaluation getCourseUnitEvaluation() {
return courseUnitEvaluation;
}
 
public void setCourseUnitEvaluation(CourseUnitEvaluation courseUnitEvaluation) {
this.courseUnitEvaluation = courseUnitEvaluation;
}
 
public CourseUnitEvaluationView(CourseUnitEvaluation courseUnitEvaluation)
{
super(courseUnitEvaluation);
this.courseUnitEvaluation = courseUnitEvaluation;
}
 
public void persistViewInObjectTeacher(CourseUnitEvaluation c)
{
c.setNumAlunosAprov1013(courseUnitEvaluation.getNumAlunosAprov1013());
c.setNumAlunosAprov1416(courseUnitEvaluation.getNumAlunosAprov1416());
c.setNumAlunosAprov1720(courseUnitEvaluation.getNumAlunosAprov1720());
c.setNumAlunosAprovados(courseUnitEvaluation.getNumAlunosAprovados());
c.setNumAlunosAprovEspecial(courseUnitEvaluation.getNumAlunosAprovEspecial());
c.setNumAlunosAprovFrequencia(courseUnitEvaluation.getNumAlunosAprovFrequencia());
c.setNumAlunosAprovNormal(courseUnitEvaluation.getNumAlunosAprovNormal());
c.setNumAlunosAprovRecurso(courseUnitEvaluation.getNumAlunosAprovRecurso());
c.setNumAlunosAprovTotal(courseUnitEvaluation.getNumAlunosAprovTotal());
c.setNumAlunosInscritos(courseUnitEvaluation.getNumAlunosInscritos());
c.setNumAlunosReprovados(courseUnitEvaluation.getNumAlunosReprovados());
c.setNumAlunosSemElementosAvaliacao(courseUnitEvaluation.getNumAlunosSemElementosAvaliacao());
c.setQualApreciacaoCumprimentoPrograma(courseUnitEvaluation.getQualApreciacaoCumprimentoPrograma());
c.setQualApreciacaoQuantitivos(courseUnitEvaluation.getQualApreciacaoQuantitivos());
c.setQualApreciacaoUC(courseUnitEvaluation.getQualApreciacaoUC());
c.setQualConclusoes(courseUnitEvaluation.getQualConclusoes());
}
}
/impl/src/java/pt/estgp/estgweb/domain/DomainObjectFactory.java
311,4 → 311,9
{
return new DigitalDeliveryTargetImpl();
}
 
public static CourseUnitEvaluationImpl createCourseUnitEvaluationImpl()
{
return new CourseUnitEvaluationImpl();
}
}
/impl/src/java/pt/estgp/estgweb/domain/ProcessImpl.java
63,4 → 63,29
{
return user.isSuperuser() || user.hasRole(Globals.ROLE_PROCESSES_ADMIN) || user.getId() == getLastEvent().getOwner().getId();
}
 
public boolean canRemoveLastEvent(User user)
{
if(getLastEvent().getPreviousEvent() == null)
{
//cant delete first event
return false;
}
if(user.isSuperuserOrAdmin())
{
return true;
}
//check if this event starts in this user looking to previous event
else if(!getLastEvent().isAccepted() &&
getLastEvent().getPreviousEvent() != null &&
user.getId() == getLastEvent().getPreviousEvent().getOwner().getId())
{
return true;
}
else
{
return false;
}
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java
220,8 → 220,14
.uniqueResult();
}
 
public List<CourseUnit> loadBySigesCodeUnique(String sigesCode, String courseCode, String year)
public CourseUnit loadBySigesCodeUniqueLastYear(String sigesCode, String courseCode, String semestre)
{
return loadBySigesCodeUnique(sigesCode,courseCode,semestre,DatesUtils.getImportYear());
}
 
 
public List<CourseUnit> loadBySigesCodeUnique(String sigesCode, String courseCode, String year)
{
return createCriteria()
.add(eq("code", sigesCode))
.add(eq("courseCode", courseCode))
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitEvaluationDaoImpl.java
New file
0,0 → 1,31
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.CourseUnitQuestion;
import pt.estgp.estgweb.utils.DatesUtils;
 
import java.util.List;
 
import static org.hibernate.criterion.Restrictions.eq;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class CourseUnitEvaluationDaoImpl extends CourseUnitEvaluationDao
{
 
 
private CourseUnitEvaluationDaoImpl()
{
}
 
public static CourseUnitEvaluationDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new CourseUnitEvaluationDaoImpl();
return (CourseUnitEvaluationDaoImpl) myInstance;
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/DaoFactory.java
304,4 → 304,9
{
return DigitalDeliveryCategoryDaoImpl.getInstance();
}
public static CourseUnitEvaluationDaoImpl getCourseUnitEvaluationDaoImpl()
{
return CourseUnitEvaluationDaoImpl.getInstance();
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitEvaluationImpl.java
New file
0,0 → 1,13
package pt.estgp.estgweb.domain;
 
import java.io.Serializable;
 
/**
* Created by jorgemachado on 03/06/14.
*/
public class CourseUnitEvaluationImpl extends CourseUnitEvaluation {
@Override
public Serializable getSerializable() {
return getId();
}
}
/impl/src/java/pt/estgp/estgweb/web/DirWebProxy.java
191,7 → 191,7
}
catch (Exception e)
{
logger.error(e,e);
logger.error(e, e);
throw new IOException(e.toString());
}
}
451,6 → 451,7
String actualNodeId = (String) request.getAttribute("actualNodeId");
String actualRemoteNodeId = (String) request.getAttribute("ACTUAL_REMOTE_CHILD");
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request);
System.out.println("Using stylesheet = " + stylesheet);
 
parameters.put("contextPath", request.getContextPath());
String username = "descolnhecido";
/impl/src/java/pt/estgp/estgweb/web/form/courseunits/CourseUnitEvaluationForm.java
New file
0,0 → 1,64
package pt.estgp.estgweb.web.form.courseunits;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.CourseUnitProgramImpl;
import pt.estgp.estgweb.domain.CourseUnitProgramPart2Impl;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView;
import pt.estgp.estgweb.domain.views.CourseUnitProgramView;
import pt.estgp.estgweb.domain.views.CourseUnitView;
 
/**
* @author Jorge Machado
* @date 2/Jun/2008
* @time 14:28:59
* @see pt.estgp.estgweb.web.form.blogs
*/
public class CourseUnitEvaluationForm extends CourseUnitsForm
{
private static final Logger logger = Logger.getLogger(CourseUnitEvaluationForm.class);
 
CourseUnitEvaluationView courseUnitEvaluationView = new CourseUnitEvaluationView();
 
long courseUnitId;
 
 
public CourseUnitEvaluationForm(CourseUnitEvaluationView courseUnitEvaluationView, CourseUnitView courseUnitView, long courseUnitId) {
this.courseUnitEvaluationView = courseUnitEvaluationView;
this.courseUnitView = courseUnitView;
this.courseUnitId = courseUnitId;
}
 
public CourseUnitEvaluationForm()
{
courseUnitEvaluationView.setCourseUnitEvaluation(DomainObjectFactory.createCourseUnitEvaluationImpl());
}
 
public CourseUnitEvaluationView getCourseUnitEvaluationView() {
return courseUnitEvaluationView;
}
 
public void setCourseUnitEvaluationView(CourseUnitEvaluationView courseUnitEvaluationView) {
this.courseUnitEvaluationView = courseUnitEvaluationView;
}
 
public CourseUnitView getCourseUnitView() {
return courseUnitView;
}
 
public void setCourseUnitView(CourseUnitView courseUnitView) {
this.courseUnitView = courseUnitView;
}
 
 
 
public long getCourseUnitId() {
return courseUnitId;
}
 
public void setCourseUnitId(long courseUnitId) {
this.courseUnitId = courseUnitId;
}
 
 
}
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsEvaluationController.java
New file
0,0 → 1,127
package pt.estgp.estgweb.web.controllers.courseunits;
 
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.domain.CourseUnitEvaluationImpl;
import pt.estgp.estgweb.domain.CourseUnitProgram;
import pt.estgp.estgweb.domain.CourseUnitProgramImpl;
import pt.estgp.estgweb.domain.CourseUnitProgramPart2Impl;
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView;
import pt.estgp.estgweb.domain.views.CourseUnitProgramView;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.filters.exceptions.NotFoundException;
import pt.estgp.estgweb.web.form.courseunits.CourseUnitEvaluationForm;
import pt.estgp.estgweb.web.form.courseunits.CourseUnitProgramForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
 
/**
* @author Jorge Machado
* @author Fabio Velez
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class CourseUnitsEvaluationController extends CourseUnitsController
{
private static final Logger logger = Logger.getLogger(CourseUnitsEvaluationController.class);
 
 
 
 
public ActionForward editEvaluation(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form;
 
long id = cUF.getCourseUnitId();
if(id <= 0)
id = cUF.getCourseUnitView().getId();
 
 
CourseUnitView cV = loadCourseUnitViewAndCourse(id,true,false, mapping, request, response);
 
cUF.setCourseUnitView(cV);
request.setAttribute("CourseUnitView", cV);
CourseUnitEvaluationView cpv;
if(cV.getCourseUnit().getCourseUnitEvaluation() == null)
cpv = new CourseUnitEvaluationView(new CourseUnitEvaluationImpl());
else
cpv = new CourseUnitEvaluationView(cV.getCourseUnit().getCourseUnitEvaluation());
// request.setAttribute("CourseUnitProgramView", cpv);
 
 
cUF.setCourseUnitEvaluationView(cpv);
cUF.setCourseUnitView(cV);
return mapping.findForward("edit.evaluation");
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
}
 
public ActionForward saveEvaluation(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form;
 
long id = cUF.getCourseUnitView().getId();
CourseUnitEvaluationView cuV = cUF.getCourseUnitEvaluationView();
 
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{cuV, id};
sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args);
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response);
cUF.setCourseUnitView(cV);
request.setAttribute("CourseUnitView", cV);
addMessage(request,"courseunit.evaluation.success");
return mapping.findForward("load");
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
}
 
 
 
 
}
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsController.java
194,6 → 194,39
}
}
 
 
public ActionForward loadCourseUnitWebSiteBySigesCodes(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
CourseUnitsForm cUF = (CourseUnitsForm) form;
String unitCode = request.getParameter("unitCode");
String courseCode = request.getParameter("courseCode");
String semestre = request.getParameter("semestre");
 
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{unitCode,courseCode,semestre};
CourseUnitView cUV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnitsBySigesCodesSemestreLastYear", args, names);
return loadCourseUnitAndForward(cUF,cUV.getId() ,true,false, mapping, request, response);
 
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e, e);
throw e;
}
}
 
public ActionForward loadStudents(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml
31,6 → 31,7
<many-to-one name="validatorUser" class="pt.estgp.estgweb.domain.Teacher" lazy="false" outer-join="true"/>
<many-to-one name="course" class="pt.estgp.estgweb.domain.Course" lazy="false" outer-join="true"/>
<many-to-one name="courseUnitProgram" class="pt.estgp.estgweb.domain.CourseUnitProgram" lazy="false" outer-join="true"/>
<many-to-one name="courseUnitEvaluation" class="pt.estgp.estgweb.domain.CourseUnitEvaluation" lazy="false" outer-join="true"/>
<many-to-one name="responsableTeacher" class="pt.estgp.estgweb.domain.Teacher" lazy="false" outer-join="true"/>
<set name="blogs" cascade="delete" lazy="true" order-by="saveDate asc">
<key column="courseUnit"/>
226,6 → 227,41
</class>
 
 
 
<class name="pt.estgp.estgweb.domain.CourseUnitEvaluation" table="courseunitevaluation" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="numAlunosInscritos" type="text"/>
<property name="numAlunosSemElementosAvaliacao" type="integer"/>
 
<property name="numAlunosAprovFrequencia" type="integer"/>
<property name="numAlunosAprovNormal" type="integer"/>
<property name="numAlunosAprovRecurso" type="integer"/>
<property name="numAlunosAprovEspecial" type="integer"/>
<property name="numAlunosAprovTotal" type="integer"/>
 
<property name="numAlunosAprov1013" type="integer"/>
<property name="numAlunosAprov1416" type="integer"/>
<property name="numAlunosAprov1720" type="integer"/>
 
<property name="numAlunosAprovados" type="integer"/>
<property name="numAlunosReprovados" type="integer"/>
 
<property name="qualApreciacaoQuantitivos" type="text"/>
<property name="qualApreciacaoUC" type="text"/>
<property name="qualApreciacaoCumprimentoPrograma" type="text"/>
<property name="qualConclusoes" type="text"/>
 
<subclass name="pt.estgp.estgweb.domain.CourseUnitEvaluationImpl" discriminator-value="CourseUnitEvaluationImpl"/>
</class>
 
 
<!--<class name="pt.estgp.estgweb.domain.CourseUnit" table="courseunitassignement" abstract="true">-->
<!--<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>-->
<!--<meta attribute="scope-class">public abstract</meta>-->
/impl/src/web/public/courses/studiesPlan.jsp
18,7 → 18,7
<ul>
<logic:iterate id="courseUnitView" name="CourseView" property="courseUnits" type="pt.estgp.estgweb.domain.views.CourseUnitView">
<li>
${courseUnitView.name}
${courseUnitView.name} (${courseUnitView.code})
</li>
</logic:iterate>
</ul>
/impl/src/web/public/courseunits/topnavCourseUnitEvaluation.jsp
New file
0,0 → 1,13
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page import="jomm.web.utils.TopNav" %>
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace(null, "course", CourseUnitView.getCourseName());
topNav.addNavPlace("/startLoadCourseUnit.do?courseUnitView.id=" + CourseUnitView.getId(), "courseunit",CourseUnitView.getName());
topNav.addNavPlace(null, "courseunit.evaluation");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/user/courseunits/courseunitEvaluation.jsp
New file
0,0 → 1,229
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="pt.estgp.estgweb.domain.Teacher" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<jsp:useBean id="CourseUnitEvaluationForm" type="pt.estgp.estgweb.web.form.courseunits.CourseUnitEvaluationForm" scope="request"/>
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/>
<%--<jsp:useBean id="CourseUnitProgramView" type="pt.estgp.estgweb.domain.views.CourseUnitProgramView" scope="request"/>--%>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<div id="contentIntranet">
<div id="contentPane">
<html:errors/>
<jomm:messages/>
 
<%
IServiceManager sm = ServiceManager.getInstance();
 
List<pt.estgp.estgweb.domain.views.CourseUnitView> otherYearUnits;
otherYearUnits = new ArrayList<pt.estgp.estgweb.domain.views.CourseUnitView>();
try{
String[] names = new String[]{};
Object[] args = new Object[]{new Long(CourseUnitView.getId())};
otherYearUnits =
(List<pt.estgp.estgweb.domain.views.CourseUnitView>)
sm.execute(RequestUtils.getRequester(request, response), "LoadUnitOtherYearsWithProgram", args, names);
request.setAttribute("OtherYearUnits", otherYearUnits);
 
 
names = new String[]{};
args = new Object[]{};
List<Teacher> teachers = (List<Teacher>)
sm.execute(RequestUtils.getRequester(request, response), "LoadTeachers", args, names);
request.setAttribute("teachers", teachers);
}catch(Exception e)
{
System.err.print(e.toString());
e.printStackTrace();
}
 
 
 
 
%>
<div class="seccao">
<h2>
<bean:message key="courseunit.evaluation"/>
</h2>
 
<%
boolean editCoordinatorPart = false;
boolean editTeacherPart = false;
pt.estgp.estgweb.domain.User u = UserSession.getUser();
if(u.isSuperuserOrAdmin())
{
editCoordinatorPart = true;
editTeacherPart = true;
}
else
{
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()))
{
editTeacherPart = true;
}
if(CourseUnitView.getCourseView().getCoordinator() != null && (t.getId() == CourseUnitView.getCourseView().getCoordinator().getId() || t.hasRole(CourseUnitView.getCourseView().getValidationRole())))
{
editCoordinatorPart = true;
}
 
}
}
%>
 
 
<%
//todo é necessário um servico para ver se tem estes papeis
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()))
{
%>
 
<html:form action="/user/courseUnitEvaluationController">
<input type="hidden" name="dispatch" value="saveEvaluation">
<html:hidden property="id"/>
<html:hidden property="courseUnitView.id"/>
 
<%--DOCENTE--%>
 
<table class="dataTable tableDisabled" width="100%">
<tr>
<th colspan="2">Dados alterados pelo Docente da Unidade</th>
</tr>
 
<tr>
<th align="right"><bean:message key="courseunit.evaluation.mapa1"/></th>
<td width="80%">
<h3><bean:message key="courseunit.evaluation.mapa1.desc"/></h3>
 
<table class="dataTable" width="100%">
<tr>
<th rowspan="2">
Nº Alunos Inscritos
</th>
<th rowspan="2">
Nº de alunos sem elementos de avaliação
</th>
<th colspan="5">
Nº de alunos aprovados em
</th>
<th rowspan="2">
Aprovados com a classificação entre 10 e 13 valores (%)
</th>
<th rowspan="2">
Aprovados com a classificação entre 14 e 16 valores (%)
</th>
<th rowspan="2">
Aprovados com a classificação entre 17 e 20 valores (%)
</th>
</tr>
<tr>
<th>Avaliação de frequência</th>
<th>Exame Época Normal</th>
<th>Exame Época Recurso</th>
<th>Exame Época Especial</th>
<th>Total</th>
</tr>
<tr>
<td align="center">
<html:text size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosInscritos"/>
</td>
<td align="center">
<html:text size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosSemElementosAvaliacao"/>
</td>
<td align="center">
<html:text size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovFrequencia"/>
</td>
<td align="center">
<html:text size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovNormal"/>
</td>
<td align="center">
<html:text size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovRecurso"/>
</td>
<td align="center">
<html:text size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovEspecial"/>
</td>
<td align="center">
<html:text size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovTotal"/>
</td>
<td align="center">
<html:text size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1013"/>
</td>
<td align="center">
<html:text size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1416"/>
</td>
<td align="center">
<html:text size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1720"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<th>
Auto-avaliação
</th>
<td>
<table class="dataTable" width="100%">
<tr>
<th>Apreciação dos resultados quantitativos obtidos pelos estudantes</th>
<td width="80%">
<html:textarea style="width:100%;height: 100px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoQuantitivos"/>
</td>
</tr>
<tr>
<th>Apreciação do funcionamento da UC<br/>
(Condições de funcionamento da UC; problemas detetados; identificação de práticas pedagógicas de mérito ou deficientes; etc.)</th>
<td width="80%">
<html:textarea style="width:100%;height: 100px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoUC"/>
</td>
</tr>
<tr>
<th>Apreciação do cumprimento do programa da UC<br/>
(Adequação das metodologias de ensino/aprendizagem utilizadas; competências efetivamente adquiridas e cumprimento dos conteúdos planificados)
</th>
<td width="80%">
<html:textarea style="width:100%;height: 100px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma"/>
</td>
</tr>
<tr>
<th>
Conclusões<br/>
(Pontos fortes e fracos; sugestões de melhoria e respetivo plano de ação para a sua concretização)
</th>
<td width="80%">
<html:textarea style="width:100%;height: 100px" property="courseUnitEvaluationView.courseUnitEvaluation.qualConclusoes"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2"><input type="button" value="<bean:message key="confirm"/>" onclick="set(form,'saveEvaluation');form.submit()"/></td>
</tr>
</table>
 
 
</html:form>
<%
}
%>
</div>
</div>
</div>
/impl/src/web/user/courseunits/topnavEvaluation.jsp
New file
0,0 → 1,15
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.domain.views.BlogView" %>
 
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back");
topNav.addNavPlace(null, "course",CourseUnitView.getCourseName());
topNav.addNavPlace("/user/startLoadCourseUnitFromHome.do?courseUnitView.id=" + CourseUnitView.getId(), "courseunit",CourseUnitView.getName());
topNav.addNavPlace(null, "courseunit.evaluation");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/user/courseunits/courseunit.jsp
27,6 → 27,8
request.setAttribute("fromAction", fromAction);
%>
 
<jomm:messages/>
 
<div id="contentPane">
<h1>${CourseUnitView.name} (${CourseUnitView.code}) - (${CourseUnitView.semestre})</h1>
<table width="100%" cellpadding="0" cellspacing="2" border="0">
/impl/src/web/user/courseunits/menu.jsp
8,6 → 8,7
<%@ page import="pt.estgp.estgweb.web.UserSessionProxy" %>
<%@ page import="pt.estgp.estgweb.domain.UserImpl" %>
<%@ page import="pt.estgp.estgweb.domain.UserSession" %>
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
54,6 → 55,27
<html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.home"/></html:link>
</li>
 
 
<%
if(Globals.MODULE_STATUS_COURSEUNITEVALUATION)
{
//todo é necessário um servico para ver se tem estes papeis
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()))
{
%>
<li style="background-color: yellow">
<html:link action="/user/startLoadCourseUnitEvaluation.do?courseUnitId=${CourseUnitView.id}"><bean:message key="courseunit.menu.evaluation"/></html:link>
</li>
<%
}
}
%>
 
<baco:isTeacherOfCourseUnit courseUnitId="${CourseUnitView.id}">
<li>
<html:link action="/user/startSubmitAnnouncementFromCourseUnit?announcementView.courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.put.announcement"/></html:link>
/impl/src/xsd/curso.xsl
119,7 → 119,7
@@ -138,7 +138,21 @@
@@ -155,7 +169,21 @@
/impl/src/xsd/fragmentoCurso.xsl
1,6 → 1,7
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:curso="http://www.estgp.pt/xsd/planoestudos/1.0/">
<xsl:import href="curso.xsl"/>
<xsl:param name="COURSE_SIGES_CODE"></xsl:param>
<xsl:template match="/">
<xsl:call-template name="fragmentoCurso"/>
</xsl:template>