/impl/conf/language/MessageResources.properties |
---|
447,7 → 447,7 |
user.role.courseValidateProgramGPME=Comissão de Curso de Gestão de PME |
user.role.courseValidateProgramCET_TD=Comissão de Curso de CETS de TD |
user.role.courseValidateProgramEI=Comissão de Curso de EI |
user.role.courseValidateProgramEC=Comissão de Curso de EC |
/impl/conf/WEB-INF/web.xml |
---|
4,6 → 4,12 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" > |
<listener> |
<listener-class> |
com.sun.xml.ws.transport.http.servlet.WSServletContextListener |
</listener-class> |
</listener> |
<filter> |
<filter-name>RequestedUrlFilter</filter-name> |
<filter-class>pt.estgp.estgweb.web.filters.RequestURLFilter</filter-class> |
123,7 → 129,18 |
</filter-mapping> |
<!----> |
<!--SERVLETS--> |
<!--SOAP Tutorial--> |
<servlet> |
<servlet-name>hello</servlet-name> |
<servlet-class> |
com.sun.xml.ws.transport.http.servlet.WSServlet |
</servlet-class> |
<load-on-startup>1</load-on-startup> |
</servlet> |
<!--SOAP Tutorial--> |
<servlet> |
<servlet-name>action</servlet-name> |
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class> |
<init-param> |
225,7 → 242,15 |
<!--MAPPINGS--> |
<!--SOAP Tutorial--> |
<servlet-mapping> |
<servlet-name>hello</servlet-name> |
<url-pattern>/hello</url-pattern> |
</servlet-mapping> |
<!--SOAP Tutorial--> |
<servlet-mapping> |
<servlet-name>action</servlet-name> |
<url-pattern>*.do</url-pattern> |
</servlet-mapping> |
/impl/conf/WEB-INF/sun-jaxws.xml |
---|
New file |
0,0 → 1,10 |
<?xml version="1.0" encoding="UTF-8"?> |
<!--SOAP Tutorial--> |
<endpoints |
xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" |
version="2.0"> |
<endpoint |
name="HelloWorld" |
implementation="pt.estgp.estgweb.web.soap.HelloWorldImpl" |
url-pattern="/hello"/> |
</endpoints> |
/impl/src/java/jomm/dao/impl/AbstractDao.java |
---|
341,6 → 341,8 |
*/ |
public CLAZZ narrow(CLAZZ o) |
{ |
if(o == null) |
return null; |
if (o instanceof HibernateProxy) |
{ |
return (CLAZZ) ((HibernateProxy)o).getHibernateLazyInitializer().getImplementation(); |
755,6 → 757,7 |
{ |
for (CLAZZ obj : objs) |
{ |
System.out.println("CLEARING: " + obj); |
evictAndDelete(obj); |
} |
} |
/impl/src/java/pt/estgp/estgweb/Globals.java |
---|
118,6 → 118,12 |
public static final String TMP_DIR = ConfigProperties.getProperty("tmp.dir"); |
public static final String DATA_DIR = ConfigProperties.getProperty("data.dir"); |
public static final String EMAIL_SERVER_HOST = ConfigProperties.getProperty("email.server"); |
public static final String EMAIL_SERVER_SECURITY = ConfigProperties.getProperty("email.server.security"); |
public static final int EMAIL_SERVER_SECURITY_TLS = ConfigProperties.getIntProperty("email.server.security.tls"); |
public static final int EMAIL_SERVER_SECURITY_SSL = ConfigProperties.getIntProperty("email.server.security.ssl"); |
public static final String EMAIL_SERVER_USERNAME = ConfigProperties.getProperty("email.user"); |
public static final String EMAIL_SERVER_PASSWORD = ConfigProperties.getProperty("email.password"); |
public static final String SYSTEM_EMAIL_BOX = ConfigProperties.getProperty("email.from"); |
public static final String ANNOUNCEMENT_TYPE_NEWS = "news"; |
public static final String ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS = "top.flash.news"; |
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitProgram.java |
---|
193,7 → 193,10 |
} |
private String generatePdfFile(CourseUnit cu, List<String> errors, UserSession u) throws TransformerException, IOException, FOPException { |
((CourseUnitProgramImpl)cu.getCourseUnitProgram()).consistNullValues(); |
CourseUnitProgramImpl cProgram = (CourseUnitProgramImpl) DaoFactory.getCourseUnitProgramDaoImpl().narrow(cu.getCourseUnitProgram()); |
cProgram.consistNullValues(); |
Document responseDoc = DocumentHelper.createDocument(); |
Namespace namespace = new Namespace("uc", "http://baco.estgp.pt/schemas/courseunits/program/"); |
responseDoc.setXMLEncoding("ISO-8859-1"); |
431,6 → 434,7 |
public static void main(String[] args) throws IOException { |
AbstractDao.getCurrentSession().beginTransaction(); |
new SaveCourseUnitProgram().storeAllPrograms(); |
AbstractDao.getCurrentSession().flush(); |
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java |
---|
57,6 → 57,7 |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(coursUnitId); |
CourseUnitEvaluation evaluation = c.getCourseUnitEvaluation(); |
if(evaluation == null) |
{ |
115,7 → 116,7 |
if(cu.getEvaluationStreamId() == null) |
{ |
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + "-evaluation.pdf", "courseunit.evaluation.description" + cu.getName(), ResourceAccessControlEnum.privateDomain,owner); |
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + "-evaluation.pdf", "courseunit.evaluation.description" + cu.getName(), ResourceAccessControlEnum.courseunitEvaluationDomain,owner); |
cu.setEvaluationStreamId(identifier); |
} |
else |
127,16 → 128,19 |
//NOVO |
/* |
if(cuv.isClosed()) |
{ |
RepositoryFileImpl repoFile = repositoryService.loadView(cu.getEvaluationStreamId()); |
sendPdfFtpIonline(cu,errors,userSession,path,repoFile.getLastVersion().getSaveDate(),null); |
} |
*/ |
} |
public String generatePdf(CourseUnitEvaluation cuv, CourseUnit c) throws IOException, TransformerException, FOPException { |
Document responseDoc = ((CourseUnitEvaluationImpl)cuv).getDom(); |
CourseUnitEvaluationImpl cuvImpl = (CourseUnitEvaluationImpl) DaoFactory.getCourseUnitEvaluationDaoImpl().narrow(cuv); |
Document responseDoc = cuvImpl.getDom(c); |
responseDoc.setXMLEncoding("ISO-8859-1"); |
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); |
/impl/src/java/pt/estgp/estgweb/services/courseunits/courseunitprogram.fo.xsl |
---|
253,11 → 253,12 |
<xsl:with-param name="value"><xsl:value-of select="//uc:conteudosProgramaticos"/></xsl:with-param> |
</xsl:call-template> |
<!--<xsl:call-template name="tableGrayLine">--> |
<!--<xsl:with-param name="label">Demonstração da coerência dos conteúdos programáticos com os objectivos da unidade curricular</xsl:with-param>--> |
<!--<xsl:with-param name="label2"></xsl:with-param>--> |
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:demonstracaoCoerenciaConteudosObjectivos"/></xsl:with-param>--> |
<!--</xsl:call-template>--> |
<!-- Campo Novo Aprovado Luis Batista Mail de 3 de Setembro de 2015 assunto RE: Verificação conteudos - UC - CESH_TD--> |
<xsl:call-template name="tableGrayLine"> |
<xsl:with-param name="label">Demonstração da coerência dos conteúdos programáticos com os objectivos da unidade curricular</xsl:with-param> |
<xsl:with-param name="label2"></xsl:with-param> |
<xsl:with-param name="value"><xsl:value-of select="//uc:demonstracaoCoerenciaConteudosObjectivos"/></xsl:with-param> |
</xsl:call-template> |
<xsl:call-template name="tableWhiteLine"> |
<xsl:with-param name="label">Metodologias de ensino e Aprendizagem</xsl:with-param> |
265,12 → 266,14 |
<xsl:with-param name="value"><xsl:value-of select="//uc:metodologiasEnsino"/></xsl:with-param> |
</xsl:call-template> |
<!--<xsl:call-template name="tableGrayLine">--> |
<!--<xsl:with-param name="label">Demonstração da coerência das metodologias de ensino com os objectivos da aprendizagem da unidade curricular</xsl:with-param>--> |
<!--<xsl:with-param name="label2"></xsl:with-param>--> |
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:demonstracaoDaCoerenciaMetodologiasObjectivos"/></xsl:with-param>--> |
<!--</xsl:call-template>--> |
<!-- Campo Novo Aprovado Luis Batista Mail de 3 de Setembro de 2015 assunto RE: Verificação conteudos - UC - CESH_TD--> |
<xsl:call-template name="tableGrayLine"> |
<xsl:with-param name="label">Demonstração da coerência das metodologias de ensino com os objectivos da aprendizagem da unidade curricular</xsl:with-param> |
<xsl:with-param name="label2"></xsl:with-param> |
<xsl:with-param name="value"><xsl:value-of select="//uc:demonstracaoDaCoerenciaMetodologiasObjectivos"/></xsl:with-param> |
</xsl:call-template> |
<xsl:call-template name="tableWhiteLine"> |
<xsl:with-param name="label">Língua de ensino</xsl:with-param> |
<xsl:with-param name="label2"></xsl:with-param> |
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadCourseUnitService.java |
---|
42,10 → 42,12 |
public CourseUnitView run(long id, boolean initTeachers, boolean initStudents, boolean initBlog, UserSession userSession) throws ServiceException |
{ |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id); |
c.setCourseUnitEvaluation(DaoFactory.getCourseUnitEvaluationDaoImpl().narrow(c.getCourseUnitEvaluation())); |
c.setCourseUnitProgram(DaoFactory.getCourseUnitProgramDaoImpl().narrow(c.getCourseUnitProgram())); |
if(c == null) |
return null; |
CourseUnitView cV = new CourseUnitView(c,initTeachers,initStudents,initBlog); |
if(c.getProgramStreamId()!= null) |
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitAdminService.java |
---|
1,16 → 1,14 |
package pt.estgp.estgweb.services.courseunits; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView; |
import pt.estgp.estgweb.domain.UserSession; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.CourseUnitAssignement; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
38,7 → 36,12 |
CourseUnit courseUnit; |
if(cUV.getId() > 0) |
{ |
courseUnit = DaoFactory.getCourseUnitDaoImpl().get(cUV.getId()); |
courseUnit.setCourseUnitEvaluation(DaoFactory.getCourseUnitEvaluationDaoImpl().narrow(courseUnit.getCourseUnitEvaluation())); |
courseUnit.setCourseUnitProgram(DaoFactory.getCourseUnitProgramDaoImpl().narrow(courseUnit.getCourseUnitProgram())); |
} |
else |
{ |
courseUnit = DomainObjectFactory.createCourseUnitImpl(); |
/impl/src/java/pt/estgp/estgweb/services/courseunits/courseunitevaluation.fo.xsl |
---|
75,7 → 75,7 |
</xsl:if> |
<xsl:if test="//closed = 'true'"> |
<fo:block font-size="20pt"> |
Relatório de avaliação curricular <xsl:value-of select="//anoLectivo"/> |
</fo:block> |
</xsl:if> |
</fo:table-cell> |
164,7 → 164,70 |
<xsl:template name="gen_line"> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block text-align="right" padding="3pt" font-weight="bold"> |
Ano Lectivo |
</fo:block> |
</fo:table-cell> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block > |
<xsl:value-of select="//anoLectivo"/> |
</fo:block> |
</fo:table-cell> |
</fo:table-row> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block text-align="right" padding="3pt" font-weight="bold"> |
Curso |
</fo:block> |
</fo:table-cell> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block > |
<xsl:value-of select="//curso/nome"/> / <xsl:value-of select="//curso/codigo"/> |
</fo:block> |
</fo:table-cell> |
</fo:table-row> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block text-align="right" padding="3pt" font-weight="bold"> |
Unidade Curricular |
</fo:block> |
</fo:table-cell> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block > |
<xsl:value-of select="//unidadecurricular/nome"/> / <xsl:value-of select="//unidadecurricular/codigo"/> |
</fo:block> |
</fo:table-cell> |
</fo:table-row> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block text-align="right" padding="3pt" font-weight="bold"> |
Professor Responsável |
</fo:block> |
</fo:table-cell> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block > |
<xsl:value-of select="//responsavel/nome"/> / <xsl:value-of select="//responsavel/email"/> |
</fo:block > |
</fo:table-cell> |
</fo:table-row> |
<xsl:for-each select="//docente"> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block text-align="right" padding="3pt" font-weight="bold"> |
Docente |
</fo:block> |
</fo:table-cell> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block > |
<xsl:value-of select="./nome"/> / <xsl:value-of select="./email"/> |
</fo:block> |
</fo:table-cell> |
</fo:table-row> |
</xsl:for-each> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block text-align="right" padding="3pt" font-weight="bold"> |
Dados relativos ao processo de avaliação |
/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java |
---|
3,26 → 3,23 |
import jomm.utils.TemplateUtils; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.enums.LangEnum; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.utils.Email; |
import pt.estgp.estgweb.web.utils.DatesUtils; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.domain.enums.LangEnum; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.utils.Email; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import javax.mail.MessagingException; |
import javax.mail.Session; |
import javax.mail.Message; |
import javax.mail.Transport; |
import javax.mail.*; |
import javax.mail.internet.InternetAddress; |
import javax.mail.internet.MimeMessage; |
import javax.mail.internet.InternetAddress; |
import java.io.UnsupportedEncodingException; |
import java.text.MessageFormat; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.List; |
import java.util.Properties; |
import java.util.Date; |
import java.text.MessageFormat; |
/** |
* @author Jorge Machado |
43,9 → 40,47 |
// Set up properties for mail session |
Properties props = System.getProperties(); |
props.put("mail.smtp.host", Globals.EMAIL_SERVER_HOST); |
final String username = Globals.EMAIL_SERVER_USERNAME; |
final String password = Globals.EMAIL_SERVER_PASSWORD; |
javax.mail.Authenticator authenticator = null; |
if(Globals.EMAIL_SERVER_SECURITY != null && Globals.EMAIL_SERVER_SECURITY.compareTo("TLS")==0) |
{ |
props.put("mail.smtp.auth", "true"); |
props.put("mail.smtp.starttls.enable", "true"); |
props.put("mail.smtp.port", ""+ Globals.EMAIL_SERVER_SECURITY_TLS); |
authenticator = new javax.mail.Authenticator() { |
protected PasswordAuthentication getPasswordAuthentication() { |
return new PasswordAuthentication(username, password); |
} |
}; |
} |
else if(Globals.EMAIL_SERVER_SECURITY != null && Globals.EMAIL_SERVER_SECURITY.compareTo("SSL")==0) |
{ |
props.put("mail.smtp.socketFactory.port", Globals.EMAIL_SERVER_SECURITY_SSL); |
props.put("mail.smtp.socketFactory.class", |
"javax.net.ssl.SSLSocketFactory"); |
props.put("mail.smtp.auth", "true"); |
props.put("mail.smtp.port", Globals.EMAIL_SERVER_SECURITY_SSL); |
authenticator = new javax.mail.Authenticator() { |
protected PasswordAuthentication getPasswordAuthentication() { |
return new PasswordAuthentication(username,password); |
} |
}; |
} |
else |
{ |
} |
// Get session |
Session session = Session.getDefaultInstance(props, null); |
Session session = Session.getDefaultInstance(props, authenticator); |
session.setDebug(true); |
session.setDebugOut(System.out); |
// Create message |
MimeMessage message = new MimeMessage(session); |
67,28 → 102,49 |
// Format the mail message |
String fullMessage = MessageFormat.format(content, email.getArguments().toArray()); |
logger.info("FROM:" + email.getFrom()); |
if(email.getFromName() != null) |
logger.info("FROM:" + email.getFrom() + " but using: " + Globals.SYSTEM_EMAIL_BOX); |
//if(email.getFromName() != null) |
try { |
message.setFrom(new InternetAddress(email.getFrom(),email.getFromName())); |
message.setFrom(new InternetAddress(Globals.SYSTEM_EMAIL_BOX,Globals.SYSTEM_EMAIL_BOX)); |
} catch (UnsupportedEncodingException e) { |
logger.error(e,e); |
message.setFrom(new InternetAddress(email.getFrom())); |
} |
//else |
// message.setFrom(new InternetAddress(Globals.SYSTEM_EMAIL_BOX)); |
message.setSubject(email.getSubject() + " - não responda para este endereço"); |
if(email.isHtml()) |
{ |
fullMessage += email.getFrom() != null && email.getFrom().length()>0 ? "<br/><br/>Responda para " + email.getFrom() : ""; |
fullMessage += " <br/> <br/> <h5> Mensagem Segura - enviada através da Google Apps Api através de baco 2015 </h5>"; |
} |
else |
message.setFrom(new InternetAddress(email.getFrom())); |
message.setSubject(email.getSubject()); |
{ |
fullMessage += email.getFrom() != null && email.getFrom().length()>0 ? "\n\nResponda para " + email.getFrom() : ""; |
fullMessage += " \n\n Mensagem Segura - enviada através da Google Apps Api através de baco 2015"; |
} |
message.setText(fullMessage,"utf-8"); |
if(email.isHtml()) |
{ |
message.setHeader("Content-Type","text/html; charset=\"utf-8\""); |
} |
else |
{ |
message.setHeader("Content-Type","text/plain; charset=\"utf-8\""); |
} |
message.setHeader("Content-Transfer-Encoding", "quoted-printable"); |
logger.info("Sending email to transport:"+fullMessage); |
Transport.send(message); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentsService.java |
---|
135,7 → 135,7 |
List<String> arguments = new ArrayList<String>(); |
String cause = e.getCause() == null ? "" : e.getCause().toString(); |
arguments.add((e.toString() + "\n" + cause).replace("\n","<br/>")); |
Email email = new Email("Erro de importação de alunos",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments); |
Email email = new Email("Erro de importa��o de alunos",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments); |
new SendEmailService().sendEmail(email); |
} |
268,7 → 268,7 |
public static void main(String[] args) throws ServiceException |
{ |
String year = DatesUtils.getImportYear(); |
System.out.println("YEAR:" + year); |
System.out.println("YEAR:" + year); |
if(args != null && args.length > 0) |
year = args[0]; |
new ImportStudentsService().run(year); |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/SincronizeLastYearCourseUnitProgramsService.java |
---|
1,6 → 1,5 |
package pt.estgp.estgweb.services.sigesimports; |
import com.lowagie.text.pdf.SimpleBookmark; |
import jomm.dao.impl.AbstractDao; |
import org.apache.fop.apps.FOPException; |
import org.apache.log4j.Logger; |
16,7 → 15,6 |
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages; |
import pt.estgp.estgweb.utils.DatesUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import sun.tools.java.Imports; |
import javax.xml.transform.TransformerException; |
import java.io.IOException; |
109,7 → 107,8 |
if(novaFicha || (!cu.isValidProgram() && !cloneOnlyNews)) |
{ |
updated++; |
((CourseUnitProgramImpl)cu.getCourseUnitProgram()).cloneFrom(cuOld.getCourseUnitProgram()); |
CourseUnitProgramImpl cProgram = (CourseUnitProgramImpl) DaoFactory.getCourseUnitProgramDaoImpl().narrow(cu.getCourseUnitProgram()); |
cProgram.cloneFrom(cuOld.getCourseUnitProgram()); |
List<String> errors = new ArrayList<String>(); |
service.createPdf(cu,errors); |
} |
134,7 → 133,7 |
service.createPdf(cu,errors); |
} |
cu.setValidProgram(true); |
//cu.setValidProgram(true); |
} |
logger.info("STATS " + year); |
logger.info("Total: " + foundTotal); |
245,9 → 244,10 |
cuInto.setValidProgram(false); |
} |
logger.info("AQUI"); |
((CourseUnitProgramImpl)cuInto.getCourseUnitProgram()).cloneFrom(cuFrom.getCourseUnitProgram()); |
DaoFactory.getCourseUnitProgramDaoImpl().saveOrUpdate(((CourseUnitProgramImpl)cuInto.getCourseUnitProgram())); |
DaoFactory.getCourseUnitProgramPart2DaoImpl().saveOrUpdate(((CourseUnitProgramImpl)cuInto.getCourseUnitProgram()).getCourseUnitProgramPart2()); |
CourseUnitProgramImpl cProgram = (CourseUnitProgramImpl) DaoFactory.getCourseUnitProgramDaoImpl().narrow(cuInto.getCourseUnitProgram()); |
cProgram.cloneFrom(cuFrom.getCourseUnitProgram()); |
DaoFactory.getCourseUnitProgramDaoImpl().saveOrUpdate((cuInto.getCourseUnitProgram())); |
DaoFactory.getCourseUnitProgramPart2DaoImpl().saveOrUpdate((cuInto.getCourseUnitProgram()).getCourseUnitProgramPart2()); |
SaveCourseUnitProgram service = new SaveCourseUnitProgram(); |
List<String> errors = new ArrayList<String>(); |
/impl/src/java/pt/estgp/estgweb/services/ftpservices/FtpService.java |
---|
27,7 → 27,7 |
private static final Logger logger = Logger.getLogger(FtpService.class); |
private static final String FTP_PASSWORD = "pt.estgp.estgweb.services.ftpservices.FtpService.FTP_PASSWORD"; |
public static final String FTP_PASSWORD = "pt.estgp.estgweb.services.ftpservices.FtpService.FTP_PASSWORD"; |
public String run(FtpRequestForm ftpRequestForm, UserSession userSession) throws IOException |
59,8 → 59,12 |
{ |
((UserSessionImpl)userSession).put(FTP_PASSWORD,DesUtils.getInstance().encrypt(ftpRequestForm.getPassword())); |
} |
//ESTE CAMPO É COLOCADO EM MEMORIA LOGO NA AUTENTICACAO POR ISSO A POP3 PASS NAO CHEGA A SER USADA |
//E A POP3PASS DAVA PROBLEMAS SE O USER ALGUMA VEZ A TINHA INICIADO |
String passwordCode = (String) ((UserSessionImpl)userSession).get(FTP_PASSWORD); |
//System.out.println("SAVEDCODE"+passwordCode); |
if(password != null && password.trim().length() > 0) |
{ |
69,6 → 73,7 |
{ |
logger.info("using saved password"); |
password = DesUtils.getInstance().decrypt(passwordCode); |
//System.out.println("SAVEDPASS:" + password); |
} |
else if(userSession.getUser().getPop3password() != null && userSession.getUser().getPop3password().length() > 0) |
{ |
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java |
---|
1,19 → 1,21 |
package pt.estgp.estgweb.services.authenticate; |
import jomm.utils.DesUtils; |
import openldap.ILdapManager; |
import openldap.LdapManagerFactory; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.common.CommonServicesManager; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.services.common.CommonServicesManager; |
import pt.estgp.estgweb.services.ftpservices.FtpService; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import openldap.ILdapManager; |
import openldap.LdapManagerFactory; |
import java.util.HashMap; |
import java.util.Set; |
import java.util.Iterator; |
import java.util.Map; |
import java.util.Set; |
/* |
92,7 → 94,7 |
{ |
// String passwordAux = u.getPassword(); |
u.setPassword(password); |
//put password to be complete for advising |
CommonServicesManager.getInstance().adviseUpdate(u); |
// u.setPassword(passwordAux); |
u.setPassword(jomm.utils.BytesUtils.getDigestMD5Hex(password)); |
111,7 → 113,15 |
} |
logger.warn("user:" + username + " authenticated"); |
((UserSessionImpl)userSession).clearObjectsWithOpenTransaction(); |
//((UserSessionImpl)userSession).reset(); |
//((UserSessionImpl)userSession).clearObjectsWithOpenTransaction(); |
//DaoFactory.getUserSessionDaoImpl().flush(); |
//PASSWORD PARA SERVICOS FTP CLIENT |
((UserSessionImpl) userSession).put(FtpService.FTP_PASSWORD, DesUtils.getInstance().encrypt(password)); |
//put password to be complete for advising |
userSession.setName(u.getName()); |
userSession.setUsername(u.getUsername()); |
userSession.setUser(u); |
/impl/src/java/pt/estgp/estgweb/services/authenticate/LogoutService.java |
---|
1,12 → 1,10 |
package pt.estgp.estgweb.services.authenticate; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.User; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import org.apache.log4j.Logger; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
30,6 → 28,8 |
{ |
logger.warn("user:" + userSession.getCookie() + " logout"); |
((UserSessionImpl)userSession).reset(); |
//TODO NOVO |
((UserSessionImpl)userSession).clearObjectsWithOpenTransaction(); |
return userSession; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitView.java |
---|
48,8 → 48,10 |
private String objectives; |
private String programStreamId; |
private String evaluationStreamId; |
private boolean validProgram; |
private UserView validatorUser; |
private boolean validEvaluation = false; |
private int programSize; |
private String extension; |
private List<CourseUnitAssignementView> courseUnitAssignements; |
118,6 → 120,7 |
this.semestre = courseUnit.getSemestre(); |
this.courseCode = courseUnit.getCourseCode(); |
// this.objectives = courseUnit.getObjectives(); DEPRECATED |
if(courseUnit.getCourseUnitProgram() !=null && courseUnit.getCourseUnitProgram().getCourseUnitProgramPart2() != null) |
this.objectives = courseUnit.getCourseUnitProgram().getCourseUnitProgramPart2().getObjectivos(); |
135,6 → 138,12 |
} |
} |
if(courseUnit.getEvaluationStreamId() != null) |
{ |
evaluationStreamId = courseUnit.getEvaluationStreamId(); |
validEvaluation = courseUnit.getCourseUnitEvaluation().isClosed(); |
} |
// if(courseUnit.getBlog() != null) |
// this.blog = new BlogView(courseUnit.getBlog()); |
this.id = courseUnit.getId(); |
171,9 → 180,20 |
{ |
responsableId = courseUnit.getResponsableTeacher().getId(); |
} |
courseView = new CourseView(courseUnit.getCourse(),false); |
} |
public String getEvaluationStreamId() { |
return evaluationStreamId; |
} |
public boolean isValidEvaluation() { |
return validEvaluation; |
} |
public long getCoordinatorId() { |
return coordinatorId; |
} |
/impl/src/java/pt/estgp/estgweb/domain/UserImpl.java |
---|
1,7 → 1,5 |
package pt.estgp.estgweb.domain; |
import jomm.utils.DesUtils; |
/** |
* @author Jorge Machado |
* @date 2/Mar/2008 |
108,8 → 106,8 |
return false; |
} |
public String getPop3PassDecrypted() |
/*public String getPop3PassDecrypted() |
{ |
return DesUtils.getInstance().decrypt(getPop3password()); |
} |
}*/ |
} |
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java |
---|
102,6 → 102,22 |
} |
/** |
* Means that is teacher os responsable teacher or from course commission |
* Only works in open transaction |
* |
* Needs Course and Responsable Teacher loaded |
*/ |
public boolean isFromCourseUnitCommission(UserSession userSession) |
{ |
return userSession.getUser()!= null && |
(((UserImpl) userSession.getUser()).isTeacherOfCourseUnit(getId(), true) |
|| (getResponsableTeacher() != null && getResponsableTeacher().getId() == userSession.getUser().getId()) |
|| userSession.getUser().hasRole(getCourse().getValidationRole()) |
); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseDaoImpl.java |
---|
15,7 → 15,7 |
import java.util.List; |
import static org.hibernate.criterion.Restrictions.eq; |
import static org.hibernate.criterion.Restrictions.*; |
/** |
* @author Jorge Machado |
186,6 → 186,12 |
.list(); |
} |
public List<Course> findAllNotIn(String importYear) |
{ |
return createCriteria().add(not(eq("importYear", importYear))) |
.list(); |
} |
// Duarte Santos |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java |
---|
6,13 → 6,13 |
import org.hibernate.criterion.Criterion; |
import org.hibernate.criterion.Order; |
import org.hibernate.sql.JoinFragment; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.CourseUnitImpl; |
import pt.estgp.estgweb.domain.Teacher; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.dao.DaoUtils; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import pt.estgp.estgweb.utils.DatesUtils; |
import java.util.ArrayList; |
import java.util.List; |
import static org.hibernate.criterion.Restrictions.*; |
429,4 → 429,112 |
q.setLong(0,unit); |
return q.list(); |
} |
public static class CourseMissingValidationProgram |
{ |
public Course course; |
public List<CourseUnit> courseUnits; |
} |
public List<CourseMissingValidationProgram> loadMissingProgramValidate(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(DatesUtils.getImportYear()); |
for(Course course: courses) |
{ |
if(userSession.getUser().hasRole(course.getValidationRole())) |
{ |
List<CourseUnit> courseUnits = loadMissingProgramValidateGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
{ |
CourseMissingValidationProgram c = new CourseMissingValidationProgram(); |
c.course = course; |
c.courseUnits = courseUnits; |
result.add(c); |
} |
} |
} |
return result; |
} |
public static class CourseMissingValidationEvaluation |
{ |
public Course course; |
public List<CourseUnit> courseUnits; |
} |
public List<CourseMissingValidationEvaluation> loadMissingEvaluationValidate(UserSession userSession) |
{ |
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>(); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(); |
for(Course course: courses) |
{ |
if(userSession.getUser().hasRole(course.getValidationRole())) |
{ |
List<CourseUnit> courseUnits = loadMissingEvaluationValidateGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
{ |
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation(); |
c.course = course; |
c.courseUnits = courseUnits; |
result.add(c); |
} |
} |
} |
return result; |
} |
/* |
* Neste caso apenas se validam as do ano anterior*/ |
public List<CourseUnit> loadMissingEvaluationValidateGivenCourse(long courseId) |
{ |
return createCriteria() |
.createAlias("course", "c") |
.createAlias("courseUnitEvaluation", "ce") |
.add(eq("c.id", courseId)) |
.add(not(eq("importYear", DatesUtils.getImportYear()))) |
.add(ge("importYear", "201415")) |
.add((eq("ce.closed", false))) |
.list(); |
} |
public List<CourseMissingValidationEvaluation> loadMissingEvaluation(UserSession userSession) |
{ |
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>(); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(); |
for(Course course: courses) |
{ |
if(userSession.getUser().hasRole(course.getValidationRole())) |
{ |
List<CourseUnit> courseUnits = loadMissingEvaluation(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
{ |
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation(); |
c.course = course; |
c.courseUnits = courseUnits; |
result.add(c); |
} |
} |
} |
return result; |
} |
public List<CourseUnit> loadMissingEvaluation(long courseId) |
{ |
return createCriteria() |
.createAlias("course", "c") |
.add(eq("c.id", courseId)) |
.add(not(eq("importYear", DatesUtils.getImportYear()))) |
.add(ge("importYear", "201415")) |
.add(isNull("courseUnitEvaluation")) |
.list(); |
} |
public CourseUnit loadByEvaluationStreamId(String identifier) |
{ |
return |
(CourseUnit) |
createCriteria() |
.add(eq("evaluationStreamId",identifier)) |
.uniqueResult(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/UserSessionImpl.java |
---|
1,22 → 1,18 |
package pt.estgp.estgweb.domain; |
import org.apache.commons.io.output.ByteArrayOutputStream; |
import java.io.Serializable; |
import java.io.ByteArrayInputStream; |
import java.io.ObjectOutputStream; |
import java.io.IOException; |
import java.util.*; |
import java.beans.XMLEncoder; |
import java.beans.XMLDecoder; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
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.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import java.io.Serializable; |
import java.util.Date; |
import java.util.HashSet; |
import java.util.Iterator; |
import java.util.Set; |
/** |
* @author Jorge Machado |
119,22 → 115,30 |
public void clearObjects() |
{ |
if (getObjects() == null || getObjects().size() == 0) |
{ |
return; |
} |
System.out.println("Clearing session from " + getObjects().size() + " objects"); |
for(SessionObject obj: getObjects()) |
System.out.println(obj.getId().getKeyId()); |
if(removeList != null) |
removeList.addAll(getObjects()); |
else |
removeList = getObjects(); |
setObjects(null); |
//todo NOVO Authenticate |
getObjects().clear(); |
} |
public void clearObjectsWithOpenTransaction() |
{ |
clearObjects(); |
if(removeList != null && removeList.size() > 0) |
{ |
DaoFactory.getSessionObjectDaoImpl().evictAndDelete(removeList); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitEvaluationImpl.java |
---|
41,10 → 41,54 |
} |
public Document getDom(){ |
public Document getDom(CourseUnit cu){ |
Document dom = DOMDocumentFactory.getInstance().createDocument(); |
Element elemCourseUnitEvaluationImpl = dom.addElement("CourseUnitEvaluation"); |
Element anoLectivo = elemCourseUnitEvaluationImpl.addElement("anoLectivo"); |
anoLectivo.setText(cu.getImportYear()); |
Element curso = elemCourseUnitEvaluationImpl.addElement("curso"); |
Element nomeCur = curso.addElement("nome"); |
nomeCur.setText(cu.getCourseName()); |
Element codigoCur = curso.addElement("codigo"); |
codigoCur.setText(cu.getCourseCode()); |
Element unidadecurricular = elemCourseUnitEvaluationImpl.addElement("unidadecurricular"); |
Element nome = unidadecurricular.addElement("nome"); |
nome.setText(cu.getName()); |
Element codigo = unidadecurricular.addElement("codigo"); |
codigo.setText(cu.getCode()); |
if(cu.getResponsableTeacher() != null) |
{ |
Element responsavel = elemCourseUnitEvaluationImpl.addElement("responsavel"); |
Element nomeRes = responsavel.addElement("nome"); |
nomeRes.setText(cu.getResponsableTeacher().getName()); |
Element emailRes = responsavel.addElement("email"); |
if(cu.getResponsableTeacher().getEmail()!= null) |
emailRes.setText(cu.getResponsableTeacher().getEmail()); |
else |
emailRes.setText(""); |
} |
if(cu.getTeachers() != null && cu.getTeachers().size()>0) |
{ |
for(Teacher t: cu.getTeachers()) |
{ |
Element docente = elemCourseUnitEvaluationImpl.addElement("docente"); |
Element nomeRes = docente.addElement("nome"); |
nomeRes.setText(t.getName()); |
Element emailRes = docente.addElement("email"); |
if(t.getEmail()!= null) |
emailRes.setText(t.getEmail()); |
else |
emailRes.setText(""); |
} |
} |
Element id = elemCourseUnitEvaluationImpl.addElement("id"); |
id.setText(getId()+""); |
/impl/src/java/pt/estgp/estgweb/filters/chains/ResourceAccessControlEnum.java |
---|
16,7 → 16,9 |
superUserDomain("resource.access.superDomain",new ResourceAccessControlSuperDomainFilter()), |
courseunitDeliverableDomain("resource.access.courseunitDeliverableDomain",new ResourceAccessControlCourseUnitDeliverableFilter()), |
courseunitDomain("resource.access.courseunitDomain",new ResourceAccessControlCourseUnitFilter()), |
// Duarte Santos |
// Duarte Santos |
courseunitEvaluationDomain("resource.access.courseunitEvaluationDomain",new ResourceAccessControlCourseUnitEvaluationFilter()), |
surveyStatsDomain("resource.access.survey", new ResourceAccessControlSurvey()), |
processDomain("resource.access.process", new ResourceAccessControlProcessDomainFilter()); |
/impl/src/java/pt/estgp/estgweb/filters/filters/ResourceAccessControlCourseUnitEvaluationFilter.java |
---|
New file |
0,0 → 1,24 |
package pt.estgp.estgweb.filters.filters; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.CourseUnitImpl; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlFilter; |
/** |
* @author Jorge Machado |
* @date 4/Jun/2008 |
* @see pt.estgp.estgweb.filters.filters |
*/ |
public class ResourceAccessControlCourseUnitEvaluationFilter extends ResourceAccessControlFilter |
{ |
private static final Logger logger = Logger.getLogger(ResourceAccessControlCourseUnitEvaluationFilter.class); |
public boolean canAccessResource(UserSession userSession, String identifier) |
{ |
CourseUnitImpl c = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().loadByEvaluationStreamId(identifier); |
return c.isFromCourseUnitCommission(userSession); |
} |
} |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/java/pt/estgp/estgweb/web/LayoutController.java |
---|
1,5 → 1,6 |
package pt.estgp.estgweb.web; |
import jomm.utils.DesUtils; |
import jomm.web.ftp.IFile; |
import jomm.web.ftp.impl.FtpFile; |
import jomm.web.utils.NavPlace; |
10,8 → 11,9 |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import pt.estgp.estgweb.domain.UserImpl; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.services.ftpservices.FtpService; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException; |
149,7 → 151,9 |
{ |
logger.warn("Will access using user and pass authnenticated to connect FTP " + serverStr); |
user= username; |
pass= ((UserImpl)userSession.getUser()).getPop3PassDecrypted(); |
String passwordCode = (String) ((UserSessionImpl)userSession).get(FtpService.FTP_PASSWORD); |
pass= DesUtils.getInstance().decrypt(passwordCode); |
//pass= ((UserImpl)userSession.getUser()).getPop3PassDecrypted(); |
} |
FtpServer ftpServer = FtpServer.getNewServer(server, user, pass); |
FTPClient client = ftpServer.getClient(); |
/impl/src/java/pt/estgp/estgweb/web/soap/HelloWorld.java |
---|
New file |
0,0 → 1,17 |
package pt.estgp.estgweb.web.soap; |
import javax.jws.WebMethod; |
import javax.jws.WebService; |
import javax.jws.soap.SOAPBinding; |
/** |
* Created by jorgemachado on 13/10/15. |
* SOAP Tutorial |
*/ |
//Service Endpoint Interface |
@WebService |
@SOAPBinding(style = SOAPBinding.Style.RPC) |
public interface HelloWorld { |
@WebMethod |
String getHelloWorldAsString(); |
} |
/impl/src/java/pt/estgp/estgweb/web/soap/HelloWorldImpl.java |
---|
New file |
0,0 → 1,17 |
package pt.estgp.estgweb.web.soap; |
import javax.jws.WebService; |
/** |
* SOAP Tutorial |
*/ |
@WebService(endpointInterface = "pt.estgp.estgweb.web.soap.HelloWorld") |
public class HelloWorldImpl implements HelloWorld{ |
@Override |
public String getHelloWorldAsString() { |
return "Hello World JAX-WS"; |
} |
} |
/impl/src/hbm/pt/estgp/estgweb/domain/UserSession.hbm.xml |
---|
18,7 → 18,7 |
<property name="name" type="string"/> |
<property name="username" type="string"/> |
<many-to-one name="user" class="pt.estgp.estgweb.domain.User" outer-join="true" lazy="false"/> |
<set name="objects" cascade="all" inverse="true"><!--lazy="true">--> |
<set name="objects" cascade="save-update" inverse="true"><!--lazy="true">--> |
<key column="cookie"/> |
<one-to-many class="pt.estgp.estgweb.domain.SessionObject"/> |
</set> |
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml |
---|
31,8 → 31,10 |
<property name="evaluationStreamId" type="string" index="evaluationStreamIdIndex" /> |
<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="courseUnitProgram" class="pt.estgp.estgweb.domain.CourseUnitProgram" lazy="proxy"/> |
<many-to-one name="courseUnitEvaluation" class="pt.estgp.estgweb.domain.CourseUnitEvaluation" lazy="proxy"/> |
<!--<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"/> |
260,6 → 262,7 |
<property name="qualApreciacaoCumprimentoPrograma" type="text"/> |
<property name="qualConclusoes" type="text"/> |
<subclass name="pt.estgp.estgweb.domain.CourseUnitEvaluationImpl" discriminator-value="CourseUnitEvaluationImpl"/> |
</class> |
/impl/src/web/user/courseunits/courseunitEvaluation.jsp |
---|
52,7 → 52,7 |
%> |
<div class="seccao"> |
<h2> |
<bean:message key="courseunit.evaluation"/> |
<bean:message key="courseunit.evaluation"/> - <%=CourseUnitView.getName()%> / <%=CourseUnitView.getImportYear()%> |
</h2> |
<p class="WARNING"><bean:message key="courseunit.evaluation.warning"/></p> |
74,7 → 74,7 |
if(u instanceof pt.estgp.estgweb.domain.Teacher) |
{ |
pt.estgp.estgweb.domain.Teacher t = (pt.estgp.estgweb.domain.Teacher) u; |
if(t.isTeacherOfCourseUnit(CourseUnitView.getId())) |
if(t.isTeacherOfCourseUnit(CourseUnitView.getId()) || (CourseUnitView.getResponsableTeacher() != null && CourseUnitView.getResponsableTeacher().getId() == t.getId())) |
{ |
editTeacherPart = true; |
} |
91,7 → 91,7 |
<% |
boolean closed = CourseUnitEvaluationForm.getCourseUnitEvaluationView().getCourseUnitEvaluation().isClosed(); |
//todo é necessário um servico para ver se tem estes papeis |
if(CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId() |
if((CourseUnitView.getResponsableTeacher() != null && CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId()) |
|| |
CourseUnitView.isOwnedBy(UserSession.getUser(),false) |
|| |
102,7 → 102,9 |
if(closed) |
{ |
%> |
<h2>Este formulário está FECHADO para edição</h2> |
<h2>Este formulário está FECHADO para edição |
</h2> |
<% |
} |
else |
112,19 → 114,29 |
<% |
} |
if(closed) |
{ |
%> |
<script> |
$( document ).ready(function() { |
$("#formEdit :input").attr("disabled", true); |
<% |
if(closed) |
{ |
%> |
$("#formEdit :input").attr("disabled", true); |
<% |
} |
if(!editTeacherPart && !editCoordinatorPart) |
{ |
%> |
$("#formEdit :input").attr("disabled", true); |
<% |
} |
%> |
}); |
</script> |
<% |
} |
%> |
<div id="formEdit"> |
<html:form action="/user/courseUnitEvaluationController"> |
<input type="hidden" name="dispatch" value="saveEvaluation"> |
133,9 → 145,27 |
<%--DOCENTE--%> |
<logic:equal value="true" name="CourseUnitEvaluationForm" property="courseUnitEvaluationView.fechar"> |
<p class="alert-success">Esta avaliação está publicada no DTP em formato PDF</p> |
<p class="alert-success">Esta avaliação será publicada no DTP em formato PDF após ordens dos orgãos competentes</p> |
</logic:equal> |
<% |
if(closed) |
{ |
%> |
<p class="alert-success">Esta avaliação está concluida e aprovada pela comissão de curso</p> |
<% |
if(editCoordinatorPart || editTeacherPart) |
{ |
%> |
<p class="WARNING"> <a href="<%=request.getContextPath()%>/repositoryStream/<%=CourseUnitView.getEvaluationStreamId()%>">Relatório de avaliação em PDF</a></p> |
<% |
} |
%> |
<% |
} |
%> |
<table class="dataTable tableDisabled" width="100%"> |
<tr> |
<th colspan="2">Dados alterados pelo Docente da Unidade</th> |
251,15 → 281,22 |
<tr> |
<td colspan="2"> |
<% |
if(!closed) |
if(!closed && (editCoordinatorPart || editTeacherPart)) |
{ |
%> |
<input type="button" value="<bean:message key="save"/>" onclick="set(form,'saveEvaluation');form.submit()"/> |
<input type="button" value="FECHAR E PUBLICAR" onclick="set(form,'publishEvaluation');form.submit()"/> |
<% |
} |
if(!closed && editCoordinatorPart) |
{ |
%> |
<input type="button" value="VALIDAR e FECHAR pela Comissão de Curso" onclick="set(form,'publishEvaluation');form.submit()"/> |
<% |
} |
%> |
</td> |
</tr> |
/impl/src/web/user/courseunits/courseunit.jsp |
---|
30,11 → 30,39 |
<jomm:messages/> |
<div id="contentPane"> |
<h1>${CourseUnitView.name} (${CourseUnitView.code}) - (${CourseUnitView.semestre})</h1> |
<h1>${CourseUnitView.name} (${CourseUnitView.code}) - (${CourseUnitView.semestre}) - ${CourseUnitView.importYear})</h1> |
<table width="100%" cellpadding="0" cellspacing="2" border="0"> |
<tr> |
<td valign="top" class="seccao"> |
<% |
if((CourseUnitView.getResponsableTeacher() != null && CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId()) |
|| |
CourseUnitView.isOwnedBy(UserSession.getUser(),false) |
|| |
//Validation Role e o papel da comissão de curso |
UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole())) |
{ |
if(CourseUnitView.isValidEvaluation()) |
{ |
%> |
<p> |
<label class="INFO"> <a href="<%=request.getContextPath()%>/repositoryStream/<%=CourseUnitView.getEvaluationStreamId()%>">Relatório de avaliação em PDF</a></label> |
</p> |
<% |
} |
else |
{ |
%> |
<p> |
<label class="WARNING">Atenção o relatório de avaliação deve ser preenchido no ano 2014-2015 (Entrar no 2014-2015 pelo menu lateral esquerdo antes de clicar em relatório de avaliação e confirmar no titulo da unidade).</label> |
</p> |
<% |
} |
} |
%> |
<baco:hasRole role="admin,all,services"> |
<ul> |
<li> |
/impl/src/web/user/courseunits/menu.jsp |
---|
9,6 → 9,7 |
<%@ page import="pt.estgp.estgweb.domain.UserImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.UserSession" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.utils.ConfigManager" %> |
<%@ 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" %> |
70,9 → 71,9 |
if(CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId() |
|| |
CourseUnitView.isOwnedBy(UserSession.getUser(),false) |
// || |
//Validation Role e o papel da comissão de curso |
//UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole()) |
|| |
// Validation Role e o papel da comissão de curso |
UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole()) |
) |
{ |
%> |
87,11 → 88,11 |
} |
%> |
<li> |
<%--<li> |
<baco:isTeacherOfCourseUnit courseUnitId="${CourseUnitView.id}"> |
<html:link action="/user/startLoadCourseUnitDossierFromHome.do?id=${CourseUnitView.id}"><bean:message key="courseunit.dossier.tecnico.pedagogico"/></html:link> |
</baco:isTeacherOfCourseUnit> |
</li> |
</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> |
146,12 → 147,19 |
<li> |
<img alt="Pastas" src="<%=request.getContextPath()%>/imgs/folder.gif"> <html:link action="/user/startLoadCourseUnitContentsFromHome?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.contents"/></html:link> |
</li> |
<% |
if(Integer.parseInt(CourseUnitView.getImportYear()) < Integer.parseInt("201516")) |
{ |
%> |
<li> |
<img alt="Pastas" src="<%=request.getContextPath()%>/imgs/folder.gif"> <html:link action="/user/startLoadCourseUnitPresencesFromHome?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.presences"/></html:link> |
</li> |
<li> |
<img alt="Pastas" src="<%=request.getContextPath()%>/imgs/folder.gif"> <html:link action="/user/startLoadCourseUnitGradesFromHome?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.grades"/></html:link> |
</li> |
<% |
} |
%> |
<li> |
<img alt="Pastas" src="<%=request.getContextPath()%>/imgs/folder.gif"> <html:link action="/user/startLoadCourseUnitDtpFromHome?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.dtp"/></html:link> |
</li> |
/impl/src/web/user/home/teacher.jsp |
---|
6,8 → 6,11 |
<%@ 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" %> |
<%@ page import="jomm.dao.utils.HibernateUtils" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl" %> |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<div class="portal"> |
<logic:notMatch value="TeacherImpl" name="UserSession" property="user.class.name"> |
25,8 → 28,8 |
<div class="block"> |
<% |
java.util.List<String> years = new java.util.ArrayList<String>(); |
years.add("201516"); |
years.add("201415"); |
years.add("201314"); |
java.util.Collections.sort(years, new java.util.Comparator<String>() |
{ |
206,6 → 209,127 |
<baco:isModuleOn module="todos"> |
<jsp:include page="/user/home/todos.jsp"/> |
</baco:isModuleOn> |
<% |
try{ |
HibernateUtils.getCurrentSession().beginTransaction(); |
List<CourseUnitDaoImpl.CourseMissingValidationProgram> result = DaoFactory.getCourseUnitDaoImpl().loadMissingProgramValidate(UserSession); |
List<CourseUnitDaoImpl.CourseMissingValidationEvaluation> result2 = DaoFactory.getCourseUnitDaoImpl().loadMissingEvaluationValidate(UserSession); |
List<CourseUnitDaoImpl.CourseMissingValidationEvaluation> result3 = DaoFactory.getCourseUnitDaoImpl().loadMissingEvaluation(UserSession); |
if(result.size() > 0 || result2.size() > 0 || result3.size()>0) |
{ |
%> |
<div class="block"> |
<p class="WARNING"><label class="WARNING"> Tarefas das Comissões de Curso</label></p> |
<ul> |
<% |
if(result.size()>0) |
{ |
%> |
<li> |
<h1>Fichas curriculares por validar</h1> |
<ul> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></li> |
<% |
} |
%> |
</ul> |
</li> |
<% |
} |
%> |
<% |
if(result2.size()>0) |
{ |
%> |
<li> |
<h1>Relatórios de avaliação por validar</h1> |
<p>Expanda os cursos e clique nas unidades para validar os relatórios de avaliação.</p> |
<p>No final de cada relatório existe um botão de validação para os membros das comissões dos cursos respectivos.</p> |
<ul> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result2) |
{ |
%> |
<li> |
<h2><a href="javascript:showOrHide('evaluationValidate<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>)</h2> |
<ul id="evaluationValidate<%=mis.course.getId()%>" style="display: none"> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getImportYear()%> / <%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</li> |
<% |
} |
%> |
</ul> |
</li> |
<% |
} |
%> |
<% |
if(result3.size()>0) |
{ |
%> |
<li> |
<h1>Relatórios de avaliação ainda não preenchidos</h1> |
<ul> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result3) |
{ |
%> |
<li> |
<h2><a href="javascript:showOrHide('evaluationFill<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>)</h2> |
<ul id="evaluationFill<%=mis.course.getId()%>" style="display: none"> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getImportYear()%> / <%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</li> |
<% |
} |
%> |
</ul> |
</li> |
<% |
} |
%> |
</ul> |
</div> |
<% |
} |
HibernateUtils.getCurrentSession().getTransaction().commit(); |
}catch(Throwable e) |
{ |
System.out.println(e); |
e.printStackTrace(); |
} |
%> |
</td> |
</tr> |
</tbody> |
/impl/etc/soap/jaxws/streambuffer.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/etc/soap/jaxws/gmbal-api-only.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/etc/soap/jaxws/stax-ex.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/etc/soap/jaxws/jaxws-rt.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/etc/soap/jaxws/policy.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/etc/soap/jaxws/jaxb-impl.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/etc/soap/jaxws/jaxws-api.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/etc/soap/jaxws/management-api.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |