/branches/v3/impl/conf/language/MessageResources.properties |
---|
399,6 → 399,8 |
add=Adicionar |
put=Colocar |
remove=Remover |
yes.no.true=Sim |
yes.no.false=Não |
yes=Sim |
no=Não |
url=URL |
1182,6 → 1184,8 |
courseunit.assignement.todo=Trabalho por entregar |
course.unit.work=Ficha de Trabalho |
course.unit.works=Trabalhos |
course.unit.stats=Estatisticas |
course.course.unit.stats=Estatisticas de Unidades Curriculares |
courseunit.works=Trabalhos |
courseunit.new=Criar Unidade Curricular |
courseunit.edit=Editar Unidade Curricular |
1255,6 → 1259,9 |
courseunit.menu.grades=Avaliação |
courseunit.menu.dtp=DTP |
list.students.course.commission=Consulta de alunos das comissões |
replace=Substituir |
courseunit.assignement.file=Enunciado |
/branches/v3/impl/conf/WEB-INF/struts/struts-courses.xml |
---|
96,8 → 96,11 |
<action path="/user/courseComissions" forward="page.courses.comissions"/> |
<action path="/user/courseCourseUnits" forward="page.courses.courseunits"/> |
<action path="/user/listStudentsCourseComission" forward="page.list.students.course.comission"/> |
</action-mappings> |
</struts-config> |
/branches/v3/impl/conf/WEB-INF/struts/struts-courseunits.xml |
---|
92,6 → 92,7 |
<action path="/user/startLoadCourseUnitWorksFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadWorks&from=Home"/> |
<action path="/user/startLoadCourseUnitStudentsFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadStudents&from=Home"/> |
<action path="/user/startLoadCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=load&from=Home"/> |
<action path="/user/startLoadCourseUnitStatsFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadStats&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"/> |
108,6 → 109,7 |
validate="false" |
input="page.welcome"> |
<forward name="load" path="page.load.courseunit.from.home"/> |
<forward name="loadStats" path="page.load.courseunit.stats.from.home"/> |
<forward name="load.works" path="page.load.courseunit.works.from.home"/> |
<forward name="load.assignement" path="page.load.courseunit.assignement.from.home"/> |
<forward name="load.blog" path="page.load.blog.from.courseUnit"/> |
185,6 → 187,7 |
<action path="/user/startLoadCourseCourseUnitsStatistics" forward="page.load.course.courseunit.stats.from.home"/> |
</action-mappings> |
</struts-config> |
/branches/v3/impl/conf/WEB-INF/struts/tiles-courseunits.xml |
---|
64,6 → 64,17 |
<put name="left" value="/user/courseunits/menu.jsp"/> |
<put name="body" value="/user/courseunits/courseunitworks.jsp"/> |
</definition> |
<definition name="page.load.courseunit.stats.from.home" extends="base.separators"> |
<put name="title" value="Estatisticas da Unidade Curricular"/> |
<put name="topnav" value="/user/home/topnavCourseUnitStats.jsp"/> |
<put name="left" value="/user/courseunits/menu.jsp"/> |
<put name="body" value="/user/courseunits/courseunitsStatistics.jsp"/> |
</definition> |
<definition name="page.load.course.courseunit.stats.from.home" extends="base.separators.semleft"> |
<put name="title" value="Estatisticas das Unidades Curriculares"/> |
<put name="topnav" value="/user/home/topnavCourseCourseUnitStats.jsp"/> |
<put name="body" value="/user/courseunits/courseCourseunitsStatistics.jsp"/> |
</definition> |
<definition name="page.load.courseunit.assignement.from.home" extends="base.separators"> |
<put name="title" value="Trabalho da Unidade Curricular"/> |
<put name="topnav" value="/user/home/topnavCourseUnitAssignement.jsp"/> |
/branches/v3/impl/conf/WEB-INF/struts/tiles-courses.xml |
---|
107,6 → 107,10 |
<definition name="page.list.students.course.comission" extends="page.separators.home"> |
<put name="title" value="Consultar alunos das comissões"/> |
<put name="topnav" value="/user/home/topnavListStudentsCourseComission.jsp"/> |
<put name="body" value="/user/contacts/listCourseComissionStudents.jsp"/> |
</definition> |
</tiles-definitions> |
/branches/v3/impl/conf/WEB-INF/struts/struts-announcements.xml |
---|
23,7 → 23,20 |
<action-mappings> |
startSubmitMessageCourseComission |
<action path="/user/startSubmitMessageCourseComission" forward="/user/submitMessageCourseComission.do?dispatch=loadCourses"/> |
<action path="/user/submitMessageCourseComission" |
type="pt.estgp.estgweb.web.controllers.announcements.MessagesController" |
name="MessagesForm" |
scope="request" |
parameter="dispatch" |
input="page.separators.home" |
validate="true"> |
<forward name="success" path="page.separators.home"/> |
<forward name="load" path="page.submit.message.course.comission"/> |
</action> |
<action path="/user/startSubmitMessage" forward="/user/submitMessage.do?dispatch=loadCourses"/> |
<action path="/user/submitMessage" |
type="pt.estgp.estgweb.web.controllers.announcements.MessagesController" |
/branches/v3/impl/conf/WEB-INF/struts/tiles-announcements.xml |
---|
85,5 → 85,11 |
<put name="topnav" value="/user/serviceZone/topnavSubmitMessage.jsp"/> |
<put name="body" value="/admin/announcements/submitMessage.jsp"/> |
</definition> |
<definition name="page.submit.message.course.comission" extends="page.separators.home"> |
<put name="title" value="Enviar uma mensagem de correio electronico aos alunos"/> |
<put name="topnav" value="/user/home/topnavSubmitMessageCourseComission.jsp"/> |
<put name="body" value="/user/courseunits/submitCourseComissionMessage.jsp"/> |
</definition> |
</tiles-definitions> |
/branches/v3/impl/conf/app.properties |
---|
68,6 → 68,7 |
email.courseunit.work.subject.pt={0}: {1} (ESTG) |
email.courseunit.work.subject.en={0}: {1} (ESTG) |
email.courseunit.work.relative.url=/user/startLoadCourseUnitWorksFromHome.do?courseUnitView.id={0} |
email.courseunit.blogpost.subject.pt={0}: {1} (ESTG) |
email.courseunit.blogpost.subject.en={0}: {1} (ESTG) |
131,10 → 132,9 |
## Job Deamon seconds |
job.deamon.sleep.seconds=10 |
#seconds |
ftp.timeout.seconds=20 |
//seconds |
ftp.timeout.seconds=10 |
ftp.data.store.timeout.seconds=60 |
################################################## |
##Proxy Servers |
204,11 → 204,11 |
user.identifiersManagers=identifiersManager |
user.servicesPrograms=servicesPrograms |
user.courseValidateProgram.prefix=courseValidateProgram |
######################################################################### |
# |
# Modules |
827,5 → 827,11 |
siges.summaries.lancado.code=1 |
siges.summaries.faltou.code=2 |
siges.summaries.cancelado.code=3 |
siges.summaries.prelancado.code=4 |
/branches/v3/impl/conf/template/email/courseUnitWork_pt.txt |
---|
1,19 → 1,23 |
# 0 : Course Unit Name |
|
# 0 : Course Unit Name |
# 1 : Title |
# 2 : Text |
# 3 : Teacher |
# |
# 4 : Delivery Date |
# Course Unit Assignement |
# |
Caro estudante |
Um novo trabalho foi adicionado na unidade: |
Um novo trabalho foi adicionado na unidade com data de entrega {4}: |
{0} |
{1} |
{2} |
Cumprimentos |
{3} |
/branches/v3/impl/conf/template/email/courseUnitWork_en.txt |
---|
3,7 → 3,8 |
# 1 : Title |
# 2 : Text |
# 3 : Teacher |
# |
# 4 : Delivery Date |
# Course Unit Assignement |
# |
Dear Student |
15,6 → 16,8 |
{2} |
Enter: {4} |
Best Regards {3} |
--------------------------------------------- |
/branches/v3/impl/conf/berserk/sd.xml |
---|
873,6 → 873,7 |
<service> |
<name>LoadCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass> |
<description>Load course unit</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
881,6 → 882,19 |
</filterChains> |
</service> |
<service> |
<name>LoadCourseUnitCleared</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass> |
<description>Load course unit</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>runCleared</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="CourseUnitProgramClearancesPreSerializable"/> |
</filterChains> |
</service> |
<service> |
<name>LoadCourseUnitStudents</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass> |
<description>Load course unit students</description> |
/branches/v3/impl/src/java/jomm/utils/MimeTypeGuesser.java |
---|
17,7 → 17,7 |
private MimeTypeGuesser() |
{ |
typeMap = new MimetypesFileTypeMap(Thread.currentThread().getContextClassLoader().getResourceAsStream("/jomm/utils/mime.types")); |
typeMap = new MimetypesFileTypeMap(MimeTypeGuesser.class.getResourceAsStream("/jomm/utils/mime.types")); |
} |
public static synchronized MimeTypeGuesser getInstance() |
/branches/v3/impl/src/java/jomm/experiments/JavaAssistDynamicProxy.java |
---|
New file |
0,0 → 1,68 |
package jomm.experiments; |
import javassist.util.proxy.MethodFilter; |
import javassist.util.proxy.MethodHandler; |
import javassist.util.proxy.ProxyFactory; |
import pt.estgp.estgweb.domain.Course; |
import java.lang.reflect.InvocationTargetException; |
import java.lang.reflect.Method; |
/** |
* Created by jorgemachado on 12/04/16. |
*/ |
public class JavaAssistDynamicProxy |
{ |
public static void main(String[] args) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { |
ProxyFactory factory = new ProxyFactory(); |
factory.setSuperclass(Course.class); |
factory.setFilter( |
new MethodFilter() { |
@Override |
public boolean isHandled(Method method) { |
return true; |
//return Modifier.isAbstract(method.getModifiers()); |
} |
} |
); |
MethodHandler handler = new MethodHandler() { |
@Override |
public Object invoke(Object self, Method thisMethod, Method proceed, Object[] args) throws Throwable { |
System.out.println("Handling " + thisMethod + " via the method handler"); |
if(thisMethod.getName().startsWith("getId")) |
{ |
return proceed.invoke(self,args); |
} |
else if(thisMethod.getName().startsWith("get")) |
{ |
System.out.println("Acedendo a uma propriedade " + thisMethod.getName() + " na class " + thisMethod.getDeclaringClass().getName()); |
String campo = thisMethod.getName().substring(3); |
campo = ("" + campo.charAt(0)).toLowerCase() + campo.substring(1); |
System.out.println("select " + campo + " from " + thisMethod.getDeclaringClass().getCanonicalName() + " where id = " + |
self.getClass().getMethod("getId").invoke(self, new Object[]{})); |
} |
if(thisMethod.getName().startsWith("set")) |
{ |
System.out.println("Alterando uma propriedade no proxy " + thisMethod.getName() + " na class " + thisMethod.getDeclaringClass().getName()); |
return proceed.invoke(self,args); |
} |
return null; |
} |
}; |
Course u = (Course) factory.create(new Class[0], new Object[0], handler); |
u.setId(3); |
u.getName(); |
u.getInstitutionalCode(); |
u.getId(); |
} |
} |
/branches/v3/impl/src/java/jomm/experiments/DynamicProxy.java |
---|
New file |
0,0 → 1,41 |
package jomm.experiments; |
import pt.estgp.estgweb.domain.UserImpl; |
import java.io.IOException; |
import java.lang.reflect.InvocationHandler; |
import java.lang.reflect.Method; |
import java.lang.reflect.Proxy; |
/** |
* Created by jorgemachado on 12/04/16. |
*/ |
public class DynamicProxy implements InvocationHandler { |
public Object invoke(Object proxy, Method method, |
Object[] args) throws Throwable |
{ |
if (method.getName().equals("toString")) { |
return super.toString(); |
} |
System.out.println("Metodo " + method + |
" invocado sobre " + proxy); |
return null; |
} |
public static void main(String [] args) |
throws IOException |
{ |
ClassLoader cl = DynamicProxy.class.getClassLoader(); |
UserImpl u = (UserImpl) Proxy.newProxyInstance(cl, |
new Class[]{UserImpl.class}, |
new DynamicProxy()); |
u.getUsername(); |
u.getCourses(); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/Globals.java |
---|
114,7 → 114,7 |
public static final String ALL_ROLE = ConfigProperties.getProperty("user.super"); |
public static final String SERVICES_PROGRAMS_ROLE = ConfigProperties.getProperty("user.servicesPrograms"); |
public static final List<String> COURSE_COMMISSION_PROGRAMS_ROLES = ConfigProperties.getListValuesByPrefix("courseValidateProgram"); |
public static final String COURSE_COMMISSION_PROGRAMS_ROLES_PREFIX = ConfigProperties.getProperty("user.courseValidateProgram.prefix"); |
public static final String ACTUAL_RELATIVE_PATH = "ACTUAL_RELATIVE_PATH"; |
public static final String ADMIN_ROLE = ConfigProperties.getProperty("user.admin"); |
350,6 → 350,8 |
public static final String EMAIL_COURSEUNIT_WORK_SUBJECT_PT = ConfigProperties.getProperty("email.courseunit.work.subject.pt"); |
public static final String EMAIL_COURSEUNIT_WORK_SUBJECT_EN = ConfigProperties.getProperty("email.courseunit.work.subject.en"); |
public static final String EMAIL_COURSEUNIT_WORK_RELATIVE_URL = ConfigProperties.getProperty("email.courseunit.work.relative.url"); |
public static final String EMAIL_COURSEUNIT_WORK_TEMPLATE_PT = "courseUnitWork_pt.txt"; |
public static final String EMAIL_COURSEUNIT_WORK_TEMPLATE_EN = "courseUnitWork_en.txt"; |
public static final String EMAIL_COURSEUNIT_WORK_CHANGE_TEMPLATE_PT = "courseUnitWorkChange_pt.txt"; |
437,4 → 439,9 |
public static final String BACO_TIPOLOGIA_SIMPLES_VIRTUAL_CODE = ConfigProperties.getProperty("baco.tipologia.simples"); |
public static final String BACO_TIPOLOGIA_SIMPLES_DS = ConfigProperties.getProperty("netpa.tipo.aula." + BACO_TIPOLOGIA_SIMPLES_VIRTUAL_CODE); |
public static final int SIGES_SUMARIO_LANCADO_CODIGO = ConfigProperties.getIntProperty("siges.summaries.lancado.code"); |
public static final int SIGES_SUMARIO_FALTOU_CODIGO = ConfigProperties.getIntProperty("siges.summaries.faltou.code"); |
public static final int SIGES_SUMARIO_CANCELADO_CODIGO = ConfigProperties.getIntProperty("siges.summaries.cancelado.code"); |
public static final int SIGES_SUMARIO_PRELANCADO_CODIGO = ConfigProperties.getIntProperty("siges.summaries.prelancado.code"); |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courses/CourseUnitFilesFacadeFactory.java |
---|
New file |
0,0 → 1,15 |
package pt.estgp.estgweb.services.courses; |
import java.io.IOException; |
/** |
* Created by jorgemachado on 13/04/16. |
*/ |
public class CourseUnitFilesFacadeFactory { |
public static IFilesServiceFacade createCourseUnitFilesFacade() throws IOException { |
return new FtpFilesFacade(); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courses/FtpFilesFacade.java |
---|
New file |
0,0 → 1,199 |
package pt.estgp.estgweb.services.courses; |
import org.apache.log4j.Logger; |
import org.json.JSONArray; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.services.ftpservices.FtpService; |
import pt.estgp.estgweb.web.FtpServer; |
import java.io.IOException; |
import java.util.Date; |
/** |
* Created by jorgemachado on 13/04/16. |
*/ |
public class FtpFilesFacade implements IFilesServiceFacade { |
private static Logger logger = Logger.getLogger(FtpFilesFacade.class); |
FtpServer server; |
FtpServer.FtpClientWrapper client; |
String username = Globals.FTP_IONLINE_USER; |
String password = Globals.FTP_IONLINE_PASS; |
String url = Globals.FTP_IONLINE_URL; |
String startPath = Globals.FTP_IONLINE_START_PATH; |
CourseUnit cu = null; |
long[] contentsInfo = null; |
long[] dtpPlan = null; |
long[] dtpFicha = null; |
long[] dtpAvalEnu = null; |
long[] dtpAvalNotas = null; |
long[] dtpInquer = null; |
long[] dtpRelato = null; |
long[] dtpSums = null; |
public FtpFilesFacade() throws IOException |
{ |
server = FtpServer.getNewServer(url, username, password); |
client = new FtpServer.FtpClientWrapper(server,3); |
client.setBufferSize(1024 * 1024); |
logger.info("BUFFER SIZE" + client.getBufferSize()); |
client.enterLocalActiveMode(); |
} |
@Override |
public void reset(CourseUnit cu) throws IOException |
{ |
/* |
try { |
Thread.sleep(5000); |
} catch (InterruptedException e) { |
e.printStackTrace(); |
}*/ |
this.cu = cu; |
contentsInfo = null; |
dtpPlan = null; |
dtpFicha = null; |
dtpAvalEnu = null; |
dtpAvalNotas = null; |
dtpInquer = null; |
dtpRelato = null; |
dtpSums = null; |
/*try{ |
client.quit(); |
client.disconnect(); |
}catch(Throwable e) |
{ logger.error(e,e);} |
client = server.getClient();*/ |
} |
@Override |
public void close() throws IOException { |
client.close(); |
} |
@Override |
public long getContentsNumberOfFiles() throws IOException |
{ |
if(contentsInfo == null) |
contentsInfo = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_CONTENTS,""); |
return contentsInfo[1]; |
} |
@Override |
public long getContentsNumberOfFolders() throws IOException { |
if(contentsInfo == null) |
contentsInfo = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_CONTENTS,""); |
return contentsInfo[0]; |
} |
@Override |
public long getContentsSize() throws IOException { |
if(contentsInfo == null) |
contentsInfo = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_CONTENTS,""); |
return contentsInfo[2]; |
} |
@Override |
public Date getContentsLastUpdate() throws IOException { |
if(contentsInfo == null) |
contentsInfo = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_CONTENTS,""); |
return new Date(contentsInfo[3]); |
} |
@Override |
public long getDtpPlaneamentoNumberOfFiles() throws IOException { |
if(dtpPlan == null) |
dtpPlan = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_Planeamento,""); |
return dtpPlan[1]; |
} |
@Override |
public long getDtpInqueritoPedagogicoNumberOfFiles() throws IOException { |
if(dtpInquer == null) |
dtpInquer = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_InqueritoPedagogico,""); |
return dtpInquer[1]; |
} |
@Override |
public long getDtpAvaliacaoEnunciadosNumberOfFiles() throws IOException { |
if(dtpAvalEnu == null) |
dtpAvalEnu = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_Avaliacao + "/" + Globals.INTRANET_DTP_Avaliacao_enunciados ,""); |
return dtpAvalEnu[1]; |
} |
@Override |
public long getDtpAvaliacaoNotasNumberOfFiles() throws IOException { |
if(dtpAvalNotas == null) |
dtpAvalNotas = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_Avaliacao + "/" + Globals.INTRANET_DTP_Avaliacao_pautas ,""); |
return dtpAvalNotas[1]; |
} |
@Override |
public long getDtpFichaCurricularNumberOfFiles() throws IOException { |
if(dtpFicha == null) |
dtpFicha = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_FichaCurricular ,""); |
return dtpFicha[1]; |
} |
@Override |
public long getDtpRelatorioAvaliacaoNumberOfFiles() throws IOException { |
if(dtpRelato == null) |
dtpRelato = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_FichaAvaliacao,""); |
return dtpRelato[1]; |
} |
@Override |
public Date getDtpPlaneamentoLastUpdate() throws IOException { |
if(dtpPlan == null) |
dtpPlan = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_Planeamento,""); |
return new Date(dtpPlan[3]); |
} |
@Override |
public Date getDtpInqueritoPedagogicoLastUpdate() throws IOException { |
if(dtpInquer == null) |
dtpInquer = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_InqueritoPedagogico,""); |
return new Date(dtpInquer[3]); |
} |
@Override |
public Date getDtpAvaliacaoEnunciadosLastUpdate() throws IOException { |
if(dtpAvalEnu == null) |
dtpAvalEnu = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_Avaliacao + "/" + Globals.INTRANET_DTP_Avaliacao_enunciados ,""); |
return new Date(dtpAvalEnu[3]); |
} |
@Override |
public Date getDtpAvaliacaoNotasLastUpdate() throws IOException { |
if(dtpAvalNotas == null) |
dtpAvalNotas = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_Avaliacao + "/" + Globals.INTRANET_DTP_Avaliacao_pautas ,""); |
return new Date(dtpAvalNotas[3]); |
} |
@Override |
public Date getDtpFichaCurricularLastUpdate() throws IOException { |
if(dtpFicha == null) |
dtpFicha = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_FichaCurricular ,""); |
return new Date(dtpFicha[3]); |
} |
@Override |
public Date getDtpRelatorioAvaliacaoLastUpdate() throws IOException { |
if(dtpRelato == null) |
dtpRelato = FtpService.calculateDirectoryInfo(client,startPath + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_FichaAvaliacao,""); |
return new Date(dtpRelato[3]); |
} |
@Override |
public JSONArray getAllFilesJsonFields() throws IOException { |
return FtpService.getDirectoryFilesFields(client,startPath + cu.getPathIntranet(),""); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courses/IFilesServiceFacade.java |
---|
New file |
0,0 → 1,38 |
package pt.estgp.estgweb.services.courses; |
import org.json.JSONArray; |
import pt.estgp.estgweb.domain.CourseUnit; |
import java.io.IOException; |
import java.util.Date; |
/** |
* Created by jorgemachado on 13/04/16. |
*/ |
public interface IFilesServiceFacade |
{ |
public void reset(CourseUnit cu) throws IOException; |
public void close() throws IOException; |
public long getContentsNumberOfFiles() throws IOException; |
public long getContentsNumberOfFolders() throws IOException; |
public long getContentsSize() throws IOException; |
public Date getContentsLastUpdate() throws IOException; |
public long getDtpPlaneamentoNumberOfFiles() throws IOException; |
public long getDtpInqueritoPedagogicoNumberOfFiles() throws IOException; |
public long getDtpAvaliacaoEnunciadosNumberOfFiles() throws IOException; |
public long getDtpAvaliacaoNotasNumberOfFiles() throws IOException; |
public long getDtpFichaCurricularNumberOfFiles() throws IOException; |
public long getDtpRelatorioAvaliacaoNumberOfFiles() throws IOException; |
public Date getDtpPlaneamentoLastUpdate() throws IOException; |
public Date getDtpInqueritoPedagogicoLastUpdate() throws IOException; |
public Date getDtpAvaliacaoEnunciadosLastUpdate() throws IOException; |
public Date getDtpAvaliacaoNotasLastUpdate() throws IOException; |
public Date getDtpFichaCurricularLastUpdate() throws IOException; |
public Date getDtpRelatorioAvaliacaoLastUpdate() throws IOException; |
public JSONArray getAllFilesJsonFields() throws IOException; |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courses/CourseUnitsStatisticsJobService.java |
---|
New file |
0,0 → 1,212 |
package pt.estgp.estgweb.services.courses; |
import jomm.dao.impl.AbstractDao; |
import org.apache.log4j.Logger; |
import org.hibernate.Query; |
import org.json.JSONArray; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.CourseUnitImpl; |
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.services.jobs.ServiceJob; |
import pt.estgp.estgweb.services.logresults.ILogMessages; |
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum; |
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage; |
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import java.io.IOException; |
import java.util.List; |
/** |
* Created by jorgemachado on 22/03/16. |
*/ |
public class CourseUnitsStatisticsJobService extends ServiceJob implements IService |
{ |
public static final Logger logger = Logger.getLogger(CourseUnitsStatisticsJobService.class); |
private static final int MAX_COMMIT = 20; |
public ILogMessages run(String year, int institutionCode) throws ServiceException |
{ |
DefaultLogMessages logMessages = new DefaultLogMessages(); |
logMessages.addMessage(new DefaultLogMessage("courseunits.statistics", LogMessageTypeEnum.INFO, "instituicao " + institutionCode + " ano : " + year)); |
logger.info(logMessages.getLastMessage()); |
serviceLogInfo(logMessages.getLastMessage()); |
int foundTotal = 0; |
Query q = AbstractDao.getCurrentSession().createQuery("select count(c.id) from c in class " + CourseUnit.class.getName() + " where c.institutionCode = " + institutionCode + " and c.importYear = '" + year + "'"); |
Long count = (Long) q.list().get(0); |
q = AbstractDao.getCurrentSession().createQuery("select c.id from c in class " + CourseUnit.class.getName() + " where c.institutionCode = " + institutionCode + " and c.importYear = '" + year + "'"); |
IFilesServiceFacade filesServiceFacade = null; |
try { |
filesServiceFacade = CourseUnitFilesFacadeFactory.createCourseUnitFilesFacade(); |
} catch (IOException e) { |
logger.error(e, e); |
//AbstractDao.getCurrentSession().getTransaction().rollback(); |
logMessages.addMessage(new DefaultLogMessage("courseunits.statistics.error", e.toString(), "see log for details", LogMessageTypeEnum.ERROR)); |
serviceLogError(logMessages.getLastMessage()); |
} |
List<Long> ids = q.list(); |
int i = 0; |
for(Long id: ids) |
{ |
foundTotal++; |
if (i++ > MAX_COMMIT) |
{ |
i = 0; |
setProgress((int) (((float)foundTotal)/((float)count)*100.0f)); |
commitPartially(); |
} |
try |
{ |
CourseUnitImpl cu = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().load(id); |
String msg = "Unit: " + cu.getCode() + " " + cu.getName() + " " + cu.getCourseName() + " (" + cu.getCourseCode() + ")"; |
logger.info(msg); |
serviceLogInfo(msg); |
if(cu.getAnnouncements() != null) |
cu.setStatanuncios(cu.getAnnouncements().size()); |
if(cu.getBlogs()!=null && cu.getBlogs().size() > 0) |
cu.setStatblogPosts(cu.getBlogs().iterator().next().getPosts().size()); |
if(cu.getStudents() != null) |
cu.setStatstudentsCount(cu.getStudents().size()); |
if(cu.getTeachers() != null) |
cu.setStatteachersCount(cu.getTeachers().size()); |
if(cu.getTeachers() != null) |
cu.setStatteachersCount(cu.getTeachers().size()); |
if(cu.getAssignements() != null) |
cu.setStatworks(cu.getAssignements().size()); |
CourseUnitView courseUnitView = new CourseUnitView(cu); |
if(courseUnitView.getSummariesFromJson() != null) |
{ |
cu.setStatdtpSumaries(courseUnitView.getSummariesFromJson().size()); |
cu.setStatdtpSumariesMissing(courseUnitView.getLateSummaries()); |
cu.setStatdtpSumariesPrelancados(courseUnitView.getPrelancadosSummaries()); |
} |
cu.setStatdtpFichaCurricularValid(cu.isValidProgram()); |
if(cu.getCourseUnitEvaluation() == null) |
cu.setStatdtpEvaluationReportState("INEXISTENTE"); |
else if(cu.getCourseUnitEvaluation().isClosed()) |
cu.setStatdtpEvaluationReportState("VALIDO"); |
else if(cu.getCourseUnitEvaluation().isTeacherComplete()) |
cu.setStatdtpEvaluationReportState("ENTREGUE"); |
else if(cu.getEvaluationStreamId() != null) |
cu.setStatdtpEvaluationReportState("INICIADO"); |
else |
cu.setStatdtpEvaluationReportState("INEXISTENTE"); |
if(filesServiceFacade != null) |
{ |
filesServiceFacade.reset(cu); |
try |
{ |
cu.setStatcontentsFiles((int) filesServiceFacade.getContentsNumberOfFiles()); |
cu.setStatcontentsFolders((int) filesServiceFacade.getContentsNumberOfFolders()); |
cu.setStatcontentsLastUpdate(filesServiceFacade.getContentsLastUpdate()); |
cu.setStatcontentsSize(filesServiceFacade.getContentsSize()); |
cu.setStatdtpPlaneamentoFiles((int) filesServiceFacade.getDtpPlaneamentoNumberOfFiles()); |
cu.setStatdtpPlaneamentoLastUpdate(filesServiceFacade.getDtpPlaneamentoLastUpdate()); |
cu.setStatdtpFichaCurricularLastUpdate(filesServiceFacade.getDtpFichaCurricularLastUpdate()); |
cu.setStatdtpEvaluationReportLastUpdate(filesServiceFacade.getDtpRelatorioAvaliacaoLastUpdate()); |
cu.setStatdtpInqueritoPedagogicoFiles((int) filesServiceFacade.getDtpInqueritoPedagogicoNumberOfFiles()); |
cu.setStatdtpInqueritoPedagogicoFilesLastUpdate(filesServiceFacade.getDtpInqueritoPedagogicoLastUpdate()); |
cu.setStatdtpAvaliacaoEnunciadosFiles((int) filesServiceFacade.getDtpAvaliacaoEnunciadosNumberOfFiles()); |
cu.setStatdtpAvaliacaoEnunciadosLastUpdate(filesServiceFacade.getDtpAvaliacaoEnunciadosLastUpdate()); |
cu.setStatdtpAvaliacaoPautasFiles((int) filesServiceFacade.getDtpAvaliacaoNotasNumberOfFiles()); |
cu.setStatdtpAvaliacaoPautasLastUpdate(filesServiceFacade.getDtpAvaliacaoNotasLastUpdate()); |
JSONArray files = filesServiceFacade.getAllFilesJsonFields(); |
for(int j = 0; j < files.length();j++ ) |
{ |
files.getJSONObject(j).put("id","baco/courseunit/" + cu.getId() + "/" + files.getJSONObject(j).getString("file")); |
files.getJSONObject(j).put("obj_sub_type","baco/courseunit:" + cu.getId()); |
files.getJSONObject(j).put("obj_type","baco/courseunit:file"); |
} |
cu.setFilesJson(files.toString()); |
} |
catch(Exception e) |
{ logger.warn(e, e); |
//AbstractDao.getCurrentSession().getTransaction().rollback(); |
logMessages.addMessage(new DefaultLogMessage("courseunits.statistics.warning", e.toString(), "see log for details", LogMessageTypeEnum.ERROR)); |
serviceLogWarn(logMessages.getLastMessage()); |
} |
} |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
//AbstractDao.getCurrentSession().getTransaction().rollback(); |
logMessages.addMessage(new DefaultLogMessage("courseunits.statistics.error", e.toString(), "see log for details", LogMessageTypeEnum.ERROR)); |
serviceLogError(logMessages.getLastMessage()); |
} |
} |
if(filesServiceFacade != null) |
try { |
filesServiceFacade.close(); |
} catch (IOException e) { |
logger.error(e, e); |
//AbstractDao.getCurrentSession().getTransaction().rollback(); |
logMessages.addMessage(new DefaultLogMessage("courseunits.statistics.error", e.toString(), "see log for details", LogMessageTypeEnum.ERROR)); |
serviceLogError(logMessages.getLastMessage()); |
} |
setProgress(100); |
logger.info("######################################"); |
serviceLogInfo("######################################"); |
logger.info("######################################"); |
serviceLogInfo("######################################"); |
logger.info("STATS " + year); |
serviceLogInfo("STATS " + year); |
logger.info("Total Notas: " + foundTotal); |
serviceLogInfo("Total Notas: " + foundTotal); |
logMessages.addMessage(new DefaultLogMessage("courseunits.statistics.terminating", LogMessageTypeEnum.INFO)); |
logger.info(logMessages.getLastMessage()); |
serviceLogInfo(logMessages.getLastMessage()); |
return logMessages; |
} |
public static void main(String[] args) throws ServiceException |
{ |
String year = DaoFactory.getConfigurationDaoImpl().getImportsDefaultImportYearCreateTransaction();; |
String institutionCode = "1"; |
if(args != null && args.length > 0) |
year = args[0]; |
if(args != null && args.length > 1) |
institutionCode = args[1]; |
AbstractDao.getCurrentSession().beginTransaction(); |
new CourseUnitsStatisticsJobService().run(year,Integer.parseInt(institutionCode)); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
@Override |
protected ILogMessages runJobServiceTask() throws Throwable { |
String importYear = getParametersMap().get(JOB_importYear_KEY).getObject(); |
String institutionCode = getParametersMap().get(JOB_institution_KEY).getObject(); |
return run(importYear,Integer.parseInt(institutionCode)); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java |
---|
431,6 → 431,9 |
arguments.add( DatesUtils.getStringFromDate(assignement.getDeliverDate())); |
//String directUrl = Globals.EMAIL_COURSEUNIT_WORK_RELATIVE_URL; |
//directUrl = Globals.SITE_URL + MessageFormat.format(directUrl,assignement.getCourseUnit().getId()); |
String subjectTxt; |
String template; |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportSumariesJson.java |
---|
15,6 → 15,8 |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.enums.LangEnum; |
import pt.estgp.estgweb.domain.views.CourseUnitSummaryView; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.services.courseunits.CreateCourseUnitXML; |
import pt.estgp.estgweb.services.email.EMAILJob; |
import pt.estgp.estgweb.services.email.SendEmailService; |
39,16 → 41,21 |
import java.io.FileOutputStream; |
import java.io.IOException; |
import java.sql.Connection; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
import java.util.Map; |
import java.util.*; |
/** |
* @author Jorge Machado |
* @date 11/May/2008 |
* @time 12:51:32 |
* @see pt.estgp.estgweb |
* |
* |
* @NOTAS IMPORTANTES DESTE SERVIÇO |
* |
* @DEPENDS TODO DEPENDENCIAS FORTES |
* Este serviço gera toda a informação acerca de sumários e sumários em FALTA |
* Existe uma forte depêndencia da CourseUniView que recebe daqui a lógica de decisão daquilo que são ou não sumários |
* atrasados |
*/ |
public class ImportSumariesJson extends ServiceJob implements IService |
{ |
419,7 → 426,7 |
System.out.println("year, semestre, sendIonline, sendEmail"); |
System.out.println("If no arguments wil user actual year import config in all semestres and true in email and ionline"); |
String year = DaoFactory.getConfigurationDaoImpl().getImportsDefaultImportYearCreateTransaction(); |
String year = "201516";DaoFactory.getConfigurationDaoImpl().getImportsDefaultImportYearCreateTransaction(); |
String semestre = null; |
boolean sendIonline = false; |
boolean sendEmail = false; |
465,4 → 472,71 |
return run(importYear,Integer.parseInt(institutionCode),semestre,sendIonline,sendEmail); |
} |
/** |
* METODO DE HELP PARA A VISTA DA UNIDADE CURRICULAR |
*/ |
public static void setSummariesFromJson(CourseUnitView cuview) { |
int lateSummaries = 0; |
int prelancadosSummaries = 0; |
List<CourseUnitSummaryView> summariesFromJson = new ArrayList<CourseUnitSummaryView>(); |
String summariesJson = cuview.getSummariesJson(); |
ArrayList<String> lateSummariesDates = new ArrayList<String>(); |
ArrayList<String> prelancadosSummariesDates = new ArrayList<String>(); |
if(summariesJson != null && summariesJson.length() > 0) |
{ |
try { |
JSONObject jsonObject = new JSONObject(summariesJson); |
JSONArray summaries = jsonObject.getJSONArray("summary"); |
for(int i = 0; i < summaries.length();i++) |
{ |
JSONObject summary = summaries.getJSONObject(i); |
CourseUnitSummaryImpl sum = DomainObjectFactory.createCourseUnitSummaryImpl(); |
if(sum.updateWithJson(summary)){ |
CourseUnitSummaryView view = new CourseUnitSummaryView(sum); |
summariesFromJson.add(view); |
} |
else |
// so verifica atrasados para unidades do ano corrente a titulo informativo |
{ |
CourseUnitSummaryView view = new CourseUnitSummaryView(sum); |
if(view.getNumber() < 0 && view.getOriginalDate().getTime() + 48*60*60*1000 < System.currentTimeMillis()) |
{ |
//System.out.println(view.getNumber() + " " + view.getDate() + " " + view.getOriginalDate()); |
lateSummaries++; |
lateSummariesDates.add(view.getDate()); |
} |
else if(sum.getcEstado().equals(""+Globals.SIGES_SUMARIO_PRELANCADO_CODIGO)) |
{ |
prelancadosSummaries++; |
prelancadosSummariesDates.add(view.getDate()); |
} |
} |
} |
} catch (JSONException e) { |
logger.error(e,e); |
} |
Collections.sort(summariesFromJson, new Comparator<CourseUnitSummaryView>() { |
@Override |
public int compare(CourseUnitSummaryView courseUnitSummaryView, CourseUnitSummaryView courseUnitSummaryView2) { |
if (courseUnitSummaryView.getNumber() > courseUnitSummaryView2.getNumber()) |
return -1; |
else if (courseUnitSummaryView.getNumber() < courseUnitSummaryView2.getNumber()) |
return 1; |
return 0; |
} |
}); |
cuview.setSummariesFromJson(summariesFromJson); |
cuview.setLateSummaries(lateSummaries); |
cuview.setLateSummariesDates(lateSummariesDates); |
cuview.setPrelancadosSummaries(prelancadosSummaries); |
cuview.setPrelancadosSummariesDates(prelancadosSummariesDates); |
} |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/ftpservices/FtpService.java |
---|
2,16 → 2,23 |
import jomm.utils.DesUtils; |
import jomm.utils.DiacriticFilter; |
import jomm.utils.FilesUtils; |
import jomm.utils.MimeTypeGuesser; |
import org.apache.commons.fileupload.FileItem; |
import org.apache.commons.httpclient.util.URIUtil; |
import org.apache.commons.net.ftp.FTP; |
import org.apache.commons.net.ftp.FTPClient; |
import org.apache.commons.net.ftp.FTPFile; |
import org.apache.log4j.Logger; |
import org.json.JSONArray; |
import org.json.JSONObject; |
import pt.estgp.estgweb.domain.CourseUnitImpl; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.web.FtpServer; |
import pt.estgp.estgweb.web.utils.DatesUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import java.io.File; |
158,4 → 165,143 |
client.disconnect(); |
return result; |
} |
private static void printMem() |
{ |
int mb = 1024*1024; |
//Getting the runtime reference from system |
Runtime runtime = Runtime.getRuntime(); |
//Print used memory |
logger.debug("Used Memory:" + (runtime.totalMemory() - runtime.freeMemory()) / mb); |
} |
public static long[] calculateDirectoryInfo(FtpServer.FtpClientWrapper ftpClient, |
String parentDir, String currentDir) throws IOException { |
long[] info = new long[4]; |
//System.gc(); |
printMem(); |
int totalDirs = 0; |
int totalFiles = 0; |
long totalSize = 0; |
long lastUpdate = 0; |
String dirToList = parentDir; |
if (!currentDir.equals("")) { |
dirToList += "/" + currentDir; |
} |
try { |
FTPFile[] subFiles = ftpClient.listFiles(dirToList); |
if (subFiles != null && subFiles.length > 0) { |
for (FTPFile aFile : subFiles) { |
String currentFileName = aFile.getName(); |
if (currentFileName.equals(".") |
|| currentFileName.equals("..")) { |
// skip parent directory and the directory itself |
continue; |
} |
//System.out.println("dir:" +currentDir+ aFile.getName()); |
if (aFile.isDirectory()) { |
//System.out.println("dir:" +currentDir+ aFile.getName()); |
totalDirs++; |
long[] subDirInfo = |
calculateDirectoryInfo(ftpClient, dirToList, currentFileName); |
totalDirs += subDirInfo[0]; |
totalFiles += subDirInfo[1]; |
totalSize += subDirInfo[2]; |
if(subDirInfo[3] > lastUpdate) |
lastUpdate = subDirInfo[3]; |
} else { |
totalSize += aFile.getSize(); |
totalFiles++; |
if(aFile.getTimestamp().getTime().getTime() > lastUpdate) |
lastUpdate = aFile.getTimestamp().getTime().getTime(); |
} |
} |
} |
info[0] = totalDirs; |
info[1] = totalFiles; |
info[2] = totalSize; |
info[3] = lastUpdate; |
return info; |
} catch (Throwable ex) { |
logger.error(ex,ex); |
return info; |
} |
} |
public static JSONArray getDirectoryFilesFields(FtpServer.FtpClientWrapper ftpClient, |
String parentDir, String currentDir) throws IOException { |
return getDirectoryFilesFields(ftpClient, parentDir, currentDir,parentDir); |
} |
private static JSONArray getDirectoryFilesFields(FtpServer.FtpClientWrapper ftpClient, |
String parentDir, String currentDir, String startDir) throws IOException { |
JSONArray subArray = new JSONArray(); |
printMem(); |
String dirToList = parentDir; |
if (!currentDir.equals("")) { |
dirToList += "/" + currentDir; |
} |
try { |
FTPFile[] subFiles = ftpClient.listFiles(dirToList); |
if (subFiles != null && subFiles.length > 0) { |
for (FTPFile aFile : subFiles) { |
String currentFileName = aFile.getName(); |
if (currentFileName.equals(".") |
|| currentFileName.equals("..")) { |
// skip parent directory and the directory itself |
continue; |
} |
//System.out.println("dir:" +currentDir+ aFile.getName()); |
if (aFile.isDirectory()) { |
//System.out.println("dir:" +currentDir+ aFile.getName()); |
JSONArray subDirInfo = |
getDirectoryFilesFields(ftpClient, dirToList, currentFileName,startDir); |
for(int i = 0; i < subDirInfo.length();i++) |
subArray.put(subDirInfo.getJSONObject(i)); |
} else { |
JSONObject jsonObject = new JSONObject(); |
jsonObject.put("fileCompletePath",parentDir + "/" + currentDir + "/" + aFile.getName()); |
jsonObject.put("fileCompletePathEncoded",URIUtil.encodePath(parentDir + "/" + currentDir + "/" + aFile.getName(), "ISO-8859-1")); |
jsonObject.put("file",parentDir.substring(startDir.length()) + "/" + currentDir + "/" + aFile.getName()); |
jsonObject.put("filename",aFile.getName()); |
jsonObject.put("contenttype", MimeTypeGuesser.getInstance().guessMimeType(aFile.getName())); |
jsonObject.put("size",aFile.getSize()); |
jsonObject.put("lastmodified",aFile.getTimestamp().getTime().getTime()); |
jsonObject.put("lastmodifieddate", DatesUtils.getStringFromDate(aFile.getTimestamp().getTime())); |
jsonObject.put("extension", FilesUtils.getExtension(aFile.getName())); |
subArray.put(jsonObject); |
} |
} |
} |
return subArray; |
} catch (Throwable ex) { |
logger.error(ex,ex); |
return subArray; |
} |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/jobs/ServiceJob.java |
---|
199,7 → 199,7 |
//serviceLogInfo("##### Heap utilization statistics [MB] #####"); |
logger.info("##### Heap utilization statistics [MB] #####"); |
logger.debug("##### Heap utilization statistics [MB] #####"); |
//Print used memory |
logger.info("Used Memory:" + (runtime.totalMemory() - runtime.freeMemory()) / mb); |
209,15 → 209,15 |
//Print free memory |
//serviceLogInfo("Free Memory:" + runtime.freeMemory() / mb); |
logger.info("Free Memory:" + runtime.freeMemory() / mb); |
logger.debug("Free Memory:" + runtime.freeMemory() / mb); |
//Print total available memory |
//serviceLogInfo("Total Memory:" + runtime.totalMemory() / mb); |
logger.info("Total Memory:" + runtime.totalMemory() / mb); |
logger.debug("Total Memory:" + runtime.totalMemory() / mb); |
//Print Maximum available memory |
//serviceLogInfo("Max Memory:" + runtime.maxMemory() / mb); |
logger.info("Max Memory:" + runtime.maxMemory() / mb); |
logger.debug("Max Memory:" + runtime.maxMemory() / mb); |
} |
public void serviceLogInfoWithLoggerSource(String message) |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/profile/CurriculumService.java |
---|
204,7 → 204,7 |
public List<CourseUnitGradeView> loadGrades(long userId, UserSession userSession) throws ServiceException |
{ |
//todo change security |
if(userId != userSession.getUser().getId()) |
if(userId != userSession.getUser().getId() && !userSession.getUser().isSuperuserOrAdmin() && !userSession.getUser().isTeacher()) |
{ |
logger.warn("Trying see grades of other user"); |
return null; |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitSummaryView.java |
---|
30,8 → 30,8 |
private String codigoSala; |
private Date originalDate; |
private String codigoDocente; |
private String cEstado; |
public CourseUnitSummaryView() { |
} |
56,6 → 56,7 |
this.codigoSumario = summary.getCodigoSumario(); |
this.codigoSala = summary.getCodigoSalaAula(); |
this.codigoDocente = summary.getCodigoDocente(); |
this.cEstado = summary.getcEstado(); |
} |
// public void persistViewInObject(Announcement announcement) |
129,4 → 130,12 |
} |
public String getCodigoDocente() { return codigoDocente; } |
public String getcEstado() { |
return cEstado; |
} |
public void setcEstado(String cEstado) { |
this.cEstado = cEstado; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitView.java |
---|
2,12 → 2,10 |
import jomm.utils.StringsUtils; |
import org.apache.log4j.Logger; |
import org.json.JSONArray; |
import org.json.JSONException; |
import org.json.JSONObject; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.courseunits.LoadCourseUnitAnnouncements; |
import pt.estgp.estgweb.services.sigesimports.ImportSumariesJson; |
import java.io.Serializable; |
import java.util.*; |
618,57 → 616,48 |
*/ |
int lateSummaries = 0; |
int prelancadosSummaries = 0; |
List<String> lateSummariesDates = new ArrayList<String>(); |
List<String> prelancadosSummariesDates = new ArrayList<String>(); |
public synchronized List<CourseUnitSummaryView> getSummariesFromJson() { |
if(summariesFromJson != null) |
return summariesFromJson; |
lateSummaries = 0; |
summariesFromJson = new ArrayList<CourseUnitSummaryView>(); |
if(summariesJson != null && summariesJson.length() > 0) |
{ |
try { |
JSONObject jsonObject = new JSONObject(summariesJson); |
JSONArray summaries = jsonObject.getJSONArray("summary"); |
for(int i = 0; i < summaries.length();i++) |
{ |
JSONObject summary = summaries.getJSONObject(i); |
CourseUnitSummaryImpl sum = DomainObjectFactory.createCourseUnitSummaryImpl(); |
public List<String> getPrelancadosSummariesDates() { |
return prelancadosSummariesDates; |
} |
if(sum.updateWithJson(summary)){ |
CourseUnitSummaryView view = new CourseUnitSummaryView(sum); |
summariesFromJson.add(view); |
} |
else if(importYear.equals(interfaceImportYear)) |
//so verifica atrasados para unidades do ano corrente a titulo informativo |
{ |
CourseUnitSummaryView view = new CourseUnitSummaryView(sum); |
if(view.getNumber() < 0 && view.getOriginalDate().getTime() + 48*60*60*1000 < System.currentTimeMillis()) |
{ |
public void setPrelancadosSummariesDates(List<String> prelancadosSummariesDates) { |
this.prelancadosSummariesDates = prelancadosSummariesDates; |
} |
//System.out.println(view.getNumber() + " " + view.getDate() + " " + view.getOriginalDate()); |
lateSummaries++; |
lateSummariesDates.add(view.getDate()); |
} |
} |
} |
} catch (JSONException e) { |
logger.error(e,e); |
} |
Collections.sort(summariesFromJson,new Comparator<CourseUnitSummaryView>() { |
@Override |
public int compare(CourseUnitSummaryView courseUnitSummaryView, CourseUnitSummaryView courseUnitSummaryView2) { |
public int getPrelancadosSummaries() { |
return prelancadosSummaries; |
} |
if(courseUnitSummaryView.getNumber() > courseUnitSummaryView2.getNumber()) |
return -1; |
else if(courseUnitSummaryView.getNumber() < courseUnitSummaryView2.getNumber()) |
return 1; |
return 0; |
} |
}); |
public void setPrelancadosSummaries(int prelancadosSummaries) { |
this.prelancadosSummaries = prelancadosSummaries; |
} |
public void setSummariesFromJson(List<CourseUnitSummaryView> summariesFromJson) { |
this.summariesFromJson = summariesFromJson; |
} |
public void setLateSummaries(int lateSummaries) { |
this.lateSummaries = lateSummaries; |
} |
public void setLateSummariesDates(List<String> lateSummariesDates) { |
this.lateSummariesDates = lateSummariesDates; |
} |
/** |
* Dependecia do Serviço de importação de sumarios |
* @return |
*/ |
public synchronized List<CourseUnitSummaryView> getSummariesFromJson() { |
if(summariesFromJson != null) |
return summariesFromJson; |
} |
return null; |
ImportSumariesJson.setSummariesFromJson(this); |
return summariesFromJson; |
} |
public List<String> getLateSummariesDates() { |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java |
---|
359,6 → 359,7 |
if(usession.getUser() != null && usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
s.addClearance(CourseUnitClearancesOperation.STATISTICS_CAN_VIEW.name(),usession); |
s.addClearance(CourseUnitClearancesOperation.EVALUATION_ALL.name(),usession); |
s.addClearance(CourseUnitClearancesOperation.PROGRAM_CAN_VALIDATE.name(),usession); |
s.addClearance(CourseUnitClearancesOperation.PROGRAM_TEACHER_PART.name(),usession); |
381,6 → 382,7 |
} |
if(teacher || responsable) |
{ |
s.addClearance(CourseUnitClearancesOperation.STATISTICS_CAN_VIEW.name(),usession); |
//s.addClearance(CourseUnitClearancesOperation.EVALUATION_INFO_USER_TEACHER.name(), usession); |
s.addClearance(CourseUnitClearancesOperation.EVALUATION_EDITION.name(),usession); |
if(active && isEdit) |
393,6 → 395,7 |
if(isCoordinator) |
{ |
s.addClearance(CourseUnitClearancesOperation.STATISTICS_CAN_VIEW.name(),usession); |
s.addClearance(CourseUnitClearancesOperation.PROGRAM_CAN_VALIDATE.name(),usession); |
s.addClearance(CourseUnitClearancesOperation.EVALUATION_INFO_USER_COMMISSION.name(), usession); |
s.addClearance(CourseUnitClearancesOperation.EVALUATION_EDITION.name(), usession); |
469,8 → 472,11 |
PROGRAM_COORDINATOR_PART, |
PROGRAM_TEACHER_PART, |
PROGRAM_CAN_VALIDATE, |
PROGRAM_INFO_VALID_NOT_ACTIVE |
PROGRAM_INFO_VALID_NOT_ACTIVE, |
STATISTICS_CAN_VIEW, |
; |
public static CourseUnitClearancesOperation parse(String clearance) |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/StudentDaoImpl.java |
---|
1,12 → 1,15 |
package pt.estgp.estgweb.domain.dao.impl; |
import org.hibernate.Criteria; |
import org.hibernate.criterion.Criterion; |
import org.hibernate.criterion.Order; |
import org.hibernate.criterion.Projections; |
import pt.estgp.estgweb.domain.Student; |
import java.util.List; |
import static org.hibernate.criterion.Restrictions.eq; |
import static org.hibernate.criterion.Restrictions.or; |
/** |
* @author Jorge Machado |
63,4 → 66,23 |
.add(eq("su.importYear",year)) |
.add(eq("su.institutionCode",""+institutionCode)).list(); |
} |
public List<Student> loadFromCoursesWithValidationRoles(List<String> validationRoles, String importYear) |
{ |
Criteria c = createCriteria() |
.createAlias("subscribedUnits","su") |
.createAlias("su.course","course") |
.add(eq("su.importYear",importYear)); |
Criterion co = null; |
for(String role: validationRoles) |
{ |
if(co==null) |
co = eq("course.validationRole",role); |
else |
co = or(co,eq("course.validationRole",role)); |
} |
c.addOrder(Order.asc("name")); |
return c.list(); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/ConfigurationImpl.java |
---|
1,5 → 1,7 |
package pt.estgp.estgweb.domain; |
import pt.estgp.estgweb.utils.DatesUtils; |
import java.io.Serializable; |
/** |
22,4 → 24,9 |
{ |
return getId(); |
} |
public String getPreviousInterfaceImportYear() |
{ |
return DatesUtils.getPreviousImportYear(getInterfaceImportYear()); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/FtpServer.java |
---|
1,6 → 1,7 |
package pt.estgp.estgweb.web; |
import org.apache.commons.net.ftp.FTPClient; |
import org.apache.commons.net.ftp.FTPFile; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
9,6 → 10,7 |
import java.io.IOException; |
import java.io.InputStream; |
import java.net.MalformedURLException; |
import java.net.SocketException; |
import java.net.URL; |
import java.util.HashMap; |
61,21 → 63,35 |
} |
private static final int FTP_TIMEOUT_SECONDS = pt.estgp.estgweb.Globals.FTP_TIMEOUT_SECONDS; |
public static class Connector implements Runnable |
{ |
FTPClient ftp; |
String host; |
int port; |
public Connector(FTPClient ftp, String host, int port) { |
this.ftp = ftp; |
this.host = host; |
this.port = port; |
} |
@Override |
public void run() { |
try { |
ftp.connect(host, port); |
} catch (IOException e) { |
logger.error(e,e); |
} |
} |
} |
public FTPClient getClient() throws IOException |
{ |
errorMsg = null; |
final FTPClient ftp = new MyFTPClient(); |
Connector connector = new Connector(new MyFTPClient(),host,port); |
logger.info("CONNECTING... waiting " + FTP_TIMEOUT_SECONDS + " seconds"); |
Thread t = new Thread(new Runnable() { |
@Override |
public void run() { |
try { |
ftp.connect(host, port); |
} catch (IOException e) { |
logger.error(e,e); |
} |
} |
}); |
Thread t = new Thread(connector); |
t.start(); |
try { |
for(int i=0;i<FTP_TIMEOUT_SECONDS;i++) |
83,11 → 99,11 |
Thread.sleep(1000); |
if(!t.isAlive()) |
{ |
if(ftp.isConnected()) |
if(connector.ftp.isConnected()) |
break; |
} |
} |
if(!ftp.isConnected()) |
if(!connector.ftp.isConnected()) |
{ |
errorMsg = "errors.ftp.timeout"; |
logger.info("Not Connected will interrupt"); |
101,9 → 117,16 |
if (username != null && password != null) |
{ |
if(ftp.login(username,password)) |
connector.ftp.setDataTimeout(1000000000); |
try { |
connector.ftp.setSoTimeout(1000000000); |
} catch (SocketException e) { |
e.printStackTrace(); |
} |
connector.ftp.setDefaultTimeout(1000000000); |
if(connector.ftp.login(username,password)) |
{ |
return ftp; |
return connector.ftp; |
} |
else |
{ |
234,6 → 257,183 |
return null; |
} |
public static class FtpClientWrapper extends FTPClient |
{ |
FtpServer server; |
FTPClient client = null; |
private int restartTimes = 2; |
private int tries = 0; |
public FtpClientWrapper(FtpServer server,int restartTimesOnFail) throws IOException { |
this.server = server; |
this.restartTimes = restartTimesOnFail; |
client = server.getClient(); |
client.setDataTimeout(10000); |
client.setSoTimeout(10000); |
client.setDefaultTimeout(10000); |
client.enterLocalActiveMode(); |
} |
@Override |
public boolean changeWorkingDirectory(String pathname) throws IOException |
{ |
try{ |
tries++; |
boolean b = client.changeWorkingDirectory(pathname); |
tries = 0; |
return b; |
} |
catch(IOException e) |
{ |
if(tries > restartTimes) |
{ |
tries = 0; |
client = server.getClient(); |
logger.error("Restart exceed maximum restart times of " + restartTimes); |
throw e; |
} |
else |
{ |
logger.warn("FTP Fail will try restart " + tries + "º connection of " + restartTimes + " error: " + e.toString()); |
client = server.getClient(); |
return changeWorkingDirectory(pathname); |
} |
} |
} |
@Override |
public void enterLocalPassiveMode() { |
client.enterLocalPassiveMode(); |
} |
@Override |
public void enterLocalActiveMode() { |
client.enterLocalActiveMode(); |
} |
@Override |
public boolean storeFile(String remote, InputStream local) throws IOException { |
try{ |
tries++; |
boolean b = client.storeFile(remote, local); |
tries = 0; |
return b; |
} |
catch(IOException e) |
{ |
if(tries > restartTimes) |
{ |
tries = 0; |
client = server.getClient(); |
logger.error("Restart exceed maximum restart times of " + restartTimes); |
throw e; |
} |
else |
{ |
client = server.getClient(); |
logger.warn("FTP Fail will try restart " + tries + "º connection of " + restartTimes + " error: " + e.toString()); |
return client.storeFile(remote, local); |
} |
} |
} |
public void close() throws IOException { |
client.quit(); |
client.disconnect(); |
} |
@Override |
public boolean logout() throws IOException { |
return super.logout(); |
} |
@Override |
public boolean abort() throws IOException { |
return client.abort(); |
} |
@Override |
public String[] listNames() throws IOException { |
try{ |
tries++; |
String[] b = client.listNames(); |
tries = 0; |
return b; |
} |
catch(IOException e) |
{ |
if(tries > restartTimes) |
{ |
tries = 0; |
client = server.getClient(); |
logger.error("Restart exceed maximum restart times of " + restartTimes); |
throw e; |
} |
else |
{ |
client = server.getClient(); |
logger.warn("FTP Fail will try restart " + tries + "º connection of " + restartTimes + " error: " + e.toString()); |
return client.listNames(); |
} |
} |
} |
@Override |
public FTPFile[] listFiles() throws IOException { |
try{ |
tries++; |
FTPFile[] b = client.listFiles(); |
tries = 0; |
return b; |
} |
catch(IOException e) |
{ |
if(tries > restartTimes) |
{ |
tries = 0; |
client = server.getClient(); |
logger.error("Restart exceed maximum restart times of " + restartTimes); |
throw e; |
} |
else |
{ |
client = server.getClient(); |
logger.warn("FTP Fail will try restart " + tries + "º connection of " + restartTimes + " error: " + e.toString()); |
return client.listFiles(); |
} |
} |
} |
@Override |
public FTPFile[] listFiles(String pathname) throws IOException { |
try{ |
tries++; |
FTPFile[] b = client.listFiles(pathname); |
tries = 0; |
return b; |
} |
catch(IOException e) |
{ |
if(tries > restartTimes) |
{ |
tries = 0; |
client = server.getClient(); |
logger.error("Restart exceed maximum restart times of " + restartTimes); |
throw e; |
} |
else |
{ |
client = server.getClient(); |
logger.warn("FTP Fail will try restart " + tries + "º connection of " + restartTimes + " error: " + e.toString()); |
return client.listFiles(pathname); |
} |
} |
} |
} |
public static final int FTP_DATA_STORE_TIMEOUT_SECONDS = pt.estgp.estgweb.Globals.FTP_DATA_STORE_TIMEOUT_SECONDS; |
public class MyFTPClient extends FTPClient implements Runnable |
{ |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/form/courses/CourseForm.java |
---|
18,6 → 18,7 |
*/ |
public class CourseForm extends TeachersForm |
{ |
private String forUser; |
private CourseView courseView; |
private FormFile studiesPlan; |
37,6 → 38,14 |
courseView = new CourseView(); |
} |
public String getForUser() { |
return forUser; |
} |
public void setForUser(String forUser) { |
this.forUser = forUser; |
} |
public CourseView getCourseView() |
{ |
return courseView; |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsController.java |
---|
135,6 → 135,26 |
throw e; |
} |
} |
protected CourseUnitView loadCourseUnitViewCleared(long id, boolean initTeachers, boolean initStudents, ActionMapping mapping, HttpServletRequest request, HttpServletResponse response) |
throws Throwable, InvalidFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException, NoCookiesException |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{id,initTeachers,initStudents,false}; |
try |
{ |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnitCleared", args, names); |
return cV; |
} |
catch (ExecutedFilterException e) |
{ |
if (e.getCause() instanceof ObjectNotFoundException) |
{ |
throw new NotFoundException(e.getCause().toString()); |
} |
throw e; |
} |
} |
protected CourseUnitView loadCourseUnitViewAndCourse(long id, boolean initTeachers, boolean initStudents, ActionMapping mapping, HttpServletRequest request, HttpServletResponse response) |
throws Throwable, InvalidFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException, NoCookiesException |
158,6 → 178,42 |
} |
public ActionForward loadStats(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
long id; |
if(cUF.getCourseUnitView() != null && cUF.getCourseUnitView().getId() > 0) |
id = cUF.getCourseUnitView().getId(); |
else |
id = Long.parseLong(request.getParameter("id")); |
CourseUnitView cV = loadCourseUnitViewCleared(id,false,false, mapping, request, response); |
cUF.setCourseUnitView(cV); |
request.setAttribute("CourseUnitView", cV); |
return mapping.findForward("loadStats"); |
} |
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 load(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/configuration/ConfigurationsController.java |
---|
5,6 → 5,7 |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import pt.estgp.estgweb.domain.Configuration; |
import pt.estgp.estgweb.domain.ConfigurationGradesEpocaAvaliacao; |
import pt.estgp.estgweb.domain.ConfigurationGradesStatusEpoca; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
12,6 → 13,7 |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.form.configuration.ConfigurationGradesForm; |
import pt.estgp.estgweb.web.form.configuration.ConfigurationsForm; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
148,4 → 150,32 |
return mapping.findForward("grades"); |
} |
public ActionForward saveConfigsGerais(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
ConfigurationsForm f = (ConfigurationsForm) form; |
AbstractDao.getCurrentSession().beginTransaction(); |
Configuration configuration = DaoFactory.getConfigurationDaoImpl().load(); |
configuration.setOpenInfoIntranet(f.getConfiguration().getOpenInfoIntranet()); |
configuration.setInterfaceImportYear(f.getConfiguration().getInterfaceImportYear()); |
configuration.setCursosFicticios(f.getConfiguration().getCursosFicticios()); |
configuration.setCourseUnitEvaluationActiveYear(f.getConfiguration().getCourseUnitEvaluationActiveYear()); |
configuration.setCourseUnitEvaluationActiveDegrees(f.getConfiguration().getCourseUnitEvaluationActiveDegrees()); |
configuration.setCourseUnitEvaluationActiveCourseIds(f.getConfiguration().getCourseUnitEvaluationActiveCourseIds()); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
return mapping.getInputForward(); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/filters/UserRoleProxy.java |
---|
125,6 → 125,11 |
public static String getMessage(String role,Locale locale) |
{ |
UserRoleConfig c = userRoleConfigs.get(role); |
if(c == null) |
{ |
logger.error("ATENTION: " + role + " role does not exist, please create"); |
return role; |
} |
if(locale == null) |
return c.getValue(); |
String msg = null; |
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml |
---|
44,6 → 44,74 |
<column name="summariesJson" sql-type="MEDIUMTEXT"/> |
</property> |
<property name="filesJson" type="text"> |
<column name="filesJson" sql-type="LONGTEXT" default="null"/> |
</property> |
<!-- CourseUnit Statistics --> |
<property name="statteachersCount" type="int"> |
<column name="statteachersCount" default="0"/> |
</property> |
<property name="statstudentsCount" type="int"> |
<column name="statstudentsCount" default="0"/> |
</property> |
<property name="statcontentsFiles" type="int"> |
<column name="statcontentsFiles" default="0"/> |
</property> |
<property name="statcontentsFolders" type="int"> |
<column name="statcontentsFolders" default="0"/> |
</property> |
<property name="statcontentsSize" type="long"> |
<column name="statcontentsSize" default="0"/> |
</property> |
<property name="statcontentsLastUpdate" type="timestamp"/> |
<property name="statworks" type="int"> |
<column name="statworks" default="0"/> |
</property> |
<property name="statanuncios" type="int"> |
<column name="statanuncios" default="0"/> |
</property> |
<property name="statblogPosts" type="int"> |
<column name="statblogPosts" default="0"/> |
</property> |
<property name="statdtpSumaries" type="int"> |
<column name="statdtpSumaries" default="0"/> |
</property> |
<property name="statdtpSumariesMissing" type="int"> |
<column name="statdtpSumariesMissing" default="0"/> |
</property> |
<property name="statdtpSumariesPrelancados" type="int"> |
<column name="statdtpSumariesPrelancados" default="0"/> |
</property> |
<property name="statdtpPlaneamentoFiles" type="int"> |
<column name="statdtpPlaneamentoFiles" default="0"/> |
</property> |
<property name="statdtpPlaneamentoLastUpdate" type="timestamp"/> |
<property name="statdtpFichaCurricularValid" type="boolean"> |
<column name="statdtpFichaCurricularValid" default="false"/> |
</property> <!--refere para o campo ficha válida coloca-se apenas o GET no IMPL--> |
<property name="statdtpFichaCurricularLastUpdate" type="timestamp"/> |
<property name="statdtpEvaluationReportState" type="string"/> <!-- VALIDO,ENTREGUE,INICIADO,INEXISTENTE refere para o campo relatorio de avaliação válido coloca-se apenas o GET no IMPL--> |
<property name="statdtpEvaluationReportLastUpdate" type="timestamp"/> |
<property name="statdtpInqueritoPedagogicoFiles" type="int"> |
<column name="statdtpInqueritoPedagogicoFiles" default="0"/> |
</property> |
<property name="statdtpInqueritoPedagogicoFilesLastUpdate" type="timestamp"/> |
<property name="statdtpAvaliacaoEnunciadosFiles" type="int"> |
<column name="statdtpAvaliacaoEnunciadosFiles" default="0"/> |
</property> |
<property name="statdtpAvaliacaoEnunciadosLastUpdate" type="timestamp"/> |
<property name="statdtpAvaliacaoPautasFiles" type="int"> |
<column name="statdtpAvaliacaoPautasFiles" default="0"/> |
</property> |
<property name="statdtpAvaliacaoPautasLastUpdate" type="timestamp"/> |
<!-- |
Este código de turma apenas é usado nos casos em que o curso é de turmas separadas |
Nesse caso uma cadeira só pode ter uma turma e então a turma é aqui colocada |
/branches/v3/impl/src/web/admin/profile/menu.jsp |
---|
29,7 → 29,7 |
<div class="listClean"> |
<ul> |
<li> |
<html:link action="/user/startProfile"><bean:message key="profile.home"/></html:link> |
<html:link action="/user/startProfile?id=${ProfileForm.userView.id}"><bean:message key="profile.home"/></html:link> |
</li> |
<baco:hasRole role="admin,services"> |
/branches/v3/impl/src/web/admin/configuration/configs.jsp |
---|
1,7 → 1,9 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.Configuration" %> |
<%@ page import="pt.estgp.estgweb.domain.Course" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.web.form.configuration.ConfigurationsForm" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ page import="java.util.List" %> |
<%@ 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-logic.tld" prefix="logic" %> |
9,7 → 11,7 |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<baco:isAdmin> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<jomm:messages/> |
<html:errors/> |
22,19 → 24,318 |
%> |
<html:form action="/admin/setConfigurations"> |
<jsp:useBean id="ConfigurationsForm" type="pt.estgp.estgweb.web.form.configuration.ConfigurationsForm" scope="request"/> |
<% |
ConfigurationsForm.setConfiguration(configuration); |
%> |
Ano de Interface : <html:text property="configuration.interfaceImportYear"/> |
Cursos Ficticios : <html:text property="configuration.cursosFicticios"/> |
Ano em Avaliação : <html:text property="configuration.courseUnitEvaluationActiveYear"/> |
Tipos de Cursos em Avaliação : <html:text property="configuration.courseUnitEvaluationActiveDegrees"/> |
Cursos Ativos para Avaliação : <html:text property="configuration.courseUnitEvaluationActiveCourseIds"/> |
Informação de Abertura da Intranet : <html:textarea property="configuration.openInfoIntranet"/> |
</html:form> |
<div class="panel panel-default"> |
<div class="panel-heading">Configurações Gerais do Sistema</div> |
<div class="panel-body"> |
<html:form styleClass="form-horizontal" action="/admin/setConfigurations"> |
<input type="hidden" name="dispatch" value="saveConfigsGerais"/> |
<jsp:useBean id="ConfigurationsForm" type="pt.estgp.estgweb.web.form.configuration.ConfigurationsForm" scope="request"/> |
<% |
ConfigurationsForm.setConfiguration(configuration); |
%> |
<div class="form-group"> |
<label class="control-label col-sm-2">Ano de Interface</label> |
<div class="col-sm-10"> |
<% |
List<String> years = DatesUtils.getImportYears(10); |
%> |
<html:select styleClass="form-control" property="configuration.interfaceImportYear"> |
<% |
for(String year:years) |
{ |
request.setAttribute("year",year); |
%> |
<html:option value="${year}">${year}</html:option> |
<% |
} |
%> |
</html:select> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2">Cursos Ficticios (separados por virgulas)</label> |
<div class="col-sm-10"> |
<html:text styleClass="form-control" property="configuration.cursosFicticios"/> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2">Informação de Abertura da Intranet</label> |
<div class="col-sm-10"> |
<html:textarea styleClass="form-control" rows="5" property="configuration.openInfoIntranet"/> |
</div> |
</div> |
<div class="panel panel-default"> |
<div class="panel-heading">Relatórios de Avaliação das Unidades Curriculares</div> |
<div class="panel-body"> |
<div class="form-group"> |
<label class="control-label col-sm-2">Ano aberto para relatórios de avaliação</label> |
<div class="col-sm-10"> |
<html:select styleClass="form-control" property="configuration.courseUnitEvaluationActiveYear"> |
<% |
for(String year:years) |
{ |
request.setAttribute("year",year); |
%> |
<html:option value="${year}">${year}</html:option> |
<% |
} |
%> |
</html:select> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2">Tipos de Cursos em Avaliação</label> |
<div class="col-sm-4"> |
<html:hidden styleId="degree" property="configuration.courseUnitEvaluationActiveDegrees" /> |
<div class="list-group" id="degreesListGroup"> |
</div> |
<script> |
var degrees = '${ConfigurationsForm.configuration.courseUnitEvaluationActiveDegrees}'; |
jsonObjDegrees = []; |
if(degrees.length > 0) |
{ |
var degreesArray = degrees.split(","); |
for(i=0;i< degreesArray.length;i++) |
{ |
item = {} |
item ["degree"] = degreesArray[i]; |
jsonObjDegrees.push(item); |
} |
} |
function persistDegrees(){ |
var finalDegrees = ""; |
$("#degreesListGroup").html(""); |
jsonObjDegrees.forEach( |
function(obj) { |
if(finalDegrees == "") |
finalDegrees+= obj.degree; |
else |
finalDegrees+= "," + obj.degree; |
var elementNew = $("<div class=\"list-group-item\">" + |
$('#degreeCombo option[value="' + obj.degree + '"]').html() + |
"</div>"); |
$("#degreesListGroup").append(elementNew); |
var removeBtn = $('<button class="btn btn-xs btn-danger pull-right" type="button"><span class="glyphicon glyphicon-remove"/></button>'); |
elementNew.append(removeBtn); |
removeBtn.click( |
function(){ |
var found = false; |
for(var degree in jsonObjDegrees) |
{ |
if(jsonObjDegrees[degree].degree == obj.degree) |
{ |
jsonObjDegrees.splice(degree, 1); |
break; |
} |
} |
persistDegrees(); |
} |
); |
} |
); |
$("#degree").val(finalDegrees); |
} |
$(document).ready( |
function(){ |
persistDegrees(); |
$("#addDegreeBtn").click( |
function() |
{ |
var found = false; |
for(var degree in jsonObjDegrees) |
{ |
if(jsonObjDegrees[degree].degree == $("#degreeCombo").val()) |
{ |
found = true; |
} |
} |
if(!found) |
{ |
item = {} |
item ["degree"] = $("#degreeCombo").val(); |
jsonObjDegrees.push(item); |
persistDegrees(); |
} |
} |
); |
$("#removeDegreeBtn").click( |
function() |
{ |
var found = false; |
for(var degree in jsonObjDegrees) |
{ |
if(jsonObjDegrees[degree].degree == $("#degreeCombo").val()) |
{ |
jsonObjDegrees.splice(degree, 1); |
break; |
} |
} |
persistDegrees(); |
} |
); |
} |
); |
</script> |
</div> |
<div class="col-sm-3"> |
<select class="form-control" id="degreeCombo"> |
<option value="B"><bean:message key="course.B"/> (B)</option> |
<option value="L"><bean:message key="course.L"/> (L)</option> |
<option value="M"><bean:message key="course.M"/> (M)</option> |
<option value="P"><bean:message key="course.P"/> (P)</option> |
<option value="E"><bean:message key="course.E"/> (E)</option> |
<option value="A"><bean:message key="course.A"/> (A)</option> |
<option value="C"><bean:message key="course.C"/> (C)</option> |
<option value="O"><bean:message key="course.O"/> (O)</option> |
<option value="T"><bean:message key="course.T"/> (T)</option> |
</select> |
</div> |
<div class="col-sm-3"> |
<button class="btn btn-small btn-success" type="button" id="addDegreeBtn"><span class="glyphicon glyphicon-plus"/></button> |
<button class="btn btn-small btn-danger" type="button" id="removeDegreeBtn"><span class="glyphicon glyphicon-remove"/></button> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2">Cursos Ativos para Avaliação</label> |
<div class="col-sm-4"> |
<html:hidden styleId="course" property="configuration.courseUnitEvaluationActiveCourseIds" /> |
<div class="list-group" id="coursesListGroup"> |
</div> |
<script> |
var courses = '${ConfigurationsForm.configuration.courseUnitEvaluationActiveCourseIds}'; |
jsonObjCourses = []; |
if(courses.length > 0) |
{ |
var coursesArray = courses.split(";"); |
for(i=0;i< coursesArray.length;i++) |
{ |
item = {} |
item ["courseId"] = coursesArray[i]; |
jsonObjCourses.push(item); |
} |
} |
function persistCourses(){ |
var finalCourses = ""; |
$("#coursesListGroup").html(""); |
jsonObjCourses.forEach( |
function(obj) { |
if(finalCourses == "") |
finalCourses+= obj.courseId; |
else |
finalCourses+= ";" + obj.courseId; |
var elementNew = $( "<div class=\"list-group-item\">" + |
$('#coursesCombo option[value="' + obj.courseId + '"]').html() + |
"</div>"); |
$("#coursesListGroup").append(elementNew); |
var removeBtn = $('<button class="btn btn-xs btn-danger pull-right" type="button"><span class="glyphicon glyphicon-remove"/></button>'); |
elementNew.append(removeBtn); |
removeBtn.click( |
function(){ |
var found = false; |
for(var course in jsonObjCourses) |
{ |
if(jsonObjCourses[course].courseId == obj.courseId) |
{ |
jsonObjCourses.splice(course, 1); |
break; |
} |
} |
persistCourses(); |
} |
); |
} |
); |
$("#course").val(finalCourses); |
} |
$(document).ready( |
function(){ |
persistCourses(); |
$("#addCourseBtn").click( |
function() |
{ |
var found = false; |
for(var course in jsonObjCourses) |
{ |
if(jsonObjCourses[course].courseId == $("#coursesCombo").val()) |
{ |
found = true; |
} |
} |
if(!found) |
{ |
item = {} |
item ["courseId"] = $("#coursesCombo").val(); |
jsonObjCourses.push(item); |
persistCourses(); |
} |
} |
); |
$("#removeCourseBtn").click( |
function() |
{ |
var found = false; |
for(var course in jsonObjCourses) |
{ |
if(jsonObjCourses[course].courseId == $("#coursesCombo").val()) |
{ |
jsonObjCourses.splice(course, 1); |
break; |
} |
} |
persistCourses(); |
} |
); |
} |
); |
</script> |
</div> |
<div class="col-sm-3"> |
<select class="form-control" id="coursesCombo"> |
<% |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAllOrderByName(); |
request.setAttribute("Courses",courses); |
%> |
<logic:iterate id="course" name="Courses" type="pt.estgp.estgweb.domain.Course"> |
<option value="${course.id}">${course.name} (${course.code})</option> |
</logic:iterate> |
</select> |
</div> |
<div class="col-sm-3"> |
<button class="btn btn-small btn-success" type="button" id="addCourseBtn"><span class="glyphicon glyphicon-plus"/></button> |
<button class="btn btn-small btn-danger" type="button" id="removeCourseBtn"><span class="glyphicon glyphicon-remove"/></button> |
</div> |
</div> |
</div> |
</div> |
<button type="button" class="btn btn-success" onclick="set(form,'saveConfigsGerais');form.submit()"><bean:message key="confirm"/></button> |
</html:form> |
</div> |
</div> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
%> |
</baco:isAdmin> |
/branches/v3/impl/src/web/css/style.css |
---|
39,6 → 39,8 |
} |
.tablesorterfiltered |
{} |
/branches/v3/impl/src/web/layout/themes/scripts-default.jsp |
---|
92,6 → 92,7 |
{ |
display: none; |
} |
</style> |
<!--READY FIRST EVENT--> |
/branches/v3/impl/src/web/layout/headerTools.jsp |
---|
206,4 → 206,25 |
</div> |
</div> |
</div> |
</div> |
</div> |
<div class="modal fade" id="modalPleaseWait" role="dialog" > |
<div class="modal-dialog" data-width="960" style="display: block; width: 960px; margin-top: 50px;" aria-hidden="false"> |
<!-- Modal content--> |
<div class="modal-content"> |
<div class="modal-header clearfix"> |
<h3 class="modal-title"> |
<label class="title-wrap"></label> |
</h3> |
</div> |
<div class="modal-body"> |
<div class="panel panel-info"> |
<div class="panel-body"> |
<p>Por favor aguarde um momento, o sistema está a carregar <img src="<%=request.getContextPath()%>/imgs/wait.gif"/></p> |
</div> |
</div> |
</div> |
</div> |
</div> |
</div> |
/branches/v3/impl/src/web/public/profile/profileGrades.jsp |
---|
21,20 → 21,7 |
<jomm:messages/> |
<%--<jsp:useBean id="ProfileForm" class="pt.estgp.estgweb.web.form.profile.ProfileForm"/>--%> |
<% |
String fromAction = ""; |
String from = ""; |
String user = ""; |
if (request.getParameter("from") != null) |
{ |
user = "/user"; |
fromAction = "From" + request.getParameter("from"); |
from = "?from=" + request.getParameter("from"); |
} |
request.setAttribute("from", from); |
request.setAttribute("user", user); |
request.setAttribute("fromAction", fromAction); |
%> |
<h1> |
<bean:write name="ProfileForm" property="userView.name"/> |
</h1> |
55,7 → 42,7 |
%> |
</h2> |
<% |
if(UserSession.getUser() != null && !UserSession.getUser().isAdmin() && !UserSession.getUser().hasRole("services") && UserSession.getUser().getId() != ProfileForm.getUserView().getId()) |
if(UserSession.getUser() != null && !UserSession.getUser().isTeacher() && !UserSession.getUser().isAdmin() && !UserSession.getUser().hasRole("services") && UserSession.getUser().getId() != ProfileForm.getUserView().getId()) |
{ |
%> |
<h2 class="warning">Apenas o aluno tem direito a consultar as suas notas</h2> |
75,18 → 62,13 |
{ |
%> |
<script type="text/javascript" language="JavaScript"> |
//TABLE SORTER |
$(document).ready(function() |
{ |
$("#myTable$").tablesorter(); |
} |
); |
</script> |
<div class="block"> |
<% |
Map<Long,Integer> unidadeNota = new HashMap<Long,Integer>(); |
Map<Long,Integer> unidadePositiva = new HashMap<Long,Integer>(); |
for(CourseUnitGradeView grade: ProfileForm.getUserView().getGrades()) |
{ |
Integer notaUnidade = unidadeNota.get(grade.getCourseUnit().getId()); |
96,16 → 78,30 |
{ |
unidadeNota.put(grade.getCourseUnit().getId(),grade.getGrade()); |
} |
if(grade.getGrade() >= 10) |
{ |
if(unidadePositiva.get(grade.getCourseUnit().getId())== null |
|| (unidadePositiva.get(grade.getCourseUnit().getId())!=null && unidadePositiva.get(grade.getCourseUnit().getId())>grade.getGrade())) |
{ |
unidadePositiva.put(grade.getCourseUnit().getId(),grade.getGrade()); |
} |
} |
} |
} |
float total = 0; |
for(Integer nota: unidadeNota.values()) |
for(Integer nota: unidadePositiva.values()) |
total+=nota; |
float media = total/((float)unidadeNota.size()); |
float media = total/((float)unidadePositiva.size()); |
%> |
<%--Média: <%=media%>--%> |
<p>Média: <%=media%></p> |
<p>Unidades Completas: <%=unidadePositiva.size()%></p> |
</div> |
<table id="myTable" class="dataTable tablesorter"> |
<button class="btn btn-default" onclick="$('#studentGrades .S_N').toggle()">Limpar/Mostrar S/N</button> |
<button class="btn btn-default" onclick="$('#studentGrades .NEGATIVA').toggle()">Limpar/Mostrar apenas positivas</button> |
<table id="studentGrades" class="tablesorterfiltered"> |
<thead> |
<tr> |
<th> |
133,7 → 129,8 |
</thead> |
<tbody> |
<logic:iterate id="grade" name="ProfileForm" property="userView.grades" type="pt.estgp.estgweb.domain.views.CourseUnitGradeView"> |
<tr> |
<tr class="<logic:lessThan value="0" name="grade" property="grade">S_N</logic:lessThan> <logic:lessThan value="10" name="grade" property="grade">NEGATIVA</logic:lessThan>"> |
<td> |
${grade.courseUnit.code} |
</td> |
/branches/v3/impl/src/web/public/profile/profileHome.jsp |
---|
17,20 → 17,7 |
<jomm:messages/> |
<%--<jsp:useBean id="ProfileForm" class="pt.estgp.estgweb.web.form.profile.ProfileForm"/>--%> |
<% |
String fromAction = ""; |
String from = ""; |
String user = ""; |
if (request.getParameter("from") != null) |
{ |
user = "/user"; |
fromAction = "From" + request.getParameter("from"); |
from = "?from=" + request.getParameter("from"); |
} |
request.setAttribute("from", from); |
request.setAttribute("user", user); |
request.setAttribute("fromAction", fromAction); |
%> |
<div class="panel panel-default"> |
<baco:isAdmin> |
<div class="panel-heading"> |
38,244 → 25,9 |
</div> |
</baco:isAdmin> |
<div class="panel-body"> |
<h1> |
<bean:write name="ProfileForm" property="userView.name"/> |
</h1> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Teacher ) |
{ |
%> |
<p class="lead"><strong>Função:</strong> <bean:message key="user.role.teacher"/></p> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Student ) |
{ |
%> |
<p class="lead"><bean:message key="user.role.student"/></p> |
<% |
} |
%> |
<jsp:include page="profileHomeSimple.jsp"/> |
</div> |
</div> |
<p><strong><bean:message key="number"/>:</strong> <bean:write name="ProfileForm" property="userView.code"/></p> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Teacher && ProfileForm.getUserView().getAcademicDegree() != null && ProfileForm.getUserView().getAcademicDegree().trim().length() > 0) |
{ |
%> |
<baco:isAdmin> |
<p><strong><bean:message key="profile.academic.degree"/>:</strong> <bean:message key="profile.academic.degree.${ProfileForm.userView.academicDegree}"/></p> |
</baco:isAdmin> |
<% |
} |
%> |
<p><strong><bean:message key="email.institucion"/>:</strong> ${ProfileForm.userView.safeEmail}</p> |
<%-- |
<bean:message key="profile.roles"/>: |
<% |
List<String> roles = ProfileForm.getUserView().getOwnerRoles(); |
String separator = ""; |
for (String role : roles) |
{ |
if (!role.equals(Globals.SUPER_USER_ROLE)) |
{ |
out.print(separator + MessageResources.getMessage(request, "user.role." + role)); |
separator = ", "; |
} |
} |
%> |
--%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher || ProfileForm.getUserView().getUser() instanceof Student) |
{ |
%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher) |
{ |
%> |
<p class="lead"><bean:message key="profile.teacher.courses"/></p> |
<% |
} |
else |
{ |
%> |
<p class="lead"><bean:message key="profile.student.courses"/></p> |
<% |
} |
%> |
<logic:present name="ProfileForm" property="userView.courses"> |
<ul> |
<logic:iterate id="course" name="ProfileForm" property="userView.courses"> |
<li> |
<bean:write name="course" property="name"/> |
<ul> |
<logic:iterate id="courseUnit" name="course" property="courseUnits"> |
<li> |
(<bean:write name="courseUnit" property="importYear"/>) <html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link> |
</li> |
</logic:iterate> |
</ul> |
</li> |
</logic:iterate> |
</ul> |
</logic:present> |
<% |
} |
%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher) |
{ |
%> |
<logic:present name="ProfileForm" property="userView.responsableCourseUnits"> |
<p class="lead"><bean:message key="courseunit.responsable"/></p> |
<ul> |
<logic:iterate id="courseUnit" name="ProfileForm" property="userView.responsableCourseUnits"> |
<li> |
(<bean:write name="courseUnit" property="importYear"/>) <html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link> |
</li> |
</logic:iterate> |
</ul> |
</logic:present> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getCreatorRecords() != null && ProfileForm.getUserView().getCreatorRecords().size() > 0) |
{ |
%> |
<div class="seccao"> |
<h1><bean:message key="profile.creator.records"/></h1> |
<% |
List thesisViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_THESIS); |
if(thesisViews != null && thesisViews.size() > 0) |
{ |
request.setAttribute("RecordViews",thesisViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_THESIS.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List jobViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_JOB); |
if(jobViews != null && jobViews.size() > 0) |
{ |
request.setAttribute("RecordViews",jobViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_JOB.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List eventViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_EVENT_ORGANIZATION); |
if(eventViews != null && eventViews.size() > 0) |
{ |
request.setAttribute("RecordViews",eventViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_EVENT_ORGANIZATION.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List otherViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_OTHER); |
if(otherViews != null && otherViews.size() > 0) |
{ |
request.setAttribute("RecordViews",otherViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_OTHER.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List paperViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_PAPER); |
if(paperViews != null && paperViews.size() > 0) |
{ |
request.setAttribute("RecordViews",paperViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_PAPER.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List projectViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_PROJECT); |
if(projectViews != null && projectViews.size() > 0) |
{ |
request.setAttribute("RecordViews",projectViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_PROJECT.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
%> |
</div> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getContributorRecords() != null && ProfileForm.getUserView().getContributorRecords().size() > 0) |
{ |
%> |
<div class="seccao"> |
<h1><bean:message key="profile.contributor.records"/></h1> |
<% |
List thesisViews = ProfileForm.getUserView().getContributorRecords(RecordEnum.RECORD_THESIS); |
if(thesisViews != null && thesisViews.size() > 0) |
{ |
request.setAttribute("RecordViews",thesisViews); |
} |
%> |
</div> |
<% |
} |
%> |
</div> |
</div> |
/branches/v3/impl/src/web/public/profile/profileGradesAjax.jsp |
---|
New file |
0,0 → 1,40 |
<%@ page import="jomm.utils.MessageResources" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.views.CourseUnitGradeView" %> |
<%@ page import="java.util.HashMap" %> |
<%@ page import="java.util.List" %> |
<%@ page import="java.util.Map" %> |
<%@ page import="pt.estgp.estgweb.domain.UserSession" %> |
<%@ page import="pt.estgp.estgweb.domain.Student" %> |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.views.UserView" %> |
<%@ page import="pt.estgp.estgweb.web.form.profile.ProfileForm" %> |
<%@ 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 contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<% |
Long userId = Long.parseLong(request.getParameter("userId")); |
if(UserSession.getUser().isSuperuserOrAdmin() || UserSession.getUser().isTeacher()) |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{userId}; |
UserView uV = (UserView) sm.execute(RequestUtils.getRequester(request, response), "LoadUserWithGradesById", args, names); |
ProfileForm profileForm = new pt.estgp.estgweb.web.form.profile.ProfileForm(uV); |
request.setAttribute("ProfileForm",profileForm); |
%> |
<jsp:include page="profileGrades.jsp"/> |
<% |
} |
%> |
/branches/v3/impl/src/web/public/profile/profileHomeAjax.jsp |
---|
New file |
0,0 → 1,37 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="jomm.utils.MessageResources" %> |
<%@ page import="pt.estgp.estgweb.domain.Student" %> |
<%@ page import="pt.estgp.estgweb.domain.Teacher" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.enums.RecordEnum" %> |
<%@ page import="pt.estgp.estgweb.domain.views.UserView" %> |
<%@ page import="pt.estgp.estgweb.web.form.profile.ProfileForm" %> |
<%@ 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 contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<% |
Long userId = Long.parseLong(request.getParameter("userId")); |
if(UserSession.getUser().isSuperuserOrAdmin() || UserSession.getUser().isTeacher()) |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{userId}; |
UserView uV = (UserView) sm.execute(RequestUtils.getRequester(request, response), "LoadUserWithRecordsById", args, names); |
ProfileForm profileForm = new pt.estgp.estgweb.web.form.profile.ProfileForm(uV); |
request.setAttribute("ProfileForm",profileForm); |
%> |
<jsp:include page="profileHomeSimple.jsp"/> |
<% |
} |
%> |
/branches/v3/impl/src/web/public/profile/profileHomeSimple.jsp |
---|
New file |
0,0 → 1,271 |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.domain.Teacher" %> |
<%@ page import="jomm.utils.MessageResources" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.Student" %> |
<%@ page import="pt.estgp.estgweb.domain.enums.RecordEnum" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<jsp:useBean id="ProfileForm" type="pt.estgp.estgweb.web.form.profile.ProfileForm" scope="request"/> |
<jomm:messages/> |
<%--<jsp:useBean id="ProfileForm" class="pt.estgp.estgweb.web.form.profile.ProfileForm"/>--%> |
<% |
String fromAction = ""; |
String from = ""; |
String user = ""; |
if (request.getParameter("from") != null) |
{ |
user = "/user"; |
fromAction = "From" + request.getParameter("from"); |
from = "?from=" + request.getParameter("from"); |
} |
request.setAttribute("from", from); |
request.setAttribute("user", user); |
request.setAttribute("fromAction", fromAction); |
%> |
<h1> |
<bean:write name="ProfileForm" property="userView.name"/> |
</h1> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Teacher ) |
{ |
%> |
<p class="lead"><strong>Função:</strong> <bean:message key="user.role.teacher"/></p> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Student ) |
{ |
%> |
<p class="lead"><bean:message key="user.role.student"/></p> |
<% |
} |
%> |
<%--PROBLEMA AQUI--%> |
<p><strong><bean:message key="number"/>:</strong> <bean:write name="ProfileForm" property="userView.code"/></p> |
<% |
if(ProfileForm.getUserView().getUser() instanceof Teacher && ProfileForm.getUserView().getAcademicDegree() != null && ProfileForm.getUserView().getAcademicDegree().trim().length() > 0) |
{ |
%> |
<baco:isAdmin> |
<p><strong><bean:message key="profile.academic.degree"/>:</strong> <bean:message key="profile.academic.degree.${ProfileForm.userView.academicDegree}"/></p> |
</baco:isAdmin> |
<% |
} |
%> |
<p><strong><bean:message key="email.institucion"/>:</strong> ${ProfileForm.userView.email}</p> |
<%-- |
<bean:message key="profile.roles"/>: |
<% |
List<String> roles = ProfileForm.getUserView().getOwnerRoles(); |
String separator = ""; |
for (String role : roles) |
{ |
if (!role.equals(Globals.SUPER_USER_ROLE)) |
{ |
out.print(separator + MessageResources.getMessage(request, "user.role." + role)); |
separator = ", "; |
} |
} |
%> |
--%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher || ProfileForm.getUserView().getUser() instanceof Student) |
{ |
%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher) |
{ |
%> |
<p class="lead"><bean:message key="profile.teacher.courses"/></p> |
<% |
} |
else |
{ |
%> |
<p class="lead"><bean:message key="profile.student.courses"/></p> |
<% |
} |
%> |
<logic:present name="ProfileForm" property="userView.courses"> |
<ul> |
<logic:iterate id="course" name="ProfileForm" property="userView.courses"> |
<li> |
<bean:write name="course" property="name"/> |
<ul> |
<logic:iterate id="courseUnit" name="course" property="courseUnits"> |
<li> |
(<bean:write name="courseUnit" property="importYear"/>) <html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link> |
</li> |
</logic:iterate> |
</ul> |
</li> |
</logic:iterate> |
</ul> |
</logic:present> |
<% |
} |
%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher) |
{ |
%> |
<logic:present name="ProfileForm" property="userView.responsableCourseUnits"> |
<p class="lead"><bean:message key="courseunit.responsable"/></p> |
<ul> |
<logic:iterate id="courseUnit" name="ProfileForm" property="userView.responsableCourseUnits"> |
<li> |
(<bean:write name="courseUnit" property="importYear"/>) <html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link> |
</li> |
</logic:iterate> |
</ul> |
</logic:present> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getCreatorRecords() != null && ProfileForm.getUserView().getCreatorRecords().size() > 0) |
{ |
%> |
<div class="seccao"> |
<h1><bean:message key="profile.creator.records"/></h1> |
<% |
List thesisViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_THESIS); |
if(thesisViews != null && thesisViews.size() > 0) |
{ |
request.setAttribute("RecordViews",thesisViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_THESIS.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List jobViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_JOB); |
if(jobViews != null && jobViews.size() > 0) |
{ |
request.setAttribute("RecordViews",jobViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_JOB.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List eventViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_EVENT_ORGANIZATION); |
if(eventViews != null && eventViews.size() > 0) |
{ |
request.setAttribute("RecordViews",eventViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_EVENT_ORGANIZATION.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List otherViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_OTHER); |
if(otherViews != null && otherViews.size() > 0) |
{ |
request.setAttribute("RecordViews",otherViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_OTHER.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List paperViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_PAPER); |
if(paperViews != null && paperViews.size() > 0) |
{ |
request.setAttribute("RecordViews",paperViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_PAPER.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
List projectViews = ProfileForm.getUserView().getCreatorRecords(RecordEnum.RECORD_PROJECT); |
if(projectViews != null && projectViews.size() > 0) |
{ |
request.setAttribute("RecordViews",projectViews); |
%> |
<div class="seccao"> |
<h2> |
<%=MessageResources.getMessage(request,"profile." + RecordEnum.RECORD_PROJECT.getTypeStr())%> |
</h2> |
<jsp:include page="/public/profile/recordViews.jsp"/> |
</div> |
<% |
} |
%> |
</div> |
<% |
} |
%> |
<% |
if(ProfileForm.getUserView().getContributorRecords() != null && ProfileForm.getUserView().getContributorRecords().size() > 0) |
{ |
%> |
<div class="seccao"> |
<h1><bean:message key="profile.contributor.records"/></h1> |
<% |
List thesisViews = ProfileForm.getUserView().getContributorRecords(RecordEnum.RECORD_THESIS); |
if(thesisViews != null && thesisViews.size() > 0) |
{ |
request.setAttribute("RecordViews",thesisViews); |
} |
%> |
</div> |
<% |
} |
%> |
/branches/v3/impl/src/web/public/announcements/announcementsPortalLeft.jsp |
---|
21,7 → 21,7 |
IServiceManager sm = ServiceManager.getInstance(); |
String subTarget = null; |
String[] names = new String[]{}; |
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS + "," +Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS, subTarget}; |
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS, subTarget}; |
List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute(RequestUtils.getRequester(request, response), "LoadRoleTypeMaxAnnouncements", args, names); |
request.setAttribute("Announcements", announcementViews); |
/branches/v3/impl/src/web/user/courses/directedCoordinatedCourses.jsp |
---|
56,72 → 56,94 |
<html:form styleClass="form-horizontal" action="${user}/courseController${fromAction}${from}" enctype="multipart/form-data"> |
<input type="hidden" name="dispatch" value="updateDirectedCoordininatedCourses"> |
<input type="hidden" name="fromDispatch" value="${fromDispatch}"/> |
<html:hidden property="forUser"/> |
<div class="panel panel-default"> |
<div class="panel-heading"><bean:message key="courseunit.programs"/></div> |
<div class="panel-body"> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="institutionCode"><bean:message key="institution"/></label> |
<div class="col-sm-6"> |
<html:select styleId="institutionCode" styleClass="form-control" property="institutionCode" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value="">Todas</option> |
<html:option value="1">Escola Superior de Tecnologia e Gestão (3122)</html:option> |
<html:option value="2">Escola Superior Agrária de Elvas (3123)</html:option> |
<html:option value="3">Escola Superior de Educação (3121) </html:option> |
<html:option value="4">Escola Superior de Saúde (7055)</html:option> |
<html:option value="5">Escola Superior de Educação - Post. Graduação</html:option> |
<html:option value="6">Instituto Politécnico de Portalegre (3120)</html:option> |
</html:select> |
<logic:empty name="CourseForm" property="forUser"> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="institutionCode"><bean:message key="institution"/></label> |
<div class="col-sm-6"> |
<html:select styleId="institutionCode" styleClass="form-control" property="institutionCode" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value="">Todas</option> |
<html:option value="1">Escola Superior de Tecnologia e Gestão (3122)</html:option> |
<html:option value="2">Escola Superior Agrária de Elvas (3123)</html:option> |
<html:option value="3">Escola Superior de Educação (3121) </html:option> |
<html:option value="4">Escola Superior de Saúde (7055)</html:option> |
<html:option value="5">Escola Superior de Educação - Post. Graduação</html:option> |
<html:option value="6">Instituto Politécnico de Portalegre (3120)</html:option> |
</html:select> |
</div> |
</div> |
</div> |
</logic:empty> |
<logic:notEmpty name="CourseForm" property="forUser"> |
<html:hidden property="institutionCode"/> |
</logic:notEmpty> |
<div class="form-horizontal-small"> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="year"><bean:message key="course.program.courses.choose.year"/></label> |
<div class="col-sm-6"> |
<html:select styleId="year" styleClass="form-control" property="importYear" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<logic:iterate id="importYear" name="importYears"> |
<html:option value="${importYear}"/> |
</logic:iterate> |
</html:select> |
<logic:empty name="CourseForm" property="forUser"> |
<html:select styleId="year" styleClass="form-control" property="importYear" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<logic:iterate id="importYear" name="importYears"> |
<html:option value="${importYear}"/> |
</logic:iterate> |
</html:select> |
</logic:empty> |
<logic:notEmpty name="CourseForm" property="forUser"> |
<html:hidden property="importYear"/> |
<label class="control-label">${CourseForm.importYear}</label> |
</logic:notEmpty> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="semestre"><bean:message key="courseunit.semestre"/></label> |
<div class="col-sm-6"> |
<html:select styleId="semestre" styleClass="form-control" property="semestre" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value=""><bean:message key="courseunit.ALL"/></option> |
<html:option value="A" key="courseunit.A"/> |
<html:option value="S1" key="courseunit.S1"/> |
<html:option value="S2" key="courseunit.S2"/> |
<html:option value="T1" key="courseunit.T1"/> |
<html:option value="T2" key="courseunit.T2"/> |
<html:option value="T3" key="courseunit.T3"/> |
<html:option value="T4" key="courseunit.T4"/> |
</html:select> |
<html:select styleId="semestre" styleClass="form-control" property="semestre" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value=""><bean:message key="courseunit.ALL"/></option> |
<html:option value="A" key="courseunit.A"/> |
<html:option value="S1" key="courseunit.S1"/> |
<html:option value="S2" key="courseunit.S2"/> |
<html:option value="T1" key="courseunit.T1"/> |
<html:option value="T2" key="courseunit.T2"/> |
<html:option value="T3" key="courseunit.T3"/> |
<html:option value="T4" key="courseunit.T4"/> |
</html:select> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="departamento"><bean:message key="departamento"/></label> |
<div class="col-sm-6"> |
<html:select styleId="departamento" styleClass="form-control" property="area" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value=""><bean:message key="departamentos.all"/></option> |
<logic:iterate id="area" name="CourseForm" property="areas"> |
<html:option value="${area}" key="area.${area}"/> |
</logic:iterate> |
</html:select> |
<logic:empty name="CourseForm" property="forUser"> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="departamento"><bean:message key="departamento"/></label> |
<div class="col-sm-6"> |
<html:select styleId="departamento" styleClass="form-control" property="area" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<option value=""><bean:message key="departamentos.all"/></option> |
<logic:iterate id="area" name="CourseForm" property="areas"> |
<html:option value="${area}" key="area.${area}"/> |
</logic:iterate> |
</html:select> |
</div> |
</div> |
</div> |
</logic:empty> |
<logic:notEmpty name="CourseForm" property="forUser"> |
<html:hidden property="area"/> |
</logic:notEmpty> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="course"><bean:message key="courseunit.course"/></label> |
<div class="col-sm-6"> |
<html:select styleId="course" styleClass="form-control" property="courseId" onchange="set(this.form,'${fromDispatch}');this.form.submit()"> |
<html:option value="" key="courses.all"/> |
<logic:iterate id="courseView" name="courses" type="pt.estgp.estgweb.domain.views.CourseView"> |
<html:option value="${courseView.id}">(${courseView.code}) ${courseView.name}</html:option> |
<logic:empty name="CourseForm" property="forUser"> |
<html:option value="${courseView.id}">(${courseView.code}) ${courseView.name}</html:option> |
</logic:empty> |
<logic:notEmpty name="CourseForm" property="forUser"> |
<baco:hasRole role="${courseView.validationRole}"> |
<html:option value="${courseView.id}">(${courseView.code}) ${courseView.name}</html:option> |
</baco:hasRole> |
</logic:notEmpty> |
</logic:iterate> |
</html:select> |
</div> |
/branches/v3/impl/src/web/user/courseunits/ftpClient.jsp |
---|
6,5 → 6,47 |
To change this template use File | Settings | File Templates. |
--%> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<script> |
var jsonFiles = JSON.parse('${CourseUnitView.courseUnit.filesJson}'); |
function searchFilesUnit(){ |
$(".searchResults").html("<div class=\"files\"><table></table></div>"); |
var text = $("#searchFiles").val().toLowerCase(); |
jsonFiles.forEach(function(item){ |
if (item.filename.toLowerCase().search(text) != -1) { |
$(".searchResults .files table").append( |
"<tr class=\"file\">" + |
"<td>" + |
"<img src=\"<%=request.getContextPath()%>/imgs/mime/" + item.extension +".gif\"/>" + |
" <a href=\"<%=request.getContextPath()%>/ftpProxyStream/ionline" + item.fileCompletePathEncoded + "\">" + |
item.file + |
"</a>"+ |
"</td>" + |
"<td>" + item.lastmodifieddate + "</td>" + |
"<td>" + item.size + "</td>" + |
"</tr>" |
); |
} |
}); |
} |
$(document).ready( |
function(){ |
$(".ftpClientPanel .panel-heading").append( |
"<span class=\"pull-right\"><input type=\"text\" id=\"searchFiles\"><button class=\"btn btn-default\" id=\"searchFilesBtn\" type=\"button\"><span class=\"glyphicon glyphicon-search\"></button></span>" |
); |
$(".ftpClientPanel .panel-heading").after( |
"<div class=\"panel-body searchResults\"></div>" |
); |
$("#searchFilesBtn").click(searchFilesUnit); |
$('#searchFiles').bind("keypress", function(e) { |
if (e.keyCode == 13) { |
searchFilesUnit(); |
} |
}); |
} |
); |
</script> |
<jsp:include page="/user/ftpclient/ftpclient.jsp"/> |
/branches/v3/impl/src/web/user/courseunits/courseunitsStatistics.jsp |
---|
New file |
0,0 → 1,141 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.web.utils.DatesUtils" %> |
<%@ 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="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="STATISTICS_CAN_VIEW"> |
<% |
long courseUnitId = CourseUnitView.getId(); |
AbstractDao.getCurrentSession().beginTransaction(); |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(courseUnitId); |
request.setAttribute("cu",cu); |
%> |
<div class="panel panel-default"> |
<div class="panel-heading"><bean:message key="course.unit.stats"/> Visiveis apenas aos Docentes da unidade e à Comissão de Curso</div> |
<div class="panel-body"> |
(dados atualizados a cada 24 horas) |
<h3>Gerais</h3> |
<table class="tablesorter-blue"> |
<tbody> |
<tr> |
<th>Anúncios</th> |
<td>${cu.statanuncios}</td> |
</tr> |
<tr> |
<th>Posts no Blog</th> |
<td>${cu.statblogPosts}</td> |
</tr> |
<tr> |
<th>Estudantes</th> |
<td>${cu.statstudentsCount}</td> |
</tr> |
<tr> |
<th>Docentes</th> |
<td>${cu.statteachersCount}</td> |
</tr> |
<tr> |
<th>Trabalhos</th> |
<td>${cu.statworks}</td> |
</tr> |
</tbody> |
</table> |
<h3>Ficheiros</h3> |
<table class="tablesorter-blue"> |
<tbody> |
<tr> |
<th>Ficheiros de Conteúdos</th> |
<td>${cu.statcontentsFiles}</td> |
</tr> |
<tr> |
<th>Pastas de Conteúdos</th> |
<td>${cu.statcontentsFolders}</td> |
</tr> |
<tr> |
<th>Tamanho Total</th> |
<td><%=cu.getStatcontentsSize()/1024/1024%> MB</td> |
</tr> |
<tr> |
<th>Última atualização</th> |
<td><%=DatesUtils.getStringFromDateWithMinutesAndSeconds(cu.getStatcontentsLastUpdate())%></td> |
</tr> |
</tbody> |
</table> |
<h3>Dossier Técnico Pedagógico</h3> |
<table class="tablesorter-blue"> |
<tbody> |
<tr> |
<th>Planeamento</th> |
<td>${cu.statdtpPlaneamentoFiles}</td> |
<td> (alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpPlaneamentoLastUpdate())%>)</td> |
</tr> |
<tr> |
<th>Ficha de Avaliação</th> |
<td><%=cu.isStatdtpFichaCurricularValid()?"Válido":"Inválido"%></td> |
<td> (alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpFichaCurricularLastUpdate())%>)</td> |
</tr> |
<tr> |
<th>Sumários Lançados</th> |
<td>${cu.statdtpSumaries}</td> |
<td></td> |
</tr> |
<tr> |
<th>Sumários Pre-Lançados</th> |
<td>${cu.statdtpSumariesPrelancados}</td> |
<td></td> |
</tr> |
<tr> |
<th>Sumários em falta</th> |
<td>${cu.statdtpSumariesMissing}</td> |
<td></td> |
</tr> |
<tr> |
<th>Pautas de Avaliação</th> |
<td>${cu.statdtpAvaliacaoPautasFiles} </td> |
<td>(alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpAvaliacaoPautasLastUpdate())%>)</td> |
</tr> |
<tr> |
<th>Enunciados de Avaliação</th> |
<td>${cu.statdtpAvaliacaoEnunciadosFiles} </td> |
<td>(alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpAvaliacaoEnunciadosLastUpdate())%></td> |
</tr> |
<tr> |
<th>Relatório de Avaliação</th> |
<td>${cu.statdtpEvaluationReportState}</td> |
<td> ( alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpEvaluationReportLastUpdate())%></td> |
</tr> |
<tr> |
<th>Inquerito Pedagógico Ficheiros</th> |
<td>${cu.statdtpInqueritoPedagogicoFiles}</td> |
<td> ( alterado a <%=DatesUtils.getStringFromDate(cu.getStatdtpInqueritoPedagogicoFilesLastUpdate())%></td> |
</tr> |
</tbody> |
</table> |
</div> |
</div> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</baco:clearOperation> |
/branches/v3/impl/src/web/user/courseunits/courseunit.jsp |
---|
88,6 → 88,8 |
%> |
</baco:isAuthenticated> |
<html:form styleClass="form" action="/user/courseUnitControllerFromHome" enctype="multipart/form-data"> |
<input type="hidden" name="dispatch" value="update"/> |
<html:hidden property="courseUnitView.id"/> |
421,18 → 423,67 |
} |
%>--%> |
<div class="list-group"> |
<div class="list-group-item"> |
<label > |
Filtrar: |
</label> |
<input id="summariesFilterInput" type="text" style="width: 80%"/> |
<script> |
$.extend($.expr[':'], { |
'containsi': function(elem, i, match, array) |
{ |
return (elem.textContent || elem.innerText || '').toLowerCase() |
.indexOf((match[3] || "").toLowerCase()) >= 0; |
} |
}); |
$(document).ready( |
function(){ |
$("#summariesFilterInput").unbind("click"); |
$('#summariesFilterInput').bind("keypress", function(e) { |
if (e.keyCode == 13) { |
e.preventDefault(); |
return false; |
} |
}); |
$("#summariesFilterInput").keyup( |
function(){ |
if($("#summariesFilterInput").val()=="") |
{ |
$(".summary").show(); |
} |
else |
{ |
$(".summary").show(); |
$(".summary").each( |
function() |
{ |
if($(this).find("*:containsi('"+$("#summariesFilterInput").val()+"')").length == 0) |
{ |
$(this).hide(); |
} |
} |
); |
} |
} |
); |
} |
); |
</script> |
</div> |
<logic:iterate id="summary" name="CourseUnitView" property="summariesFromJson" type="pt.estgp.estgweb.domain.views.CourseUnitSummaryView"> |
<div class="list-group-item list-group-item-heading">Aula ${summary.number} - ${summary.title}</div> |
<div class="list-group-item"> |
<span class="label label-info">${summary.tipoAula}</span> |
<span class="badge">${summary.codigoDocente}</span> |
${summary.description} |
<div class="summary" id="summary${summary.number}"> |
<div class="list-group-item list-group-item-heading">Aula ${summary.number} - ${summary.title}</div> |
<div class="list-group-item"> |
<span class="label label-info">${summary.tipoAula}</span> |
<span class="badge">${summary.codigoDocente}</span> |
${summary.description} |
</div> |
<div class="list-group-item list-group-item-footer"> |
${summary.date} - ${summary.horas} Horas - ${summary.students} <bean:message key="courseunit.summary.present.students"/> |
</div> |
</div> |
<div class="list-group-item list-group-item-footer"> |
${summary.date} - ${summary.horas} Horas - ${summary.students} <bean:message key="courseunit.summary.present.students"/> |
</div> |
</logic:iterate> |
</div> |
</logic:notEmpty> |
/branches/v3/impl/src/web/user/courseunits/statsAjax.jsp |
---|
New file |
0,0 → 1,28 |
<%@ page import="pt.estgp.estgweb.domain.views.UserView" %> |
<%@ page import="pt.estgp.estgweb.web.form.profile.ProfileForm" %> |
<%@ 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="pt.estgp.estgweb.domain.views.CourseUnitView" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<% |
Long courseUnitId = Long.parseLong(request.getParameter("courseUnitId")); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{courseUnitId,false,false,false}; |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnitCleared", args, names); |
request.setAttribute("CourseUnitView",cV); |
%> |
<jsp:include page="courseunitsStatistics.jsp"/> |
<% |
%> |
/branches/v3/impl/src/web/user/courseunits/menu.jsp |
---|
112,6 → 112,11 |
</li> |
</baco:canEditCourseUnitProgram> |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="STATISTICS_CAN_VIEW"> |
<li> |
<html:link action="/user/startLoadCourseUnitStatsFromHome?courseUnitView.id=${CourseUnitView.id}"><bean:message key="course.unit.stats"/></html:link> |
</li> |
</baco:clearOperation> |
<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> |
/branches/v3/impl/src/web/user/courseunits/students.jsp |
---|
76,6 → 76,7 |
<baco:hasRole role="teacher"> |
<th><bean:message key="phone.number"/></th> |
<th>Notas</th> |
</baco:hasRole> |
<th class="filter-name filter-select" data-placeholder="Todas">Turma</th> |
108,6 → 109,12 |
</td> |
<baco:hasRole role="teacher"> |
<td>${student.phonenumber} </td> |
<td> |
<a class="btn btn-default" href="#" data-href="<%=request.getContextPath()%>/public/profile/profileGradesAjax.jsp?userId=${student.id}" data-title="Notas do aluno ${student.name} (${student.code})" data-toggle="modal" data-target="#modalAjaxRequest"> |
Notas |
</a> |
</td> |
</baco:hasRole> |
<td> |
${student.studentTurma} |
/branches/v3/impl/src/web/user/courseunits/submitCourseComissionMessage.jsp |
---|
New file |
0,0 → 1,221 |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %> |
<%@ 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.domain.UserSession" %> |
<%@ 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-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<% |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{}; |
List<String> importYears = (List<String>) sm.execute(RequestUtils.getRequester(request, response), "LoadCoursesImportYears", args, names); |
request.setAttribute("importYears", importYears); |
%> |
<logic:present name="MessagesForm"> |
<logic:notEmpty name="MessagesForm" property="text"> |
<script> |
$(document).ready( |
function(){ |
setText(); |
} |
); |
function setText() |
{ |
$("#editor").html('<bean:write name="MessagesForm" property="text" filter="false"/>'); |
} |
</script> |
</logic:notEmpty> |
</logic:present> |
<div class="panel panel-default"> |
<div class="panel-body"> |
<jomm:messages/> |
<html:errors/> |
<html:form styleId="formSubmitMessage" styleClass="form-horizontal" action="/user/submitMessageCourseComission" enctype="multipart/form-data" onsubmit="this.form.text.value=$('#editor').html();"> |
<input type="hidden" name="dispatch" value="sendMessage" > |
<html:hidden property="text"/> |
<html:hidden styleId="sendAnnouncementLike" property="fromRole" value="courseCoordinator"/> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="sendAnnouncementEmail"><bean:message key="announcement.sendAnnouncementEmail"/></div> |
<div class="col-sm-10"> |
<html:text styleId="sendAnnouncementEmail" styleClass="form-control" property="fromEmail"/> |
</div> |
</div> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="year"><bean:message key="submit.todo.message.year"/></div> |
<div class="col-sm-10"> |
<html:select styleId="year" styleClass="form-control" property="importYear" onchange="set(this.form,'loadCourses');this.form.submit()"> |
<option value=""><bean:message key="submit.todo.message.all"/></option> |
<logic:iterate id="importYear" name="importYears"> |
<html:option value="${importYear}"/> |
</logic:iterate> |
</html:select> |
</div> |
</div> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="course"><bean:message key="courseunit.course"/></div> |
<div class="col-sm-10"> |
<html:select styleId="course" styleClass="form-control" property="courseId" onchange="this.form.text.value=$('#editor').html();set(this.form,'loadCourse');this.form.submit();$('#modalPleaseWait').modal({show: 'true'})"> |
<option value="0"></option> |
<logic:notEmpty name="MessagesForm" property="courseViews"> |
<logic:iterate id="courseView" name="MessagesForm" property="courseViews" type="pt.estgp.estgweb.domain.views.CourseView"> |
<% |
if(UserSession.getUser().hasRole(courseView.getValidationRole())) |
{ |
%> |
<html:option value="${courseView.id}">(${courseView.code}) ${courseView.name}</html:option> |
<% |
} |
%> |
</logic:iterate> |
</logic:notEmpty> |
</html:select> |
</div> |
</div> |
<logic:notEmpty name="MessagesForm" property="courseView"> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="semestre"><bean:message key="courseunit.semestre"/></div> |
<div class="col-sm-10"> |
<html:select styleId="semestre" styleClass="form-control" property="semestre" onchange="this.form.text.value=$('#editor').html();set(this.form,'loadCourse');this.form.submit()"> |
<html:option value="" key="submit.todo.message.all"/> |
<html:option value="S1"><bean:message key="courseunit.S1"/></html:option> |
<html:option value="S2"><bean:message key="courseunit.S2"/></html:option> |
<html:option value="T1"><bean:message key="courseunit.T1"/></html:option> |
<html:option value="T2"><bean:message key="courseunit.T2"/></html:option> |
<html:option value="T3"><bean:message key="courseunit.T3"/></html:option> |
<html:option value="T4"><bean:message key="courseunit.T4"/></html:option> |
</html:select> |
</div> |
</div> |
</logic:notEmpty> |
<logic:notEmpty name="MessagesForm" property="courseView"> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="unit"><bean:message key="courseunit.menu.unit"/></div> |
<div class="col-sm-10"> |
<html:select styleId="unit" styleClass="form-control" property="courseUnitId"> |
<html:option value="" key="submit.todo.message.all"/> |
<logic:iterate id="courseUnitView" name="MessagesForm" property="courseView.courseUnits" type="pt.estgp.estgweb.domain.views.CourseUnitView"> |
<html:option value="${courseUnitView.id}">(${courseUnitView.code}) ${courseUnitView.name}</html:option> |
</logic:iterate> |
</html:select> |
</div> |
</div> |
</logic:notEmpty> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="person"><bean:message key="submit.todo.message.target.person"/></div> |
<div class="col-sm-10"> |
<html:select styleId="person" styleClass="form-control" property="target"> |
<html:option value="students" key="submit.todo.message.students"/> |
<html:option value="teachers" key="submit.todo.message.teachers"/> |
<html:option value="teachers.students" key="submit.todo.message.teachers.students"/> |
</html:select> |
</div> |
</div> |
<div class="form-group row"> |
<div class="control-label col-sm-2" for="sendAnnouncementEmail"><bean:message key="submit.todo.message.subject"/></div> |
<div class="col-sm-10"> |
<html:text styleId="subject" styleClass="form-control" property="subject"/> |
</div> |
</div> |
<div class="form-group row"> |
<div class="col-sm-12"> |
<div class="btn-toolbar" data-role="editor-toolbar" data-target="#editor"> |
<!-- <div class="btn-group"> |
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font"><i class="aweicon-font"></i><b class="caret"></b></a> |
<ul class="dropdown-menu"> |
</ul> |
</div> |
<div class="btn-group"> |
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font Size"><i class="aweicon-text-height"></i> <b class="caret"></b></a> |
<ul class="dropdown-menu"> |
<li><a data-edit="fontSize 5"><font size="5">Huge</font></a></li> |
<li><a data-edit="fontSize 3"><font size="3">Normal</font></a></li> |
<li><a data-edit="fontSize 1"><font size="1">Small</font></a></li> |
</ul> |
</div>--> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="bold" title="Bold (Ctrl/Cmd+B)"><i class="aweicon-bold"></i></a> |
<a class="btn btn-default" data-edit="italic" title="Italic (Ctrl/Cmd+I)"><i class="aweicon-italic"></i></a> |
<a class="btn btn-default" data-edit="strikethrough" title="Strikethrough"><i class="aweicon-strikethrough"></i></a> |
<a class="btn btn-default" data-edit="underline" title="Underline (Ctrl/Cmd+U)"><i class="aweicon-underline"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="insertunorderedlist" title="Bullet list"><i class="aweicon-list-ul"></i></a> |
<a class="btn btn-default" data-edit="insertorderedlist" title="Number list"><i class="aweicon-list-ol"></i></a> |
<a class="btn btn-default" data-edit="outdent" title="Reduce indent (Shift+Tab)"><i class="aweicon-indent-left"></i></a> |
<a class="btn btn-default" data-edit="indent" title="Indent (Tab)"><i class="aweicon-indent-right"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="justifyleft" title="Align Left (Ctrl/Cmd+L)"><i class="aweicon-align-left"></i></a> |
<a class="btn btn-default" data-edit="justifycenter" title="Center (Ctrl/Cmd+E)"><i class="aweicon-align-center"></i></a> |
<a class="btn btn-default" data-edit="justifyright" title="Align Right (Ctrl/Cmd+R)"><i class="aweicon-align-right"></i></a> |
<a class="btn btn-default" data-edit="justifyfull" title="Justify (Ctrl/Cmd+J)"><i class="aweicon-align-justify"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="Hyperlink"><i class="aweicon-link"></i></a> |
<div class="dropdown-menu input-append"> |
<input class="span2" placeholder="URL" type="text" data-edit="createLink"/> |
<button class="btn" type="button">Add</button> |
</div> |
<a class="btn btn-default" data-edit="unlink" title="Remove Hyperlink"><i class="aweicon-cut"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" title="Insert picture (or just drag & drop)" id="pictureBtn"><i class="aweicon-picture"></i></a> |
<input type="file" data-role="magic-overlay" data-target="#pictureBtn" data-edit="insertImage" /> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="undo" title="Undo (Ctrl/Cmd+Z)"><i class="aweicon-undo"></i></a> |
<a class="btn btn-default" data-edit="redo" title="Redo (Ctrl/Cmd+Y)"><i class="aweicon-repeat"></i></a> |
</div> |
</div> |
<div id="editor"> |
<bean:message key="submit.todo.email.content"/>… |
</div> |
</div> |
</div> |
<button class="btn btn-success" onclick="this.form.text.value=$('#editor').html(); this.form.submit()"><bean:message key="submit.todo.message"/></button> |
</html:form> |
</div> |
</div> |
/branches/v3/impl/src/web/user/courseunits/courseCourseunitsStatistics.jsp |
---|
New file |
0,0 → 1,294 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="org.hibernate.Criteria" %> |
<%@ page import="org.hibernate.criterion.Order" %> |
<%@ page import="org.hibernate.criterion.Projections" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.Course" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.eq" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.eq" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.or" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.*" %> |
<%@ page import="java.util.ArrayList" %> |
<%@ page import="java.util.List" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/baco.tld" prefix="baco" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
Estatisticas Unidades nos Cursos |
</div> |
<div class="panel-body"> |
<% |
boolean allCourses = false; |
List<String> comissionsRoles = null; |
if(UserSession.getUser().isSuperuserOrAdmin() || UserSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE) || UserSession.getUser().hasRole(Globals.COURSE_DIRECTOR_ROLE) || UserSession.getUser().hasRole(Globals.COURSE_COORDINATOR_ROLE) || UserSession.getUser().hasRole("services")) |
{ |
allCourses = true; |
AbstractDao.getCurrentSession().beginTransaction(); |
Criteria c = AbstractDao.getCurrentSession().createCriteria(CourseUnit.class) |
.setProjection(Projections.projectionList().add(Projections.groupProperty("c.validationRole")) |
.add(Projections.property("c.id")).add(Projections.property("c.name")).add(Projections.property("c.code"))) |
.createAlias("course", "c") |
.add(eq("importYear", UserSession.getNowConfiguration().getInterfaceImportYear())); |
List<Object[]> validationRoles = c.list(); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
comissionsRoles = new ArrayList<String>(); |
%> |
<div class="avisosWarning" style="display: none"> |
<div class="alert alert-warning">Existem cursos sem papel de comissão atribuido |
<button class="btn btn-warning" onclick="$('.avisos').toggle()">Ver/Ocultar Avisos</button> |
</div> |
</div> |
<div class="avisos" style="display: none"> |
<% |
boolean avisos = false; |
for(Object[] validationRolesObj: validationRoles) |
{ |
String role = ((String) validationRolesObj[0]); |
if(role == null || role.trim().length() == 0) |
{ |
avisos = true; |
%> |
<div class="alert alert-warning">Atenção o curso <%=validationRolesObj[1]%> (<%=validationRolesObj[2]%>) não tem papel de comissão de curso associado</div> |
<% |
}else{ |
comissionsRoles.add(role); |
} |
} |
if(avisos) |
{ |
%> |
<script> |
$(document).ready(function() |
{ |
$(".avisosWarning").show(); |
}); |
</script> |
<% |
} |
%> |
</div> |
<% |
} |
else |
{ |
UserSession.getUser().getRolesList(); |
comissionsRoles = new ArrayList<String>(); |
for(String role: UserSession.getUser().getRolesList()) |
{ |
if(role.startsWith(Globals.COURSE_COMMISSION_PROGRAMS_ROLES_PREFIX)) |
comissionsRoles.add(role); |
} |
} |
if(comissionsRoles.size() == 0) |
{ |
%> |
<div class="alert alert-warning"> |
Lamentamos mas não têm qualquer comissão de curso associada |
</div> |
<% |
} |
else |
{ |
%> |
<script> |
$(document).ready( |
function() |
{ |
$("#ROLE_VALIDATION_<%=comissionsRoles.get(0)%>").show(); |
} |
); |
function showRoleSeparator(role) |
{ |
<% |
for(String roleCourse: comissionsRoles) |
{ |
%> |
if(role == '<%=roleCourse%>') |
{ |
$("#ROLE_VALIDATION_<%=roleCourse%>").show(); |
$("#rolesSeparators<%=roleCourse%>").addClass("active"); |
} |
else |
{ |
$("#ROLE_VALIDATION_<%=roleCourse%>").hide(); |
$("#rolesSeparators<%=roleCourse%>").removeClass("active"); |
} |
<% |
} |
%> |
} |
</script> |
<% |
try |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
%> |
<div class="dropdown"> |
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Escolha Comissão |
<span class="caret"></span></button> |
<ul class="dropdown-menu"> |
<%--<ul class="nav nav-tabs">--%> |
<% |
for(String roleCourse: comissionsRoles) |
{ |
request.setAttribute("roleCourse",roleCourse); |
%> |
<li id="rolesSeparators<%=roleCourse%>"><a href="javascript:showRoleSeparator('<%=roleCourse%>')"><bean:message key="user.role.${roleCourse}"/></a></li> |
<% |
} |
%> |
</ul> |
</div> |
<% |
for(String roleCourse: comissionsRoles) |
{ |
request.setAttribute("roleCourse",roleCourse); |
%> |
<div id="ROLE_VALIDATION_<%=roleCourse%>" style="display: none"> |
<h1><bean:message key="user.role.${roleCourse}"/></h1> |
<% |
Criteria c = AbstractDao.getCurrentSession().createCriteria(CourseUnit.class) |
.setProjection(Projections.projectionList() |
.add(Projections.groupProperty("c.id")) |
.add(Projections.property("c.name")) |
.add(Projections.property("c.code"))) |
.createAlias("course", "c") |
.add(eq("importYear", UserSession.getNowConfiguration().getInterfaceImportYear())) |
.add(eq("c.validationRole", roleCourse)); |
List<Object[]> coursesForRole = c.list(); |
if(coursesForRole.size() > 1) |
{ |
%> |
<div class="alert alert-info alert-small">Mais que um curso para o papel <bean:message key="user.role.${roleCourse}"/></div> |
<% |
} |
%> |
<hr/> |
<% |
for(Object[] courseArray: coursesForRole) |
{ |
Long courseId = (Long) courseArray[0]; |
String courseName = (String) courseArray[1]; |
String courseCode = (String) courseArray[2]; |
c = AbstractDao.getCurrentSession().createCriteria(CourseUnit.class) |
.setProjection(Projections.distinct(Projections.property("id"))) |
.createAlias("course", "c") |
.add(eq("importYear", UserSession.getNowConfiguration().getInterfaceImportYear())) |
.add(eq("c.id", courseId)) |
; |
c.addOrder(Order.asc("name")); |
List<Long> courseUnits = c.list(); |
if(courseUnits.size() == 0) |
{ |
%> |
<h2><bean:message key="user.role.${roleCourse}"/> </h2> |
<div class="alert alert-info alert-small"> |
Não foram encontradas unidades curriculares no ano ${UserSession.nowConfiguration.interfaceImportYear} |
</div> |
<% |
} |
else |
{ |
// |
// List<Student> students = DaoFactory.getStudentDaoImpl().loadFromCoursesWithValidationRoles(comissionsRoles,UserSession.getNowConfiguration().getInterfaceImportYear()); |
%> |
<h2><%=courseName%> (<%=courseCode%>)</h2> |
<div class="alert alert-info alert-small"> |
Existem <%=courseUnits.size()%> unidades no ano ${UserSession.nowConfiguration.interfaceImportYear} |
</div> |
<table class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th>Cod.</th> |
<th class="filter-name filter-select">Sem.</th> |
<th>Nome</th> |
<th>Sums</th> |
<th>Sums Pre</th> |
<th>Sums Falt</th> |
<th>Plan</th> |
<th class="filter-name filter-select">Ficha</th> |
<th>Aval.Enu</th> |
<th>Aval.Paut</th> |
<th class="filter-name filter-select">Relat.</th> |
<th class="filter-name filter-select">Pedag.</th> |
<th>Conteud.</th> |
<th class="filter-name filter-select">Detalhes</th> |
</tr> |
</thead> |
<tbody> |
<% |
for(Long unit: courseUnits) |
{ |
Long unitId = unit; |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(unitId); |
request.setAttribute("cu",cu); |
%> |
<tr> |
<td>${cu.code}</td> |
<td>${cu.semestre}</td> |
<td><html:link target="_blank" action="/user/startLoadCourseUnitFromHome?id=${cu.id}"> ${cu.name}</html:link></td> |
<td>${cu.statdtpSumaries}</td> |
<td>${cu.statdtpSumariesPrelancados}</td> |
<td>${cu.statdtpSumariesMissing}</td> |
<td>${cu.statdtpPlaneamentoFiles}</td> |
<td><bean:message key="yes.no.${cu.statdtpFichaCurricularValid}"/></td> |
<td>${cu.statdtpAvaliacaoEnunciadosFiles}</td> |
<td>${cu.statdtpAvaliacaoPautasFiles}</td> |
<td>${cu.statdtpEvaluationReportState}</td> |
<td>${cu.statdtpInqueritoPedagogicoFiles}</td> |
<td>${cu.statcontentsFiles}</td> |
<td><button class="btn btn-default" data-href="<%=request.getContextPath()%>/user/courseunits/statsAjax.jsp?courseUnitId=${cu.id}" data-title="Estatisticas da Unidade ${cu.name} (${cu.code})" data-toggle="modal" data-target="#modalAjaxRequest"><span class="glyphicon glyphicon-zoom-in"/></button> </td> |
</tr> |
<% |
} |
%> |
</tbody> |
</table> |
<% |
} |
} |
%> |
</div> <!--FIM DE ROLE VALIDATION--> |
<% |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
catch(Exception e) |
{ |
System.out.println(e.toString()); |
e.printStackTrace(); |
} |
} |
%> |
</div> |
</div> |
/branches/v3/impl/src/web/user/ftpclient/ftpclient.jsp |
---|
108,7 → 108,7 |
</div> |
</div> |
<div class="panel panel-default"> |
<div class="panel panel-default ftpClientPanel"> |
<div class="panel-heading"> |
<a class="btn btn-sm btn-warning" href="javascript:showOrHideOneWithStartId('FTP_NODE_')"><span class="glyphicon glyphicon-remove"> </span> Ver Comandos de Remoção de Ficheiros</a> |
/branches/v3/impl/src/web/user/home/teacher.jsp |
---|
14,7 → 14,7 |
<%@ page import="pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ page import="java.util.List" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<!-- PARA BOOTSTRAP NOVO PORTAL--> |
<%--<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/offcanvas.css"/>--%> |
30,7 → 30,26 |
<div class="row"> |
<div class="col-md-6 col-sm-12 col-xs-12" style="padding-right: 6px"> |
<baco:isModuleOn module="courseunits"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div> |
<div class="panel-body"> |
<!--<p><bean:message key="intranet.home.curricular"/></p>--> |
<!--<ul> |
<li>--> |
<div class="list-group"> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/></html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/courseComissions"><bean:message key="course.comissions"/></html:link> |
</div> |
</div> |
<!--</li> |
</ul>--> |
</div> |
</div> |
<% |
130,26 → 149,50 |
</div> |
<div class="col-md-6 col-sm-12 col-xs-12" style="padding-left: 6px"> |
<% |
if(UserSession.getUser().getRoles().indexOf("courseValidateProgram")>=0) |
{ |
%> |
<div class="panel panel-primary"> |
<div class="panel-heading">As minhas Comissões de Curso</div> |
<div class="panel-body"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div> |
<div class="panel-body"> |
<!--<p><bean:message key="intranet.home.curricular"/></p>--> |
<!--<ul> |
<li>--> |
<div class="list-group"> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/></html:link> |
<div class="list-group"> |
<div class="list-group-item"> |
<html:link action="/user/startSubmitMessageCourseComission"> |
Enviar email aos alunos |
</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCourseCourseUnitsStatistics">Consultar estatisticas das Unidades Curriculares</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/listStudentsCourseComission"> |
Consultar Alunos |
</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/startSubmitMessageCourseComission"> |
Consultar Docentes |
</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCoursesProgramsFromHome?importYear=${UserSession.nowConfiguration.interfaceImportYear}&forUser=courseCommission">Atalho para as validações (${UserSession.nowConfiguration.interfaceImportYear})</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCoursesProgramsFromHome?importYear=${UserSession.nowConfiguration.previousInterfaceImportYear}&forUser=courseCommission">Atalho para as validações (${UserSession.nowConfiguration.previousInterfaceImportYear})</html:link> |
</div> |
</div> |
<!--</li> |
</ul>--> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/courseComissions"><bean:message key="course.comissions"/></html:link> |
</div> |
</div> |
<!--</li> |
</ul>--> |
</div> |
</div> |
<jsp:include page="courseComission.jsp"/> |
<% |
} |
%> |
<% |
try{ |
HibernateUtils.getCurrentSession().beginTransaction(); |
240,8 → 283,8 |
} |
%> |
<jsp:include page="courseComission.jsp"/> |
</div> |
</div> |
/branches/v3/impl/src/web/user/home/user.jsp |
---|
11,44 → 11,37 |
<div class="row"> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/> </html:link></div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/horarios/intranet/escola/horarios.html">Horários</a> |
<baco:hasRole role="admin,all,services"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Configurações do Sistema Baco V3</div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/admin/configurations.do">Configurações Gerais do Sistema</html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationGrades.do"><bean:message key="configuration.grades"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationDirectories.do"><bean:message key="configuration.directories"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationSchedulleTasks.do"><bean:message key="configuration.tasks"/></html:link></div> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/configurationUserRoles.do"><bean:message key="configuration.roles"/></a></div> |
</div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/calEscolar/public/portal/CL20102011.pdf">Calendário Escolar</a> |
</div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/secretaria/intranet/escola/secretaria.html">Secretaria</a> |
</div> |
<baco:hasRole role="admin,all,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil"> |
</baco:hasRole> |
</div> |
</div> |
</div> |
</baco:hasRole> |
<baco:hasRole role="admin,all,services"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Ferramentas Académicas</div> |
<div class="panel-body"> |
<div class="list-group"> |
<baco:hasRole role="pedagogicCouncil"> |
<baco:hasRole role="pedagogicCouncil,all"> |
<div class="list-group-item"><html:link action="/user/coursePedagogicContents"><bean:message key="course.pedagogic.contents.admin"/> </html:link></div> |
</baco:hasRole> |
<baco:isAdmin> |
<div class="list-group-item"><html:link action="/admin/courseUnitsDeleteAdmin">Administração de Unidades Curriculares (Remoções)</html:link></div> |
</baco:isAdmin> |
<div class="list-group-item"><html:link action="/user/configurationGrades">Épocas de Avaliação</html:link></div> |
<baco:isAdmin> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/configurationUserRoles.do"><bean:message key="configuration.roles"/></a></div> |
</baco:isAdmin> |
<div class="list-group-item">Situação de Propinas de Alunos (Por implementar)</div> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCourseCourseUnitsStatistics">Consultar estatisticas das Unidades Curriculares</html:link> |
</div> |
<div class="list-group-item"><html:link action="/user/findProfile"><bean:message key="profile.search.user"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/startFindCourseUnitAdminFromServiceZone"><bean:message key="courseunit.search"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/courseComissions">Informação Adicional de Cursos</html:link></div> |
86,6 → 79,28 |
</div> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/> </html:link></div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/horarios/intranet/escola/horarios.html">Horários</a> |
</div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/calEscolar/public/portal/CL20102011.pdf">Calendário Escolar</a> |
</div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/secretaria/intranet/escola/secretaria.html">Secretaria</a> |
</div> |
<baco:hasRole role="admin,all,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil"> |
</baco:hasRole> |
</div> |
</div> |
</div> |
<div class="panel panel-primary"> |
<div class="panel-heading">Comunicar</div> |
<div class="panel-body"> |
<div class="list-group"> |
/branches/v3/impl/src/web/user/home/courseComission.jsp |
---|
28,26 → 28,22 |
<p>No final de cada relatório existe um botão de validação para os membros das comissões dos cursos respectivos.</p> |
<% |
if(result1.size()>0) |
{ |
%> |
<div class="list-group"> |
<div class="list-group-item active">Fichas curriculares por validar</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result1) |
{ |
%> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></div> |
<% |
} |
%> |
</div> |
<div class="list-group"> |
<div class="list-group-item active">Fichas curriculares por validar</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result1) |
{ |
%> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></div> |
<% |
} |
%> |
</div> |
<% |
} |
58,17 → 54,17 |
{ |
%> |
<div class="list-group"> |
<div class="list-group-item active">Fichas curriculares por preencher</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result0) |
{ |
%> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></div> |
<% |
} |
%> |
</div> |
<div class="list-group"> |
<div class="list-group-item active">Fichas curriculares por preencher</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result0) |
{ |
%> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></div> |
<% |
} |
%> |
</div> |
<% |
} |
80,59 → 76,56 |
%> |
<div class="list-group"> |
<div class="list-group-item active">Relatórios de avaliação por validar |
<div class="list-group"> |
<div class="list-group-item active">Relatórios de avaliação por validar |
<% |
String sep = ""; |
if(activeDegrees != null) |
{ |
%> |
(graus em processo de validação: |
<% |
for(String activeDegree: activeDegrees) |
{ |
%> |
<%=sep + MessageResources.getInstance(request).getMessage("course."+activeDegree)%> |
<% |
sep = ", "; |
} |
%> |
) |
<% |
} |
%> |
</div> |
<% |
String sep = ""; |
if(activeDegrees != null) |
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result2) |
{ |
%> |
(graus em processo de validação: |
<div class="list-group-item"><a href="javascript:showOrHide('evaluationValidate<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>) |
<div id="evaluationValidate<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
</div> |
<% |
for(String activeDegree: activeDegrees) |
{ |
%> |
<%=sep + MessageResources.getInstance(request).getMessage("course."+activeDegree)%> |
<% |
sep = ", "; |
} |
%> |
) |
<% |
} |
%> |
</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result2) |
{ |
%> |
<div class="list-group-item"><a href="javascript:showOrHide('evaluationValidate<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>) |
<div id="evaluationValidate<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
</div> |
<% |
} |
%> |
<% |
} |
%> |
<% |
if(result3.size()>0) |
{ |
166,20 → 159,20 |
{ |
%> |
<div class="list-group-item"><a href="javascript:showOrHide('evaluationFill<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>) |
<div id="evaluationFill<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
</div> |
<div class="list-group-item"><a href="javascript:showOrHide('evaluationFill<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>) |
<div id="evaluationFill<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
</div> |
<% |
} |
%> |
189,7 → 182,7 |
} |
%> |
</div> |
</div> |
</div> |
<% |
/branches/v3/impl/src/web/user/home/topnavCourseCourseUnitStats.jsp |
---|
New file |
0,0 → 1,11 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "course.course.unit.stats"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/branches/v3/impl/src/web/user/home/topnavListStudentsCourseComission.jsp |
---|
New file |
0,0 → 1,10 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/home.do", "intranet.separator.home"); |
topNav.addNavPlace(null, "list.students.course.commission"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/branches/v3/impl/src/web/user/home/userPae.jsp |
---|
11,12 → 11,25 |
<div class="row"> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<baco:hasRole role="admin,all,services"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Configurações do Sistema Baco V3</div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/admin/configurations.do">Configurações Gerais do Sistema</html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationGrades.do"><bean:message key="configuration.grades"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationDirectories.do"><bean:message key="configuration.directories"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/configurationSchedulleTasks.do"><bean:message key="configuration.tasks"/></html:link></div> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/configurationUserRoles.do"><bean:message key="configuration.roles"/></a></div> |
</div> |
</div> |
</div> |
</baco:hasRole> |
<baco:hasRole role="admin,all,services,questionarios.admin"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Ferramentas Académicas (MODO BACO)</div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/user/configurationSchedulleTasks.do"><bean:message key="configuration.tasks"/></html:link></div> |
<div class="list-group-item"><html:link action="/admin/courseUnitsDeleteAdmin">Administração de Unidades Curriculares (Remoções)</html:link></div> |
<div class="list-group-item"><html:link action="/user/courseComissions">Informação Adicional de Cursos</html:link></div> |
<div class="list-group-item"><html:link action="/user/startFindCourseUnitAdminFromServiceZone"><bean:message key="courseunit.search"/></html:link></div> |
/branches/v3/impl/src/web/user/home/topnavSubmitMessageCourseComission.jsp |
---|
New file |
0,0 → 1,10 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/home.do", "intranet.separator.home"); |
topNav.addNavPlace(null, "submit.todo.message"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/branches/v3/impl/src/web/user/home/topnavCourseUnitStats.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("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "course",CourseUnitView.getCourseName()); |
topNav.addNavPlace("/user/startLoadCourseUnitFromHome.do?courseUnitView.id=" + CourseUnitView.getId(),CourseUnitView.getName() + " " + CourseUnitView.getImportYear()); |
topNav.addNavPlace(null, "course.unit.stats"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesSelection.jsp |
---|
112,7 → 112,7 |
{ |
String institutionName = ConfigProperties.getProperty("institution.code." + institutionCode); |
%> |
<li id="institutionsSeparators<%=institutionCode%>"><a href="javascript:showInstitutionCode('<%=institutionCode%>')"><%=institutionName%></a></li> |
<li id="institutionsSeparators<%=institutionCode%>"><a href="javascript:showInstitutionCode('<%=institutionCode%>')"><%=institutionName%></a></li> |
<% |
} |
%> |
/branches/v3/impl/src/web/user/contacts/listCourseComissionStudents.jsp |
---|
New file |
0,0 → 1,143 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.Student" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="java.util.ArrayList" %> |
<%@ page import="java.util.List" %> |
<%@ page import="org.hibernate.Criteria" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.eq" %> |
<%@ page import="org.hibernate.criterion.Criterion" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.eq" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.or" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.*" %> |
<%@ page import="org.hibernate.criterion.Order" %> |
<%@ page import="org.hibernate.criterion.Projections" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/baco.tld" prefix="baco" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
Listagem de alunos das comissões de curso |
</div> |
<div class="panel-body"> |
<% |
UserSession.getUser().getRolesList(); |
List<String> comissionsRoles = new ArrayList<String>(); |
for(String role: UserSession.getUser().getRolesList()) |
{ |
if(role.startsWith(Globals.COURSE_COMMISSION_PROGRAMS_ROLES_PREFIX)) |
comissionsRoles.add(role); |
} |
if(comissionsRoles.size() == 0) |
{ |
%> |
<div class="alert alert-warning"> |
Lamentamos mas não têm qualquer comissão de curso associada |
</div> |
<% |
} |
else |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
for(String roleCourse: comissionsRoles) |
{ |
request.setAttribute("roleCourse",roleCourse); |
Criteria c = AbstractDao.getCurrentSession().createCriteria(Student.class) |
.setProjection(Projections.projectionList() |
.add(Projections.groupProperty("id")) |
.add(Projections.countDistinct("su.id")) |
.add(Projections.property("course.name")) |
.add(Projections.property("course.id")) |
.add(Projections.property("course.code"))) |
.createAlias("subscribedUnits", "su") |
.createAlias("su.course", "course") |
.add(eq("su.importYear", "201516")) |
.add(eq("course.validationRole", roleCourse)) |
; |
c.addOrder(Order.asc("name")); |
List<Object[]> students = c.list(); |
if(students.size() == 0) |
{ |
%> |
<h2><bean:message key="user.role.${roleCourse}"/> </h2> |
<div class="alert alert-info alert-small"> |
Não foram encontrados <%=students.size()%> alunos, inscritos no ano ${UserSession.nowConfiguration.interfaceImportYear} |
</div> |
<% |
} |
else |
{ |
// |
// List<Student> students = DaoFactory.getStudentDaoImpl().loadFromCoursesWithValidationRoles(comissionsRoles,UserSession.getNowConfiguration().getInterfaceImportYear()); |
%> |
<h2><bean:message key="user.role.${roleCourse}"/></h2> |
<div class="alert alert-info alert-small"> |
Foram encontrados <%=students.size()%> alunos, inscritos no ano ${UserSession.nowConfiguration.interfaceImportYear} |
</div> |
<table class="tablesorterfiltered"> |
<thead> |
<tr> |
<th>Número</th> |
<th>Nome</th> |
<th>Email</th> |
<th>Telefone</th> |
<th class="filter-name filter-select">Situação de Propinas</th> |
<th>Cadeiras Inscrito em ${UserSession.nowConfiguration.interfaceImportYear}</th> |
<th>Notas</th> |
</tr> |
</thead> |
<tbody> |
<% |
for(Object[] student: students) |
{ |
Long studentId = (Long) student[0]; |
Integer cadeirasInscrito = (Integer) student[1]; |
String courseName = (String) student[2]; |
Long courseId = (Long) student[3]; |
String courseCode = (String) student[4]; |
Student s = DaoFactory.getStudentDaoImpl().load(studentId); |
request.setAttribute("student",s); |
%> |
<tr> |
<td>${student.sigesCode}</td> |
<td>${student.name}</td> |
<td>${student.email}</td> |
<td>${student.phonenumber}</td> |
<td><bean:message key="yes.no.${student.propinasEmDia}"/></td> |
<td> |
<a class="btn btn-default" href="#" data-href="<%=request.getContextPath()%>/public/profile/profileHomeAjax.jsp?userId=${student.id}" data-title="Notas do aluno ${student.name} (${student.sigesCode})" data-toggle="modal" data-target="#modalAjaxRequest"> |
<%=cadeirasInscrito%> |
</a> |
<td> |
<a class="btn btn-default" href="#" data-href="<%=request.getContextPath()%>/public/profile/profileGradesAjax.jsp?userId=${student.id}" data-title="Notas do aluno ${student.name} (${student.sigesCode})" data-toggle="modal" data-target="#modalAjaxRequest"> |
Notas |
</a> |
</td> |
</tr> |
<% |
} |
%> |
</tbody> |
</table> |
<% |
} |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
%> |
</div> |
</div> |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoCursoAfeto.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitDeliverable.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgramPart2.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioResposta.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTipologia.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlog.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Reminder.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordEventOrganization.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordPaper.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Configuration.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageContent.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarQuestionarioAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyStatsGraphic.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SessionObject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.io.Serializable; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlogPost.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobParameter.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/GenericUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ComunicationFolder.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Student.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgram.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitQuestion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Announcement.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDay.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Survey.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionPossibleAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordThesis.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageSection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.ArrayList; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionCandidateAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordProject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageExternalObject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SruSourceCollection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioInstituicao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordJob.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitTurma.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGradesStatusEpoca.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Teacher.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyResponse.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageRepositoryFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Record.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitSummary.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RepositoryFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ProcessEventFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ProcessEvent.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseYear.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Blog.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RepositoryFileVersion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Assessment.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UserRoleConfig.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SessionObjectId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarQuestionario.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/BlogPost.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SruSource.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoUnidadeCurricularAfeta.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifier.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Course.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageExternalUrl.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitGrade.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionItem.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentResponse.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTurma.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPergunta1_5.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDayId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Page.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoAlunoRequisitado.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTask.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Process.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/User.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Image.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Questionario.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapHistoryDimension.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Teste.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUnidade.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryTarget.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Group.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationDirectory.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionItem.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUserAssociation.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYearId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioDocente.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAssignement.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioHistoryDrive.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioRespostaRequisitada.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnit.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
34,6 → 34,31 |
private String evaluationStreamId; |
private boolean evaluationOpenByAdmin; |
private String summariesJson; |
private String filesJson; |
private int statteachersCount; |
private int statstudentsCount; |
private int statcontentsFiles; |
private int statcontentsFolders; |
private long statcontentsSize; |
private Date statcontentsLastUpdate; |
private int statworks; |
private int statanuncios; |
private int statblogPosts; |
private int statdtpSumaries; |
private int statdtpSumariesMissing; |
private int statdtpSumariesPrelancados; |
private int statdtpPlaneamentoFiles; |
private Date statdtpPlaneamentoLastUpdate; |
private boolean statdtpFichaCurricularValid; |
private Date statdtpFichaCurricularLastUpdate; |
private String statdtpEvaluationReportState; |
private Date statdtpEvaluationReportLastUpdate; |
private int statdtpInqueritoPedagogicoFiles; |
private Date statdtpInqueritoPedagogicoFilesLastUpdate; |
private int statdtpAvaliacaoEnunciadosFiles; |
private Date statdtpAvaliacaoEnunciadosLastUpdate; |
private int statdtpAvaliacaoPautasFiles; |
private Date statdtpAvaliacaoPautasLastUpdate; |
private String cdTurma; |
private PageSection unitContents; |
private User validatorUser; |
209,6 → 234,181 |
public void setSummariesJson(String summariesJson) { |
this.summariesJson = summariesJson; |
} |
public String getFilesJson() { |
return this.filesJson; |
} |
public void setFilesJson(String filesJson) { |
this.filesJson = filesJson; |
} |
public int getStatteachersCount() { |
return this.statteachersCount; |
} |
public void setStatteachersCount(int statteachersCount) { |
this.statteachersCount = statteachersCount; |
} |
public int getStatstudentsCount() { |
return this.statstudentsCount; |
} |
public void setStatstudentsCount(int statstudentsCount) { |
this.statstudentsCount = statstudentsCount; |
} |
public int getStatcontentsFiles() { |
return this.statcontentsFiles; |
} |
public void setStatcontentsFiles(int statcontentsFiles) { |
this.statcontentsFiles = statcontentsFiles; |
} |
public int getStatcontentsFolders() { |
return this.statcontentsFolders; |
} |
public void setStatcontentsFolders(int statcontentsFolders) { |
this.statcontentsFolders = statcontentsFolders; |
} |
public long getStatcontentsSize() { |
return this.statcontentsSize; |
} |
public void setStatcontentsSize(long statcontentsSize) { |
this.statcontentsSize = statcontentsSize; |
} |
public Date getStatcontentsLastUpdate() { |
return this.statcontentsLastUpdate; |
} |
public void setStatcontentsLastUpdate(Date statcontentsLastUpdate) { |
this.statcontentsLastUpdate = statcontentsLastUpdate; |
} |
public int getStatworks() { |
return this.statworks; |
} |
public void setStatworks(int statworks) { |
this.statworks = statworks; |
} |
public int getStatanuncios() { |
return this.statanuncios; |
} |
public void setStatanuncios(int statanuncios) { |
this.statanuncios = statanuncios; |
} |
public int getStatblogPosts() { |
return this.statblogPosts; |
} |
public void setStatblogPosts(int statblogPosts) { |
this.statblogPosts = statblogPosts; |
} |
public int getStatdtpSumaries() { |
return this.statdtpSumaries; |
} |
public void setStatdtpSumaries(int statdtpSumaries) { |
this.statdtpSumaries = statdtpSumaries; |
} |
public int getStatdtpSumariesMissing() { |
return this.statdtpSumariesMissing; |
} |
public void setStatdtpSumariesMissing(int statdtpSumariesMissing) { |
this.statdtpSumariesMissing = statdtpSumariesMissing; |
} |
public int getStatdtpSumariesPrelancados() { |
return this.statdtpSumariesPrelancados; |
} |
public void setStatdtpSumariesPrelancados(int statdtpSumariesPrelancados) { |
this.statdtpSumariesPrelancados = statdtpSumariesPrelancados; |
} |
public int getStatdtpPlaneamentoFiles() { |
return this.statdtpPlaneamentoFiles; |
} |
public void setStatdtpPlaneamentoFiles(int statdtpPlaneamentoFiles) { |
this.statdtpPlaneamentoFiles = statdtpPlaneamentoFiles; |
} |
public Date getStatdtpPlaneamentoLastUpdate() { |
return this.statdtpPlaneamentoLastUpdate; |
} |
public void setStatdtpPlaneamentoLastUpdate(Date statdtpPlaneamentoLastUpdate) { |
this.statdtpPlaneamentoLastUpdate = statdtpPlaneamentoLastUpdate; |
} |
public boolean isStatdtpFichaCurricularValid() { |
return this.statdtpFichaCurricularValid; |
} |
public void setStatdtpFichaCurricularValid(boolean statdtpFichaCurricularValid) { |
this.statdtpFichaCurricularValid = statdtpFichaCurricularValid; |
} |
public Date getStatdtpFichaCurricularLastUpdate() { |
return this.statdtpFichaCurricularLastUpdate; |
} |
public void setStatdtpFichaCurricularLastUpdate(Date statdtpFichaCurricularLastUpdate) { |
this.statdtpFichaCurricularLastUpdate = statdtpFichaCurricularLastUpdate; |
} |
public String getStatdtpEvaluationReportState() { |
return this.statdtpEvaluationReportState; |
} |
public void setStatdtpEvaluationReportState(String statdtpEvaluationReportState) { |
this.statdtpEvaluationReportState = statdtpEvaluationReportState; |
} |
public Date getStatdtpEvaluationReportLastUpdate() { |
return this.statdtpEvaluationReportLastUpdate; |
} |
public void setStatdtpEvaluationReportLastUpdate(Date statdtpEvaluationReportLastUpdate) { |
this.statdtpEvaluationReportLastUpdate = statdtpEvaluationReportLastUpdate; |
} |
public int getStatdtpInqueritoPedagogicoFiles() { |
return this.statdtpInqueritoPedagogicoFiles; |
} |
public void setStatdtpInqueritoPedagogicoFiles(int statdtpInqueritoPedagogicoFiles) { |
this.statdtpInqueritoPedagogicoFiles = statdtpInqueritoPedagogicoFiles; |
} |
public Date getStatdtpInqueritoPedagogicoFilesLastUpdate() { |
return this.statdtpInqueritoPedagogicoFilesLastUpdate; |
} |
public void setStatdtpInqueritoPedagogicoFilesLastUpdate(Date statdtpInqueritoPedagogicoFilesLastUpdate) { |
this.statdtpInqueritoPedagogicoFilesLastUpdate = statdtpInqueritoPedagogicoFilesLastUpdate; |
} |
public int getStatdtpAvaliacaoEnunciadosFiles() { |
return this.statdtpAvaliacaoEnunciadosFiles; |
} |
public void setStatdtpAvaliacaoEnunciadosFiles(int statdtpAvaliacaoEnunciadosFiles) { |
this.statdtpAvaliacaoEnunciadosFiles = statdtpAvaliacaoEnunciadosFiles; |
} |
public Date getStatdtpAvaliacaoEnunciadosLastUpdate() { |
return this.statdtpAvaliacaoEnunciadosLastUpdate; |
} |
public void setStatdtpAvaliacaoEnunciadosLastUpdate(Date statdtpAvaliacaoEnunciadosLastUpdate) { |
this.statdtpAvaliacaoEnunciadosLastUpdate = statdtpAvaliacaoEnunciadosLastUpdate; |
} |
public int getStatdtpAvaliacaoPautasFiles() { |
return this.statdtpAvaliacaoPautasFiles; |
} |
public void setStatdtpAvaliacaoPautasFiles(int statdtpAvaliacaoPautasFiles) { |
this.statdtpAvaliacaoPautasFiles = statdtpAvaliacaoPautasFiles; |
} |
public Date getStatdtpAvaliacaoPautasLastUpdate() { |
return this.statdtpAvaliacaoPautasLastUpdate; |
} |
public void setStatdtpAvaliacaoPautasLastUpdate(Date statdtpAvaliacaoPautasLastUpdate) { |
this.statdtpAvaliacaoPautasLastUpdate = statdtpAvaliacaoPautasLastUpdate; |
} |
public String getCdTurma() { |
return this.cdTurma; |
} |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGradesEpocaAvaliacao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioCurso.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoTipologiaRequisitada.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SigesUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Job.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.io.Serializable; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifierCollection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAnnouncement.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPeriodo.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskScheduler.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPerguntaGrupo.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskSchedulerParameter.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskParameter.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryCategory.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYear.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordOther.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDelivery.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonthId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UserSession.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioCursoDegree.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/MetaProcess.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitEvaluation.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioAno.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyStructuralNode.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGrades.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9 |
// Generated 18/Abr/2016 17:37:16 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |