Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1253 → Rev 1267

/impl/importRoutines.xml
55,6 → 55,7
<java classname="pt.estgp.estgweb.services.jobs.JobDeamon" classpath="${build.dir.classes}" classpathref="pathToToolsLib" fork="true">
<jvmarg value="-Djava.security.egd=file:/dev/urandom"/>
</java>
 
</target>
 
 
/impl/conf/language/MessageResources.properties
148,6 → 148,9
user.role.studentsID=Alunos de Informação e Documentação
user.role.studentsFSIR=Alunos de Fontes de Informação e Serviço de Referência
user.role.sendMailMessages=Enviar Mensagens de Correio Electronico
user.role.pedagogicCouncilSecretariat=Secretariado do Conselho Pedagógico
user.role.directionSecretariat=Secretariado da Direcção
user.role.studentsSecretariat=Secretaria de Alunos
 
user.role.admin,teacher=Admin e Professor
user.role.assessementsTester=Testador de Provas de Avaliação
/impl/conf/app.properties
17,8 → 17,12
 
email.local.suffix=estgp.pt
email.server=smtp.gmail.com
#to use example: bacodev1@estgp.pt bacodev2@estgp.pt
email.user.prefix=bacodev
email.user.sufix=@estgp.pt
email.user.count=10
email.user=bacodev@estgp.pt
email.password=Agreyq54p7870#
email.password=Agreyq54p7870#!
email.from=bacodev@estgp.pt
email.templates.dir=@email.templates.dir@
#email.server.security=
214,6 → 218,10
user.role.1524=pedagogicCouncil
user.role.1525=pedagogicCouncil.president
 
user.role.1611=pedagogicCouncilSecretariat
user.role.1612=directionSecretariat
user.role.1613=studentsSecretariat
 
user.role.18=erasmusCouncil
user.role.19=courseCoordinator
user.role.20=studentAssociation
/impl/conf/template/email/message_en.txt
1,26 → 1,21
# 0 : From
# 1 : Subject
# 2 : Text
# 3 : person
# 4 : target
#
# Message Email
#
 
<html>
<head>
<title>{1}</title>
</head>
<body>
<h3>Dear {4}</h3>
<p>Dear {4}</p>
 
<p>A new message has been placed from {0}:</p>
<p>Message from: {0}</p>
<p>Subject: {1}</p>
 
{1}
 
{2}
 
<p>Best Regards {3}</p>
 
<p>Regards, {0}</p>
<p>Reply to email: {5}</p>
 
---------------------------------------------
<p>Escola Superior de Tecnologia e Gestão</p>
<p>Instituto Politécnico de Portalegre</p>
/impl/conf/template/email/message_pt.txt
1,20 → 1,23

 
<html>
<head>
<title>{1}</title>
</head>
<body>
<!--<h3>Caros {4}</h3>-->
 
<!--<p>Um nova mensagem foi enviada por {0}:</p>-->
 
{1}
<p><i>Mensagem de:</i> {0}</p>
<p><i>Assunto:</i> <b><u>{1}</u></b></p>
 
<p>Caros {4}</p>
 
{2}
 
<p>Cumprimentos, {3}</p>
 
<p>Cumprimentos</p>
<p>{0}</p>
<p>Se pretender responder, use o email: {5}</p>
 
---------------------------------------------
<p>Escola Superior de Tecnologia e Gestão</p>
<p>Instituto Politécnico de Portalegre</p>
/impl/src/java/pt/estgp/estgweb/Globals.java
126,6 → 126,11
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_USER_PREFIX = ConfigProperties.getProperty("email.user.prefix");
public static final String EMAIL_SERVER_USER_SUFIX = ConfigProperties.getProperty("email.user.sufix");
public static final int EMAIL_SERVER_USER_COUNT = ConfigProperties.getIntProperty("email.user.count");
 
public static final String EMAIL_SERVER_USERNAME = ConfigProperties.getProperty("email.user");
public static final String EMAIL_SERVER_PASSWORD = ConfigProperties.getProperty("email.password");
 
/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java
33,9 → 33,29
 
private static final String gradeUnitTemplate = Globals.TEMPLATE_EMAIL_PATH + "/" + Globals.EMAIL_GRADE_UNIT_TEMPLATE;
 
static String[] serverEmails;
static int serverEmailPos = -1;
 
static{
serverEmails = new String[Globals.EMAIL_SERVER_USER_COUNT];
for(int i = 1;i<= Globals.EMAIL_SERVER_USER_COUNT;i++)
{
serverEmails[i-1] = Globals.EMAIL_SERVER_USER_PREFIX + i + Globals.EMAIL_SERVER_USER_SUFIX;
}
}
private static synchronized String getRoundRobinEmailUser()
{
serverEmailPos++;
if(serverEmailPos >= Globals.EMAIL_SERVER_USER_COUNT)
{
serverEmailPos = 0;
}
return serverEmails[serverEmailPos];
}
public void sendEmail(Email email) throws ServiceException
{
try{
final String sendFromAddress = getRoundRobinEmailUser();
 
// Set up properties for mail session
Properties props = System.getProperties();
50,7 → 70,7
props.put("mail.smtp.port", ""+ Globals.EMAIL_SERVER_SECURITY_TLS);
authenticator = new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
return new PasswordAuthentication(sendFromAddress, password);
}
};
}
63,7 → 83,7
props.put("mail.smtp.port", Globals.EMAIL_SERVER_SECURITY_SSL);
authenticator = new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
return new PasswordAuthentication(sendFromAddress,password);
}
};
}
104,13 → 124,13
 
 
 
logger.info("FROM:" + email.getFrom() + " but using: " + Globals.SYSTEM_EMAIL_BOX);
logger.info("FROM:" + email.getFrom() + " but using: " + sendFromAddress);
//if(email.getFromName() != null)
try {
message.setFrom(new InternetAddress(Globals.SYSTEM_EMAIL_BOX,Globals.SYSTEM_EMAIL_BOX));
message.setFrom(new InternetAddress(sendFromAddress,sendFromAddress));
} catch (UnsupportedEncodingException e) {
logger.error(e,e);
message.setFrom(new InternetAddress(email.getFrom()));
//message.setFrom(new InternetAddress(sendFromAddress));
}
//else
// message.setFrom(new InternetAddress(Globals.SYSTEM_EMAIL_BOX));
213,6 → 233,11
 
public Email getMessageEmail(String from, String subject,String text, LangEnum langEnum, String target, List<String> emails, User user)
{
return getMessageEmailAdulteredFromEmail(null,from,subject,text,langEnum,target,emails,user);
}
 
public Email getMessageEmailAdulteredFromEmail(String fromEmail, String from, String subject,String text, LangEnum langEnum, String target, List<String> emails, User user)
{
// # 0 : From
// # 1 : Subject
// # 2 : Text
224,6 → 249,7
arguments.add(text);
arguments.add(user.getName());
arguments.add(target);
arguments.add(fromEmail);
 
String template;
 
243,7 → 269,10
recipients.add(e);
}
logger.info("subject: " + subject);
logger.info("user: " + user.getEmail());
if(fromEmail == null)
logger.info("user: " + user.getEmail());
else
logger.info("user altered to: " + fromEmail);
logger.info("template: " + template);
logger.info("arguments:");
for(String arg: arguments)
252,7 → 281,8
for(String rec: recipients)
logger.info(rec);
logger.info("arguments end");
Email email = new Email(subject ,recipients,user.getEmail(),template,arguments,Message.RecipientType.BCC);
fromEmail = fromEmail == null ? user.getEmail() : fromEmail;
Email email = new Email(subject ,recipients,fromEmail,template,arguments,Message.RecipientType.BCC);
email.setFromName(from + " (ESTG)");
return email;
}
/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/dao/AulaDao.java
113,12 → 113,13
}
 
 
public ArrayList<Aula> loadAulas(Integer codigoInstituicao, String anolectivo, String codigoUnidade, String semestre, String codigoCurso) throws SQLException {
public ArrayList<Aula> loadAulas(Integer codigoInstituicao, String anolectivo, String codigoUnidade, String semestre, String codigoCurso, Connection conn) throws SQLException {
Integer limiteSalaInferior = codigoInstituicao * 1000;
Integer limiteSalaSuperior = (codigoInstituicao + 1) * 1000;
 
boolean closeConnection = conn == null;
ArrayList<Aula> aulas = new ArrayList<Aula>();
Connection conn = getCurrentConnection();
if(conn == null)
conn = getCurrentConnection();
String query;
query = "SELECT "
+ "CSH.T_OCUPACOES.DT_OCUPACAO AS DT_OCUPACAO,"
203,7 → 204,8
//close the reader
aReader.close();
catCMD.close();
conn.close();
if(closeConnection)
conn.close();
return aulas;
}
 
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportSumariesJson.java
26,6 → 26,7
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;
import pt.estgp.estgweb.services.sigesimports.oracle.dao.AulaDao;
import pt.estgp.estgweb.services.sigesimports.oracle.dao.connection.ConnectionManager;
import pt.estgp.estgweb.utils.Dom4jUtil;
import pt.estgp.estgweb.web.FtpServer;
import pt.ipportalegre.siges.web.services.SiGesWEB;
39,6 → 40,7
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
104,8 → 106,12
//List<Long> cUs = DaoFactory.getCourseUnitDaoImpl().loadIds(year,DatesUtils.getSemestre());
List<Long> cUs = DaoFactory.getCourseUnitDaoImpl().loadIds(year,semestre);
String nowCode = "";
Connection conn = ConnectionManager.openConnection();
boolean connError = false;
for(Long cId: cUs)
{
if(connError)
break;
nowCode = "" + cId;
countUnits++;
try
130,8 → 136,10
//comentario de teste
try
{
 
//arrayOfAulas = service.getSiGesWEBSoap().getAulas(new BigDecimal(DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode()), year,c.getCode(),semestre,c.getCourse().getCode());
arrayOfAulas = AulaDao.getInstance().loadAulas(DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode(),year,c.getCode(),semestre,c.getCourse().getCode());
arrayOfAulas = AulaDao.getInstance().loadAulas(DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode(),year,c.getCode(),semestre,c.getCourse().getCode(),conn);
 
break;
}
catch(Throwable t)
140,11 → 148,12
{
logger.error("Giving up of courseUnit:" + cId + " ( " + c.getName() + " ) ",t);
serviceLogError("Giving up of courseUnit:" + cId + " ( " + c.getName() + " ) ",t);
connError = true;
break;
}
 
 
logger.error("WebService Fail, trying " + tries + " times sleeping a while");
logger.error("WebService Fail, trying " + tries + " times sleeping a while",t);
serviceLogError("WebService Fail, trying " + tries + " times sleeping a while " + t.toString());
serviceLogError("WebService Fail, trying " + tries + " times sleeping a while " + t.getCause());
Thread.sleep(5000);
261,6 → 270,7
serviceLogError(e.toString(),e);
}
}
conn.close();
 
setProgress(100);
serviceLogError("Finish commiting");
/impl/src/java/pt/estgp/estgweb/services/announcements/CreateAnnouncementService.java
120,7 → 120,7
return userViews;
}
 
public Integer sendMessage(HttpServletRequest request, String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target, String text,String subject, UserSession userSession)
public Integer sendMessage(HttpServletRequest request, String fromEmail, String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target, String text,String subject, UserSession userSession)
{
//List<User> users = DaoFactory.getAnnouncementDaoImpl().findUsers(year,department,courseId,courseUnitId,semestre,target);
AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getAnnouncementDaoImpl().findUsersEmails(year, department, courseId, courseUnitId, semestre, target);
139,7 → 139,7
iter.remove();
contador++;
}
Email e = sendEmailService.getMessageEmail(
Email e = sendEmailService.getMessageEmailAdulteredFromEmail(fromEmail,
jomm.utils.MessageResources.getMessage(request,"user.role." + from),
subject,
text,
/impl/src/java/pt/estgp/estgweb/web/form/announcements/MessagesForm.java
18,6 → 18,7
 
private String importYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYearCreateTransaction();
 
private String fromEmail;
private String fromRole;
private CourseView courseView;
private String departamento;
80,6 → 81,14
this.courseViews = courseViews;
}
 
public String getFromEmail() {
return fromEmail;
}
 
public void setFromEmail(String fromEmail) {
this.fromEmail = fromEmail;
}
 
public MessagesForm()
{
 
/impl/src/java/pt/estgp/estgweb/web/controllers/announcements/MessagesController.java
138,7 → 138,7
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{request, mF.getFromRole(),mF.getImportYear(),mF.getDepartamento(),mF.getCourseId(),mF.getCourseUnitId(),mF.getSemestre(), CreateAnnouncementService.MessageTarget.parse(mF.getTarget()),mF.getText(),mF.getSubject()};
Object[] args = new Object[]{request, mF.getFromEmail(),mF.getFromRole(),mF.getImportYear(),mF.getDepartamento(),mF.getCourseId(),mF.getCourseUnitId(),mF.getSemestre(), CreateAnnouncementService.MessageTarget.parse(mF.getTarget()),mF.getText(),mF.getSubject()};
// String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target,
Integer size = (Integer) sm.execute(RequestUtils.getRequester(request, response), "SendMessage", args, names);
 
/impl/src/web/admin/announcements/submitMessage.jsp
35,6 → 35,14
 
<tr>
<th>
Email de Origem para aparecer na mensagem
</th>
<td>
<html:text property="fromEmail"></html:text> ** Se deixar por preencher fica o email pessoal
</td>
</tr>
<tr>
<th>
<bean:message key="announcement.sendAnnouncementLike"/>
</th>
<td>
156,7 → 164,11
 
})();
 
setTimeout("setText()",500);
$(document).ready(
function(){
setText();
}
);
 
 
function setText()
/impl/src/web/user/home/student.jsp
53,6 → 53,7
</li>
</ul>
</logic:notMatch>
<jsp:include page="todosAfazer.jsp"/>
<table class="columnTable" width="100%">
<tbody>
<tr>
/impl/src/web/user/home/teacher.jsp
29,6 → 29,7
</li>
</ul>
</logic:notMatch>
<jsp:include page="todosAfazer.jsp"/>
<table class="columnTable" width="100%">
<tbody>
<tr>
121,9 → 122,10
%>
</div>
</baco:isModuleOn>
<%--
<baco:isModuleOn module="todos">
<jsp:include page="/user/home/todos.jsp"/>
</baco:isModuleOn>
</baco:isModuleOn>--%>
<baco:isModuleOn module="courseunits">
<jsp:include page="/user/home/courseUnitsAnnouncements.jsp"/>
</baco:isModuleOn>
/impl/src/web/user/home/todosAfazer.jsp
New file
0,0 → 1,100
<%@ page import="pt.estgp.estgweb.services.common.IToDoCat" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="jomm.utils.MessageResources" %>
<%@ page import="pt.estgp.estgweb.services.common.IToDo" %>
<%@ page import="pt.estgp.estgweb.services.common.ModuleEnum" %>
<%@ 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" %>
<%--
Created by IntelliJ IDEA.
User: Jorge
Date: 2/Jun/2008
Time: 16:01:47
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<%
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{};
 
List<IToDoCat> todos = (List<IToDoCat>) sm.execute(RequestUtils.getRequester(request, response), "CommonServicesGetAllTodosCat", args, names);
%>
 
 
 
<%
for (IToDoCat toDoCat : todos)
{
if (toDoCat.getDescription().equals(ModuleEnum.TodoAnnouncements.getMessageKey()))
{
 
%>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="panel panel-primary">
<div class="panel-heading"><bean:message key="intranet.todo"/></div>
<div class="panel-body">
 
<div class="list-group">
<div class="list-group-item active">
<%=MessageResources.getMessage(request, toDoCat.getDescription())%> (<%=toDoCat.getTotalToDo()%>)
</div>
 
<%
for (IToDo todo : toDoCat.getAllToDos())
{
%>
<div class="list-group-item">
<%
if (todo.getUrl() != null)
{
%>
 
<a href="<%=request.getContextPath() + todo.getUrl()%>">
<%
if(todo.getCatArg0() == null && todo.getCatKey() != null)
{
out.print(MessageResources.getMessage(request,todo.getCatKey()) + ":");
}
else if(todo.getCatArg0() != null && todo.getCatKey() != null)
{
out.print(MessageResources.getMessage(request,todo.getCatKey(),todo.getCatArg0()) + ":");
}
%>
<%=todo.getLabelInsideCat(request)%>
</a>
<img src="<%=request.getContextPath()%>/imgs/preencher.gif" width="35px"/>
<%
}
else
{
%>
<%=todo.getLabelInsideCat(request)%>
<%
}
%>
</div>
<%
}
%>
</div>
</div>
</div>
</div>
</div>
 
<%
}
}
%>