/branches/v3/impl/src/java/pt/estgp/estgweb/services/courses/CoursesService.java |
---|
210,7 → 210,7 |
String extension = FilesUtils.getExtension(name); |
if(c.getStudiesPlan() == null) |
{ |
String identifier = repositoryService.storeRepositoryFile(stream, contentType, extension, size, name, "course.studies.plan " + c.getName(), ResourceAccessControlEnum.publicDomain,userSession); |
String identifier = repositoryService.storeRepositoryFile(stream, contentType, extension, size, name, "course.studies.plan " + c.getName(), ResourceAccessControlEnum.publicDomain, null, userSession); |
c.setStudiesPlan(identifier); |
} |
else |
1192,7 → 1192,7 |
else |
{ |
String oldValidationRole = c.getValidationRole(); |
result = new UserRoleConfigService().updateOldRoleWithView(oldValidationRole,newUserRoleConfig,userSession); |
result = new UserRoleConfigService().updateOldRoleWithView(oldValidationRole, newUserRoleConfig, userSession); |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitProgram.java |
---|
155,7 → 155,7 |
} |
if(cu.getProgramStreamId() == null) |
{ |
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + ".pdf", "courseunit.program.description" + cu.getName(), ResourceAccessControlEnum.publicDomain,owner); |
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + ".pdf", "courseunit.program.description" + cu.getName(), ResourceAccessControlEnum.publicDomain, null, owner); |
cu.setProgramStreamId(identifier); |
} |
else |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java |
---|
210,7 → 210,7 |
if(cu.getEvaluationStreamId() == null) |
{ |
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + "-evaluation.pdf", "courseunit.evaluation.description" + cu.getName(), ResourceAccessControlEnum.courseunitEvaluationDomain,owner); |
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + "-evaluation.pdf", "courseunit.evaluation.description" + cu.getName(), ResourceAccessControlEnum.courseunitEvaluationDomain, null, owner); |
cu.setEvaluationStreamId(identifier); |
} |
else |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/UpdateCourseUnitService.java |
---|
55,7 → 55,7 |
String extension = FilesUtils.getExtension(name); |
if(c.getProgramStreamId() == null) |
{ |
String identifier = repositoryService.storeRepositoryFile(stream, contentType, extension, size, name, "courseunit.program.description" + c.getName(), ResourceAccessControlEnum.publicDomain,userSession); |
String identifier = repositoryService.storeRepositoryFile(stream, contentType, extension, size, name, "courseunit.program.description" + c.getName(), ResourceAccessControlEnum.publicDomain, null, userSession); |
c.setProgramStreamId(identifier); |
} |
else |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/CourseUnitWorkService.java |
---|
4,21 → 4,17 |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView; |
import pt.estgp.estgweb.domain.views.CourseUnitDeliverableView; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.enums.LangEnum; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.services.data.RepositoryService; |
import pt.estgp.estgweb.services.data.IRepositoryFile; |
import pt.estgp.estgweb.services.blogs.CreateBlogService; |
import pt.estgp.estgweb.services.email.SendEmailService; |
import pt.estgp.estgweb.services.email.EMAILJob; |
import pt.estgp.estgweb.services.jobs.JobScheduleService; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.filters.exceptions.AccessDeniedException; |
import pt.estgp.estgweb.utils.Email; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
import java.util.List; |
27,7 → 23,6 |
import java.io.InputStream; |
import jomm.utils.FilesUtils; |
import jomm.utils.MessageResources; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
76,7 → 71,7 |
String extension = FilesUtils.getExtension(name); |
if(assignement.getRepositoryStream() == null || assignement.getRepositoryStream().trim().length() == 0) |
{ |
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "courseunit.assignement.file " + courseUnit.getName() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.courseunitDomain,userSession); |
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "courseunit.assignement.file " + courseUnit.getName() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.courseunitDomain, null, userSession); |
assignement.setRepositoryStream(identifier); |
} |
else |
184,7 → 179,7 |
if(deliverable == null) |
{ |
deliverable = DomainObjectFactory.createCourseUnitDeliverableImpl(); |
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "courseunit.assignement " + assignement.getCourseUnit().getName() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.courseunitDeliverableDomain,userSession); |
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "courseunit.assignement " + assignement.getCourseUnit().getName() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.courseunitDeliverableDomain, null, userSession); |
deliverable.setDeliverableRepositoryStream(identifier); |
deliverable.setCourseUnitAssignement(assignement); |
setStudentWorkDetails(deliverable,userSession); |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java |
---|
469,7 → 469,7 |
else |
c.setCdTurma(""); |
c.setName(d.getNome()); |
c.setInstitutionCode("" + d.getCodigoInstituicao());//MUDADO AQUI |
//c.setInstitutionCode("" + d.getCodigoInstituicao());//MUDADO AQUI |
c.setCode("" + d.getCodigo().intValue()); |
c.setCourseCode("" + d.getCodigoCurso()); |
c.setCourseName("" + d.getNomeCurso()); |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/events/EventsService.java |
---|
182,7 → 182,7 |
flyer.getFileName(), |
"Flyer de formacao " + eventPersistent.getTitle(), |
ResourceAccessControlEnum.publicDomain, |
userSession |
null, userSession |
); |
eventPersistent.setFlyerRepositoryStream(repositoryIdentifier); |
} catch (IOException e) { |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/ReportAlunosGenerator.java |
---|
432,7 → 432,7 |
zipFile.getName(), |
desc, |
access, |
DaoFactory.getUserDaoImpl().load(new Long(1))); |
null, DaoFactory.getUserDaoImpl().load(new Long(1))); |
q.setRepositoryStreamZipFile(repositoryStreamCode); |
} |
else |
461,6 → 461,7 |
tmpFile.getName(), |
descricao, |
access,//Este relatório de curso é publico |
null, |
DaoFactory.getUserDaoImpl().load(new Long(1))); |
reportFile.setRepositoryStream(repositoryStreamCode); |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/pageContent/dto/VfsPageSectionDto.java |
---|
54,7 → 54,7 |
name, |
"RepositoryFileInVfs title:" + title, |
ResourceAccessControlEnum.vfsdomain, |
DaoFactory.getUserDaoImpl().loadByID("1")); |
null, DaoFactory.getUserDaoImpl().loadByID("1")); |
repositoryFile = new PageRepositoryFileImpl(); |
repositoryFile.setTitle(title); |
repositoryFile.setDescription(description); |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/RepositoryService.java |
---|
7,6 → 7,7 |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.services.data.impl.DefaultRepositoryFile; |
import pt.estgp.estgweb.services.data.types.AbstractRepositorySourceModuleInterfacePlugin; |
import pt.estgp.estgweb.web.utils.DatesUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
24,28 → 25,30 |
public class RepositoryService implements IService |
{ |
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, UserSession userSession) |
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, AbstractRepositorySourceModuleInterfacePlugin sourceModuleInterfacePlugin, UserSession userSession) |
{ |
return storeRepositoryFile(stream,contentType,extension,size,name,description,accessControl,userSession.getUser()); |
return storeRepositoryFile(stream,contentType,extension,size,name,description,accessControl, sourceModuleInterfacePlugin, userSession.getUser()); |
} |
/** |
* |
* @param stream . |
* @param contentType . |
* @param extension . |
* @param size . |
* @param name . |
* @param description . |
* @param extension . |
* @param accessControl . |
* @param user . |
* @return the identifier to retrieve the document |
* @param sourceModuleInterfacePlugin |
*@param user . @return the identifier to retrieve the document |
*/ |
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, User user) |
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, AbstractRepositorySourceModuleInterfacePlugin sourceModuleInterfacePlugin, User user) |
{ |
RepositoryFileImpl repositoryFile = DomainObjectFactory.createRepositoryFileImpl(); |
repositoryFile.setSaveDate(new Date()); |
repositoryFile.setDeleted(false); |
repositoryFile.setAccessControl(accessControl.getKey()); |
repositoryFile.setOwner(user); |
repositoryFile.setSourceModule(sourceModuleInterfacePlugin); |
DaoFactory.getRepositoryFileDaoImpl().save(repositoryFile); |
//todo getMD5Checksum() |
199,30 → 202,35 |
return repositoryFileVersion; |
} |
public static Document createXMLdescription(RepositoryFileVersionImpl repositoryFile) |
public static Document createXMLdescription(RepositoryFileVersionImpl repositoryFileVersion) |
{ |
org.dom4j.Document dom = DocumentFactory.getInstance().createDocument(); |
Element rootElement = DocumentFactory.getInstance().createElement("repositoryFileVersion"); |
dom.setRootElement(rootElement); |
rootElement.addAttribute("id", "" + repositoryFile.getId()); |
rootElement.addAttribute("id", "" + repositoryFileVersion.getId()); |
Element saveDate = DocumentFactory.getInstance().createElement("saveDate"); |
saveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFile.getSaveDate())); |
saveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFileVersion.getSaveDate())); |
Element name = DocumentFactory.getInstance().createElement("name"); |
name.setText("" + repositoryFile.getName()); |
name.setText("" + repositoryFileVersion.getName()); |
Element contentType = DocumentFactory.getInstance().createElement("contentType"); |
contentType.setText(""+repositoryFile.getContentType()); |
contentType.setText(""+repositoryFileVersion.getContentType()); |
Element extension = DocumentFactory.getInstance().createElement("extension"); |
extension.setText("" + repositoryFile.getExtension()); |
extension.setText("" + repositoryFileVersion.getExtension()); |
Element size = DocumentFactory.getInstance().createElement("sizeKb"); |
size.setText("" + repositoryFile.getSizeKb()); |
size.setText("" + repositoryFileVersion.getSizeKb()); |
Element description = DocumentFactory.getInstance().createElement("description"); |
description.setText(repositoryFile.getDescription()); |
description.setText(repositoryFileVersion.getDescription()); |
rootElement.add(saveDate); |
rootElement.add(name); |
235,19 → 243,26 |
Element repositoryFileElem = DocumentFactory.getInstance().createElement("repositoryFile"); |
rootElement.add(repositoryFileElem); |
repositoryFileElem.addAttribute("id", "" + repositoryFile.getRepositoryFile().getId()); |
repositoryFileElem.addAttribute("id", "" + repositoryFileVersion.getRepositoryFile().getId()); |
Element rSaveDate = DocumentFactory.getInstance().createElement("saveDate"); |
rSaveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFile.getRepositoryFile().getSaveDate())); |
rSaveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFileVersion.getRepositoryFile().getSaveDate())); |
Element rUpdateDate = DocumentFactory.getInstance().createElement("updateDate"); |
rUpdateDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFile.getRepositoryFile().getUpdateDate())); |
rUpdateDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFileVersion.getRepositoryFile().getUpdateDate())); |
Element accessControl = DocumentFactory.getInstance().createElement("accessControl"); |
accessControl.setText(repositoryFile.getRepositoryFile().getAccessControl()); |
accessControl.setText(repositoryFileVersion.getRepositoryFile().getAccessControl()); |
Element sourceModule = DocumentFactory.getInstance().createElement("sourceModule"); |
if(repositoryFileVersion.getRepositoryFile().getSourceModule() != null) |
sourceModule.setText(repositoryFileVersion.getRepositoryFile().getSourceModule().getModuleName()); |
else |
sourceModule.setText("null"); |
Element deleted = DocumentFactory.getInstance().createElement("deleted"); |
deleted.setText("" + repositoryFile.getRepositoryFile().isDeleted()); |
deleted.setText("" + repositoryFileVersion.getRepositoryFile().isDeleted()); |
repositoryFileElem.add(rSaveDate); |
repositoryFileElem.add(rUpdateDate); |
256,68 → 271,68 |
Element owner = DocumentFactory.getInstance().createElement("owner"); |
repositoryFileElem.add(owner); |
owner.addAttribute("id", "" + repositoryFile.getRepositoryFile().getOwner().getId()); |
owner.addAttribute("id", "" + repositoryFileVersion.getRepositoryFile().getOwner().getId()); |
if (repositoryFile.getRepositoryFile().getOwner().getName() != null) |
if (repositoryFileVersion.getRepositoryFile().getOwner().getName() != null) |
{ |
Element oName = DocumentFactory.getInstance().createElement("name"); |
oName.setText(repositoryFile.getRepositoryFile().getOwner().getName()); |
oName.setText(repositoryFileVersion.getRepositoryFile().getOwner().getName()); |
owner.add(oName); |
} |
if (DocumentFactory.getInstance().createElement("roles") != null) |
{ |
Element oRoles = DocumentFactory.getInstance().createElement("roles"); |
oRoles.setText(repositoryFile.getRepositoryFile().getOwner().getRoles()); |
oRoles.setText(repositoryFileVersion.getRepositoryFile().getOwner().getRoles()); |
owner.add(oRoles); |
} |
Element oClass = DocumentFactory.getInstance().createElement("class"); |
oClass.setText(repositoryFile.getRepositoryFile().getOwner().getClass().getSimpleName()); |
oClass.setText(repositoryFileVersion.getRepositoryFile().getOwner().getClass().getSimpleName()); |
owner.add(oClass); |
if (repositoryFile.getRepositoryFile().getOwner() instanceof User) |
if (repositoryFileVersion.getRepositoryFile().getOwner() instanceof User) |
{ |
Element oUsername = DocumentFactory.getInstance().createElement("username"); |
if(((User) repositoryFile.getRepositoryFile().getOwner()).getUsername() == null) |
if(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getUsername() == null) |
oUsername.setText("UNKNOWN"); |
else |
oUsername.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getUsername()); |
oUsername.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getUsername()); |
owner.add(oUsername); |
if (((User) repositoryFile.getRepositoryFile().getOwner()).getEmail() != null) |
if (((User) repositoryFileVersion.getRepositoryFile().getOwner()).getEmail() != null) |
{ |
Element oEmail = DocumentFactory.getInstance().createElement("email"); |
oEmail.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getEmail()); |
oEmail.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getEmail()); |
owner.add(oEmail); |
} |
if (((User) repositoryFile.getRepositoryFile().getOwner()).getOutEmail() != null) |
if (((User) repositoryFileVersion.getRepositoryFile().getOwner()).getOutEmail() != null) |
{ |
Element outEmail = DocumentFactory.getInstance().createElement("outEmail"); |
outEmail.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getOutEmail()); |
outEmail.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getOutEmail()); |
owner.add(outEmail); |
} |
if (((User) repositoryFile.getRepositoryFile().getOwner()).getBi() != null) |
if (((User) repositoryFileVersion.getRepositoryFile().getOwner()).getBi() != null) |
{ |
Element biEmail = DocumentFactory.getInstance().createElement("bi"); |
biEmail.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getBi()); |
biEmail.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getBi()); |
owner.add(biEmail); |
} |
if (repositoryFile.getRepositoryFile().getOwner() instanceof Teacher) |
if (repositoryFileVersion.getRepositoryFile().getOwner() instanceof Teacher) |
{ |
Element code = DocumentFactory.getInstance().createElement("teacherCode"); |
code.setText("" + ((Teacher) repositoryFile.getRepositoryFile().getOwner()).getSigesCode()); |
code.setText("" + ((Teacher) repositoryFileVersion.getRepositoryFile().getOwner()).getSigesCode()); |
owner.add(code); |
} |
if (repositoryFile.getRepositoryFile().getOwner() instanceof Student) |
if (repositoryFileVersion.getRepositoryFile().getOwner() instanceof Student) |
{ |
Element code = DocumentFactory.getInstance().createElement("studentCode"); |
code.setText("" + ((Student) repositoryFile.getRepositoryFile().getOwner()).getSigesCode()); |
code.setText("" + ((Student) repositoryFileVersion.getRepositoryFile().getOwner()).getSigesCode()); |
owner.add(code); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/repositorydocuments/RepositoryDocumentService.java |
---|
224,7 → 224,7 |
uploadedF.getFileName(), |
"Institutional Repository Document File", |
controloAcesso, |
userSession.getUser()); |
null, userSession.getUser()); |
Set<RepositoryDocumentFileImpl> files = persistent.getRepositoryDocumentFiles(); |
if(files == null) |
{ |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/types/test/TestEnhancedType.java |
---|
New file |
0,0 → 1,83 |
package pt.estgp.estgweb.services.data.types.test; |
import jomm.dao.impl.AbstractDao; |
import junit.framework.TestCase; |
import pt.estgp.estgweb.domain.RepositoryFile; |
import pt.estgp.estgweb.domain.RepositoryFileImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.data.types.AbstractRepositorySourceModuleInterfacePlugin; |
import pt.estgp.estgweb.services.data.types.RepositorySourceModuleMetadata; |
import java.util.ArrayList; |
import java.util.Date; |
/** |
* Created by jorgemachado on 09/02/17. |
*/ |
public class TestEnhancedType extends TestCase |
{ |
static final String REPO_STREAM_FIELD = "repository.stream"; |
public static class TestSourceModule extends AbstractRepositorySourceModuleInterfacePlugin |
{ |
@Override |
public RepositorySourceModuleMetadata getMetadata(String repositoryStream) |
{ |
RepositorySourceModuleMetadata r = new RepositorySourceModuleMetadata(); |
r.setFields(new ArrayList<RepositorySourceModuleMetadata.MetadataField>()); |
RepositorySourceModuleMetadata.MetadataField f = new RepositorySourceModuleMetadata.MetadataField(); |
f.setFieldName(REPO_STREAM_FIELD); |
f.setFieldValue(repositoryStream); |
r.getFields().add(f); |
return r; |
} |
@Override |
public String getModuleName() |
{ |
return "TestSourceModule"; |
} |
@Override |
public Date getSourceUpdateDate(String repositoryStream) { |
return null; |
} |
} |
public void testActorTypeSerialization() |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
TestSourceModule t = new TestSourceModule(); |
RepositoryFile rFile = new RepositoryFileImpl(); |
RepositoryFile rFileNullModule = new RepositoryFileImpl(); |
rFile.setSourceModule(t); |
AbstractDao.getCurrentSession().save(rFile); |
AbstractDao.getCurrentSession().save(rFileNullModule); |
long id = rFile.getId(); |
long idNull = rFileNullModule.getId(); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
AbstractDao.getCurrentSession().beginTransaction(); |
RepositoryFile rLoaded = DaoFactory.getRepositoryFileDaoImpl().get(id); |
RepositoryFile rLoadedNull = DaoFactory.getRepositoryFileDaoImpl().get(idNull); |
assertNotNull(rLoaded.getSourceModule()); |
assertTrue(rLoaded.getSourceModule().getModuleName().equals("TestSourceModule")); |
assertEquals(rLoaded.getSourceModule().getMetadata("4444").getFields().get(0).getFieldValue(),"4444"); |
assertNull(rLoadedNull.getSourceModule()); |
AbstractDao.getCurrentSession().delete(rLoaded); |
AbstractDao.getCurrentSession().delete(rLoadedNull); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/types/AbstractRepositorySourceModuleEnhancedType.java |
---|
New file |
0,0 → 1,15 |
package pt.estgp.estgweb.services.data.types; |
import pt.estgp.estgweb.services.bpmnprocess.types.EnhancedBacoDataInterfacePlugin; |
/** |
* Created by jorgemachado on 06/04/17. |
*/ |
public class AbstractRepositorySourceModuleEnhancedType extends EnhancedBacoDataInterfacePlugin |
{ |
@Override |
public Class returnedClass() |
{ |
return AbstractRepositorySourceModuleInterfacePlugin.class; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/types/RepositorySourceModuleMetadata.java |
---|
New file |
0,0 → 1,42 |
package pt.estgp.estgweb.services.data.types; |
import java.util.List; |
/** |
* Created by jorgemachado on 06/04/17. |
*/ |
public class RepositorySourceModuleMetadata |
{ |
private List<MetadataField> fields; |
public List<MetadataField> getFields() { |
return fields; |
} |
public void setFields(List<MetadataField> fields) { |
this.fields = fields; |
} |
public static class MetadataField |
{ |
String fieldName; |
String fieldValue; |
public String getFieldName() { |
return fieldName; |
} |
public void setFieldName(String fieldName) { |
this.fieldName = fieldName; |
} |
public String getFieldValue() { |
return fieldValue; |
} |
public void setFieldValue(String fieldValue) { |
this.fieldValue = fieldValue; |
} |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/types/AbstractRepositorySourceModuleInterfacePlugin.java |
---|
New file |
0,0 → 1,20 |
package pt.estgp.estgweb.services.data.types; |
import pt.estgp.estgweb.services.bpmnprocess.types.BacoDataInterfaceClassPlugin; |
import java.util.Date; |
/** |
* Created by jorgemachado on 06/04/17. |
* As classes que herdam desta classe não precisam de implementar quaisquer metodos |
* para poderem ser usadas como enhanced classes no Hibernate, uma vez que apenas |
* se necessita de usar o nome da classe para a criar com Reflection |
* |
* @classesAssociadas |
*/ |
public abstract class AbstractRepositorySourceModuleInterfacePlugin extends BacoDataInterfaceClassPlugin |
{ |
public abstract RepositorySourceModuleMetadata getMetadata(String repositoryStream); |
public abstract String getModuleName(); |
public abstract Date getSourceUpdateDate(String repositoryStream); |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/types/README |
---|
New file |
0,0 → 1,24 |
Criar Repository Source Modules |
A classe do Modelo de Source Modules a adicionar deverá: |
1 - ClasseModulo herdar a class AbstractRepositorySourceModuleInterfacePlugin e implementar os métodos da classe |
2 - No momento da criação de um RepositoryFile as instâncias da ClasseModulo deverão ser fornecidas como sourceModule |
3 - Durante o carregamento da base de dados a string que fica guardada no campo de texto da |
Abstract Baco String Enhanced é o nome completo da classe |
4 - O carregamento é a instanciação da classe novamente pelo nome |
5 - Desta forma é um plugin puro sem necessidade de ser instanciada pelo BACO, |
6 - O Hibernate instância a classe por nós. |
################################## |
Usar o plugin das interfaces do baco com o Hibernate noutros casos |
1 - Criar uma classe abstrata A1 com os metodos desejados e herdar de BacoDataInterfaceClassPlugin |
2 - Deve criar um Enhanced class E1 a herdar de EnhancedBacoDataInterfacePlugin e implementar o método getReturnClass |
De seguida deverá proceder como no caso do Repositorio |
Criar um campo no modelo do tipo da sua classe enhanced E1 |
e no momento da criação passar a instancia A1 para o atributo respetivo |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/surveys/GenerateSurveyStatsCsvService.java |
---|
13,7 → 13,6 |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import java.io.*; |
import java.nio.charset.Charset; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
87,7 → 86,7 |
String identifier = survey.getIdentifier(); |
if(identifier == null) |
identifier = repositoryService.storeRepositoryFile(inputStream,"text/comma-separated-values",extension,(int)file.length(),file.getName(),"CSV file of survey: "+survey.getId(), ResourceAccessControlEnum.surveyStatsDomain,userSession); |
identifier = repositoryService.storeRepositoryFile(inputStream,"text/comma-separated-values",extension,(int)file.length(),file.getName(),"CSV file of survey: "+survey.getId(), ResourceAccessControlEnum.surveyStatsDomain, null, userSession); |
else |
repositoryService.updateRepositoryFile(identifier,inputStream,"text/comma-separated-values",extension,(int)file.length(),file.getName(),"CSV file of survey: "+survey.getId(),ResourceAccessControlEnum.surveyStatsDomain); |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/surveys/GenerateSurveyStatsService.java |
---|
7,7 → 7,6 |
import org.jfree.chart.ChartFactory; |
import org.jfree.chart.ChartUtilities; |
import org.jfree.chart.JFreeChart; |
import org.jfree.chart.LegendItemCollection; |
import org.jfree.chart.axis.*; |
import org.jfree.chart.plot.CategoryPlot; |
import org.jfree.chart.plot.PlotOrientation; |
15,11 → 14,9 |
import org.jfree.data.category.DefaultCategoryDataset; |
import org.jfree.text.TextBlockAnchor; |
import org.jfree.ui.RectangleAnchor; |
import org.jfree.ui.TextAnchor; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.views.SurveyView; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.services.data.RepositoryService; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
128,7 → 125,7 |
FileInputStream inputStream = new FileInputStream(file); |
if(identifier == null) |
identifier = repositoryService.storeRepositoryFile(inputStream,"image/png",extension,(int)file.length(),file.getName(),description,ResourceAccessControlEnum.surveyStatsDomain,userSession); |
identifier = repositoryService.storeRepositoryFile(inputStream,"image/png",extension,(int)file.length(),file.getName(),description,ResourceAccessControlEnum.surveyStatsDomain, null, userSession); |
else |
repositoryService.updateRepositoryFile(identifier,inputStream,"image/png",extension,(int)file.length(),file.getName(),description,ResourceAccessControlEnum.surveyStatsDomain); |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/paginasseccoes/SalvarFicheiro.java |
---|
23,7 → 23,7 |
frm.getFicheiro().getFileName(), |
"", |
ResourceAccessControlEnum.authenticatedDomain, |
usession); |
null, usession); |
return id; |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/bpmnprocess/types/BacoDataInterfaceClassPlugin.java |
---|
New file |
0,0 → 1,40 |
package pt.estgp.estgweb.services.bpmnprocess.types; |
/** |
* Created by jorgemachado on 06/04/17. |
*/ |
/** |
* |
* This class should be used only in terms of Interface only |
* |
* Is made with the purpose of create Plugin Interfaces as Enhanced Classes |
* |
*/ |
public abstract class BacoDataInterfaceClassPlugin extends BacoDataAbstractType |
{ |
@Override |
public boolean equals(Object o) |
{ |
if (this == o) return true; |
if (o == null || getClass() != o.getClass()) return false; |
BacoDataInterfaceClassPlugin that = (BacoDataInterfaceClassPlugin) o; |
return getClass().getName().equals(that.getClass().getName()); |
} |
@Override |
public int hashCode() |
{ |
return getClass().getName().hashCode(); |
} |
@Override |
public String toString() |
{ |
return getClass().getName(); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/bpmnprocess/types/EnhancedBacoDataInterfacePlugin.java |
---|
New file |
0,0 → 1,43 |
package pt.estgp.estgweb.services.bpmnprocess.types; |
/** |
* Created by jorgemachado on 03/02/17. |
*/ |
public abstract class EnhancedBacoDataInterfacePlugin extends AbstractStringEnhancedType |
{ |
@Override |
public Object fromXMLString(String xmlValue) { |
if(xmlValue == null) |
return null; |
try { |
return Class.forName(xmlValue).newInstance(); |
} catch (InstantiationException e) { |
e.printStackTrace(); |
} catch (IllegalAccessException e) { |
e.printStackTrace(); |
} catch (ClassNotFoundException e) { |
e.printStackTrace(); |
} |
return null; |
} |
@Override |
public abstract Class returnedClass(); |
@Override |
public BacoDataInterfaceClassPlugin fromString(String className) { |
if(className == null) |
return null; |
try { |
return (BacoDataInterfaceClassPlugin) Class.forName(className).newInstance(); |
} catch (InstantiationException e) { |
e.printStackTrace(); |
} catch (IllegalAccessException e) { |
e.printStackTrace(); |
} catch (ClassNotFoundException e) { |
e.printStackTrace(); |
} |
return null; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/profile/CurriculumService.java |
---|
85,7 → 85,7 |
String extension = FilesUtils.getExtension(name); |
if(recordView.getRepositoryStream() == null) |
{ |
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "profile.curriculum.record " + r.getTitle() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.parse(recordView.getFileAccess()),userSession); |
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "profile.curriculum.record " + r.getTitle() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.parse(recordView.getFileAccess()), null, userSession); |
r.setRepositoryStream(identifier); |
} |
else |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/processes/ProcessesService.java |
---|
3,24 → 3,14 |
import jomm.utils.FilesUtils; |
import org.apache.log4j.Logger; |
import org.apache.struts.upload.FormFile; |
import org.dom4j.Document; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.views.CourseView; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.services.data.IRepositoryFile; |
import pt.estgp.estgweb.services.data.RepositoryService; |
import pt.estgp.estgweb.services.expceptions.AlreadyExistsException; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.utils.DatesUtils; |
import pt.estgp.estgweb.utils.Dom4jUtil; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import java.io.IOException; |
import java.io.InputStream; |
import java.io.PrintWriter; |
import java.io.StringWriter; |
import java.util.*; |
/* |
78,7 → 68,7 |
String repositoryId; |
try { |
repositoryId = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(), FilesUtils.getExtension(file.getFileName()), |
file.getFileSize(),file.getFileName(),"Process file " + metaProcess.getName(), ResourceAccessControlEnum.processDomain,sess); |
file.getFileSize(),file.getFileName(),"Process file " + metaProcess.getName(), ResourceAccessControlEnum.processDomain, null, sess); |
} catch (IOException e) { |
logger.error(e,e); |
throw e; |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/assessments/GeneratePdfService.java |
---|
226,7 → 226,7 |
String identifier = assessment.getIdentifier(); |
if(identifier==null) |
identifier = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain,userSession); |
identifier = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain, null, userSession); |
else |
repositoryService.updateRepositoryFile(identifier,inputStream, "application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain); |
610,7 → 610,7 |
String identifierResponse = assessmentResponse.getIdentifier(); |
if(identifierResponse==null) |
identifierResponse = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain,userSession); |
identifierResponse = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain, null, userSession); |
else |
repositoryService.updateRepositoryFile(identifierResponse,inputStream, "application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain); |
789,7 → 789,7 |
String identifierEvaluations = assessment.getEvaluationsIdentifier(); |
if(identifierEvaluations==null) |
identifierEvaluations = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain,userSession); |
identifierEvaluations = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain, null, userSession); |
else |
repositoryService.updateRepositoryFile(identifierEvaluations,inputStream, "application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain); |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/assessments/InsertAssessmentAnswersService.java |
---|
62,7 → 62,7 |
String identifier = null; |
try { |
identifier = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(),extension,file.getFileSize(),file.getFileName(),description, ResourceAccessControlEnum.publicDomain,userSession); |
identifier = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(),extension,file.getFileSize(),file.getFileName(),description, ResourceAccessControlEnum.publicDomain, null, userSession); |
a.setIdentifier(identifier); |
} catch (IOException e) { |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitProgramImpl.java |
---|
627,7 → 627,7 |
cu.setCode(line.codigoSIGESUnidade); |
cu.setCourseCode(line.codigoCurso); |
cu.setName(line.nomeUnidadeCurricular); |
cu.setInstitutionCode("" + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode()); |
//cu.setInstitutionCode("" + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode()); |
setCourse(cu, line); |
DaoFactory.getCourseUnitDaoImpl().save(cu); |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java |
---|
7,7 → 7,6 |
import org.hibernate.criterion.Order; |
import org.hibernate.criterion.Projections; |
import org.hibernate.sql.JoinFragment; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.dao.DaoUtils; |
753,40 → 752,14 |
public List<CourseUnit> courseUnits; |
} |
/** |
* Load all programs from active courses that are for validation |
* @param userSession |
* @return |
*/ |
public List<CourseMissingValidationProgram> loadMissingProgramValidate(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
//List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCourses(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCoursesCoordinationsOrCommissions(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(),userSession.getUser()); |
for(Course course: courses) |
{ |
//CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course); |
//if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
//{ |
List<CourseUnit> courseUnits = loadMissingProgramValidateGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
{ |
CourseMissingValidationProgram c = new CourseMissingValidationProgram(); |
c.course = course; |
c.courseUnits = courseUnits; |
result.add(c); |
} |
//} |
} |
return result; |
} |
//TODO |
public List<CourseMissingValidationProgram> loadMissingProgramValidateOptimized(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao |
//Obtenho todas as cadeiras de todos os cursos |
//Organizo-as por curso |
813,39 → 786,13 |
} |
return result; |
} |
/** |
* Load all programs missing from active courses |
* @param userSession |
* @return |
*/ |
public List<CourseMissingValidationProgram> loadMissingPrograms(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
//List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCourses(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCoursesCoordinationsOrCommissions(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(),userSession.getUser()); |
for(Course course: courses) |
{ |
//CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course); |
//if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
//{ |
List<CourseUnit> courseUnits = loadMissingProgramGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
{ |
CourseMissingValidationProgram c = new CourseMissingValidationProgram(); |
c.course = course; |
c.courseUnits = courseUnits; |
result.add(c); |
} |
//} |
} |
return result; |
} |
public List<CourseMissingValidationProgram> loadMissingProgramsOptimized(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao |
//Obtenho todas as cadeiras de todos os cursos |
//Organizo-as por curso |
879,29 → 826,35 |
public List<CourseUnit> courseUnits; |
} |
/** |
* METODO ANTIGO QUE ESTAVA NA COURSE COMISSION |
* @param userSession |
* @return |
*/ |
public List<CourseMissingValidationEvaluation> loadMissingEvaluationValidate(UserSession userSession) |
public List<CourseMissingValidationEvaluation> loadMissingEvaluationOptimized(UserSession userSession) |
{ |
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>(); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(); |
for(Course course: courses) |
//Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao |
//Obtenho todas as cadeiras de todos os cursos |
//Organizo-as por curso |
//devolvo a lista final |
HashMap<Course,CourseMissingValidationEvaluation> mapaUnidadesCurso = new HashMap<Course, CourseMissingValidationEvaluation>(); |
List<CourseUnit> courseUnits = loadMissingEvaluationOptimizedComissionsAndSecreariat(userSession.getUser()); |
for(CourseUnit cu : courseUnits) |
{ |
CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course); |
if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
if(mapaUnidadesCurso.get(cu.getCourse()) == null) |
{ |
List<CourseUnit> courseUnits = loadMissingEvaluationValidateGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
{ |
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation(); |
c.course = course; |
c.courseUnits = courseUnits; |
result.add(c); |
} |
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation(); |
c.course = DaoFactory.getCourseDaoImpl().narrow(cu.getCourse()); |
c.courseUnits = new ArrayList<CourseUnit>(); |
c.courseUnits.add(cu); |
result.add(c); |
mapaUnidadesCurso.put(c.course,c); |
} |
else |
{ |
CourseMissingValidationEvaluation c = mapaUnidadesCurso.get(cu.getCourse()); |
c.courseUnits.add(cu); |
} |
} |
return result; |
} |
910,7 → 863,7 |
{ |
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>(); |
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao |
//Obtenho todas as cadeiras de todos os cursos |
//Organizo-as por curso |
939,8 → 892,8 |
} |
//TODO PARA USAR MAIS TARDE |
/** |
* @param u utilizador com vista para cursos |
* Se for secretaria considera todos os cursos |
1098,60 → 1051,8 |
return teacherCompleteFalse; |
} |
public List<CourseMissingValidationEvaluation> loadMissingEvaluationOptimized(UserSession userSession) |
{ |
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>(); |
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao |
//Obtenho todas as cadeiras de todos os cursos |
//Organizo-as por curso |
//devolvo a lista final |
HashMap<Course,CourseMissingValidationEvaluation> mapaUnidadesCurso = new HashMap<Course, CourseMissingValidationEvaluation>(); |
List<CourseUnit> courseUnits = loadMissingEvaluationOptimizedComissionsAndSecreariat(userSession.getUser()); |
for(CourseUnit cu : courseUnits) |
{ |
if(mapaUnidadesCurso.get(cu.getCourse()) == null) |
{ |
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation(); |
c.course = DaoFactory.getCourseDaoImpl().narrow(cu.getCourse()); |
c.courseUnits = new ArrayList<CourseUnit>(); |
c.courseUnits.add(cu); |
result.add(c); |
mapaUnidadesCurso.put(c.course,c); |
} |
else |
{ |
CourseMissingValidationEvaluation c = mapaUnidadesCurso.get(cu.getCourse()); |
c.courseUnits.add(cu); |
} |
} |
return result; |
} |
public List<CourseMissingValidationEvaluation> loadMissingEvaluation(UserSession userSession) |
{ |
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>(); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(); |
for(Course course: courses) |
{ |
CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course); |
if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
List<CourseUnit> courseUnits = loadMissingEvaluation(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
{ |
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation(); |
c.course = course; |
c.courseUnits = courseUnits; |
result.add(c); |
} |
} |
} |
return result; |
} |
public List<CourseUnit> loadMissingEvaluationOptimizedComissionsAndSecreariat(User u) |
{ |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/repositorydocs/RepositoryDocController.java |
---|
3,6 → 3,10 |
import org.apache.struts.action.ActionForm; |
import org.json.JSONArray; |
import org.json.JSONObject; |
import org.jsoup.Jsoup; |
import org.jsoup.nodes.Document; |
import org.jsoup.nodes.Element; |
import org.jsoup.select.Elements; |
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController; |
import pt.estgp.estgweb.web.controllers.utils.FilesUploadResult; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
11,6 → 15,8 |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import java.net.URL; |
import java.util.GregorianCalendar; |
/** |
* Created by jorgemachado on 23/02/17. |
144,5 → 150,153 |
addMessageAsString(request,"Interface guardada com sucesso"); |
return true; |
} |
public JSONObject selectObjectsFromURL(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Throwable |
{ |
String paragraphSelector = request.getParameter("paragraphSelector"); |
String url = request.getParameter("urlSource"); |
URL u = new URL(url); |
String domainRoot = u.getProtocol() + "://" + u.getHost(); |
//if(domainRoot.endsWith("/")) |
// domainRoot = domainRoot.substring(0,domainRoot.length()-1); |
JSONArray sections = new JSONArray(); |
JSONArray nowSectionDocuments = new JSONArray(); |
JSONObject section = new JSONObject(); |
section.put("section","PRIMEIRA_IGNORAR"); |
section.put("documents",nowSectionDocuments); |
sections.put(section); |
int count = 0; |
Document doc = Jsoup.connect(url).get(); |
Elements newsHeadlines = doc.select(paragraphSelector); |
String dateYearSection = null; |
for(Element e: newsHeadlines) |
{ |
String allText = e.text().replaceAll("\\n", " ").replaceAll("[ \\t\\xA0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000]"," ").trim(); |
if(allText.length() > 0) |
{ |
System.out.println("-----------------------------------"); |
count++; |
String[] nodes = e.html().replaceAll("(?i)<br[^>]*>", "br2n").split("br2n"); |
String docTitle = ""; |
String dateYear = ""; |
if(dateYearSection != null) |
{ |
dateYear = dateYearSection; |
} |
else |
{ |
for(int i = new GregorianCalendar().get(GregorianCalendar.YEAR); i > 2000;i--) |
{ |
if(allText.indexOf("" + i)>=0) |
{ |
dateYear = i + ""; |
break; |
} |
} |
} |
JSONArray files = new JSONArray(); |
for(String node : nodes) |
{ |
Document lineText = Jsoup.parse(node); |
Elements as = lineText.select("a"); |
if(as.size()==0) |
{ |
docTitle+= " " + lineText.text().replaceAll("\\n", " ").replaceAll("[ \\t\\xA0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000]"," ").trim(); |
} |
else if(as.size() == 1) |
{ |
JSONObject file = new JSONObject(); |
//lineText includes URL text + Line without URL Text |
String fileText = lineText.text().replaceAll("[ \\t\\xA0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000]"," ").trim(); |
String href = as.get(0).attr("href"); |
if(href.startsWith("/")) |
{ |
href = domainRoot + href; |
} |
file.put("href", href); |
file.put("text",fileText); |
files.put(file); |
System.out.println("FILE: " + fileText + " :: URL :: " + as.get(0).attr("href")); |
} |
else if(as.size() >= 1) |
{ |
//when we have several URL's n same line we put in each URL only the text inside <a> |
for(Element a : as) |
{ |
JSONObject file = new JSONObject(); |
String fileText = a.text().replaceAll("[ \\t\\xA0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000]"," ").trim(); |
String href = as.get(0).attr("href"); |
if(href.startsWith("/")) |
{ |
href = domainRoot + href; |
} |
file.put("href",href); |
file.put("text",fileText); |
files.put(file); |
System.out.println("?????????FILE: " + fileText + " :: URL :: " + as.get(0).attr("href")); |
} |
} |
} |
if(files.length() == 0) |
{ |
System.out.println("SECTION CANDIDATE: " + docTitle); |
nowSectionDocuments = new JSONArray(); |
section = new JSONObject(); |
section.put("section",docTitle); |
section.put("documents",nowSectionDocuments); |
sections.put(section); |
dateYearSection = null; |
for(int i = new GregorianCalendar().get(GregorianCalendar.YEAR); i > 2000;i--) |
{ |
if(docTitle.indexOf("" + i)>=0) |
{ |
dateYearSection = i + ""; |
break; |
} |
} |
} |
else |
{ |
JSONObject j = new JSONObject(); |
docTitle = docTitle.trim(); |
if(docTitle.startsWith("-")) |
{ |
docTitle = docTitle.substring(1); |
} |
if(docTitle.endsWith("-")) |
{ |
docTitle = docTitle.substring(0, docTitle.length()-1); |
} |
docTitle = docTitle.trim(); |
j.put("text",docTitle); |
if(files.length() > 0) |
j.put("files",files); |
if(dateYear.length()>0) |
j.put("year", dateYear); |
System.out.println(docTitle); |
nowSectionDocuments.put(j); |
} |
} |
} |
System.out.println(sections.toString()); |
System.out.println(count); |
JSONObject sectionsObj = new JSONObject(); |
sectionsObj.put("sections",sections); |
return sectionsObj; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/processes/MetaProcessesController.java |
---|
7,7 → 7,6 |
import org.apache.struts.upload.FormFile; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.MetaProcess; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.services.data.RepositoryService; |
15,10 → 14,6 |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.form.processes.NewMetaProcessForm; |
import pt.estgp.estgweb.web.form.processes.NewProcessForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
64,7 → 59,7 |
if(f.getMetaProcess().getRepositoryStream() == null || f.getMetaProcess().getRepositoryStream().length() == 0) |
{ |
System.out.println("AQUI"); |
String repositoryId = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(), FilesUtils.getExtension(file.getFileName()),file.getFileSize(),file.getFileName(),"MetaProcess Template file", ResourceAccessControlEnum.authenticatedDomain, UserSessionProxy.loadUserSessionFromRequest(request)); |
String repositoryId = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(), FilesUtils.getExtension(file.getFileName()),file.getFileSize(),file.getFileName(),"MetaProcess Template file", ResourceAccessControlEnum.authenticatedDomain, null, UserSessionProxy.loadUserSessionFromRequest(request)); |
System.out.println(repositoryId); |
f.getMetaProcess().setRepositoryStream(repositoryId); |
f.setFileName(file.getFileName()); |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/processes/ProcessEventController.java |
---|
1,6 → 1,5 |
package pt.estgp.estgweb.web.controllers.processes; |
import com.sun.tools.javac.code.Type; |
import jomm.dao.utils.HibernateUtils; |
import jomm.utils.FilesUtils; |
import jomm.utils.MessageResources; |
9,7 → 8,6 |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.upload.FormFile; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.Process; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
17,16 → 15,11 |
import pt.estgp.estgweb.services.data.RepositoryService; |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.form.processes.NewProcessForm; |
import pt.estgp.estgweb.web.form.processes.ProcessEventForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import java.io.File; |
import java.io.IOException; |
import java.util.Date; |
import java.util.HashSet; |
151,7 → 144,7 |
String repositoryId; |
try { |
repositoryId = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(), FilesUtils.getExtension(file.getFileName()), |
file.getFileSize(),file.getFileName(),"Process Event file " + p.getProcess().getMetaProcess().getName(), ResourceAccessControlEnum.processDomain,sess); |
file.getFileSize(),file.getFileName(),"Process Event file " + p.getProcess().getMetaProcess().getName(), ResourceAccessControlEnum.processDomain, null, sess); |
ProcessEventFileImpl ef = DomainObjectFactory.createProcessEventFileImpl(); |
Set<ProcessEventFile> proceSet = null; |