/impl/conf/language/MessageResourcesIntranet.properties |
---|
25,7 → 25,8 |
intranet.course.unit.announcements=Os anúncios das minhas Unidades |
course.unit.announcements.zero.announcements=Zero anúncios |
courseunit.objectives=Objectivos da Unidade |
courseunit.programfilepath=Programa Curricular |
courseunit.programfilepath.not.available=O Programa Curricular não está disponivel |
courseunit.objectives.not.available=Os objectivos não estão disponiveis |
courseunit.works.zero=Não existem trabalhos |
courseunit.title=Titulo |
courseunit.description=Descrição |
courseunit.status=Estado |
/impl/conf/language/MessageResourcesCommon.properties |
---|
24,12 → 24,14 |
search.no.results.suggest.2=Será que deu um erro ortográfico? |
search.no.results.suggest.3=Será que está a usar demasiadas palavras chave? |
result.previous=Página Anterior |
result.previous=Anterior |
result.next=Próxima |
todo.zero.todos=Não existem afazeres |
courseunit.teachers=Professores |
courseunit.students=Alunos |
#Common Log |
result.log.fatal=Erro fatal |
/impl/conf/language/MessageResources.properties |
---|
118,6 → 118,10 |
mainAnnouncements=Destaques |
staff.header=Informação para funcionários docentes e não docentes |
staff=Docentes |
status.valid=Válido |
status.invalid=Inválido |
status.active=Activo |
status.inactive=Inactivo |
#Menus Portais |
portal.orgaos=Orgãos |
271,7 → 275,10 |
profile.create.student=Criar Aluno |
profile.create.user=Criar Utilizador |
profile.create.users=Criar Usuario |
profile.siges.code=Código SIGES |
profile.siges.student.code=Número |
profile.pop3server=Servidor de POP3 |
profile.pop3username=Username do Servidor de POP3 |
profile.pop3password=Password do Servidor de POP3 |
/impl/conf/language/MessageResourcesBlog.properties |
---|
4,12 → 4,15 |
# |
################################################################################ |
module.Blogs=Blogs |
module.BlogPosts=Posts |
blog=Blog |
blog.zero.editable=Não existem blogs onde eu possa publicar |
blog.zero.placed=0 blogs criados |
blog.posts.zero.placed=0 Posts colocados |
blog.status.valid=Válido |
blog.status.validate=Validar |
blog.status.invalidate=Invalidar |
blog.status.not.valid=Por validar |
blog.title=Titulo |
blog.name=Nome do Blog (será usado como prefixo do sitio WEB) |
22,11 → 25,13 |
submit.blog=Criar um Blog |
blog.owner=Criado por |
blog.internal=Dominio |
blog.autoValidation=Auto Validação de POSTS |
blog.exceed.image.max.size=Excedeu o tamanho maximo da imagem |
blogpost.text=Texto |
blogpost.title=Titulo |
blog.post.created.success=Post adicionado com sucesso |
blog.post.updated.success=Post actualizado com sucesso |
blog.old.months=Meses Anteriores |
blog.confirm.delete=Tem a certeza que deseja apagar o Blog Selecionado? Todos os Posts serão apagados do Sistema. |
40,7 → 45,10 |
blog.name.already.exist=O nome que atribuiu ao blog já existe |
blog.bad.name=O nome que escolheu par o blog não é válido. Por favor escolha um nome contendo apenas os seguintes caracteres: de 'a' a 'z', de 'A' a 'Z', de '0' a '9' , '-' ou '_' |
blog.validate.post.todo=Validar POST |
blog.validate.blog.todo=Validar Blog |
blog.intro.message=O Serviço de criação de Blogs requer validação por parte da administração. Depois de criar o seu blog aguarde que este seja validado pelo Administrador. Só assim os outros utilizadores terão acesso ao mesmo. |
/impl/conf/language/MessageResourcesCourseUnits.properties |
---|
3,8 → 3,41 |
# COURSE UNITS MESSAGE RESOURCES |
# |
################################################################################ |
module.CourseUnits=Unidades Curriculares |
course=Curso ({0}) |
courseunit=Unidade Curricular ({0}) |
courseunit.objectives=Objectivos da Unidade |
courseunit.programfilepath=Programa Curricular |
courseunit.programfilepath.not.available=O Programa Curricular não está disponivel |
courseunit.objectives.not.available=Os objectivos não estão disponiveis |
courseunit.program.description=Programa Curricular de {0} |
courseunit.objectives.todo=Peenchimento dos objectivos da unidade |
courseunit.program.todo=Upload do programa da unidade |
courseunit.question.todo=Dúvida |
course.unit.works=(Trabalhos) |
courseunit.works=Trabalhos |
courseunit.new=Criar Unidade Curricular |
courseunit.edit=Editar Unidade Curricular |
courseunit.search.unit=Procurar Unidade Curricular |
courseunit.name=Nome |
courseunit.code=Código |
courseunit.semestre=Semestre |
courseunit.importYear=Ano de Importação |
courseunit.course=Curso |
courseunit.created.success=Unidade Curricular {0} criada com sucesso |
courseunit.updated.success=Unidade Curricular {0} actualizada com sucesso |
courseunit.assignement.deliver.date=Data de Entrega |
courseunit.assignement.deliver.type=Tipo de entrega |
courseunit.assignement.deliver.type.zipfile=Ficheiro Comprimido (ZIP) |
courseunit.assignement.deliver.type.nofile=Entrega não controlada pelo sistema |
courseunit.assignement.deliver.late.permission=Permitir entregas atrasadas |
courseunit.search=Procurar Unidade Curricular |
/impl/conf/WEB-INF/struts/struts-blog.xml |
---|
22,6 → 22,7 |
<action path="/startAddPost" forward="/blogsController.do?dispatch=addPost"/> |
<action path="/startEditPost" forward="/blogsController.do?dispatch=editPost"/> |
<action path="/startDeletePost" forward="/blogsController.do?dispatch=deletePost"/> |
<action path="/startValidatePost" forward="/blogsController.do?dispatch=validatePost"/> |
<action path="/startLoadBlogMonth" forward="/blogsController.do?dispatch=loadMonth"/> |
<action path="/startLoadBlog" forward="/blogsController.do?dispatch=load"/> |
45,6 → 46,7 |
<action path="/user/startAddPostFromHome" forward="/user/blogsControllerFromHome.do?dispatch=addPost&from=Home"/> |
<action path="/user/startEditPostFromHome" forward="/user/blogsControllerFromHome.do?dispatch=editPost&from=Home"/> |
<action path="/user/startDeletePostFromHome" forward="/user/blogsControllerFromHome.do?dispatch=deletePost&from=Home"/> |
<action path="/user/startValidatePostFromHome" forward="/user/blogsControllerFromHome.do?dispatch=validatePost&from=Home"/> |
<action path="/user/startSubmitBlogFromHome" forward="/user/blogsControllerFromHome.do?dispatch=start&from=Home"/> |
<action path="/user/startDeleteBlogFromHome" forward="/user/blogsControllerFromHome.do?dispatch=delete&from=Home"/> |
68,6 → 70,7 |
<action path="/user/startAddPostFromServiceZone" forward="/user/blogsControllerFromServiceZone.do?dispatch=addPost&from=ServiceZone"/> |
<action path="/user/startEditPostFromServiceZone" forward="/user/blogsControllerFromServiceZone.do?dispatch=editPost&from=ServiceZone"/> |
<action path="/user/startDeletePostFromServiceZone" forward="/user/blogsControllerFromServiceZone.do?dispatch=deletePost&from=ServiceZone"/> |
<action path="/user/startValidatePostFromServiceZone" forward="/user/blogsControllerFromServiceZone.do?dispatch=validatePost&from=ServiceZone"/> |
<action path="/user/startSubmitBlogFromServiceZone" forward="/user/blogsControllerFromServiceZone.do?dispatch=start&from=ServiceZone"/> |
<action path="/user/startDeleteBlogFromServiceZone" forward="/user/blogsControllerFromServiceZone.do?dispatch=delete&from=ServiceZone"/> |
/impl/conf/WEB-INF/struts/struts-courseunits.xml |
---|
24,7 → 24,21 |
<action path="/startTeste2" forward="page.separators.home"/> |
<action path="/startLoadCourseUnitWorks" forward="/courseUnitController.do?dispatch=loadWorks"/> |
<action path="/startLoadCourseUnit" forward="/courseUnitController.do?dispatch=load"/> |
<action path="/courseUnitController" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController" |
name="CourseUnitsForm" |
scope="request" |
parameter="dispatch" |
validate="false" |
input="page.welcome"> |
<forward name="load" path="page.load.courseunit"/> |
<forward name="load.works" path="page.load.courseunit.works"/> |
</action> |
<!--<action path="/user/startLoadCourseUnitFromHome" forward="page.load.courseunit.from.home"/>--> |
<action path="/user/startLoadCourseUnitWorksFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadWorks&from=Home"/> |
<action path="/user/startLoadCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=load&from=Home"/> |
<action path="/user/courseUnitControllerFromHome" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController" |
34,10 → 48,34 |
validate="false" |
input="page.welcome"> |
<forward name="load" path="page.load.courseunit.from.home"/> |
<forward name="load.works" path="page.load.courseunit.works.from.home"/> |
<forward name="submit" path="page.submit.courseunit.from.home"/> |
</action> |
<!--Administrative Services--> |
<action path="/user/startFindCourseUnitAdminFromServiceZone" forward="page.search.courseunit.admin.from.service.zone"/> |
<action path="/user/startEditCourseUnitAdminFromServiceZone" forward="/user/courseUnitControllerAdminFromServiceZone.do?dispatch=edit&from=ServiceZone"/> |
<action path="/user/startDeleteCourseUnitAdminFromServiceZone" forward="/user/courseUnitControllerAdminFromServiceZone.do?dispatch=delete&from=ServiceZone"/> |
<action path="/user/startSearchCourseUnitAdminFromServiceZone" forward="/user/courseUnitControllerAdminFromServiceZone.do?dispatch=search&from=ServiceZone"/> |
<action path="/user/startNewCourseUnitAdminFromServiceZone" forward="/user/courseUnitControllerAdminFromServiceZone.do?dispatch=newAdmin&from=ServiceZone"/> |
<action path="/user/startCreateOrUpdateCourseUnitAdminFromServiceZone" forward="/user/courseUnitControllerAdminFromServiceZone.do?dispatch=createOrUpdate&from=ServiceZone"/> |
<action path="/user/startLoadCourseUnitAdminFromServiceZone" forward="/user/courseUnitControllerAdminFromServiceZone.do?dispatch=load&from=ServiceZone"/> |
<action path="/user/courseUnitControllerAdminFromServiceZone" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsAdminController" |
name="CourseUnitsForm" |
scope="request" |
parameter="dispatch" |
validate="false" |
input="page.separators.serviceZone"> |
<forward name="search" path="page.search.courseunit.admin.from.service.zone"/> |
<forward name="load" path="page.submit.courseunit.admin.from.service.zone"/> |
<forward name="submit" path="page.submit.courseunit.admin.from.service.zone"/> |
<forward name="edit" path="page.edit.courseunit.admin.from.service.zone"/> |
</action> |
</action-mappings> |
</struts-config> |
/impl/conf/WEB-INF/struts/tiles-courseunits.xml |
---|
1,12 → 1,26 |
<?xml version="1.0" encoding="UTF-8" ?> |
<!--<!DOCTYPE tiles-definitions PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"--> |
<!--"http://struts.apache.org/dtds/tiles-config_1_1.dtd">--> |
<!--"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"--> |
<!--"http://struts.apache.org/dtds/tiles-config_1_1.dtd">--> |
<tiles-definitions> |
<definition name="page.load.courseunit" extends="base.layout1"> |
<put name="title" value="Unidade Curricular"/> |
<put name="topnav" value="/public/courseunits/topnavCourseUnit.jsp"/> |
<put name="navigation" value="/user/courseunits/menu.jsp"/> |
<put name="body" value="/user/courseunits/courseunit.jsp"/> |
</definition> |
<definition name="page.load.courseunit.works" extends="base.layout1"> |
<put name="title" value="Trabalhos da Unidade Curricular"/> |
<put name="topnav" value="/public/courseunits/topnavCourseUnit.jsp"/> |
<put name="navigation" value="/user/courseunits/menu.jsp"/> |
<put name="body" value="/user/courseunits/courseunitworks.jsp"/> |
</definition> |
<definition name="page.load.courseunit.from.home" extends="page.separators.home"> |
<put name="title" value="Unidade Curricular"/> |
<put name="topnav" value="/user/home/topnavCourseUnit.jsp"/> |
16,10 → 30,41 |
<definition name="page.submit.courseunit.from.home" extends="page.separators.home"> |
<put name="title" value="Unidade Curricular"/> |
<put name="topnav" value="/user/home/topnavSubmitCourseUnit.jsp"/> |
<put name="body" value="/user/courseunits/courseunit.jsp"/> |
</definition> |
<definition name="page.load.courseunit.works.from.home" extends="page.separators.home"> |
<put name="title" value="Trabalhos da Unidade Curricular"/> |
<put name="topnav" value="/user/home/topnavCourseUnitWorks.jsp"/> |
<put name="left" value="/user/courseunits/menu.jsp"/> |
<put name="body" value="/user/courseunits/courseunitworks.jsp"/> |
</definition> |
<!--Administrative pages--> |
<definition name="page.submit.courseunit.admin.from.service.zone" extends="page.separators.serviceZone"> |
<put name="title" value="Unidade Curricular"/> |
<put name="topnav" value="/user/serviceZone/topnavCourseUnit.jsp"/> |
<put name="body" value="/admin/courseunits/courseunit.jsp"/> |
</definition> |
<definition name="page.search.courseunit.admin.from.service.zone" extends="page.separators.serviceZone"> |
<put name="title" value="Pesquisar Unidade Curricular"/> |
<put name="topnav" value="/user/serviceZone/topnavSearchCourseUnit.jsp"/> |
<put name="body" value="/admin/courseunits/findCourseunit.jsp"/> |
</definition> |
<definition name="page.edit.courseunit.admin.from.service.zone" extends="page.separators.serviceZone"> |
<put name="title" value="Unidade Curricular"/> |
<put name="topnav" value="/user/serviceZone/topnavEditCourseUnit.jsp"/> |
<put name="body" value="/admin/courseunits/courseunit.jsp"/> |
</definition> |
</tiles-definitions> |
/impl/conf/app.properties |
---|
186,6 → 186,14 |
ws.siges.wsdl=@ws.siges.wsdl@ |
ws.siges.target.namespace=@ws.siges.target.namespace@ |
# |
importFirstYearFormat=yyyy |
importSecondYearFormat=yy |
#importFirstYearFormat {0} |
#importSecondYearFormat {1} |
importFinalFormat={0}{1} |
######################################################################### |
# |
#PopService |
/impl/conf/berserk/sd.xml |
---|
49,6 → 49,17 |
<chain name="Logger"/> |
</filterChains> |
</service> |
<service> |
<name>LoadUsers</name> |
<implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass> |
<description>Load student units</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Admins"/> |
</filterChains> |
</service> |
<!--URL Statistics--> |
274,6 → 285,17 |
</filterChains> |
</service> |
<service> |
<name>ValidateBlogPost</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.ValidateBlogPostService</implementationClass> |
<description>Validate a Post</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="OwnerBlogFromPost"/> |
</filterChains> |
</service> |
<service> |
<name>CreateBlogPost</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogPostService</implementationClass> |
<description>Create a Blog Post</description> |
601,6 → 623,37 |
</filterChains> |
</service> |
<service> |
<name>LoadCourseUnitWorks</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitWorksService</implementationClass> |
<description>Load course unit works</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
<service> |
<name>CreateCourseUnitWork</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorkService</implementationClass> |
<description>Load course unit works</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
<service> |
<name>SearchCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.SearchCourseUnitService</implementationClass> |
<description>Load course unit works</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>search</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
<service> |
<name>LoadTeachedUnits</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsService</implementationClass> |
<description>Load teacher units</description> |
635,6 → 688,70 |
</filterChains> |
</service> |
<service> |
<name>AddTeacherCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass> |
<description>Load student units</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>addTeacher</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Admins"/> |
</filterChains> |
</service> |
<service> |
<name>RemoveTeacherCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass> |
<description>Load student units</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>removeTeacher</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Admins"/> |
</filterChains> |
</service> |
<service> |
<name>AddStudentCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass> |
<description>Load student units</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>addStudent</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Admins"/> |
</filterChains> |
</service> |
<service> |
<name>RemoveStudentCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass> |
<description>Load student units</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>removeStudent</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Admins"/> |
</filterChains> |
</service> |
<!--Administratives--> |
<service> |
<name>CreateCourseUnitAdmin</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitAdminService</implementationClass> |
<description>Load student units</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Session"/> |
<chain name="Admins"/> |
</filterChains> |
</service> |
<!--Repository--> |
<service> |
<name>StoreRepositoryFile</name> |
/impl/conf/berserk/fd.xml |
---|
44,10 → 44,25 |
<filter> |
<name>OwnerUsersClass</name> |
<implementationClass>pt.estgp.estgweb.filters.filters.OwnerUsersClass</implementationClass> |
<description>Checks if the requester contains certain roles</description> |
<description> |
Checks if the requester is owner of the requested bead |
filter parameter: bean serializable id |
filter parameter: bean class |
</description> |
<isTransactional>false</isTransactional> |
</filter> |
<filter> |
<name>OwnerUsersClassBean</name> |
<implementationClass>pt.estgp.estgweb.filters.filters.OwnerUsersClassBean</implementationClass> |
<description> |
Checks if the requester is owner of the requested bean inside the loaded bean |
filter parameter: bean serializable id |
filter parameter: bean class |
filter parameter: bean path to owned object from loaded bean |
</description> |
<isTransactional>false</isTransactional> |
</filter> |
<filter> |
<name>CanAddContentClass</name> |
<implementationClass>pt.estgp.estgweb.filters.filters.CanAddContentClass</implementationClass> |
<description>Checks if the requester can add content to specified object</description> |
/impl/conf/berserk/fcd.xml |
---|
164,6 → 164,13 |
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass> |
</filterChain> |
<filterChain> |
<name>OwnerBlogFromPost</name> |
<expression>OwnerUsersClassBean("serializable","pt.estgp.estgweb.domain.BlogPostImpl","blog")</expression> |
<description>Owner of an object Control Chain</description> |
<invocationTiming>1</invocationTiming> |
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass> |
</filterChain> |
<filterChain> |
<name>ExistBlog</name> |
<expression>ExistObject("serializable","pt.estgp.estgweb.domain.BlogImpl")</expression> |
<description>Not Found Control</description> |
/impl/src/java/jomm/utils/DatesUtils.java |
---|
1,6 → 1,7 |
package jomm.utils; |
import java.util.Date; |
import java.text.SimpleDateFormat; |
/** |
* @author Jorge Machado |
57,4 → 58,6 |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/utils/DatesUtils.java |
---|
New file |
0,0 → 1,92 |
package pt.estgp.estgweb.utils; |
import pt.estgp.estgweb.Globals; |
import java.util.Date; |
import java.util.List; |
import java.util.ArrayList; |
import java.text.SimpleDateFormat; |
import java.text.MessageFormat; |
import jomm.utils.MyCalendar; |
/** |
* @author Jorge Machado |
* @date 13/Jun/2008 |
* @see pt.estgp.estgweb.utils |
*/ |
public class DatesUtils |
{ |
static SimpleDateFormat SIGES_importFirstYearFormat = new SimpleDateFormat(Globals.SIGES_importFirstYearFormat); |
static SimpleDateFormat SIGES_importSecondYearFormat = new SimpleDateFormat(Globals.SIGES_importSecondYearFormat); |
static MessageFormat SIGES_importFinalFormat = new MessageFormat(Globals.SIGES_importFinalFormat); |
public static String getImportYear() |
{ |
MyCalendar mc = new MyCalendar(); |
int month = mc.getMonth(); |
MyCalendar firstYear; |
MyCalendar secondYear; |
if(month <= 8) |
{ |
firstYear = new MyCalendar(mc.getYear() - 1,1,1); |
secondYear = new MyCalendar(mc.getYear(),1,1); |
} |
else |
{ |
firstYear = new MyCalendar(mc.getYear(),1,1); |
secondYear = new MyCalendar(mc.getYear()+1,1,1); |
} |
String firstYearStr = SIGES_importFirstYearFormat.format(firstYear.getTime()); |
String secondYearStr = SIGES_importSecondYearFormat.format(secondYear.getTime()); |
return getFormatedImportYear(firstYearStr,secondYearStr); |
} |
public static String getFormatedImportYear(String firstYearStr, String secondYearStr) |
{ |
String[] years = {firstYearStr,secondYearStr}; |
return MessageFormat.format(Globals.SIGES_importFinalFormat,years); |
} |
public static List<String> getImportYears(int size) |
{ |
MyCalendar mc = new MyCalendar(); |
int month = mc.getMonth(); |
MyCalendar firstYear; |
MyCalendar secondYear; |
if(month <= 8) |
{ |
firstYear = new MyCalendar(mc.getYear() - 1,1,1); |
secondYear = new MyCalendar(mc.getYear(),1,1); |
} |
else |
{ |
firstYear = new MyCalendar(mc.getYear(),1,1); |
secondYear = new MyCalendar(mc.getYear()+1,1,1); |
} |
String firstYearStr = SIGES_importFirstYearFormat.format(firstYear.getTime()); |
String secondYearStr = SIGES_importSecondYearFormat.format(secondYear.getTime()); |
List<String> importYears = new ArrayList<String>(); |
importYears.add(getFormatedImportYear(firstYearStr,secondYearStr)); |
for(int i = 0; i < size;i++) |
{ |
firstYear = new MyCalendar(firstYear.getYear() - 1,1,1); |
secondYear = new MyCalendar(secondYear.getYear() - 1,1,1); |
firstYearStr = SIGES_importFirstYearFormat.format(firstYear.getTime()); |
secondYearStr = SIGES_importSecondYearFormat.format(secondYear.getTime()); |
importYears.add(getFormatedImportYear(firstYearStr,secondYearStr)); |
} |
return importYears; |
} |
public static void main(String [] args) |
{ |
System.out.println(getImportYears(10)); |
} |
} |
/impl/src/java/pt/estgp/estgweb/utils/RoleManager.java |
---|
52,6 → 52,20 |
return false; |
} |
public static boolean hasRole(List<String> roles, String requiredRole) |
{ |
if(roles == null || roles.size() == 0) |
return false; |
for(String role: roles) |
{ |
if(role.equals(requiredRole)) |
return true; |
} |
return false; |
} |
public static List readRoles() |
{ |
if(roles == null) |
/impl/src/java/pt/estgp/estgweb/Globals.java |
---|
82,4 → 82,11 |
public static final long MAX_BIGMAGE_FILE_SIZE_BYTES = MAX_BIGMAGE_FILE_SIZE_KBYTES * 1024; |
public static final long MAX_SMALLIMAGE_FILE_SIZE_BYTES = MAX_SMALLIMAGE_FILE_SIZE_KBYTES * 1024; |
//CourseUnits |
public static final String SIGES_importFirstYearFormat = ConfigProperties.getProperty("importFirstYearFormat"); |
public static final String SIGES_importSecondYearFormat = ConfigProperties.getProperty("importSecondYearFormat"); |
public static final String SIGES_importFinalFormat = ConfigProperties.getProperty("importFinalFormat"); |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/CourseUnitsCommonServices.java |
---|
New file |
0,0 → 1,121 |
package pt.estgp.estgweb.services.courseunits; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.common.*; |
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults; |
import pt.estgp.estgweb.services.common.impl.DefaultResult; |
import pt.estgp.estgweb.services.common.impl.DefaultToDo; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import org.apache.log4j.Logger; |
import java.util.List; |
import java.util.ArrayList; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* <p/> |
* <p/> |
* Created at 17/Out/2003 , 23:45:24 |
*/ |
public class CourseUnitsCommonServices implements IService, IModuleCommonServices |
{ |
private static final Logger logger = Logger.getLogger(CourseUnitsCommonServices.class); |
public int countSearch(String search, SearchTypeEnum searchType, UserSession userSession) |
{ |
return 0; |
} |
public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) |
{ |
return search(null, search, searchType, page, maxResults, userSession); |
} |
public ISearchResults search(String from, String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) |
{ |
DefaultSearchResults searchResults = new DefaultSearchResults(); |
searchResults.setModule(ModuleEnum.CourseUnits); |
searchResults.setTotalResults(DaoFactory.getCourseUnitDaoImpl().countCourseUnitsActualYear(search, searchType)); |
if (searchResults.getTotalResults() > 0) |
{ |
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().searchActualYear(search, searchType, maxResults, page); |
if (courseUnits == null) |
return searchResults; |
for (CourseUnit courseUnit : courseUnits) |
{ |
DefaultResult defaultResult = new DefaultResult(); |
defaultResult.setTitle(courseUnit.getName()); |
defaultResult.setSubTitle(courseUnit.getCourseName()); |
defaultResult.setSubTitleKey(false); |
defaultResult.setText(courseUnit.getObjectives()); |
if (from == null) |
defaultResult.setUrl("/startLoadCourseUnit.do?id=" + courseUnit.getId()); |
else |
defaultResult.setUrl("/user/startLoadCourseUnitFrom" + from + ".do?id=" + courseUnit.getId()); |
searchResults.addResult(defaultResult); |
} |
} |
return searchResults; |
} |
public int countToDo(UserSession userSession) |
{ |
return 0; |
} |
public IToDoCat getToDo(UserSession userSession) |
{ |
return null; |
} |
public List<IToDo> getAllToDos(UserSession userSession) |
{ |
List<IToDo> todos = new ArrayList<IToDo>(); |
if(userSession.getUser() != null && userSession.getUser() instanceof Teacher) |
{ |
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadMissingObjectives(userSession.getUser().getId()); |
for(CourseUnit c: courseUnits) |
{ |
DefaultToDo defaultToDo = new DefaultToDo(c.getName(),null,c.getCourseName(), "courseunit.objectives.todo","/user/startLoadCourseUnitFromHome.do?id=" + c.getId()); |
todos.add(defaultToDo); |
if(c.getProgramStreamId() == null || c.getProgramStreamId().length() == 0) |
{ |
defaultToDo = new DefaultToDo(c.getName(),null,c.getCourseName(), "courseunit.program.todo","/user/startLoadCourseUnitFromHome.do?id=" + c.getId()); |
todos.add(defaultToDo); |
} |
} |
List<CourseUnitQuestion> courseUnitQuestions = DaoFactory.getCourseUnitQuestionDaoImpl().loadMissingQuestions(userSession.getUser().getId()); |
for(CourseUnitQuestion c: courseUnitQuestions) |
{ |
DefaultToDo defaultToDo = new DefaultToDo(c.getQuestion(),null,c.getCourseUnit().getName(), "courseunit.question.todo","/user/startLoadCourseUnitFromHome.do?id=" + c.getId()); |
todos.add(defaultToDo); |
} |
} |
return todos; |
}/*This method is invoked from object creation*/ |
public void adviseNew(DomainObject object) |
{ |
//To change body of implemented methods use File | Settings | File Templates. |
} |
public void adviseUpdate(DomainObject object) |
{ |
//To change body of implemented methods use File | Settings | File Templates. |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadCourseUnitService.java |
---|
8,6 → 8,7 |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.views.BlogPostView; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.UserView; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import org.apache.log4j.Logger; |
38,12 → 39,15 |
private static final Logger logger = Logger.getLogger(LoadCourseUnitService.class); |
public CourseUnitView run(long id, UserSession userSession) throws ServiceException |
public CourseUnitView run(long id, boolean initTeachers, boolean initStudents, UserSession userSession) throws ServiceException |
{ |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id); |
if(c == null) |
return null; |
CourseUnitView cV = new CourseUnitView(c); |
CourseUnitView cV = new CourseUnitView(c,initTeachers,initStudents); |
if(c.getProgramStreamId()!= null) |
{ |
RepositoryFile repositoryFile = repositoryService.loadView(c.getProgramStreamId()); |
/impl/src/java/pt/estgp/estgweb/services/courseunits/impl/CourseUnitViewResult.java |
---|
New file |
0,0 → 1,14 |
package pt.estgp.estgweb.services.courseunits.impl; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.services.common.impl.ClazzResult; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 16:13:08 |
* @see pt.estgp.estgweb.services.common.impl |
*/ |
public class CourseUnitViewResult extends ClazzResult<CourseUnitView> |
{ |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/UsersUnitsService.java |
---|
New file |
0,0 → 1,62 |
package pt.estgp.estgweb.services.courseunits; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class UsersUnitsService implements IService |
{ |
LoadCourseUnitService loadCourseUnitService = new LoadCourseUnitService(); |
public CourseUnitView addTeacher(long teacherId,long courseUnitId, UserSession userSession) throws ServiceException |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId); |
TeacherImpl t = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(teacherId); |
t.getId(); |
courseUnit.getTeachers().remove(t); |
courseUnit.getTeachers().add(t); |
return loadCourseUnitService.run(courseUnitId,true,true,userSession); |
} |
public CourseUnitView removeTeacher(long teacherId,long courseUnitId, UserSession userSession) throws ServiceException |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId); |
TeacherImpl t = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(teacherId); |
courseUnit.getTeachers().remove(t); |
return loadCourseUnitService.run(courseUnitId,true,true,userSession); |
} |
public CourseUnitView addStudent(int code,long courseUnitId, UserSession userSession) throws ServiceException |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId); |
StudentImpl s = (StudentImpl) DaoFactory.getStudentDaoImpl().loadBySigesCode(code); |
courseUnit.getStudents().remove(s); |
courseUnit.getStudents().add(s); |
return loadCourseUnitService.run(courseUnitId,true,true,userSession); |
} |
public CourseUnitView removeStudent(int code,long courseUnitId, UserSession userSession) throws ServiceException |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId); |
StudentImpl s = (StudentImpl) DaoFactory.getStudentDaoImpl().loadBySigesCode(code); |
courseUnit.getStudents().remove(s); |
return loadCourseUnitService.run(courseUnitId,true,true,userSession); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadCourseUnitWorksService.java |
---|
New file |
0,0 → 1,59 |
package pt.estgp.estgweb.services.courseunits; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.data.RepositoryService; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.RepositoryFile; |
import pt.estgp.estgweb.domain.CourseUnitAssignement; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import org.apache.log4j.Logger; |
import java.util.Set; |
import java.util.HashSet; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class LoadCourseUnitWorksService implements IService |
{ |
LoadCourseUnitService loadCourseUnitService = new LoadCourseUnitService(); |
private static final Logger logger = Logger.getLogger(LoadCourseUnitWorksService.class); |
public CourseUnitView run(long id, UserSession userSession) throws ServiceException |
{ |
CourseUnitView cV = loadCourseUnitService.run(id,false,false,userSession); |
if(cV == null) |
return null; |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(id); |
if(courseUnit.getAssignements() != null) |
{ |
Set<CourseUnitAssignementView> views = new HashSet<CourseUnitAssignementView>(); |
for(CourseUnitAssignement a: courseUnit.getAssignements()) |
{ |
long delivers = DaoFactory.getCourseUnitDeliverableDaoImpl().countAssignements(a.getId()); |
CourseUnitAssignementView view = new CourseUnitAssignementView(a,delivers); |
views.add(view); |
} |
cV.setCourseUnitAssignements(views); |
} |
return cV; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/SearchCourseUnitService.java |
---|
New file |
0,0 → 1,71 |
package pt.estgp.estgweb.services.courseunits; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.common.*; |
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults; |
import pt.estgp.estgweb.services.common.impl.DefaultResult; |
import pt.estgp.estgweb.services.common.impl.DefaultToDo; |
import pt.estgp.estgweb.services.common.impl.ClazzResult; |
import pt.estgp.estgweb.services.courseunits.impl.CourseUnitViewResult; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import org.apache.log4j.Logger; |
import java.util.List; |
import java.util.ArrayList; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* <p/> |
* <p/> |
* Created at 17/Out/2003 , 23:45:24 |
*/ |
public class SearchCourseUnitService implements IService |
{ |
private static final Logger logger = Logger.getLogger(SearchCourseUnitService.class); |
public ISearchResults search(String from, String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) |
{ |
DefaultSearchResults searchResults = new DefaultSearchResults(); |
searchResults.setModule(ModuleEnum.CourseUnits); |
searchResults.setQuery(search); |
searchResults.setSearchType(searchType.getMessageKey()); |
searchResults.setPage(page); |
searchResults.setMaxResultsPage(maxResults); |
searchResults.setTotalResults(DaoFactory.getCourseUnitDaoImpl().countCourseUnits(search, searchType)); |
if (searchResults.getTotalResults() > 0) |
{ |
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().search(search, searchType, maxResults, page); |
if (courseUnits == null) |
return searchResults; |
for (CourseUnit courseUnit : courseUnits) |
{ |
CourseUnitViewResult defaultResult = new CourseUnitViewResult(); |
defaultResult.setTitle(courseUnit.getName()); |
defaultResult.setSubTitle(courseUnit.getCourseName()); |
defaultResult.setSubTitleKey(false); |
defaultResult.setObject(new CourseUnitView(courseUnit)); |
if (from == null) |
defaultResult.setUrl("/startEditCourseUnitAdmin.do?id=" + courseUnit.getId()); |
else |
defaultResult.setUrl("/user/startEditCourseUnitAdminFrom" + from + ".do?id=" + courseUnit.getId()); |
searchResults.addResult(defaultResult); |
} |
} |
return searchResults; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitWorkService.java |
---|
New file |
0,0 → 1,47 |
package pt.estgp.estgweb.services.courseunits; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.CourseUnitAssignement; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import org.apache.log4j.Logger; |
import java.util.Set; |
import java.util.HashSet; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class CreateCourseUnitWorkService implements IService |
{ |
LoadCourseUnitWorksService loadCourseUnitWorksService = new LoadCourseUnitWorksService(); |
private static final Logger logger = Logger.getLogger(CreateCourseUnitWorkService.class); |
public CourseUnitView run(CourseUnitAssignementView cUV, long id, UserSession userSession) throws ServiceException |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(id); |
CourseUnitAssignement cU = DomainObjectFactory.createCourseUnitAssignementImpl(); |
cU.setCourseUnit(courseUnit); |
cUV.persistViewInObject(cU); |
DaoFactory.getCourseUnitAssignementDaoImpl().save(cU); |
return loadCourseUnitWorksService.run(id,userSession); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitAdminService.java |
---|
New file |
0,0 → 1,59 |
package pt.estgp.estgweb.services.courseunits; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.CourseUnitAssignement; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class CreateCourseUnitAdminService implements IService |
{ |
LoadCourseUnitWorksService loadCourseUnitWorksService = new LoadCourseUnitWorksService(); |
private static final Logger logger = Logger.getLogger(CreateCourseUnitAdminService.class); |
public CourseUnitView run(CourseUnitView cUV, UserSession userSession) throws ServiceException |
{ |
CourseUnit courseUnit; |
if(cUV.getId() > 0) |
courseUnit = DaoFactory.getCourseUnitDaoImpl().get(cUV.getId()); |
else |
{ |
courseUnit = DomainObjectFactory.createCourseUnitImpl(); |
DaoFactory.getCourseUnitDaoImpl().save(courseUnit); |
} |
cUV.persistViewAdminInObject(courseUnit); |
courseUnit.setInstitutionCode("" + Globals.SIGES_INSTITUTION_CODE.intValue()); |
//por o curso |
//por os profs |
//por alunos |
//por courseCode, courseName, CourseYear relativo ao Curso Escolhido |
return loadCourseUnitWorksService.run(courseUnit.getId(),userSession); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/ClazzResult.java |
---|
New file |
0,0 → 1,30 |
package pt.estgp.estgweb.services.common.impl; |
import pt.estgp.estgweb.services.common.IResult; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 16:13:08 |
* @see pt.estgp.estgweb.services.common.impl |
*/ |
public class ClazzResult<CLAZZ> extends DefaultResult |
{ |
private CLAZZ object; |
public ClazzResult() { |
} |
public CLAZZ getObject() |
{ |
return object; |
} |
public void setObject(CLAZZ object) |
{ |
this.object = object; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/DefaultResult.java |
---|
11,6 → 11,7 |
public class DefaultResult implements IResult |
{ |
private String title; |
private String subTitle; |
private String bestFragments; |
/impl/src/java/pt/estgp/estgweb/services/common/impl/DefaultToDo.java |
---|
111,7 → 111,7 |
} |
else |
{ |
return "(" + MessageResources.getMessage(request,"from") + " " + getFrom() + ")\t" + getDescription(); |
return getDescription() + " (" + MessageResources.getMessage(request,"from") + ": " + getFrom() + ")"; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/DefaultSearchResults.java |
---|
7,6 → 7,9 |
import java.util.List; |
import java.util.ArrayList; |
import org.apache.commons.httpclient.util.URIUtil; |
import org.apache.commons.httpclient.URIException; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
44,7 → 47,7 |
public int getTotalResults() { |
return totalResults; |
} |
public void setTotalResults(int totalResults) { |
this.totalResults = totalResults; |
} |
69,7 → 72,7 |
public int getPage() { |
return page; |
} |
public int getPage2Screen() { |
return page + 1; |
} |
103,6 → 106,14 |
public String getQuery() { |
try |
{ |
return URIUtil.encodePath(query,"ISO-8859-1"); |
} |
catch (URIException e) |
{ |
e.printStackTrace(); |
} |
return query; |
} |
/impl/src/java/pt/estgp/estgweb/services/common/ModuleEnum.java |
---|
3,6 → 3,9 |
import pt.estgp.estgweb.services.announcements.AnnouncementsCommonServices; |
import pt.estgp.estgweb.services.email.EmailCommonServices; |
import pt.estgp.estgweb.services.reminders.RemindersCommonServices; |
import pt.estgp.estgweb.services.blogs.BlogsCommonServices; |
import pt.estgp.estgweb.services.blogs.BlogPostsCommonServices; |
import pt.estgp.estgweb.services.courseunits.CourseUnitsCommonServices; |
/** |
* @author Jorge Machado |
16,7 → 19,10 |
Announcements("module.Announcements", new AnnouncementsCommonServices()), |
Email("module.Email", new EmailCommonServices()), |
Reminders("module.Reminders", new RemindersCommonServices()); |
Reminders("module.Reminders", new RemindersCommonServices()), |
Blogs("module.Blogs", new BlogsCommonServices()), |
BlogPosts("module.BlogPosts", new BlogPostsCommonServices()), |
CourseUnits("module.CourseUnits", new CourseUnitsCommonServices()); |
// Questionarios("module.Qustionarios", new QuestionariosCommonServices()); |
// Events("module.Events",null), |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java |
---|
81,14 → 81,15 |
c.setName(d.getNomeCurso()); |
c.setDegree(d.getGrauCurso()); |
c.setCode("" + d.getCodigoCurso().intValue()); |
c.setImportYear(year); |
c.setInstitutionalCode("" + d.getCodigoInstituicao().intValue()); |
} |
/** |
* Update Course Units |
*/ |
updateCourseUnits(disciplinasMapS1, "S1",logMessages); |
updateCourseUnits(disciplinasMapS2, "S2",logMessages); |
updateCourseUnits(disciplinasMapS1, "S1",logMessages,year); |
updateCourseUnits(disciplinasMapS2, "S2",logMessages,year); |
} |
catch (Throwable e) |
{ |
126,7 → 127,7 |
} |
} |
private void updateCourseUnits(HashMap<String, Disciplina> disciplinasMapS, String semestre, DefaultLogMessages logMessages) |
private void updateCourseUnits(HashMap<String, Disciplina> disciplinasMapS, String semestre, DefaultLogMessages logMessages, String year) |
{ |
logMessages.addMessage(new DefaultLogMessage("import.semestre.updating.course.units." + semestre, LogMessageTypeEnum.INFO)); |
logger.info("updating " + semestre + " course units"); |
144,6 → 145,7 |
c.setCourseCode("" + d.getCodigoCurso()); |
c.setCourseName("" + d.getNomeCurso()); |
c.setSemestre(semestre); |
c.setImportYear(year); |
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(c.getCourseCode()); |
c.setCourse(course); |
DaoFactory.getCourseUnitDaoImpl().save(c); |
/impl/src/java/pt/estgp/estgweb/services/users/LoadUsersService.java |
---|
New file |
0,0 → 1,51 |
package pt.estgp.estgweb.services.users; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.User; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.UserImpl; |
import pt.estgp.estgweb.domain.views.UserView; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.services.expceptions.FieldException; |
import pt.estgp.estgweb.services.expceptions.AlreadyExistsException; |
import pt.estgp.estgweb.services.common.CommonServicesManager; |
import org.apache.log4j.Logger; |
import org.hibernate.criterion.Order; |
import java.util.Date; |
import java.util.List; |
import java.util.ArrayList; |
import jomm.utils.BytesUtils; |
import jomm.dao.impl.AbstractDao; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* <p/> |
* <p/> |
* Created at 17/Out/2003 , 23:45:24 |
*/ |
public class LoadUsersService implements IService |
{ |
private static final Logger logger = Logger.getLogger(LoadUsersService.class); |
public List<UserView> run(Class c, UserSession userSession) throws ServiceException |
{ |
List<UserImpl> users = AbstractDao.getCurrentSession().createCriteria(c).addOrder(Order.asc("name")).list(); |
List<UserView> userViews = new ArrayList<UserView>(); |
for(UserImpl u :users) |
{ |
UserView view = new UserView(u); |
userViews.add(view); |
} |
return userViews; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/BlogsCommonServices.java |
---|
2,12 → 2,17 |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.common.*; |
import pt.estgp.estgweb.services.common.impl.DefaultToDo; |
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults; |
import pt.estgp.estgweb.services.common.impl.DefaultResult; |
import pt.estgp.estgweb.services.announcements.AnnouncementsCommonServices; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.DomainObject; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
import java.util.List; |
import java.util.ArrayList; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
32,14 → 37,51 |
return 0; //To change body of implemented methods use File | Settings | File Templates. |
} |
public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) { |
return null; //To change body of implemented methods use File | Settings | File Templates. |
public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) |
{ |
return search(null,search, searchType,page,maxResults,userSession); |
} |
public ISearchResults search(String from, String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) { |
return null; //To change body of implemented methods use File | Settings | File Templates. |
public ISearchResults search(String from, String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) |
{ |
DefaultSearchResults searchResults = new DefaultSearchResults(); |
searchResults.setModule(ModuleEnum.Blogs); |
List<String> roles; |
if (userSession == null || userSession.getUser() == null || ((UserImpl) userSession.getUser()).getRolesList() == null || ((UserImpl) userSession.getUser()).getRolesList().size() == 0) |
{ |
roles = new ArrayList<String>(); |
roles.add(Globals.ALL_ROLE); |
} |
else |
roles = ((UserImpl) userSession.getUser()).getRolesList(); |
boolean internal = true; |
if (userSession.getUser() == null) |
internal = false; |
searchResults.setTotalResults(DaoFactory.getBlogDaoImpl().countBlogs(search, searchType, roles, null,internal)); |
if (searchResults.getTotalResults() > 0) |
{ |
List<Blog> blogs = DaoFactory.getBlogDaoImpl().searchBlogs(search, searchType, maxResults, page, roles,internal); |
if (blogs == null) |
return searchResults; |
for (Blog blog : blogs) |
{ |
DefaultResult defaultResult = new DefaultResult(); |
defaultResult.setTitle(blog.getTitle()); |
defaultResult.setSubTitle(null); |
defaultResult.setSubTitleKey(true); |
defaultResult.setText(blog.getDescription()); |
if(from == null) |
defaultResult.setUrl("/startLoadBlog.do?id=" + blog.getId()); |
else |
defaultResult.setUrl("/user/startLoadBlogFrom" + from + ".do?id=" + blog.getId()); |
searchResults.addResult(defaultResult); |
} |
} |
return searchResults; |
} |
public int countToDo(UserSession userSession) { |
return 0; //To change body of implemented methods use File | Settings | File Templates. |
} |
50,7 → 92,30 |
public List<IToDo> getAllToDos(UserSession userSession) |
{ |
return null; //To change body of implemented methods use File | Settings | File Templates. |
List<IToDo> todos = new ArrayList<IToDo>(); |
if(userSession.getUser().isSuperuserOrAdmin()) |
{ |
List<Blog> invalidBlogs = DaoFactory.getBlogDaoImpl().loadInvalidBlogs(); |
for(Blog b: invalidBlogs) |
{ |
String username = null; |
if(b.getOwner() instanceof UserImpl) |
username = ((UserImpl)b.getOwner()).getUsername(); |
DefaultToDo defaultToDo = new DefaultToDo(b.getTitle(),b.getTargetRoles(),username, "blog.validate.blog.todo","/user/startLoadBlogFromHome.do?id=" + b.getId()); |
todos.add(defaultToDo); |
} |
} |
List<BlogPost> invalidBlogsPosts = DaoFactory.getBlogPostDaoImpl().loadInvalidBlogPostsFromOwnedBlogs(userSession.getUser().getId()); |
for(BlogPost b: invalidBlogsPosts) |
{ |
String username = null; |
if(b.getOwner() instanceof UserImpl) |
username = ((UserImpl)b.getOwner()).getUsername(); |
DefaultToDo defaultToDo = new DefaultToDo(b.getTitle(),null,username, "blog.validate.post.todo","/user/startLoadBlogFromHome.do?id=" + b.getBlog().getId()); |
todos.add(defaultToDo); |
} |
return todos; |
}/*This method is invoked from object creation*/ |
public void adviseNew(DomainObject object) |
{ |
/impl/src/java/pt/estgp/estgweb/services/blogs/ValidateBlogPostService.java |
---|
New file |
0,0 → 1,41 |
package pt.estgp.estgweb.services.blogs; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.views.BlogPostView; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.BlogPostImpl; |
import pt.estgp.estgweb.domain.BlogPost; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import org.apache.log4j.Logger; |
import java.util.List; |
import java.util.ArrayList; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class ValidateBlogPostService implements IService |
{ |
private static final Logger logger = Logger.getLogger(ValidateBlogPostService.class); |
public void run(long blogpostId, boolean newStatus, UserSession userSession) throws ServiceException |
{ |
BlogPost blogPost = DaoFactory.getBlogPostDaoImpl().get(blogpostId); |
blogPost.setStatus(newStatus); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/CreateBlogService.java |
---|
30,6 → 30,8 |
{ |
private static final Logger logger = Logger.getLogger(CreateBlogService.class); |
private LoadBlogService loadBlogService = new LoadBlogService(); |
public BlogView run(BlogView bV, UserSession userSession) throws ServiceException |
{ |
Blog b; |
44,9 → 46,12 |
{ |
b = DaoFactory.getBlogDaoImpl().get(bV.getSerializable()); |
} |
bV.persistViewInObject(b); |
if(userSession.getUser().isSuperuserOrAdmin()) |
bV.persistViewInObjectByAdmin(b); |
else |
bV.persistViewInObject(b); |
if(b.getTargetRoles() == null || b.getTargetRoles().length() == 0) |
b.setTargetRoles(Globals.ALL_ROLE); |
return new BlogView(b); |
return loadBlogService.loadIndex(b.getId(),userSession); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/BlogPostsCommonServices.java |
---|
New file |
0,0 → 1,121 |
package pt.estgp.estgweb.services.blogs; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.common.*; |
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults; |
import pt.estgp.estgweb.services.common.impl.DefaultResult; |
import pt.estgp.estgweb.services.common.impl.DefaultToDo; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
import java.util.List; |
import java.util.ArrayList; |
import jomm.utils.MyCalendar; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* <p/> |
* <p/> |
* Created at 17/Out/2003 , 23:45:24 |
*/ |
public class BlogPostsCommonServices implements IService, IModuleCommonServices |
{ |
private static final Logger logger = Logger.getLogger(BlogPostsCommonServices.class); |
public int countSearch(String search, SearchTypeEnum searchType, UserSession userSession) |
{ |
return 0; |
} |
public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) |
{ |
return search(null, search, searchType, page, maxResults, userSession); |
} |
public ISearchResults search(String from, String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) |
{ |
DefaultSearchResults searchResults = new DefaultSearchResults(); |
searchResults.setModule(ModuleEnum.BlogPosts); |
List<String> roles; |
if (userSession == null || userSession.getUser() == null || ((UserImpl) userSession.getUser()).getRolesList() == null || ((UserImpl) userSession.getUser()).getRolesList().size() == 0) |
{ |
roles = new ArrayList<String>(); |
roles.add(Globals.ALL_ROLE); |
} |
else |
roles = userSession.getUser().getRolesList(); |
boolean internal = true; |
if (userSession.getUser() == null) |
internal = false; |
searchResults.setTotalResults(DaoFactory.getBlogPostDaoImpl().countBlogPosts(search, searchType, roles, null, internal)); |
if (searchResults.getTotalResults() > 0) |
{ |
List<BlogPost> blogPosts = DaoFactory.getBlogPostDaoImpl().searchBlogPosts(search, searchType, maxResults, page, roles, internal); |
if (blogPosts == null) |
return searchResults; |
for (BlogPost blogPost : blogPosts) |
{ |
DefaultResult defaultResult = new DefaultResult(); |
defaultResult.setTitle(blogPost.getTitle()); |
defaultResult.setSubTitle(null); |
defaultResult.setSubTitleKey(true); |
defaultResult.setText(blogPost.getText()); |
MyCalendar myCalendar = new MyCalendar(); |
if (myCalendar.getMonth() != blogPost.getMonth() || myCalendar.getYear() != blogPost.getYear()) |
{ |
if (from == null) |
defaultResult.setUrl("/startLoadBlogMonth.do?month=" + blogPost.getMonth() + "&year=" + blogPost.getYear() + "&id=" + blogPost.getBlog().getId() + "#post" + blogPost.getId()); |
else |
defaultResult.setUrl("/user/startLoadBlogMonthFrom" + from + ".do?month=" + blogPost.getMonth() + "&year=" + blogPost.getYear() + "&id=" + blogPost.getBlog().getId() + "#post" + blogPost.getId()); |
} |
else |
{ |
if (from == null) |
defaultResult.setUrl("/startLoadBlog.do?id=" + blogPost.getBlog().getId() + "#post" + blogPost.getId()); |
else |
defaultResult.setUrl("/user/startLoadBlogFrom" + from + ".do?id=" + blogPost.getBlog().getId() + "#post" + blogPost.getId()); |
} |
searchResults.addResult(defaultResult); |
} |
} |
return searchResults; |
} |
public int countToDo(UserSession userSession) |
{ |
return 0; |
} |
public IToDoCat getToDo(UserSession userSession) |
{ |
return null; |
} |
public List<IToDo> getAllToDos(UserSession userSession) |
{ |
return null; |
}/*This method is invoked from object creation*/ |
public void adviseNew(DomainObject object) |
{ |
//To change body of implemented methods use File | Settings | File Templates. |
} |
public void adviseUpdate(DomainObject object) |
{ |
//To change body of implemented methods use File | Settings | File Templates. |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/CreateBlogPostService.java |
---|
63,7 → 63,14 |
bPV.getImage().setImage(null); |
} |
Blog b = DaoFactory.getBlogDaoImpl().load(blogId); |
if(b.isAutoValidation() || b.isOwnedBy(userSession.getUser()) || userSession.getUser().isSuperuserOrAdmin()) |
{ |
bPV.setStatus(true); |
} |
bPV.persistViewInObject(bP); |
bP.setOwner(userSession.getUser()); |
bP.setBlog(b); |
/impl/src/java/pt/estgp/estgweb/services/announcements/AnnouncementsCommonServices.java |
---|
66,9 → 66,9 |
defaultResult.setSubTitleKey(true); |
defaultResult.setText(a.getText()); |
if(from == null) |
defaultResult.setUrl("/loadAnnouncement.do?id=" + a.getId() + "&dispatch=load"); |
defaultResult.setUrl("/startLoadAnnouncement.do?id=" + a.getId()); |
else |
defaultResult.setUrl("/startLoadAnnouncementFrom" + from + ".do?id=" + a.getId() + "&dispatch=load"); |
defaultResult.setUrl("/user/startLoadAnnouncementFrom" + from + ".do?id=" + a.getId() + "&dispatch=load"); |
searchResults.addResult(defaultResult); |
} |
} |
98,7 → 98,7 |
List<Announcement> invalidAnnouncements = DaoFactory.getAnnouncementDaoImpl().loadInvalidAnnouncements(); |
for(Announcement a: invalidAnnouncements) |
{ |
DefaultToDo defaultToDo = new DefaultToDo(a.getTitle(),a.getTargetRoles(),((UserImpl)a.getOwner()).getUsername(), "announcements.type." + a.getType(),"/user/startEditAnnouncementFromServiceZone.do?id=" + a.getId()); |
DefaultToDo defaultToDo = new DefaultToDo(a.getTitle(),a.getTargetRoles(),((UserImpl)a.getOwner()).getUsername(), "announcements.type." + a.getType(),"/user/startEditAnnouncementFromHome.do?id=" + a.getId()); |
todos.add(defaultToDo); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java |
---|
56,6 → 56,6 |
public boolean isInternal() |
{ |
return true; //To change body of implemented methods use File | Settings | File Templates. |
return true; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/BlogPostDaoImpl.java |
---|
2,14 → 2,21 |
import pt.estgp.estgweb.domain.BlogImpl; |
import pt.estgp.estgweb.domain.BlogPostImpl; |
import pt.estgp.estgweb.domain.Blog; |
import pt.estgp.estgweb.domain.BlogPost; |
import pt.estgp.estgweb.domain.dao.DaoUtils; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import java.util.List; |
import java.util.Calendar; |
import java.util.Iterator; |
import java.util.ArrayList; |
import static org.hibernate.criterion.Restrictions.*; |
import org.hibernate.criterion.Order; |
import org.hibernate.criterion.Criterion; |
import org.hibernate.Query; |
import org.hibernate.Criteria; |
import jomm.utils.MyCalendar; |
/** |
76,4 → 83,61 |
List<Object[]> l = q.list(); |
return l; |
} |
public List<BlogPost> loadInvalidBlogPostsFromOwnedBlogs(long ownerId) |
{ |
return createQuery("select c from c in class " + getReferenceClass().getName() + |
" where c.blog.owner.id = " + ownerId + |
" and c.status = false"+ |
" order by c.updateDate") |
.list(); |
} |
private Criteria createRestrictionsCriteria(List<String> roles, boolean internal) |
{ |
if (roles == null) |
{ |
roles = new ArrayList<String>(); |
} |
roles.add("all"); |
Criteria criteria = createCriteria(); |
criteria.createAlias("blog", "b"); |
Criterion coRole = null; |
for (String role : roles) |
{ |
Criterion cor = like("b.targetRoles", "%" + role + "%"); |
if (coRole == null) |
coRole = cor; |
else |
coRole = or(coRole, cor); |
} |
if (!internal) |
criteria.add(eq("b.internal", false)); |
criteria.add(coRole) |
.add(eq("b.status", true)) |
.add(eq("status", true)) |
.addOrder(Order.desc("saveDate")); |
return criteria; |
} |
public int countBlogPosts(String query, SearchTypeEnum searchType, List<String> roles, Object o, boolean internal) |
{ |
Criterion c = DaoUtils.createSearchQuery(query,searchType,"text","title"); |
Criteria criteria = createRestrictionsCriteria(roles, internal); |
criteria.add(c); |
return criteria.list().size(); |
} |
public List<BlogPost> searchBlogPosts(String query, SearchTypeEnum searchTypeEnum, int maxBlogs, int page, List<String> roles, boolean internal) |
{ |
Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "text", "title"); |
Criteria criteria = createRestrictionsCriteria(roles, internal); |
criteria.add(c) |
.setMaxResults(maxBlogs) |
.setFirstResult(page * maxBlogs); |
return criteria.list(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDaoImpl.java |
---|
1,6 → 1,7 |
package pt.estgp.estgweb.domain.dao.impl; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoUtils; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
170,7 → 171,6 |
public List<Announcement> searchAnnouncements(String query, SearchTypeEnum searchTypeEnum, int maxAnnouncements, int page, List<String> roles, String subTarget, boolean internal) |
{ |
Criterion c = createSearchQuery(query, searchTypeEnum); |
Criteria criteria = createMaxAnnouncementsPageRolesTypeCriteria(page, maxAnnouncements, roles, null, null, internal); |
criteria.add(c); |
188,33 → 188,7 |
public Criterion createSearchQuery(String query, SearchTypeEnum searchTypeEnum) |
{ |
Criterion c = null; |
if (searchTypeEnum == SearchTypeEnum.ExactPhrase) |
c = or(like("text", "%" + query + "%"), like("title", "%" + query + "%")); |
else if (searchTypeEnum == SearchTypeEnum.AllWords) |
{ |
String[] fields = query.split(" "); |
for (String field : fields) |
{ |
if (c == null) |
c = or(like("text", "%" + field + "%"), like("title", "%" + field + "%")); |
else |
c = and(c, or(like("text", "%" + field + "%"), like("title", "%" + field + "%"))); |
} |
} |
else |
{ |
String[] fields = query.split(" "); |
for (String field : fields) |
{ |
if (c == null) |
c = or(like("text", "%" + field + "%"), like("title", "%" + field + "%")); |
else |
c = or(c, or(like("text", "%" + field + "%"), like("title", "%" + field + "%"))); |
} |
} |
return c; |
return DaoUtils.createSearchQuery(query,searchTypeEnum,"text","title"); |
} |
public List<AnnouncementImpl> loadOwnedAnnouncements(long ownerId) |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitAssignementDaoImpl.java |
---|
New file |
0,0 → 1,29 |
package pt.estgp.estgweb.domain.dao.impl; |
import static org.hibernate.criterion.Restrictions.*; |
import org.hibernate.Query; |
/** |
* @author Jorge Machado |
* @date 28/Fev/2008 |
* @time 2:51:06 |
* @see pt.estgp.estgweb.domain.dao.impl |
*/ |
public class CourseUnitAssignementDaoImpl extends CourseUnitAssignementDao |
{ |
private CourseUnitAssignementDaoImpl() |
{ |
} |
public static CourseUnitAssignementDaoImpl getInstance() |
{ |
if (myInstance == null) |
myInstance = new CourseUnitAssignementDaoImpl(); |
return (CourseUnitAssignementDaoImpl) myInstance; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDeliverableDaoImpl.java |
---|
New file |
0,0 → 1,34 |
package pt.estgp.estgweb.domain.dao.impl; |
import org.hibernate.Query; |
/** |
* @author Jorge Machado |
* @date 28/Fev/2008 |
* @time 2:51:06 |
* @see pt.estgp.estgweb.domain.dao.impl |
*/ |
public class CourseUnitDeliverableDaoImpl extends CourseUnitDeliverableDao |
{ |
private CourseUnitDeliverableDaoImpl() |
{ |
} |
public static CourseUnitDeliverableDaoImpl getInstance() |
{ |
if (myInstance == null) |
myInstance = new CourseUnitDeliverableDaoImpl(); |
return (CourseUnitDeliverableDaoImpl) myInstance; |
} |
public long countAssignements(long courseUnitAssignementId) |
{ |
Query q = createQuery("select count(c) from c in class " + getReferenceClass().getName() + " where c.courseUnitAssignement.id = " + courseUnitAssignementId); |
return (Long) q.iterate().next(); |
// return createCriteria().add(eq("courseUnitAssignement.id",courseUnitAssignementId)).list().size(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java |
---|
1,7 → 1,15 |
package pt.estgp.estgweb.domain.dao.impl; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.Blog; |
import pt.estgp.estgweb.domain.TeacherImpl; |
import pt.estgp.estgweb.domain.dao.DaoUtils; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import pt.estgp.estgweb.utils.DatesUtils; |
import static org.hibernate.criterion.Restrictions.*; |
import org.hibernate.criterion.Criterion; |
import org.hibernate.criterion.Order; |
import org.hibernate.Criteria; |
import java.util.List; |
import java.util.Set; |
48,7 → 56,58 |
} |
public int countCourseUnits(String query, SearchTypeEnum searchType) |
{ |
Criterion c = DaoUtils.createSearchQuery(query,searchType,"objectives","name"); |
return createCriteria().add(c).list().size(); |
} |
public List<CourseUnit> search(String query, SearchTypeEnum searchTypeEnum, int maxUnits, int page) |
{ |
Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "objectives", "name"); |
Criteria criteria = createCriteria(); |
criteria.add(c) |
.addOrder(Order.asc("name")) |
.setMaxResults(maxUnits) |
.setFirstResult(page * maxUnits); |
return criteria.list(); |
} |
public int countCourseUnitsActualYear(String query, SearchTypeEnum searchType) |
{ |
Criterion c = DaoUtils.createSearchQuery(query,searchType,"objectives","name"); |
return createCriteria() |
.add(c) |
.add(eq("importYear", DatesUtils.getImportYear())) |
.list().size(); |
} |
public List<CourseUnit> searchActualYear(String query, SearchTypeEnum searchTypeEnum, int maxUnits, int page) |
{ |
Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "objectives", "name"); |
Criteria criteria = createCriteria(); |
criteria.add(c) |
.add(eq("importYear", DatesUtils.getImportYear())) |
.addOrder(Order.asc("name")) |
.setMaxResults(maxUnits) |
.setFirstResult(page * maxUnits); |
return criteria.list(); |
} |
public List<CourseUnit> loadMissingObjectives(long teacherId) |
{ |
//todo falta a projeccao do teacher id |
return createCriteria() |
.add(eq("importYear", DatesUtils.getImportYear())) |
.add((or(isNull("objectives"),eq("objectives","")))) |
.createAlias("teachers", "th") |
.add(eq("th.id",teacherId)) |
.list(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/BlogDaoImpl.java |
---|
3,6 → 3,9 |
import pt.estgp.estgweb.domain.User; |
import pt.estgp.estgweb.domain.BlogImpl; |
import pt.estgp.estgweb.domain.Blog; |
import pt.estgp.estgweb.domain.Announcement; |
import pt.estgp.estgweb.domain.dao.DaoUtils; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import java.util.List; |
import java.util.Date; |
45,8 → 48,8 |
if (roles == null) |
{ |
roles = new ArrayList<String>(); |
roles.add("all"); |
} |
roles.add("all"); |
Criteria criteria = createCriteria(); |
Criterion co = null; |
for (String role : roles) |
70,4 → 73,58 |
{ |
return createCriteria().add(eq("name", name)).list(); |
} |
public List<Blog> loadInvalidBlogs() |
{ |
return createCriteria() |
.add(eq("status",false)) |
.addOrder(Order.asc("id")).list(); |
} |
private Criteria createRestrictionsCriteria(List<String> roles, boolean internal) |
{ |
if (roles == null) |
{ |
roles = new ArrayList<String>(); |
} |
roles.add("all"); |
Criteria criteria = createCriteria(); |
Criterion coRole = null; |
for (String role : roles) |
{ |
Criterion cor = like("targetRoles", "%" + role + "%"); |
if (coRole == null) |
coRole = cor; |
else |
coRole = or(coRole, cor); |
} |
if (!internal) |
criteria.add(eq("internal", false)); |
criteria.add(coRole) |
.add(eq("status", true)) |
.addOrder(Order.desc("saveDate")); |
return criteria; |
} |
public int countBlogs(String query, SearchTypeEnum searchType, List<String> roles, Object o, boolean internal) |
{ |
Criterion c = DaoUtils.createSearchQuery(query,searchType,"description","title"); |
Criteria criteria = createRestrictionsCriteria(roles, internal); |
criteria.add(c); |
return criteria.list().size(); |
} |
public List<Blog> searchBlogs(String query, SearchTypeEnum searchTypeEnum, int maxBlogs, int page, List<String> roles, boolean internal) |
{ |
Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "description", "title"); |
Criteria criteria = createRestrictionsCriteria(roles, internal); |
criteria.add(c) |
.setMaxResults(maxBlogs) |
.setFirstResult(page * maxBlogs); |
return criteria.list(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/StudentDaoImpl.java |
---|
27,4 → 27,9 |
{ |
return (Student) createCriteria().add(eq("sigesCode",sigesCode)).uniqueResult(); |
} |
public Student loadBySigesCode(String sigesCode) |
{ |
return (Student) createCriteria().add(eq("sigesCode",sigesCode)).uniqueResult(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitQuestionDaoImpl.java |
---|
New file |
0,0 → 1,50 |
package pt.estgp.estgweb.domain.dao.impl; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.CourseUnitQuestion; |
import pt.estgp.estgweb.domain.dao.DaoUtils; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import pt.estgp.estgweb.utils.DatesUtils; |
import java.util.List; |
import org.hibernate.criterion.Criterion; |
import org.hibernate.criterion.Order; |
import org.hibernate.criterion.Restrictions; |
import org.hibernate.Criteria; |
import static org.hibernate.criterion.Restrictions.*; |
/** |
* @author Jorge Machado |
* @date 28/Fev/2008 |
* @time 2:51:06 |
* @see pt.estgp.estgweb.domain.dao.impl |
*/ |
public class CourseUnitQuestionDaoImpl extends CourseUnitQuestionDao |
{ |
private CourseUnitQuestionDaoImpl() |
{ |
} |
public static CourseUnitQuestionDaoImpl getInstance() |
{ |
if (myInstance == null) |
myInstance = new CourseUnitQuestionDaoImpl(); |
return (CourseUnitQuestionDaoImpl) myInstance; |
} |
public List<CourseUnitQuestion> loadMissingQuestions(long teacherId) |
{ |
//todo falta meter a projeccao para o teacherId |
return createCriteria() |
.createAlias("courseUnit","cu") |
.createAlias("cu.teachers","th") |
.add(eq("cu.importYear", DatesUtils.getImportYear())) |
.add(eq("answred",false)) |
.add(eq("th.id",teacherId)) |
.list(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/DaoUtils.java |
---|
New file |
0,0 → 1,46 |
package pt.estgp.estgweb.domain.dao; |
import org.hibernate.criterion.Criterion; |
import static org.hibernate.criterion.Restrictions.or; |
import static org.hibernate.criterion.Restrictions.like; |
import static org.hibernate.criterion.Restrictions.and; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
/** |
* @author Jorge Machado |
* @date 6/Jun/2008 |
* @see pt.estgp.estgweb.domain.dao |
*/ |
public class DaoUtils |
{ |
public static Criterion createSearchQuery(String query, SearchTypeEnum searchTypeEnum, String field1, String field2) |
{ |
Criterion c = null; |
if (searchTypeEnum == SearchTypeEnum.ExactPhrase) |
c = or(like(field1, "%" + query + "%"), like(field2, "%" + query + "%")); |
else if (searchTypeEnum == SearchTypeEnum.AllWords) |
{ |
String[] fields = query.split(" "); |
for (String field : fields) |
{ |
if (c == null) |
c = or(like(field1, "%" + field + "%"), like(field2, "%" + field + "%")); |
else |
c = and(c, or(like(field1, "%" + field + "%"), like(field2, "%" + field + "%"))); |
} |
} |
else |
{ |
String[] fields = query.split(" "); |
for (String field : fields) |
{ |
if (c == null) |
c = or(like(field1, "%" + field + "%"), like(field2, "%" + field + "%")); |
else |
c = or(c, or(like(field1, "%" + field + "%"), like(field2, "%" + field + "%"))); |
} |
} |
return c; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/DaoFactory.java |
---|
25,6 → 25,10 |
{ |
return CourseDaoImpl.getInstance(); |
} |
public static CourseUnitQuestionDaoImpl getCourseUnitQuestionDaoImpl() |
{ |
return CourseUnitQuestionDaoImpl.getInstance(); |
} |
public static CourseUserAssociationDaoImpl getCourseUserAssociationDaoImpl() |
{ |
86,11 → 90,23 |
return BlogPostDaoImpl.getInstance(); |
} |
public static CourseUnitDeliverableDaoImpl getCourseUnitDeliverableDaoImpl() |
{ |
return CourseUnitDeliverableDaoImpl.getInstance(); |
} |
public static CourseUnitAssignementDaoImpl getCourseUnitAssignementDaoImpl() |
{ |
return CourseUnitAssignementDaoImpl.getInstance(); |
} |
public static CourseUnitDaoImpl getCourseUnitDaoImpl() |
{ |
return CourseUnitDaoImpl.getInstance(); |
} |
public static CourseUnitBlogDaoImpl getCourseUnitBlogDaoImpl() |
{ |
return CourseUnitBlogDaoImpl.getInstance(); |
/impl/src/java/pt/estgp/estgweb/domain/BlogImpl.java |
---|
1,6 → 1,7 |
package pt.estgp.estgweb.domain; |
import pt.estgp.estgweb.utils.RoleManager; |
import pt.estgp.estgweb.Globals; |
import java.util.Date; |
import java.util.List; |
27,7 → 28,7 |
public boolean canAddPost(GenericUserImpl user) |
{ |
return user.hasRole(getTargetRolesList()) || user.isSuperuserOrAdmin() || isOwnedBy(user); |
return RoleManager.hasRole(getTargetRolesList(), Globals.ALL_ROLE) || user.hasRole(getTargetRolesList()) || user.isSuperuserOrAdmin() || isOwnedBy(user); |
} |
public boolean canAddContent(GenericUserImpl u) |
74,11 → 75,11 |
public boolean canLoad(GenericUserImpl u) |
{ |
return true; |
return isStatus() || isOwnedBy(u) || u.isSuperuserOrAdmin(); |
} |
public boolean canLoadInOpenTransaction(GenericUserImpl u) |
{ |
return true; |
return canLoad(u); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/BlogPostImpl.java |
---|
45,11 → 45,16 |
public boolean canLoad(GenericUserImpl u) |
{ |
return true; |
return isStatus() || isOwnedBy(u) || u.isSuperuserOrAdmin(); |
} |
public boolean canLoadInOpenTransaction(GenericUserImpl u) |
{ |
return true; |
return canLoad(u); |
} |
public boolean isOwnedBy(GenericUser u) |
{ |
return super.isOwnedBy(u) || getBlog().isOwnedBy(u); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/views/BlogPostView.java |
---|
139,6 → 139,11 |
return status; |
} |
public boolean getStatus() |
{ |
return status; |
} |
public void setStatus(boolean status) |
{ |
this.status = status; |
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitAssignementView.java |
---|
New file |
0,0 → 1,155 |
package pt.estgp.estgweb.domain.views; |
import pt.estgp.estgweb.domain.CourseUnitAssignement; |
import pt.estgp.estgweb.domain.CourseUnitAssignementImpl; |
import pt.estgp.estgweb.web.utils.DatesUtils; |
import java.io.Serializable; |
/** |
* @author Jorge Machado |
* @date 2/Mar/2008 |
* @time 19:34:49 |
* @see pt.estgp.estgweb.domain.views |
*/ |
public class CourseUnitAssignementView extends DomainObjectView |
{ |
private long id; |
private String title; |
private String description; |
private long delivers; |
private boolean status; |
private String deliverType; |
private boolean lateDelivers; |
private String deliverDate; |
private CourseUnitAssignement courseUnitAssignement; |
public Class getReferenceClass() |
{ |
return CourseUnitAssignementImpl.class; |
} |
public Serializable getSerializable() |
{ |
return id; |
} |
public CourseUnitAssignementView() |
{ |
} |
public CourseUnitAssignementView(CourseUnitAssignement courseUnitAssignement, long delivers) |
{ |
super(courseUnitAssignement); |
this.courseUnitAssignement = courseUnitAssignement; |
this.title = courseUnitAssignement.getTitle(); |
this.description = courseUnitAssignement.getDescription(); |
this.status = courseUnitAssignement.isStatus(); |
this.delivers = delivers; |
this.deliverType = courseUnitAssignement.getDeliverType(); |
this.deliverDate = DatesUtils.getStringFromDate(courseUnitAssignement.getDeliverDate()); |
this.lateDelivers = courseUnitAssignement.isLateDelivers(); |
} |
public void persistViewInObject(CourseUnitAssignement c) |
{ |
c.setTitle(title); |
c.setDescription(description); |
c.setStatus(status); |
c.setLateDelivers(lateDelivers); |
c.setDeliverDate(DatesUtils.getDateFromString(deliverDate)); |
c.setDeliverType(deliverType); |
} |
public long getId() |
{ |
return id; |
} |
public void setId(long id) |
{ |
this.id = id; |
} |
public CourseUnitAssignement getCourseUnitAssignement() |
{ |
return courseUnitAssignement; |
} |
public void setCourseUnitAssignement(CourseUnitAssignement courseUnitAssignement) |
{ |
this.courseUnitAssignement = courseUnitAssignement; |
} |
public boolean isStatus() |
{ |
return status; |
} |
public void setStatus(boolean status) |
{ |
this.status = status; |
} |
public long getDelivers() |
{ |
return delivers; |
} |
public void setDelivers(int delivers) |
{ |
this.delivers = delivers; |
} |
public String getDescription() |
{ |
return description; |
} |
public void setDescription(String description) |
{ |
this.description = description; |
} |
public String getTitle() |
{ |
return title; |
} |
public void setTitle(String title) |
{ |
this.title = title; |
} |
public String getDeliverType() |
{ |
return deliverType; |
} |
public void setDeliverType(String deliverType) |
{ |
this.deliverType = deliverType; |
} |
public boolean isLateDelivers() |
{ |
return lateDelivers; |
} |
public void setLateDelivers(boolean lateDelivers) |
{ |
this.lateDelivers = lateDelivers; |
} |
public String getDeliverDate() |
{ |
return deliverDate; |
} |
public void setDeliverDate(String deliverDate) |
{ |
this.deliverDate = deliverDate; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/views/UserView.java |
---|
1,10 → 1,7 |
package pt.estgp.estgweb.domain.views; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.GenericUser; |
import pt.estgp.estgweb.domain.IOwned; |
import pt.estgp.estgweb.domain.User; |
import pt.estgp.estgweb.domain.UserImpl; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.utils.RoleManager; |
import java.io.Serializable; |
27,6 → 24,7 |
private long id; |
private int code; |
private String name; |
private List<String> userRoles; |
private String address; |
76,6 → 74,14 |
this.skype=user.getSkype(); |
this.gmail=user.getGmail(); |
this.msn=user.getMsn(); |
if(user instanceof Teacher) |
{ |
code = ((Teacher)user).getSigesCode(); |
} |
else if(user instanceof Student) |
{ |
code = ((Student)user).getSigesCode(); |
} |
} |
public void persistViewInObjectAdmin(User user) |
102,6 → 108,14 |
{ |
user.setPassword(BytesUtils.getDigestMD5Hex(password)); |
} |
if(user instanceof Teacher) |
{ |
((Teacher)user).setSigesCode(code); |
} |
else if(user instanceof Student) |
{ |
((Student)user).setSigesCode(code); |
} |
} |
public void persistViewInObjectUser(User user) |
135,6 → 149,16 |
} |
public int getCode() |
{ |
return code; |
} |
public void setCode(int code) |
{ |
this.code = code; |
} |
public boolean isPasswordLocal() |
{ |
return passwordLocal; |
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitView.java |
---|
6,6 → 6,8 |
import java.io.Serializable; |
import java.util.Set; |
import java.util.List; |
import java.util.ArrayList; |
import java.util.HashSet; |
/** |
* @author Jorge Machado |
22,15 → 24,19 |
private String code; |
private String courseCode; |
private String courseName; |
private String semestre; |
private String importYear; |
private BlogView blog; |
private Set<CourseUnitAnnouncement> announcements; |
private CourseUnit courseUnit; |
private Set<TeacherImpl> teachers; |
private Set<StudentImpl> students; |
private Set<UserView> teachers; |
private Set<UserView> students; |
private String objectives; |
private String programStreamId; |
private int programSize; |
private String extension; |
private Set<CourseUnitAssignementView> courseUnitAssignements; |
public Class getReferenceClass() |
{ |
45,25 → 51,74 |
public CourseUnitView() |
{ |
} |
public CourseUnitView(CourseUnit courseUnit, boolean initTeachers, boolean initStudents ) |
{ |
super(courseUnit); |
init(courseUnit, initTeachers, initStudents); |
} |
public CourseUnitView(CourseUnit courseUnit) |
{ |
super(courseUnit); |
init(courseUnit, false,false); |
} |
private void init(CourseUnit courseUnit, boolean initTeachers, boolean initStudents) |
{ |
this.courseUnit = courseUnit; |
this.courseName = courseUnit.getCourseName(); |
this.name = courseUnit.getName(); |
this.code = courseUnit.getCode(); |
this.importYear = courseUnit.getImportYear(); |
this.semestre = courseUnit.getSemestre(); |
this.importYear = courseUnit.getImportYear(); |
this.courseCode = courseUnit.getCourseCode(); |
// if(courseUnit.getBlog() != null) |
// this.blog = new BlogView(courseUnit.getBlog()); |
this.id = courseUnit.getId(); |
this.students = courseUnit.getStudents(); |
this.teachers = courseUnit.getTeachers(); |
this.announcements = courseUnit.getAnnouncements(); |
this.objectives = courseUnit.getObjectives(); |
this.programStreamId = courseUnit.getProgramStreamId(); |
teachers = new HashSet<UserView>(); |
students = new HashSet<UserView>(); |
if(initTeachers && courseUnit.getTeachers() != null) |
{ |
for(TeacherImpl t: courseUnit.getTeachers()) |
{ |
UserView u = new UserView(t); |
teachers.add(u); |
} |
} |
if(initStudents && courseUnit.getStudents() != null) |
{ |
for(StudentImpl s: courseUnit.getStudents()) |
{ |
UserView u = new UserView(s); |
students.add(u); |
} |
} |
} |
public int getTeachersSize() |
{ |
if(teachers != null) |
return teachers.size(); |
return 0; |
} |
public int getStudentsSize() |
{ |
if(students != null) |
return students.size(); |
return 0; |
} |
public void setCourseUnitAssignements(Set<CourseUnitAssignementView> courseUnitAssignements) |
{ |
this.courseUnitAssignements = courseUnitAssignements; |
} |
public Set<CourseUnitAssignementView> getCourseUnitAssignements() |
{ |
return courseUnitAssignements; |
} |
public void setId(long id) |
{ |
this.id = id; |
94,6 → 149,14 |
c.setObjectives(objectives); |
} |
public void persistViewAdminInObject(CourseUnit c) |
{ |
c.setImportYear(importYear); |
c.setName(name); |
c.setCode(code); |
c.setSemestre(semestre); |
} |
public String getObjectives() |
{ |
return objectives; |
129,6 → 192,26 |
return code; |
} |
public String getSemestre() |
{ |
return semestre; |
} |
public void setSemestre(String semestre) |
{ |
this.semestre = semestre; |
} |
public String getImportYear() |
{ |
return importYear; |
} |
public void setImportYear(String importYear) |
{ |
this.importYear = importYear; |
} |
public String getCourseCode() |
{ |
return courseCode; |
171,12 → 254,12 |
return announcements; |
} |
public Set<TeacherImpl> getTeachers() |
public Set<UserView> getTeachers() |
{ |
return teachers; |
} |
public Set<StudentImpl> getStudents() |
public Set<UserView> getStudents() |
{ |
return students; |
} |
204,7 → 287,7 |
{ |
return null; |
} |
/** |
* Not implemented |
* @return |
223,4 → 306,7 |
{ |
return true; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/views/BlogView.java |
---|
34,6 → 34,7 |
private List<MonthPosts> months; |
private int month; |
private int year; |
boolean autoValidation; |
private List<BlogPostView> lastPosts; |
53,6 → 54,8 |
this.id = blog.getId(); |
this.owner = blog.getOwner(); |
this.name = blog.getName(); |
this.internal = blog.isInternal(); |
autoValidation = blog.isAutoValidation(); |
} |
public void persistViewInObject(Blog blog) |
63,11 → 66,26 |
blog.setTargetRoles(RoleManager.getSerialRoles(targetRoles)); |
if(image != null) |
blog.setImage(image); |
blog.setStatus(status); |
blog.setInternal(internal); |
blog.setAutoValidation(autoValidation); |
} |
public void persistViewInObjectByAdmin(Blog blog) |
{ |
persistViewInObject(blog); |
blog.setStatus(status); |
} |
public boolean isAutoValidation() |
{ |
return autoValidation; |
} |
public void setAutoValidation(boolean autoValidation) |
{ |
this.autoValidation = autoValidation; |
} |
public String getName() |
{ |
return name; |
/impl/src/java/pt/estgp/estgweb/filters/filters/OwnerUsersClassBean.java |
---|
New file |
0,0 → 1,47 |
package pt.estgp.estgweb.filters.filters; |
import pt.estgp.estgweb.filters.chains.LoadControlFilter; |
import pt.estgp.estgweb.filters.exceptions.NeedAuthenticationException; |
import pt.estgp.estgweb.filters.exceptions.AccessDeniedOperationException; |
import pt.estgp.estgweb.filters.filters.utils.LoadObjectFromParameters; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.IOwned; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.utils.ReflectionBean; |
import pt.utl.ist.berserk.ServiceRequest; |
import pt.utl.ist.berserk.ServiceResponse; |
import pt.utl.ist.berserk.logic.filterManager.FilterParameters; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterException; |
import org.apache.log4j.Logger; |
public class OwnerUsersClassBean extends LoadControlFilter |
{ |
private static final Logger logger = Logger.getLogger(OwnerUsersClassBean.class); |
public void execute(ServiceRequest request, ServiceResponse response, FilterParameters filterParameters) throws FilterException, Exception |
{ |
UserSession userSession = (UserSession) request.getServiceParameters().getParameter(Globals.USER_SESSION_KEY); |
if(userSession.getUser() == null) |
{ |
logger.info("try access restricted area:" + request.getRequester()); |
throw new NeedAuthenticationException(); |
} |
if(userSession.getUser().isSuperuser()) |
return; |
Object bean = LoadObjectFromParameters.loadObjectFromClassName((String) filterParameters.getParameter(1),filterParameters,request.getServiceParameters()); |
ReflectionBean rbean = new ReflectionBean("o."+(String) filterParameters.getParameter(2)); |
IOwned iOwned = (IOwned) rbean.invoke(bean); |
if(!iOwned.isOwnedBy(userSession.getUser())) |
{ |
logger.warn(userSession.getUser().getUsername() + ": try access restricted area"); |
throw new AccessDeniedOperationException("fail.owner"); |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/tags/CantManageTag.java |
---|
6,12 → 6,14 |
import javax.servlet.jsp.tagext.BodyTagSupport; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.JspWriter; |
import javax.servlet.http.HttpServletRequest; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.domain.IOwned; |
import pt.estgp.estgweb.domain.IInternal; |
import pt.estgp.estgweb.domain.IValid; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.web.UserSessionProxy; |
public class CantManageTag extends BodyTagSupport |
{ |
68,7 → 70,7 |
public boolean go() throws JspException |
{ |
UserSessionImpl userSession = (UserSessionImpl) pageContext.getRequest().getAttribute(Globals.USER_SESSION_KEY); |
UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSessionFromRequest((HttpServletRequest) pageContext.getRequest()); |
IOwned owned = (IOwned) RequestUtils.lookup(pageContext, name, property, null); |
/impl/src/java/pt/estgp/estgweb/web/form/courseunits/CourseUnitsForm.java |
---|
4,8 → 4,23 |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.upload.FormFile; |
import pt.estgp.estgweb.web.form.AddRolesForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView; |
import pt.estgp.estgweb.domain.views.UserView; |
import pt.estgp.estgweb.domain.TeacherImpl; |
import pt.estgp.estgweb.domain.Teacher; |
import pt.estgp.estgweb.utils.DatesUtils; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.*; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import java.util.List; |
/** |
* @author Jorge Machado |
* @date 2/Jun/2008 |
17,10 → 32,25 |
private static final Logger logger = Logger.getLogger(CourseUnitsForm.class); |
CourseUnitView courseUnitView = new CourseUnitView(); |
//aux |
long courseId; |
long id; |
long teacherId; |
int studentCode; |
//courseunit |
FormFile programFile; |
CourseUnitAssignementView courseUnitAssignementView = new CourseUnitAssignementView(); |
//search |
String textToSearch; |
String searchType = SearchTypeEnum.AllWords.getMessageKey(); |
int page; |
//lists |
List<UserView> teachers = null; |
public CourseUnitView getCourseUnitView() |
{ |
return courseUnitView; |
41,6 → 71,125 |
this.programFile = programFile; |
} |
public List<String> getImportYears() |
{ |
return DatesUtils.getImportYears(5); |
} |
public CourseUnitAssignementView getCourseUnitAssignementView() |
{ |
return courseUnitAssignementView; |
} |
public void setCourseUnitAssignementView(CourseUnitAssignementView courseUnitAssignementView) |
{ |
this.courseUnitAssignementView = courseUnitAssignementView; |
} |
public long getId() |
{ |
return id; |
} |
public void setId(long id) |
{ |
this.id = id; |
} |
public long getTeacherId() |
{ |
return teacherId; |
} |
public void setTeacherId(long teacherId) |
{ |
this.teacherId = teacherId; |
} |
public int getStudentCode() |
{ |
return studentCode; |
} |
public void setStudentCode(int studentCode) |
{ |
this.studentCode = studentCode; |
} |
public String getTextToSearch() |
{ |
return textToSearch; |
} |
public void setTextToSearch(String textToSearch) |
{ |
this.textToSearch = textToSearch; |
} |
public String getSearchType() |
{ |
return searchType; |
} |
public void setSearchType(String searchType) |
{ |
this.searchType = searchType; |
} |
public SearchTypeEnum getSearchTypeEnum() |
{ |
return SearchTypeEnum.parse(searchType); |
} |
public void setSearchTypeEnum(SearchTypeEnum searchTypeEnum) |
{ |
searchType = searchTypeEnum.getMessageKey(); |
} |
public int getPage() |
{ |
return page; |
} |
public void setPage(int page) |
{ |
this.page = page; |
} |
public void initTeachers(HttpServletRequest request, HttpServletResponse response) |
{ |
if(teachers == null) |
{ |
IServiceManager sm = null; |
try |
{ |
sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{Teacher.class}; |
teachers = (List<UserView>) sm.execute(RequestUtils.getRequester(request, response), "LoadUsers", args, names); |
} |
catch (Throwable e) |
{ |
logger.error(e,e); |
} |
} |
} |
public List<UserView> getTeachers() |
{ |
return teachers; |
} |
public void setTeachers(List<UserView> teachers) |
{ |
this.teachers = teachers; |
} |
public ActionErrors validate(org.apache.struts.action.ActionMapping actionMapping, javax.servlet.http.HttpServletRequest httpServletRequest) |
{ |
ActionErrors errors = new ActionErrors(); |
/impl/src/java/pt/estgp/estgweb/web/UserSessionProxy.java |
---|
8,6 → 8,7 |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import javax.servlet.ServletRequest; |
/** |
* @author Jorge Machado |
64,8 → 65,10 |
} |
} |
public static UserSession loadUserSessionFromRequest(HttpServletRequest request) throws Throwable |
public static UserSession loadUserSessionFromRequest(HttpServletRequest request) |
{ |
return (UserSession) request.getAttribute(Globals.USER_SESSION_KEY); |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsAdminController.java |
---|
New file |
0,0 → 1,300 |
package pt.estgp.estgweb.web.controllers.courseunits; |
import org.apache.log4j.Logger; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.filters.exceptions.NotFoundException; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
/** |
* @author Jorge Machado |
* @author Fabio Velez |
* @date 26/Fev/2008 |
* @time 18:01:54 |
* @see pt.estgp.estgweb.web |
*/ |
public class CourseUnitsAdminController extends CourseUnitsController |
{ |
private static final Logger logger = Logger.getLogger(CourseUnitsAdminController.class); |
public ActionForward createOrUpdateAdmin(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{cUF.getCourseUnitView()}; |
long id = cUF.getCourseUnitView().getId(); |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "CreateCourseUnitAdmin", args, names); |
request.setAttribute("CourseUnitView",cV); |
cUF.setCourseUnitView(cV); |
if(id > 0) |
addMessage(request,"courseunit.updated.success","" + cV.getCode()); |
else |
addMessage(request,"courseunit.created.success","" + cV.getCode()); |
return mapping.getInputForward(); |
} |
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 edit(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{cUF.getId(),true,true}; |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnit", args, names); |
request.setAttribute("CourseUnitView",cV); |
cUF.setCourseUnitView(cV); |
cUF.initTeachers(request,response); |
return mapping.findForward("edit"); |
} |
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 addTeacher(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
long teacherId = cUF.getTeacherId(); |
long courseUnitId = cUF.getCourseUnitView().getId(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{teacherId,courseUnitId}; |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "AddTeacherCourseUnit", args, names); |
request.setAttribute("CourseUnitView",cV); |
cUF.setCourseUnitView(cV); |
cUF.initTeachers(request,response); |
return mapping.findForward("edit"); |
} |
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 addStudent(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
int studentCode = cUF.getStudentCode(); |
long courseUnitId = cUF.getCourseUnitView().getId(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{studentCode,courseUnitId}; |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "AddStudentCourseUnit", args, names); |
request.setAttribute("CourseUnitView",cV); |
cUF.setCourseUnitView(cV); |
cUF.initTeachers(request,response); |
return mapping.findForward("edit"); |
} |
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 removeTeacher(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
long teacherId = cUF.getId(); //can't come in SELECT BOX because is for choose |
long courseUnitId = cUF.getCourseUnitView().getId(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{teacherId,courseUnitId}; |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "RemoveTeacherCourseUnit", args, names); |
request.setAttribute("CourseUnitView",cV); |
cUF.setCourseUnitView(cV); |
cUF.initTeachers(request,response); |
return mapping.findForward("edit"); |
} |
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 removeStudent(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
int studentCode = (int) cUF.getId(); //can't come in SELECT BOX because is for choose |
long courseUnitId = cUF.getCourseUnitView().getId(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{studentCode,courseUnitId}; |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "RemoveStudentCourseUnit", args, names); |
request.setAttribute("CourseUnitView",cV); |
cUF.setCourseUnitView(cV); |
cUF.initTeachers(request,response); |
return mapping.findForward("edit"); |
} |
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 newAdmin(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
CourseUnitView cV = new CourseUnitView(); |
request.setAttribute("CourseUnitView",cV); |
cUF.setCourseUnitView(cV); |
cUF.initTeachers(request,response); |
return mapping.findForward("load"); |
} |
public ActionForward search(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{"ServiceZone",cUF.getTextToSearch(),cUF.getSearchTypeEnum(),cUF.getPage(), Globals.SEARCH_MAX_RESULTS}; |
ISearchResults results = (ISearchResults) sm.execute(RequestUtils.getRequester(request, response), "SearchCourseUnit", args, names); |
request.setAttribute("ISearchResults",results); |
return mapping.findForward("search"); |
} |
catch (FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
} |
catch (NotFoundException e) |
{ |
return mapping.findForward("error404"); |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
return mapping.findForward("error500"); |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsController.java |
---|
1,44 → 1,30 |
package pt.estgp.estgweb.web.controllers.courseunits; |
import pt.estgp.estgweb.web.controllers.AddRolesController; |
import org.apache.log4j.Logger; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import org.hibernate.ObjectNotFoundException; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.filters.exceptions.NotFoundException; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.controllers.announcements.AnnouncementsController; |
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm; |
import pt.estgp.estgweb.web.exceptions.NoCookiesException; |
import pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm; |
import pt.estgp.estgweb.web.utils.DomainUtils; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.web.utils.DatesUtils; |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.exceptions.NoCookiesException; |
import pt.estgp.estgweb.domain.Image; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.domain.views.AnnouncementView; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.filters.exceptions.NotFoundException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterRetrieveException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.IncompatibleFilterException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.InvalidFilterException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.InvalidFilterExpressionException; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ExecutedFilterException; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ExecutedFilterException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.InvalidFilterException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.InvalidFilterExpressionException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.IncompatibleFilterException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterRetrieveException; |
import org.apache.log4j.Logger; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.upload.FormFile; |
import org.hibernate.ObjectNotFoundException; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import javax.servlet.ServletException; |
import java.io.Serializable; |
import java.util.List; |
import com.sun.deploy.association.utility.AppAssociationReaderFactory; |
/** |
* @author Jorge Machado |
65,7 → 51,7 |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{id}; |
Object[] args = new Object[]{id,false,false}; |
try |
{ |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnit", args, names); |
107,10 → 93,99 |
} |
} |
public ActionForward loadWorks(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
long id = Long.parseLong(request.getParameter("id")); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{id}; |
try |
{ |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnitWorks", args, names); |
cUF.setCourseUnitView(cV); |
request.setAttribute("CourseUnitView", cV); |
return mapping.findForward("load.works"); |
} |
catch (ExecutedFilterException e) |
{ |
if (e.getCause() instanceof ObjectNotFoundException) |
{ |
throw new NotFoundException(e.getCause().toString()); |
} |
throw e; |
} |
} |
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 createAssignement(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
long id = cUF.getCourseUnitView().getId(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{cUF.getCourseUnitAssignementView(), id}; |
try |
{ |
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "CreateCourseUnitWork", args, names); |
cUF.setCourseUnitView(cV); |
request.setAttribute("CourseUnitView", cV); |
return mapping.findForward("load.works"); |
} |
catch (ExecutedFilterException e) |
{ |
if (e.getCause() instanceof ObjectNotFoundException) |
{ |
throw new NotFoundException(e.getCause().toString()); |
} |
throw e; |
} |
} |
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 update(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
/impl/src/java/pt/estgp/estgweb/web/controllers/blogs/BlogsController.java |
---|
444,6 → 444,39 |
} |
public ActionForward validatePost(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException |
{ |
try |
{ |
String newStatusStr = request.getParameter("status"); |
boolean newStatus = Boolean.parseBoolean(newStatusStr); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{new Long(request.getParameter("id")),newStatus}; |
sm.execute(RequestUtils.getRequester(request, response), "ValidateBlogPost", args, names); |
addMessage(request, "blog.post.updated.success", "" + request.getParameter("id")); |
return loadBlogAndForward(new Long(request.getParameter("blogId")), mapping, request, response); |
} |
catch (FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
throw e; |
} |
} |
public ActionForward deletePost(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
/impl/src/hbm/pt/estgp/estgweb/domain/Blog.hbm.xml |
---|
19,6 → 19,7 |
<property name="targetRoles" type="string"/> |
<property name="internal" type="boolean"/> |
<property name="status" type="boolean" /> |
<property name="autoValidation" type="boolean"/> |
<many-to-one name="image" column="image" class="pt.estgp.estgweb.domain.Image" lazy="no-proxy" outer-join="false" cascade="all"/> |
<many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" lazy="false" outer-join="true"/> |
<set name="posts" cascade="delete" lazy="true"> |
/impl/src/hbm/pt/estgp/estgweb/domain/Course.hbm.xml |
---|
16,6 → 16,7 |
<property name="name" type="string"/> |
<property name="description" type="text"/> |
<property name="code" type="string"/> |
<property name="importYear" type="string" index="importYearIndex"/> |
<property name="institutionalCode" type="string"/> |
<property name="externalSiteServer" type="string"/> |
<property name="externalSitePath" type="string"/> |
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml |
---|
13,14 → 13,14 |
<discriminator column="discrimitator"/> |
<timestamp name="updateDate" unsaved-value="null"/> |
<property name="saveDate" type="timestamp"/> |
<property name="semestre" type="string"/> |
<property name="name" type="string"/> |
<property name="semestre" type="string" index="semestreIndex"/> |
<property name="name" type="string" index="nameIndex"/> |
<property name="code" type="string"/> |
<property name="courseCode" type="string"/> |
<property name="courseName" type="string" /> |
<property name="courseYear" type="string" /> |
<property name="courseName" type="string"/> |
<property name="courseYear" type="string"/> |
<property name="importYear" type="string" index="importYearIndex"/> |
<property name="institutionCode" type="string" /> |
<property name="objectives" type="text"/> |
<property name="programStreamId" type="string"/> |
33,7 → 33,7 |
<many-to-one name="course" class="pt.estgp.estgweb.domain.Course" lazy="false" outer-join="true"/> |
<set name="teachers" lazy="true" table="teachedunits"> |
<key column="courseUnitId"/> |
<many-to-many class="pt.estgp.estgweb.domain.TeacherImpl" column="studentId"/> |
<many-to-many class="pt.estgp.estgweb.domain.TeacherImpl" column="teacherId"/> |
</set> |
<set name="students" lazy="true" table="subscribedunits"> |
<key column="courseUnitId"/> |
47,6 → 47,10 |
<key column="courseUnit"/> |
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitQuestion" /> |
</set> |
<set name="assignements" cascade="delete" lazy="true" order-by="saveDate desc"> |
<key column="courseUnit"/> |
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitAssignement"/> |
</set> |
<subclass name="pt.estgp.estgweb.domain.CourseUnitImpl" discriminator-value="CourseUnitImpl"/> |
</class> |
78,6 → 82,9 |
<property name="deliverDate" type="timestamp"/> |
<property name="deliverType" type="string"/> |
<property name="lateDelivers" type="boolean"/> |
<property name="title" type="string"/> |
<property name="description" type="text"/> |
<property name="status" type="boolean"/> |
<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="false" outer-join="true"/> |
<subclass name="pt.estgp.estgweb.domain.CourseUnitAssignementImpl" discriminator-value="CourseUnitAssignementImpl"/> |
</class> |
/impl/src/web/admin/profile/findUser.jsp |
---|
36,6 → 36,7 |
<logic:present name="ProfileForm" property="usersFind"> |
<table class="dataTable"> |
<tr> |
<th><bean:message key="profile.siges.student.code"/></th> |
<th><bean:message key="username"/> </th> |
<th><bean:message key="name"/> </th> |
<th><bean:message key="email"/></th> |
45,6 → 46,7 |
<logic:iterate id="userView" name="ProfileForm" property="usersFind" type="pt.estgp.estgweb.domain.views.UserView"> |
<tr> |
<td>${userView.code}</td> |
<td>${userView.username}</td> |
<td>${userView.name}</td> |
<td>${userView.email}</td> |
/impl/src/web/admin/profile/profile.jsp |
---|
32,6 → 32,14 |
<baco:isNotAdmin> |
<tr> |
<th> |
<bean:message key="profile.siges.code"/> |
</th> |
<td> |
<html:text styleClass="text" property="userView.code" maxlength="250" readonly="true"/> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="username"/> |
</th> |
<td> |
61,6 → 69,14 |
<baco:isAdmin> |
<tr> |
<th> |
<bean:message key="profile.siges.code"/> |
</th> |
<td> |
<html:text styleClass="text" property="userView.code" maxlength="250"/> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="username"/> |
</th> |
<td> |
/impl/src/web/admin/courseunits/courseunit.jsp |
---|
New file |
0,0 → 1,131 |
<%@ 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"/> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<html:form styleClass="form" action="/user/courseUnitControllerAdminFromServiceZone" enctype="multipart/form-data"> |
<input type="hidden" name="dispatch" value="createOrUpdateAdmin"/> |
<html:hidden property="courseUnitView.id"/> |
<html:hidden property="id"/> |
<table> |
<tr> |
<th> |
<bean:message key="courseunit.name"/> |
</th> |
<td> |
<html:text styleClass="text" property="courseUnitView.name"/> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.code"/> |
</th> |
<td> |
<html:text styleClass="text" property="courseUnitView.code"/> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.semestre"/> |
</th> |
<td> |
<html:select property="courseUnitView.semestre"> |
<html:option value="S1">S1</html:option> |
<html:option value="S2">S2</html:option> |
</html:select> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.importYear"/> |
</th> |
<td> |
<html:select property="courseUnitView.importYear"> |
<logic:iterate id="item" name="CourseUnitsForm" property="importYears"> |
<html:option value="${item}">${item}</html:option> |
</logic:iterate> |
</html:select> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.teachers"/> |
</th> |
<td> |
<html:select property="teacherId"> |
<logic:present name="CourseUnitsForm" property="teachers"> |
<logic:iterate id="teacher" name="CourseUnitsForm" property="teachers" type="pt.estgp.estgweb.domain.views.UserView"> |
<jomm:option itemName="teacher" itemProperty="id" comparableObjectName="CourseUnitsForm" |
comparableObjectProperty="teacherId"> |
(${teacher.code}) ${teacher.name} |
</jomm:option> |
</logic:iterate> |
<input type="button" value="<bean:message key="add"/>" |
onclick="set(this.form,'addTeacher');this.form.submit();"> |
</logic:present> |
</html:select> |
<logic:greaterThan name="CourseUnitView" property="teachersSize" value="0"> |
<table class="dataTable removeButton"> |
<logic:iterate id="userView" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView"> |
<tr> |
<th> |
${userView.code} |
</th> |
<th> |
${userView.name} |
</th> |
<td><input type="button" class="removeButton" |
onclick="CourseUnitsForm.id.value='${userView.id}';set(this.form,'removeTeacher');this.form.submit();"> |
</td> |
</tr> |
</logic:iterate> |
</table> |
</logic:greaterThan> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.students"/> |
</th> |
<td> |
<html:text styleClass="text" property="studentCode"/> |
<input type="button" value="<bean:message key="add"/>" |
onclick="set(this.form,'addStudent');this.form.submit();"> |
<logic:greaterThan name="CourseUnitView" property="studentsSize" value="0"> |
<table class="dataTable removeButton"> |
<logic:iterate id="userView" name="CourseUnitView" property="students" type="pt.estgp.estgweb.domain.views.UserView"> |
<tr> |
<th> |
${userView.code} |
</th> |
<th> |
${userView.username} |
</th> |
<th> |
${userView.name} |
</th> |
<th> |
${userView.email} |
</th> |
<th> |
${userView.address} |
</th> |
<td><input type="button" class="removeButton" |
onclick="CourseUnitsForm.id.value='${userView.code}';set(this.form,'removeStudent');this.form.submit();"> |
</td> |
</tr> |
</logic:iterate> |
</table> |
</logic:greaterThan> |
</td> |
</tr> |
</table> |
<input type="button" onclick="set(form,'createOrUpdateAdmin');form.submit()" value="<bean:message key="confirm"/>"> |
</html:form> |
/impl/src/web/admin/courseunits/findCourseunit.jsp |
---|
New file |
0,0 → 1,80 |
<%@ page import="pt.estgp.estgweb.domain.StudentImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.TeacherImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.UserImpl" %> |
<%@ 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/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<jomm:messages/> |
<html:form action="/user/courseUnitControllerAdminFromServiceZone?dispatch=search&from=ServiceZone"> |
<input type="hidden" name="dispatch" value="search"> |
<table class="form"> |
<tr> |
<th> |
<bean:message key="courseunit.search"/> |
</th> |
<td> |
<html:text property="textToSearch" maxlength="50"/> |
</td> |
<td> |
<input type="button" onclick="set(this.form,'search');this.form.submit()" value="<bean:message key="search"/>"> |
</td> |
</tr> |
<tr> |
<td nowrap="nowrap" colspan="3"> |
<table> |
<tr> |
<td><html:radio property="searchType" value="search.type.all"/></td> |
<td><bean:message key="search.type.all"/></td> |
<td><html:radio property="searchType" value="search.type.any"/></td> |
<td><bean:message key="search.type.any"/></td> |
<td><html:radio property="searchType" value="search.type.phrase"/></td> |
<td><bean:message key="search.type.phrase"/></td> |
</tr> |
</table> |
</td> |
</tr> |
</table> |
</html:form> |
<logic:present name="ISearchResults" property="results"> |
<table class="dataTable"> |
<tr> |
<th><bean:message key="courseunit.code"/> </th> |
<th><bean:message key="courseunit.name"/> </th> |
<th><bean:message key="courseunit.semestre"/></th> |
<th><bean:message key="courseunit.importYear"/></th> |
<th><bean:message key="courseunit.course"/></th> |
<th></th> |
<th></th> |
</tr> |
<logic:iterate id="courseunitresult" name="ISearchResults" property="results" type="pt.estgp.estgweb.services.courseunits.impl.CourseUnitViewResult" > |
<tr> |
<td>${courseunitresult.object.code}</td> |
<td>${courseunitresult.object.name}</td> |
<td>${courseunitresult.object.semestre}</td> |
<td>${courseunitresult.object.importYear}</td> |
<td>${courseunitresult.object.courseName}</td> |
<td><html:link action="/user/startEditCourseUnitAdminFromServiceZone?id=${courseunitresult.object.id}"><bean:message key="edit"/></html:link></td> |
<td><html:link action="/user/startDeleteCourseUnitAdminFromServiceZone?id=${courseunitresult.object.id}"><bean:message key="delete"/></html:link></td> |
<td></td> |
</tr> |
</logic:iterate> |
</table> |
<p class="pages"> |
<bean:message key="search.pages"/>: |
<logic:equal value="true" name="ISearchResults" property="hasPreviousPage"> |
<a href="<%=request.getContextPath()%>/user/startSearchCourseUnitAdminFromServiceZone.do?page=${ISearchResults.previousPage}&textToSearch=${ISearchResults.query}&searchType=${ISearchResults.searchType}"> |
< |
<bean:message key="result.previous"/> |
</a> |
</logic:equal> |
${ISearchResults.page2Screen} |
<logic:equal value="true" name="ISearchResults" property="hasNextPage"> |
<a href="<%=request.getContextPath()%>/user/startSearchCourseUnitAdminFromServiceZone.do?page=${ISearchResults.nextPage}&textToSearch=${ISearchResults.query}&searchType=${ISearchResults.searchType}"> |
<bean:message key="result.next"/> |
></a> |
</logic:equal> |
</p> |
</logic:present> |
/impl/src/web/admin/blogs/submitBlog.jsp |
---|
23,6 → 23,10 |
request.setAttribute("user", user); |
request.setAttribute("fromAction", fromAction); |
%> |
<baco:isNotAdmin> |
<p></p><bean:message key="blog.intro.message"/></p> |
</baco:isNotAdmin> |
<html:form action="${user}/blogsController${fromAction}${from}" enctype="multipart/form-data"> |
<html:hidden property="role"/> |
<html:hidden property="blogView.id"/> |
48,6 → 52,21 |
</baco:isAdmin> |
<tr> |
<th> |
<bean:message key="blog.autoValidation"/> |
</th> |
<td> |
<html:select property="blogView.autoValidation"> |
<html:option value="true"> |
<bean:message key="yes"/> |
</html:option> |
<html:option value="false"> |
<bean:message key="no"/> |
</html:option> |
</html:select> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="blog.internal"/> |
</th> |
<td> |
/impl/src/web/css/style.css |
---|
306,10 → 306,10 |
FONT: 11px / 20px "bitstream vera sans", "Lucida Grande", "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif |
} |
#topnav LI A:visited |
{ |
COLOR: white; |
} |
/*#topnav LI A:visited*/ |
/*{*/ |
/*COLOR: white;*/ |
/*}*/ |
#topnav LI A:hover { |
COLOR: black; |
BACKGROUND-COLOR: #FFFFFF |
353,11 → 353,6 |
color: black; |
} |
#searchResults { |
padding-left: 10px; |
} |
#searchResults li a { |
cursor: pointer; |
} |
373,6 → 368,7 |
#searchResults li .module { |
position: absolute; |
visibility: hidden; |
margin-left:5px; |
} |
#searchResults li .module .result h2 { |
409,6 → 405,12 |
padding-top: 3px; |
} |
#searchResults #googleResults |
{ |
margin-left:5px; |
} |
/*************************************************************************************/ |
/*****************************Portal Page Template************************************/ |
471,7 → 473,7 |
} |
.block a:visited { |
color: #4d4d4d; |
/*color: #4d4d4d;*/ |
text-decoration: none; |
} |
586,7 → 588,7 |
{ |
LIST-STYLE-TYPE: none; |
padding: 0; |
margin-left: 5px; |
/*margin-left: 5px;*/ |
} |
.listCircleWhite UL /*Lista circulo branco*/ |
765,9 → 767,9 |
color: #4d4d4d; |
} |
#lastnews li a:visited, .linkLeftMenu a:visited, .linkRightMenu a:visited { |
color: #4d4d4d; |
} |
/*#lastnews li a:visited, .linkLeftMenu a:visited, .linkRightMenu a:visited {*/ |
/*color: #4d4d4d;*/ |
/*}*/ |
#lastnews li a:hover, .linkLeftMenu a:hover, .linkRightMenu a:hover { |
color: #8EC73F; |
1160,12 → 1162,17 |
border: 1px solid green; |
width:100%; |
} |
.posts * a:hover |
{ |
background-color:white; |
} |
.blog .oldMonths |
{ |
vertical-align:top; |
} |
.blog .form table |
.blog .form table, .blockForm table |
{ |
border: 1px solid green; |
margin-bottom:4px; |
/impl/src/web/layout/navigationTop.jsp |
---|
94,6 → 94,7 |
if(query == null) |
query = ""; |
allChecked = "checked=\"checked\""; |
if(searchType == null) |
allChecked = "checked=\"checked\""; |
else if(searchType.equals("search.type.all")) |
106,7 → 107,7 |
%> |
<html:form action="/search" method="post"> |
<input type="hidden" name="dispatch" value="search"> |
<input type="hidden" name="dispatch" value="search"/> |
<table> |
<tr> |
<td> |
116,7 → 117,7 |
<input type="text" class="small" name="query" value="<%=query%>"/> |
</td> |
<td> |
<input type="button" onclick="set(this.form,'search');this.form.submit()" value="<bean:message key="search"/>"> |
<input type="submit" value="<bean:message key="search"/>"> |
</td> |
</tr> |
/impl/src/web/public/courseunits/topnavCourseUnit.jsp |
---|
New file |
0,0 → 1,12 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@ page import="jomm.web.utils.NavPlaceServer" %> |
<%@ page import="jomm.web.utils.TopNav" %> |
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/Welcome.do", "Home"); |
topNav.addNavPlace(null, "course", CourseUnitView.getCourseName()); |
topNav.addNavPlace(null, "courseunit", CourseUnitView.getName()); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/impl/src/web/public/search/searchResults.jsp |
---|
30,7 → 30,8 |
googlePage = p; |
var searchresults = document.getElementById("googleSearchResults"); |
searchresults.innerHTML = loading; |
OnLoad(); |
//OnLoad(); |
gWebSearch.gotoPage(googlePage); |
} |
function OnLoad() |
{ |
78,15 → 79,25 |
// } |
results += "</div>"; |
} |
results += "</div>"; |
results += "<p class=\"pages\">"; |
results += pages + " "; |
for (var j = 0; j < gWebSearch.cursor.pages.length; j++) |
var limit = 1; |
if(gWebSearch.cursor.estimatedResultCount > 8) |
limit = 2; |
if(gWebSearch.cursor.estimatedResultCount > 16) |
limit = 3; |
if(gWebSearch.cursor.estimatedResultCount > 24) |
limit = 4; |
if(gWebSearch.cursor.estimatedResultCount > 32) |
limit = 5; |
for (var j = 0; j < gWebSearch.cursor.pages.length && j < limit; j++) |
{ |
if (j == gWebSearch.cursor.currentPageIndex) |
results += " " + gWebSearch.cursor.pages[j].label; |
else |
results += ' <a onClick="gotoPage(' + j + ');" href="#googleSearchResults">' + gWebSearch.cursor.pages[j].label + "</a> "; |
results += ' <a onClick="gotoPage(' + (j) + ');" href="#googleSearchResults">' + gWebSearch.cursor.pages[j].label + "</a> "; |
} |
if (gWebSearch.cursor.estimatedResultCount > 32) |
{ |
94,6 → 105,7 |
} |
results += "</p>"; |
results += "</div>"; |
searchresults.innerHTML = results; |
} |
} |
118,12 → 130,12 |
<bean:message key="${searchResults.module.messageKey}"/> |
<b>(${searchResults.totalResults})</b> |
<a id="${searchResults.module.messageKey}SeeMore" |
href="javascript:show('${searchResults.module.messageKey}','${searchResults.module.messageKey}SeeMore')"> |
href="javascript:showOrHide('${searchResults.module.messageKey}')"> |
<bean:message key="search.see.more"/> |
</a> |
</h1> |
<div class="module" id="<%=searchResults.getModule().getMessageKey()%>"> |
<div class="module" id="<%=searchResults.getModule().getMessageKey()%>" style="visibility:hidden;"> |
<div id="${searchResults.module.messageKey}Results"> |
<logic:iterate id="result" name="searchResults" property="results" |
type="pt.estgp.estgweb.services.common.IResult"> |
/impl/src/web/public/blogs/blog.jsp |
---|
138,9 → 138,25 |
<baco:canLoad name="post"> |
<tr> |
<td colspan="2" class="title"> |
${post.title} |
<a name="post${post.id}"></a>${post.title} |
<baco:canManage name="post"> |
<a onclick="return confirm('${confirmDeletePost}')" href="<%=request.getContextPath()%>${user}/startDeletePost${fromAction}.do?id=${post.id}&blogId=${BlogView.id}"><bean:message key="blog.delete.post"/></a> |
<baco:canManage name="BlogView"> |
<% |
if(post.getStatus()) |
{ |
%> |
<a href="<%=request.getContextPath()%>${user}/startValidatePost${fromAction}.do?status=false&id=${post.id}&blogId=${BlogView.id}"><bean:message key="blog.status.invalidate"/></a> |
<% |
} |
else |
{ |
%> |
<a href="<%=request.getContextPath()%>${user}/startValidatePost${fromAction}.do?status=true&id=${post.id}&blogId=${BlogView.id}"><bean:message key="blog.status.validate"/></a> |
<% |
} |
%> |
</baco:canManage> |
</baco:canManage> |
</td> |
</tr> |
/impl/src/web/user/courseunits/menu.jsp |
---|
1,4 → 1,6 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<div class="linkLeftMenu"> |
<div class="listClean"> |
<ul> |
12,7 → 14,7 |
<a href="<%=request.getContextPath()%>/">Blog</a> |
</li> |
<li> |
<a href="<%=request.getContextPath()%>/">Trabalhos</a> |
<a href="<%=request.getContextPath()%>/user/startLoadCourseUnitWorksFromHome.do?id=${CourseUnitView.id}">Trabalhos</a> |
</li> |
<li> |
<a href="<%=request.getContextPath()%>/">Notas</a> |
/impl/src/web/user/courseunits/courseunitworks.jsp |
---|
New file |
0,0 → 1,123 |
<%@ page import="pt.estgp.estgweb.domain.Teacher" %> |
<%@ page import="pt.estgp.estgweb.domain.TeacherImpl" %> |
<%@ 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"/> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<div id="contentCourseUnit"> |
<div class="seccao"> |
<h2><bean:message key="courseunit.works"/></h2> |
<a href="javascript:showOrHide('assignements')">Criar Novo</a> |
<html:form styleId="assignements" style="position:absolute;visibility:hidden;" action="/user/courseUnitControllerFromHome"> |
<input type="hidden" name="dispatch" value="createAssignement"> |
<html:hidden property="courseUnitView.id"/> |
<div class="form blockForm"> |
<table> |
<tr> |
<th> |
<bean:message key="courseunit.title"/> |
</th> |
<td> |
<html:text styleClass="text" property="courseUnitAssignementView.title"/> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.assignement.deliver.date"/> |
</th> |
<td> |
<a href="javascript:cal.select(getObjectById('deliverDate'),'anchor1','yyyy/MM/dd')" name="anchor1" id="anchor1"><html:text styleClass="date" property="courseUnitAssignementView.deliverDate" styleId="deliverDate" readonly="true"/></a> |
<input type="button" class="removeButton" onClick="CourseUnitsForm.deliverDate.value=null"> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.assignement.deliver.type"/> |
</th> |
<td> |
<html:select property="courseUnitAssignementView.deliverType"> |
<html:option value="zipfile" key="courseunit.assignement.deliver.type.zipfile"/> |
<html:option value="nofile" key="courseunit.assignement.deliver.type.nofile"/> |
</html:select> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.assignement.deliver.late.permission"/> |
</th> |
<td> |
<html:select property="courseUnitAssignementView.lateDelivers"> |
<html:option value="true" key="yes"/> |
<html:option value="false" key="no"/> |
</html:select> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.description"/> |
</th> |
<td> |
<html:textarea styleClass="textarea" property="courseUnitAssignementView.description"/> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.status"/> |
</th> |
<td> |
<html:select property="courseUnitAssignementView.status"> |
<html:option value="true"> |
<bean:message key="status.active"/> |
</html:option> |
<html:option value="false"> |
<bean:message key="status.inactive"/> |
</html:option> |
</html:select> |
</td> |
</tr> |
<tr> |
<td colspan="2"> |
<input type="button" onclick="this.form.submit()" value="<bean:message key="confirm"/>"/> |
</td> |
</tr> |
</table> |
</div> |
</html:form> |
<p> |
<logic:notEmpty name="CourseUnitView" property="courseUnitAssignements"> |
<table class="dataTable"> |
<tr> |
<th>Trabalho</th> |
<th>Entregues</th> |
</tr> |
<logic:iterate id="work" name="CourseUnitView" property="courseUnitAssignements" type="pt.estgp.estgweb.domain.views.CourseUnitAssignementView"> |
<tr> |
<td> |
${work.title} |
</td> |
<td> |
${work.delivers} |
</td> |
</tr> |
</logic:iterate> |
</table> |
</logic:notEmpty> |
<logic:empty name="CourseUnitView" property="courseUnitAssignements"> |
<bean:message key="courseunit.works.zero"/> |
</logic:empty> |
</p> |
</div> |
</div> |
/impl/src/web/user/home/todos.jsp |
---|
59,11 → 59,20 |
<% |
for (IToDo todo : toDoCat.getAllToDos()) |
{ |
if (todo.getUrl() != null) |
{ |
%> |
<li> |
<a href="<%=request.getContextPath() + todo.getUrl()%>"><%=todo.getLabelInsideCat(request)%></a> |
<a href="<%=request.getContextPath() + todo.getUrl()%>"> |
<% |
if(todo.getCatKey() != null) |
{ |
out.print(MessageResources.getMessage(request,todo.getCatKey()) + ":"); |
} |
%> |
<%=todo.getLabelInsideCat(request)%></a> |
</li> |
<% |
} |
/impl/src/web/user/home/topnavCourseUnitWorks.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(null, "courseunit",CourseUnitView.getName()); |
topNav.addNavPlace(null, "course.unit.works"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/impl/src/web/user/serviceZone/topnavCourseUnit.jsp |
---|
New file |
0,0 → 1,19 |
<%@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/startServiceZone.do", "intranet.separator.service.zone.back"); |
if(CourseUnitView.getId() <= 0) |
{ |
topNav.addNavPlace(null, "courseunit.new"); |
} |
else |
{ |
topNav.addNavPlace(null, "course",CourseUnitView.getCourseName()); |
topNav.addNavPlace(null, "courseunit",CourseUnitView.getName()); |
} |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/impl/src/web/user/serviceZone/serviceZone.jsp |
---|
85,6 → 85,21 |
</li> |
</ul> |
</li> |
<li> |
<bean:message key="courses"/> |
<ul> |
<li> |
<html:link action="/user/startNewCourseUnitAdminFromServiceZone"> |
<bean:message key="courseunit.new"/> |
</html:link> |
</li> |
<li> |
<html:link action="/user/startFindCourseUnitAdminFromServiceZone"> |
<bean:message key="courseunit.search"/> |
</html:link> |
</li> |
</ul> |
</li> |
</baco:isAdmin> |
</ul> |
</div> |
95,7 → 110,7 |
<bean:message key="intranet.editable.blogs"/> |
</div> |
<% |
if (ownerBlogs.size() == 0) |
if (editableBlogs.size() == 0) |
{ |
%> |
<div class="zerofound"> |
/impl/src/web/user/serviceZone/topnavEditCourseUnit.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/startServiceZone.do", "intranet.separator.service.zone.back"); |
topNav.addNavPlace("/user/startFindCourseUnitAdminFromServiceZone.do", "courseunit.search"); |
topNav.addNavPlace(null, "courseunit.edit"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/impl/src/web/user/serviceZone/topnavSearchCourseUnit.jsp |
---|
New file |
0,0 → 1,12 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="java.util.*"%> |
<%@ page import="jomm.web.utils.NavPlace" %> |
<%@ page import="jomm.web.utils.NavPlaceServer" %> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startServiceZone.do", "intranet.separator.service.zone.back"); |
topNav.addNavPlace(null, "courseunit.search"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/impl/etc/todo/todo.txt |
---|
1,6 → 1,9 |
Jorge Meu |
Tirar o getSerializable de noovo do domainObject e ver de onde devem herdar |
Mensagens de Email no EI aparecem gigantes |
Estilo das páginas do proxy aparecem com o numero de item deslocado |
#### |
Modulo de Gestão de utilizadores Fabio |
Eventos com controlo de listagem e controlo de Pagamentos Fabio |
29,5 → 32,9 |
Pagina da disciplina a listar conteudos da intranet Jorge |
#### |
FABIO |
Imagens de Origem das noticias, parece-me que estão mal na pasta imgs |
criar por defeito no DBInit um user com o role de cada uma das imagens (Secretaria, CI, CD, CC, CP, etc) |
Meter mensagem no PRIMEIRO Login a dizer que caso não existam unidades curriculares para se deslocar ao Serviços Infpormaticos |