/impl/conf/language/MessageResourcesCourse.properties |
---|
39,6 → 39,7 |
course.C=Acções de Formação de Curta Duração |
course.A=Formações Avançadas |
course.O=Outras Formações |
course.T=TeSP |
course.Bs=Bacharelatos |
course.Ls=Licenciaturas |
/impl/conf/language/MessageResources.properties |
---|
158,6 → 158,7 |
fail.owner=Lamentamos o incómodo, mas não tem permissões sobre o objecto ao qual tentou aceder. |
fail.timer=Lamentamos o incomodo, mas a acção que tentou efectuar não pode ser executada nesta data. |
fail.authenticate=O nome de utilizador ou a palavra passe estão errados. Por favor tente de novo. |
dontexist.authenticate=O utilizador já existe na rede interna mas ainda não está disponivel no sistema BACO, por favor dirija-se ao Centro Informático. |
#palavras comuns |
courseunit=Unidade Curricular |
360,6 → 361,7 |
edit=Editar |
delete=Apagar |
confirm=Confirmar |
save=Salvar |
add=Adicionar |
put=Colocar |
remove=Remover |
/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,10 |
<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="/startLoadCourseUnitProgramSiges" forward="/courseUnitController.do?dispatch=loadCourseUnitProgramBySigesCodes"/> |
<action path="/courseUnitController" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController" |
name="CourseUnitsForm" |
58,6 → 63,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&from=Home"/> |
74,6 → 93,10 |
<action path="/user/startLoadCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=load&from=Home"/> |
<action path="/user/startLoadTeacherCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadTeacher&from=Home"/> |
<action path="/user/startLoadStudentCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadStudent&from=Home"/> |
<action path="/user/startLoadCourseUnitSigesFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadCourseUnitWebSiteBySigesCodes&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 |
233,6 → 240,7 |
announcements.text.summary.size=500 |
announcements.text.summary.size.small=100 |
announcements.max.visible=10 |
announcements.max.news.visible=15 |
announcements.top.flash.news.timeout.miliseconds=7000 |
announcements.type.0=news |
/impl/conf/template/email/unidadeValidada_pt.txt |
---|
4,7 → 4,7 |
O BACO informa-o de que a ficha curricular da unidade de {0} |
foi aprovada pela comissão de curso |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
Instituto Politécnico de Portalegre |
/impl/conf/template/email/courseUnitWork_pt.txt |
---|
15,7 → 15,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/courseUnitWorkChange_pt.txt |
---|
19,7 → 19,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/courseUnitBlogPost_pt.txt |
---|
14,7 → 14,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/courseUnitAnnouncement_pt.txt |
---|
15,7 → 15,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/unidadeEdicao_pt.txt |
---|
4,7 → 4,7 |
O BACO informa-o de que a ficha curricular da unidade de {0} |
se encontra disponivel para edição |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
Instituto Politécnico de Portalegre |
/impl/conf/template/email/sendPageFriend_pt.txt |
---|
5,7 → 5,7 |
{1} |
Com os Melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/newGrades_pt.txt |
---|
5,7 → 5,7 |
{1} |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/message_pt.txt |
---|
13,7 → 13,7 |
{2} |
<p>Com os melhores cumprimentos {3}</p> |
<p>Cumprimentos, {3}</p> |
--------------------------------------------- |
<p>Escola Superior de Tecnologia e Gestão</p> |
/impl/conf/template/email/unidadeEditada_pt.txt |
---|
4,7 → 4,7 |
O BACO informa-o de que a ficha curricular da unidade de {1} |
foi editada |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
Instituto Politécnico de Portalegre |
/impl/conf/template/email/summary_pt.txt |
---|
9,7 → 9,7 |
{4} |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/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 |
---|
1,4 → 1,4 |
<?xml version="1.0" encoding="UTF-8"?> |
<?xml version="1.0" encoding="UTF-8"?> |
<directory label="Alunos" place="home" layout="layout0" layoutRoot="layoutPortal" targetRole="student" id="student" menuKey="menu.alunos" style="style1.xsl" xmlns="http://www.estgp.pt/baco/directory/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.estgp.pt/baco/directory/ directory.xsd"> |
<groupsDeclaration> |
<group>1</group> |
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="/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 Interdepartamental"></leaf> |
</node> |
/impl/conf/directories/teacher.xml |
---|
42,12 → 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.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/conf/hibernate.cfg.xml |
---|
22,7 → 22,7 |
<property name="hibernate.c3p0.min_size">2</property> |
<property name="hibernate.c3p0.max_size">30</property> |
<property name="hibernate.c3p0.timeout">300</property> |
<property name="hibernate.c3p0.idle_test_period">150</property> |
<property name="hibernate.c3p0.idle_test_period">150</property> |
<property name="hibernate.max_statements">50</property> |
/impl/src/java/pt/estgp/estgweb/utils/Email.java |
---|
32,6 → 32,7 |
private String from; |
private String emailTemplateName; |
private List<String> arguments; |
private String fromName = null; |
public boolean isHtml() { |
61,7 → 62,14 |
this.arguments = arguments; |
} |
public String getFromName() { |
return fromName; |
} |
public void setFromName(String fromName) { |
this.fromName = fromName; |
} |
public String getSubject() |
{ |
return subject; |
/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/services/email/SendEmailService.java |
---|
17,6 → 17,7 |
import javax.mail.Transport; |
import javax.mail.internet.MimeMessage; |
import javax.mail.internet.InternetAddress; |
import java.io.UnsupportedEncodingException; |
import java.util.ArrayList; |
import java.util.List; |
import java.util.Properties; |
67,7 → 68,15 |
String fullMessage = MessageFormat.format(content, email.getArguments().toArray()); |
logger.info("FROM:" + email.getFrom()); |
message.setFrom(new InternetAddress(email.getFrom())); |
if(email.getFromName() != null) |
try { |
message.setFrom(new InternetAddress(email.getFrom(),email.getFromName())); |
} catch (UnsupportedEncodingException e) { |
logger.error(e,e); |
message.setFrom(new InternetAddress(email.getFrom())); |
} |
else |
message.setFrom(new InternetAddress(email.getFrom())); |
message.setSubject(email.getSubject()); |
message.setText(fullMessage,"utf-8"); |
182,7 → 191,9 |
for(String rec: recipients) |
logger.info(rec); |
logger.info("arguments end"); |
return new Email(subject ,recipients,user.getEmail(),template,arguments,Message.RecipientType.BCC); |
Email email = new Email(subject ,recipients,user.getEmail(),template,arguments,Message.RecipientType.BCC); |
email.setFromName(from + " (ESTG)"); |
return email; |
} |
public Email getCourseUnitAnnouncementEmail(CourseUnitAnnouncement announcement, LangEnum langEnum, String from, List<User> users) |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java |
---|
64,16 → 64,22 |
for (BigDecimal c : codigos) |
{ |
Docente d = service.getSiGesWEBSoap().getDocente(c, Globals.SIGES_INSTITUTION_CODE, year); |
logger.info("Codigo Funcionario Importado:" + d.getCodigoFuncionario().intValue() + " email IPP SIGES: " + d.getEmail()); |
logger.info("Codigo Funcionario Importado: SIGES(" + d.getCodigoFuncionario().intValue() + ") email IPP SIGES: " + d.getEmail()); |
logger.info("SIGES IMPORTED INFO: " + docenteToString(d)); |
Teacher t = DaoFactory.getTeacherDaoImpl().loadBySigesCode(d.getCodigoFuncionario().intValue()); |
boolean newUser = false; |
if (t == null) |
{ |
logger.info("Teacher does not exist in baco, will create SIGES:" + d.getCodigoFuncionario().intValue()); |
t = DomainObjectFactory.createTeacherImpl(); |
DaoFactory.getTeacherDaoImpl().save(t); |
newUser = true; |
} |
logger.info("Importing: (" + t.getUsername() + ") " + t.getName()); |
else |
{ |
logger.info("Teacher EXIST in baco with SIGES: " + d.getCodigoFuncionario().intValue()); |
} |
logger.info("Will persist SIGES(" + d.getCodigoFuncionario().intValue() + ") baco (username:" + t.getUsername() + ") baco name:" + t.getName()); |
try |
{ |
persist(d, t, newUser); |
106,6 → 112,30 |
} |
/** |
* Implementação local do toString para a class Docente que foi gerada pelos web-services |
* @param d |
* @return |
*/ |
public String docenteToString(Docente d) |
{ |
return "Docente{" + |
"codigoFuncionario=" + d.getCodigoFuncionario() + |
", nomeFuncionario='" + d.getNomeFuncionario() + '\'' + |
", nomeFuncionarioInt='" + d.getNomeFuncionarioInt() + '\'' + |
", nomeAcademico='" + d.getNomeAcademico() + '\'' + |
", sexo='" + d.getSexo() + '\'' + |
", dataNascimento=" + d.getDataNascimento() + |
", morada='" + d.getMorada() + '\'' + |
", codigoPostal=" + d.getCodigoPostal() + |
", subCodigoPostal=" + d.getSubCodigoPostal() + |
", email='" + d.getEmail() + '\'' + |
", numeroBi='" + d.getNumeroBi() + '\'' + |
", usernameNetpa='" + d.getUsernameNetpa() + '\'' + |
", disciplinas=" + d.getDisciplinas() + |
'}'; |
} |
/** |
* Nao esta testado |
* jm |
* |
127,8 → 157,25 |
{ |
int atIndex = d.getEmail().indexOf("@"); |
if (atIndex > 0) |
{ |
t.setUsername(d.getEmail().substring(0, atIndex)); |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " foi-lhe atribuido o username d" + d.getEmail().substring(0, atIndex)); |
} |
else |
{ |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " NAO lhe foi atribuido username o email não tem o caracter @"); |
} |
} |
else if(t.getUsername() == null || t.getUsername().trim().length() == 0) |
{ |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " nao tem email no SIGES foi-lhe atribuido o username d" + d.getCodigoFuncionario().intValue()); |
t.setUsername("d" + d.getCodigoFuncionario().intValue()); |
} |
else |
{ |
//username não foi alterado |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " nao lhe foi alterado o username " + t.getUsername()); |
} |
t.setSigesCode(d.getCodigoFuncionario().intValue()); |
if(t.getAddress() == null || t.getAddress().length() == 0) |
t.setAddress(d.getMorada()); |
195,7 → 242,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 professores",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments); |
Email email = new Email("Erro de importa��o de professores",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments); |
new SendEmailService().sendEmail(email); |
throw e; |
} |
/impl/src/java/pt/estgp/estgweb/services/announcements/LoadTypeMaxAnnouncementsService.java |
---|
1,5 → 1,6 |
package pt.estgp.estgweb.services.announcements; |
import pt.estgp.estgweb.Globals; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.domain.views.AnnouncementView; |
22,6 → 23,7 |
{ |
private static final Logger logger = Logger.getLogger(LoadTypeMaxAnnouncementsService.class); |
private static final int MAX_ANNOUNCEMENTS = ConfigProperties.getIntProperty("announcements.max.visible"); |
private static final int MAX_ANNOUNCEMENTS_NEWS = ConfigProperties.getIntProperty("announcements.max.news.visible"); |
public List<AnnouncementView> run(String type, String subTarget, UserSession userSession) |
{ |
31,7 → 33,10 |
boolean internal = true; |
if (userSession.getUser() == null) |
internal = false; |
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles,type,subTarget,internal); |
int max = MAX_ANNOUNCEMENTS; |
if(type != null && type.equals(Globals.ANNOUNCEMENT_TYPE_NEWS)) |
max = MAX_ANNOUNCEMENTS_NEWS; |
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(max,targetRoles,type,subTarget,internal); |
if(announcements == null) |
return null; |
List<AnnouncementView> announcementViews = new ArrayList<AnnouncementView>(); |
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java |
---|
70,6 → 70,9 |
if(u == null) |
{ |
logger.warn("user:" + username + " does not exist"); |
throw new AuthenticateException(AuthenticateException.DOES_NOT_EXIST); |
/* |
u = getUserInfo(username); |
u.setPassword(password); |
//put password to be complete for advising |
83,7 → 86,7 |
else if (u.getRoles().contains("student")) |
{ |
} |
}*/ |
} |
else |
{ |
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateException.java |
---|
6,6 → 6,7 |
{ |
public static final String ALREADY_AUTHENTICATED = "authenticate.already.authenticated"; |
public static final String FAIL_AUTHENTICATION = "fail.authenticate"; |
public static final String DOES_NOT_EXIST = "dontexist.authenticate"; |
public static final String BLOCKED = "authenticate.blocked"; |
public AuthenticateException() |
/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/ConfigurationDaoImpl.java |
---|
New file |
0,0 → 1,36 |
package pt.estgp.estgweb.domain.dao.impl; |
import org.hibernate.Criteria; |
import org.hibernate.Query; |
import org.hibernate.criterion.Criterion; |
import org.hibernate.criterion.Expression; |
import org.hibernate.criterion.Order; |
import org.hibernate.criterion.Projections; |
import pt.estgp.estgweb.domain.Course; |
import pt.estgp.estgweb.domain.CourseImpl; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.dao.DaoUtils; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
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 ConfigurationDaoImpl extends ConfigurationDao |
{ |
public static ConfigurationDaoImpl getInstance() |
{ |
if (myInstance == null) |
myInstance = new ConfigurationDaoImpl(); |
return (ConfigurationDaoImpl) myInstance; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDaoImpl.java |
---|
67,6 → 67,10 |
usersC.createAlias("tU.course","tUC"); |
usersC.add(eq("tU.semestre",semestre)) |
.add(eq("tUC.id",courseId)); |
//NOVO |
if(year != null && year.length() > 0) |
usersC.add(eq("tU.importYear",year)); |
//NOVO |
users.addAll(usersC.list()); |
} |
if(target.isStudents()) |
77,6 → 81,8 |
usersC.createAlias("sU.course","sUC"); |
usersC.add(eq("sU.semestre",semestre)) |
.add(eq("sUC.id",courseId)); |
if(year != null && year.length() > 0) |
usersC.add(eq("sU.importYear",year)); |
users.addAll(usersC.list()); |
} |
} |
/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/domain/ConfigurationImpl.java |
---|
New file |
0,0 → 1,18 |
package pt.estgp.estgweb.domain; |
import java.io.Serializable; |
/** |
* @author Jorge Machado |
* @date 2/Mar/2008 |
* @time 10:27:25 |
* @see pt.estgp.estgweb.domain |
*/ |
public class ConfigurationImpl extends Configuration |
{ |
public Serializable getSerializable() |
{ |
return getId(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/DirWebProxy.java |
---|
99,12 → 99,14 |
logger.info("server:" + server); |
logger.info("path:" + path); |
logger.info("startPath:" + startPath); |
logger.info("proxyKey:" + proxyKey); |
logger.info("proxyHost:" + proxyHost); |
logger.info("proxyPort:" + proxyPort); |
logger.info("xml:" + xml); |
logger.info("style:" + style); |
logger.info("label:" + label); |
logger.info("useOutputStream:" + useOutputStream); |
if (path != null) |
{ |
178,7 → 180,7 |
{ |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
String username = userSession != null ? userSession.getUsername() : "UNKNOWN"; |
logger.warn(username + ":" + request.getRemoteAddr() + " cant access this area server:" + server + " and path:" + path + " " + request.getRemoteUser() + " " + request.getRequestURL() + " spath " + request.getServletPath() + " queryString " + request.getQueryString() ); |
logger.warn(username + ":" + request.getRemoteAddr() + " cant access this area server:" + server + " and path:" + path + " " + request.getRemoteUser() + " " + request.getRequestURL() + " spath " + request.getServletPath() + " queryString " + request.getQueryString() ,e); |
response.sendError(401); |
} |
catch (FileNotFoundException e) |
189,7 → 191,7 |
} |
catch (Exception e) |
{ |
logger.error(e,e); |
logger.error(e, e); |
throw new IOException(e.toString()); |
} |
} |
449,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/WebProxy.java |
---|
1,9 → 1,11 |
package pt.estgp.estgweb.web; |
import jomm.utils.StreamsUtils; |
import org.apache.commons.httpclient.URIException; |
import org.apache.commons.httpclient.util.URIUtil; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.utils.StringsUtils; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServlet; |
195,6 → 197,44 |
String pathFinal = path.indexOf("?") >=0 ? URIUtil.encodePath(path.substring(0,path.indexOf("?")), "ISO-8859-1") + "?" +path.substring(path.indexOf("?")+1) : path; |
System.out.println(pathFinal); |
} |
public static boolean checkExist( String server, String path) |
{ |
String serverUrl = ConfigProperties.getProperty("server." + server); |
String serverEncoding = ConfigProperties.getProperty(server + ".encoding"); |
String confStartPath = ConfigProperties.getProperty("server." + server + ".start.path"); |
if (confStartPath != null) |
path = confStartPath + path; |
try |
{ |
String pathFinal = path.indexOf("?") >=0 ? URIUtil.encodePath(path.substring(0,path.indexOf("?")), "ISO-8859-1") + path.substring(path.indexOf("?")) : path; |
System.out.println("Getting: " + serverUrl + pathFinal); |
URL url = new URL(serverUrl + pathFinal); |
URLConnection con = url.openConnection(); |
InputStream stream = con.getInputStream(); |
String out = StreamsUtils.readString(stream); |
stream.close(); |
if(out.trim().length() == 0) |
return false; |
return true; |
} |
catch (FileNotFoundException e) |
{ |
return false; |
} |
catch (Exception e) |
{ |
return false; |
} |
} |
public static void processHttpRequestService(JspWriter out, String server, String path) throws IOException, ServletException |
{ |
/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 |
---|
1,10 → 1,7 |
package pt.estgp.estgweb.web.controllers.courseunits; |
import org.apache.log4j.Logger; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.*; |
import org.apache.struts.upload.FormFile; |
import org.hibernate.ObjectNotFoundException; |
import pt.estgp.estgweb.Globals; |
194,6 → 191,74 |
} |
} |
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 loadCourseUnitProgramBySigesCodes(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException |
{ |
try |
{ |
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); |
ActionRedirect forward = new ActionRedirect(); |
forward.setPath("/repositoryStream/" + cUV.getProgramStreamId()); |
return forward; |
} |
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/updates/db/update19DumpsDigitalDelivery.sql |
---|
New file |
0,0 → 1,83 |
DROP TABLE IF EXISTS `digital_delivery_category`; |
/*!40101 SET @saved_cs_client = @@character_set_client */; |
/*!40101 SET character_set_client = utf8 */; |
CREATE TABLE `digital_delivery_category` ( |
`id` bigint(20) NOT NULL AUTO_INCREMENT, |
`discrimitator` varchar(255) NOT NULL, |
`updateDate` datetime NOT NULL, |
`name` varchar(255) DEFAULT NULL, |
`description` text, |
`parent_id` bigint(20) DEFAULT NULL, |
PRIMARY KEY (`id`), |
KEY `FK9D6868294DEAB94` (`parent_id`), |
CONSTRAINT `FK9D6868294DEAB94` FOREIGN KEY (`parent_id`) REFERENCES `digital_delivery_category` (`id`) |
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1; |
/*!40101 SET character_set_client = @saved_cs_client */; |
-- |
-- Dumping data for table `digital_delivery_category` |
-- |
DROP TABLE IF EXISTS `digital_delivery`; |
/*!40101 SET @saved_cs_client = @@character_set_client */; |
/*!40101 SET character_set_client = utf8 */; |
CREATE TABLE `digital_delivery` ( |
`id` bigint(20) NOT NULL AUTO_INCREMENT, |
`discrimitator` varchar(255) NOT NULL, |
`updateDate` datetime NOT NULL, |
`saveDate` datetime DEFAULT NULL, |
`openDate` datetime DEFAULT NULL, |
`closeDate` datetime DEFAULT NULL, |
`name` varchar(255) DEFAULT NULL, |
`infoFileStream` varchar(255) DEFAULT NULL, |
`description` text, |
`targetReadersRole` varchar(255) DEFAULT NULL, |
`category` bigint(20) DEFAULT NULL, |
PRIMARY KEY (`id`), |
KEY `FKD88FBA3B1C7AB7C2` (`category`), |
CONSTRAINT `FKD88FBA3B1C7AB7C2` FOREIGN KEY (`category`) REFERENCES `digital_delivery_category` (`id`) |
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; |
/*!40101 SET character_set_client = @saved_cs_client */; |
-- |
-- Table structure for table `digital_delivery_target` |
-- |
DROP TABLE IF EXISTS `digital_delivery_target`; |
/*!40101 SET @saved_cs_client = @@character_set_client */; |
/*!40101 SET character_set_client = utf8 */; |
CREATE TABLE `digital_delivery_target` ( |
`id` bigint(20) NOT NULL AUTO_INCREMENT, |
`discrimitator` varchar(255) NOT NULL, |
`updateDate` datetime NOT NULL, |
`repositoryStream` varchar(255) DEFAULT NULL, |
`notesReader` text, |
`notesOwner` text, |
`checked` bit(1) DEFAULT NULL, |
`courseUnit` bigint(20) DEFAULT NULL, |
`owner` bigint(20) DEFAULT NULL, |
`digital_delivery_id` bigint(20) DEFAULT NULL, |
PRIMARY KEY (`id`), |
KEY `FK30FECC1568442945` (`digital_delivery_id`), |
KEY `FK30FECC1552876F6F` (`owner`), |
KEY `FK30FECC15DF034EA4` (`courseUnit`), |
CONSTRAINT `FK30FECC1552876F6F` FOREIGN KEY (`owner`) REFERENCES `user` (`id`), |
CONSTRAINT `FK30FECC1568442945` FOREIGN KEY (`digital_delivery_id`) REFERENCES `digital_delivery` (`id`), |
CONSTRAINT `FK30FECC15DF034EA4` FOREIGN KEY (`courseUnit`) REFERENCES `courseunit` (`id`) |
) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
/*!40101 SET character_set_client = @saved_cs_client */; |
-- |
-- Dumping data for table `digital_delivery_target` |
-- |
-- |
-- Table structure for table `digital_delivery` |
-- |
-- |
-- Dumping data for table `digital_delivery` |
-- |
/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,42 |
</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="closed" type="boolean"/> |
<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/hbm/pt/estgp/estgweb/domain/Configuration.hbm.xml |
---|
New file |
0,0 → 1,20 |
<?xml version="1.0"?> |
<!DOCTYPE hibernate-mapping |
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" |
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> |
<hibernate-mapping> |
<class name="pt.estgp.estgweb.domain.Configuration" table="configuration" 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="interfaceImportYear" type="string"/> |
<property name="importsDefaultImportYear" type="string"/> |
<subclass name="pt.estgp.estgweb.domain.ConfigurationImpl" discriminator-value="ConfigurationImpl"/> |
</class> |
</hibernate-mapping> |
/impl/src/web/imgs/mime/docx.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/admin/courses/course.jsp |
---|
77,6 → 77,7 |
<html:option value="A"><bean:message key="course.A"/></html:option> |
<html:option value="C"><bean:message key="course.C"/></html:option> |
<html:option value="O"><bean:message key="course.O"/></html:option> |
<html:option value="T"><bean:message key="course.T"/></html:option> |
</html:select> |
* SIGES: <bean:write name="CourseForm" property="courseView.degree"/> - Confirmar Mestrados e Pos graduacoes e informar equipa de desenvolvimento |
</td> |
/impl/src/web/css/style.css |
---|
1797,6 → 1797,11 |
{ |
background-color:#EBFCD6; |
} |
.ficha |
{ |
background-color:#EEEEEE; |
text-align: center; |
} |
/impl/src/web/layout/navigationTop.jsp |
---|
39,7 → 39,7 |
<li><a href="<%=request.getContextPath()%>/dir/student/OrgaosGestao/orgaosConselhoRepresentantes/public/portal/orgaosConselhoRepresentantes.html"><bean:message key="portal.assembleia.representantes"/></a></li> |
<li><a href="<%=request.getContextPath()%>/dir/student/OrgaosGestao/orgaosConselhoPedagogico/public/portal/orgaosConselhoPedagogico.html"><bean:message key="portal.conselho.pedagogico"/></a></li> |
<li><a href="<%=request.getContextPath()%>/dir/student/OrgaosGestao/orgaosConselhogestao/public/portal/orgaosConselhoGestao.html"><bean:message key="portal.conselho.gestao"/></a></li> |
<li><a href="<%=request.getContextPath()%>/dir/student/OrgaosGestao/orgaosConselhoInterdisciplinar/public/portal/orgaosConselhoInterdisciplinar.html"><bean:message key="portal.conselho.interdisciplinar"/></a></li> |
<li><a href="<%=request.getContextPath()%>/dir/teacher/OrgaosGestao/orgaosConselhoInterdepartamental/public/portal/orgaosConselhoInterdepartamental.html"><bean:message key="portal.conselho.interdisciplinar"/></a></li> |
</ul> |
</div> |
</li> |
61,6 → 61,7 |
<li><html:link action="/courses?type=E"><bean:message key="course.E"/></html:link></li> |
<li><html:link action="/courses?type=A"><bean:message key="course.A"/></html:link></li> |
<li><html:link action="/courses?type=P"><bean:message key="course.P"/></html:link></li> |
<li><html:link action="/courses?type=T"><bean:message key="course.T"/></html:link></li> |
</ul> |
</div> |
</li> |
/impl/src/web/public/courses/courseMenu.jsp |
---|
1,4 → 1,5 |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.web.WebProxy" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
13,18 → 14,51 |
<div class="linkMenuBlockTitle"> |
${CourseView.name}<%--<bean:message key="${typeKey}"/> (<bean:message key="course.studies.plan.users" />)--%> |
</div> |
<% |
String pagina = "/pagina.php?nome_id=curso_" + CourseView.getCode() + "_internacionalicao"; |
boolean internacionalicao = WebProxy.checkExist("conteudos", pagina); |
pagina = "/pagina.php?nome_id=curso_" + CourseView.getCode() + "_labs"; |
boolean labs = WebProxy.checkExist("conteudos", pagina); |
pagina = "/pagina.php?nome_id=curso_" + CourseView.getCode() + "_actividades"; |
boolean actividades = WebProxy.checkExist("conteudos", pagina); |
pagina = "/pagina.php?nome_id=curso_" + CourseView.getCode() + "_casos"; |
boolean casos = WebProxy.checkExist("conteudos", pagina); |
pagina = "/pagina.php?nome_id=curso_" + CourseView.getCode() + "_parceiros"; |
boolean parceiros = WebProxy.checkExist("conteudos", pagina); |
pagina = "/pagina.php?nome_id=curso_" + CourseView.getCode() + "_faq"; |
boolean faq = WebProxy.checkExist("conteudos", pagina); |
pagina = "/pagina.php?nome_id=curso_" + CourseView.getCode() + "_publicacoes"; |
boolean publicacoes = WebProxy.checkExist("conteudos", pagina); |
%> |
<div class="linkLeftMenu"> |
<div class="listClean"> |
<ul> |
<li><a href="<%=request.getContextPath() + "/startLoadCourseSeparators.do?content=home&type=" + CourseView.getDegree() + "&courseView.id=" + CourseView.getId()%>"><bean:message key="course.menu.home"/></a></li> |
<li><html:link action="/startLoadCourseStudiesPlan?content=studiesplan&type=${CourseView.degree}&courseView.id=${CourseView.id}"><bean:message key="course.menu.studiesplan"/></html:link></li> |
<%if(internacionalicao){%> |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=internacionalicao"><bean:message key="course.menu.internacionalicao"/></html:link></li> |
<%}if(labs){%> |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=labs"><bean:message key="course.menu.labs"/></html:link></li> |
<%}if(actividades){%> |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=actividades"><bean:message key="course.menu.actividades"/></html:link></li> |
<%}if(casos){%> |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=casos"><bean:message key="course.menu.casos"/></html:link></li> |
<%}if(parceiros){%> |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=parceiros"><bean:message key="course.menu.parceiros"/></html:link></li> |
<%}if(faq){%> |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=faq"><bean:message key="course.menu.faq"/></html:link></li> |
<%}if(publicacoes){%> |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=publicacoes"><bean:message key="course.menu.publicacoes"/></html:link></li> |
<%}%> |
</ul> |
</div> |
</div> |
/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,267 |
<%@ 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; |
} |
} |
} |
%> |
<% |
boolean closed = CourseUnitEvaluationForm.getCourseUnitEvaluationView().getCourseUnitEvaluation().isClosed(); |
//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())) |
{ |
if(closed) |
{ |
%> |
<h2>Este formulário está FECHADO para edição</h2> |
<% |
} |
else |
{ |
%> |
<h2>Formulário em fase de edição</h2> |
<% |
} |
if(closed) |
{ |
%> |
<script> |
$( document ).ready(function() { |
$("#formEdit :input").attr("disabled", true); |
}); |
</script> |
<% |
} |
%> |
<div id="formEdit"> |
<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: 200px" 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: 200px" 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: 200px" 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: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualConclusoes"/> |
</td> |
</tr> |
</table> |
</td> |
</tr> |
<tr> |
<td colspan="2"> |
<% |
if(!closed) |
{ |
%> |
<input type="button" value="<bean:message key="save"/>" onclick="set(form,'saveEvaluation');form.submit()"/> |
<% |
} |
%> |
</td> |
</tr> |
</table> |
</html:form> |
<% |
} |
%> |
</div> |
</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/web/user/home/teacher.jsp |
---|
25,8 → 25,8 |
<div class="block"> |
<% |
java.util.List<String> years = new java.util.ArrayList<String>(); |
years.add("201415"); |
years.add("201314"); |
years.add("201213"); |
java.util.Collections.sort(years, new java.util.Comparator<String>() |
{ |
/impl/src/web/user/processes/openProcess.jsp |
---|
319,6 → 319,7 |
<% |
%> |
<html:option value="${process.owner.username}">${process.owner.name} (${process.owner.username}) (requerente)</html:option> |
</html:select> |
</td> |
/impl/src/web/user/processes/startMetaProcess.jsp |
---|
23,7 → 23,7 |
<div class="seccao"> |
<p>Caro ${UserSession.name} Está prestes a submeter um processo de <b>${metaProcess.name}</b></p> |
<p>Para concretizar este pedido deverá fazer <i>download</i> do seguinte documento digital, preencher o mesmo com a informação requisitada e envia-lo por este formulário para que seja expedido para o serviço respectivo:</p> |
<p>Para concretizar este pedido deverá fazer <i>download</i> do seguinte documento digital modelo, preencher o mesmo com a informação requisitada e envia-lo por este formulário para que seja expedido para o serviço respectivo:</p> |
<table class="dataTable process"> |
<tr> |
<th>Remetente</th> |
/impl/src/xsd/curso.xsl |
---|
51,7 → 51,12 |
@@ -101,7 +106,9 @@ |
@@ -119,7 +126,7 @@ |
@@ -132,13 +139,28 @@ |
@@ -151,11 +173,35 @@ |
@@ -167,7 +213,15 @@ |
/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> |
/impl/gen/java/pt/ipportalegre/siges/web/services/Docente.java |
---|
390,4 → 390,22 |
this.disciplinas = value; |
} |
@Override |
public String toString() { |
return "Docente{" + |
"codigoFuncionario=" + codigoFuncionario + |
", nomeFuncionario='" + nomeFuncionario + '\'' + |
", nomeFuncionarioInt='" + nomeFuncionarioInt + '\'' + |
", nomeAcademico='" + nomeAcademico + '\'' + |
", sexo='" + sexo + '\'' + |
", dataNascimento=" + dataNascimento + |
", morada='" + morada + '\'' + |
", codigoPostal=" + codigoPostal + |
", subCodigoPostal=" + subCodigoPostal + |
", email='" + email + '\'' + |
", numeroBi='" + numeroBi + '\'' + |
", usernameNetpa='" + usernameNetpa + '\'' + |
", disciplinas=" + disciplinas + |
'}'; |
} |
} |
/impl/build.xml |
---|
9,6 → 9,7 |
--> |
<target name="help"> |
<echo>This is the availible Ant Tasks:</echo> |
<echo message="${env.JAVA_HOME}"></echo> |
</target> |