Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 291 → Rev 297

/impl/importRoutines.xml
New file
0,0 → 1,19
<?xml version="1.0" encoding="UTF-8"?>
<project name="estgweb-import" basedir="." default="help">
 
 
<import file="build.xml"/>
 
 
<target name="courses">
<java classname="pt.estgp.estgweb.services.sigesimports.ImportCourseService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>
</target>
<target name="teachers">
<java classname="pt.estgp.estgweb.services.sigesimports.ImportTeachersService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>
</target>
<target name="students">
<java classname="pt.estgp.estgweb.services.sigesimports.ImportStudentsService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>
</target>
 
 
</project>
/impl/src/java/jomm/utils/StreamsUtils.java
37,6 → 37,7
 
public static void inputStream2File(InputStream stream, File f) throws IOException
{
f.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(f);
inputStream2OutputStream(stream,out);
}
/impl/src/java/pt/estgp/estgweb/services/blogs/CreateBlogService.java
2,6 → 2,7
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.data.ImageManager;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.domain.dao.DaoFactory;
36,6 → 37,11
Blog b;
if(bV.getId() <= 0)
{
if(bV.getImage() != null)
{
DaoFactory.getImageDaoImpl().save(bV.getImage());
ImageManager.store((ImageImpl) bV.getImage());
}
if(bV.getCourseUnitView() != null)
{
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(bV.getCourseUnitView().getId());
58,6 → 64,15
else
{
b = DaoFactory.getBlogDaoImpl().get(bV.getSerializable());
 
if(bV.getImage() != null && b.getImage() != null)
DaoFactory.getImageDaoImpl().delete(b.getImage().getId());
if(bV.getImage() != null)
{
DaoFactory.getImageDaoImpl().save(bV.getImage());
ImageManager.store((ImageImpl) bV.getImage());
b.setImage(bV.getImage());
}
}
if(userSession.getUser() != null && userSession.getUser().isSuperuserOrAdmin())
bV.persistViewInObjectByAdmin(b);
/impl/src/java/pt/estgp/estgweb/services/blogs/CreateBlogPostService.java
3,10 → 3,7
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.domain.views.BlogPostView;
import pt.estgp.estgweb.domain.Blog;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.BlogPostImpl;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.data.ImageManager;
54,13 → 51,9
DaoFactory.getImageDaoImpl().delete(bP.getImage().getId());
}
if(bPV.getImage() != null)
{
byte[] bytes = bPV.getImage().getImage();
bPV.getImage().setImage(null);
{
DaoFactory.getImageDaoImpl().save(bPV.getImage());
bPV.getImage().setImage(bytes);
ImageManager.store(bPV.getImage());
bPV.getImage().setImage(null);
ImageManager.store((ImageImpl) bPV.getImage());
}
 
 
/impl/src/java/pt/estgp/estgweb/services/data/ResourceManager.java
5,6 → 5,7
import java.io.*;
 
import jomm.utils.StreamsUtils;
import org.apache.log4j.Logger;
 
/**
* @author Jorge Machado
14,15 → 15,48
public class ResourceManager
{
 
public static final int DOCS_IN_PATH = 1000;
public static final int DOCS_FIRST_DIR_LEN = 20;
 
public static void saveResource(InputStream stream, String resourcePath, long id) throws IOException
{
StreamsUtils.inputStream2File(stream,new File(Globals.DATA_DIR + resourcePath + "/" + id));
StreamsUtils.inputStream2File(stream, new File(Globals.DATA_DIR + resourcePath + getDocumentPathById(id)));
}
 
public static InputStream getResource(String resourcePath,long id) throws FileNotFoundException
public static InputStream getResource(String resourcePath, long id) throws FileNotFoundException
{
return new FileInputStream(Globals.DATA_DIR + resourcePath + "/" + id);
return new FileInputStream(Globals.DATA_DIR + resourcePath + getDocumentPathById(id));
}
 
public static void setAllChars(char c, char[] dir)
{
for (int i = 0; i < dir.length; i++)
{
dir[i] = c;
}
}
 
public static void copyCharsToArray(char[] dir, String str)
{
int dirLen = dir.length;
int strLen = str.length();
 
for (int i = 0; i < strLen; i++)
{
dir[dirLen - i - 1] = str.charAt(strLen - i - 1);
}
}
 
public static String getDocumentPathById(long id)
{
char[] dir = new char[DOCS_FIRST_DIR_LEN];
setAllChars('0', dir);
long dirNumber = id / DOCS_IN_PATH;
dirNumber = dirNumber * DOCS_IN_PATH;
String dirNumberStr = "" + dirNumber;
copyCharsToArray(dir, dirNumberStr);
dirNumberStr = new String(dir);
return "/" + dirNumberStr + "/" + id;
}
 
}
/impl/src/java/pt/estgp/estgweb/services/data/ImageManager.java
1,6 → 1,7
package pt.estgp.estgweb.services.data;
 
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.ImageImpl;
 
import java.io.ByteArrayInputStream;
import java.io.IOException;
19,10 → 20,12
 
private static final Logger logger = Logger.getLogger(ImageManager.class);
 
public static boolean store(Image img)
public static boolean store(ImageImpl img)
{
try
{
if(img.getId() <= 0)
logger.error("Image arrive with out identifier: save it first");
ResourceManager.saveResource(new ByteArrayInputStream(img.getImage()), IMAGES_RESOURCE_PATH, img.getId());
return true;
}
/impl/src/java/pt/estgp/estgweb/services/announcements/CreateAnnouncementService.java
6,6 → 6,7
import pt.estgp.estgweb.services.jobs.JobScheduleService;
import pt.estgp.estgweb.services.email.EMAILJob;
import pt.estgp.estgweb.services.email.SendEmailService;
import pt.estgp.estgweb.services.data.ImageManager;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.enums.LangEnum;
import pt.estgp.estgweb.domain.dao.DaoFactory;
49,6 → 50,19
announcementView.persistViewInObject(a);
a.setOwner(userSession.getUser());
a.setSaveDate(new Date());
 
if(imageBig != null)
{
DaoFactory.getImageDaoImpl().save(imageBig);
ImageManager.store((ImageImpl) imageBig);
((ImageImpl)imageBig).setImage(null);
}
if(imageSmall != null)
{
DaoFactory.getImageDaoImpl().save(imageSmall);
ImageManager.store((ImageImpl) imageSmall);
((ImageImpl)imageSmall).setImage(null);
}
a.setBigImage(imageBig);
a.setSmallImage(imageSmall);
if(a.getTargetRoles() == null || a.getTargetRoles().length() == 0)
56,18 → 70,23
}
else
{
a= DaoFactory.getAnnouncementDaoImpl().get(announcementView.getSerializable());
a = DaoFactory.getAnnouncementDaoImpl().get(announcementView.getSerializable());
 
if(imageBig != null)
{
try
if(a.getBigImage() != null)
{
DaoFactory.getImageDaoImpl().delete(a.getBigImage().getId());
// try
// {
DaoFactory.getImageDaoImpl().delete(a.getBigImage().getId());
// }
// catch(Exception e)
// {
// logger.info("Announcement:" + announcementView.getId() + "do not have imageBig!");
// }
}
catch(Exception e)
{
logger.info("Announcement:" + announcementView.getId() + "do not have imageBig!");
}
DaoFactory.getImageDaoImpl().save(imageBig);
ImageManager.store((ImageImpl) imageBig);
announcementView.setBigImage(imageBig);
}
else
79,20 → 98,25
}
catch(Exception e)
{
logger.info("ImageBig form announcement:" + announcementView.getId() + "do not exist!");
logger.debug("ImageBig form announcement:" + announcementView.getId() + "do not exist!");
}
}
 
if(imageSmall!=null)
{
try
if(a.getSmallImage() != null)
{
// try
// {
DaoFactory.getImageDaoImpl().delete(a.getSmallImage().getId());
// }
// catch(Exception e)
// {
// logger.info("Announcement:" + announcementView.getId() + "do not have smallBig!");
// }
}
catch(Exception e)
{
logger.info("Announcement:" + announcementView.getId() + "do not have smallBig!");
}
DaoFactory.getImageDaoImpl().save(imageSmall);
ImageManager.store((ImageImpl) imageSmall);
announcementView.setSmallImage(imageSmall);
}
else
/impl/src/java/pt/estgp/estgweb/domain/ImageImpl.java
10,9 → 10,22
*/
public class ImageImpl extends Image
{
public Serializable getSerializable()
 
private byte[] image;
 
public Serializable getSerializable()
{
return getId();
}
 
 
public byte[] getImage()
{
return image;
}
 
public void setImage(byte[] image)
{
this.image = image;
}
}
/impl/src/java/pt/estgp/estgweb/web/utils/DomainUtils.java
2,6 → 2,7
 
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.ImageImpl;
import org.apache.struts.upload.FormFile;
import org.apache.log4j.Logger;
import jomm.utils.StreamsUtils;
30,7 → 31,7
logger.error(e,e);
return null;
}
Image i = DomainObjectFactory.createImageImpl();
ImageImpl i = DomainObjectFactory.createImageImpl();
i.setImage(bytes);
i.setContentType(image.getContentType());
i.setSize(image.getFileSize());
/impl/src/java/pt/estgp/estgweb/web/ImageStream.java
1,7 → 1,9
package pt.estgp.estgweb.web;
 
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.ImageImpl;
import pt.estgp.estgweb.domain.dao.impl.ImageDaoImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.data.ImageManager;
 
import java.io.*;
33,7 → 35,7
 
long id = Long.parseLong(imageRequarired.trim());
AbstractDao.getCurrentSession().beginTransaction();
Image image = new ImageDaoImpl().get(id);
ImageImpl image = (ImageImpl) DaoFactory.getImageDaoImpl().get(id);
try
{
response.setContentType(image.getContentType());
/impl/src/doc/estgweb.eap
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/impl/src/hbm/pt/estgp/estgweb/domain/GenericUser.hbm.xml
16,6 → 16,7
<property name="superuser" type="boolean"/>
<property name="name" type="string" index="nameIndex"/>
<property name="roles" type="string" index="rolesIndex"/>
<many-to-one name="image" column="image" class="pt.estgp.estgweb.domain.Image" lazy="no-proxy" outer-join="false" cascade="all"/>
<subclass name="pt.estgp.estgweb.domain.GenericUserImpl">
<subclass name="pt.estgp.estgweb.domain.Group">
<meta attribute="scope-class">public abstract</meta>
61,7 → 62,7
<key column="contributorId"/>
<many-to-many class="pt.estgp.estgweb.domain.Record" column="recordId"/>
</set>
<set name="managedIdentifierCollectionsManager" lazy="true" table="managedIdentifierCollectionManagers">
<set name="managedIdentifierCollectionsManager" lazy="true" table="managedidentifiercollectionmanagers">
<key column="managerId"/>
<many-to-many class="pt.estgp.estgweb.domain.ManagedIdentifierCollection" column="collectionId"/>
</set>
/impl/src/hbm/pt/estgp/estgweb/domain/Image.hbm.xml
17,7 → 17,6
<property name="contentType" type="string"/>
<property name="size" type="int"/>
<property name="description" type="text"/>
<property name="image" type="binary" length="4194304"/>
<subclass name="pt.estgp.estgweb.domain.ImageImpl" discriminator-value="ImageImpl"/>
</class>
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml
31,7 → 31,7
<key column="courseUnit"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitBlog" />
</set>
<set name="teachers" lazy="true" table="teachedUnits">
<set name="teachers" lazy="true" table="teachedunits">
<key column="courseUnitId"/>
<many-to-many class="pt.estgp.estgweb.domain.TeacherImpl" column="teacherId"/>
</set>
54,7 → 54,7
<subclass name="pt.estgp.estgweb.domain.CourseUnitImpl" discriminator-value="CourseUnitImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.CourseUnitQuestion" table="courseUnitQuestion" abstract="true">
<class name="pt.estgp.estgweb.domain.CourseUnitQuestion" table="courseunitquestion" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
71,7 → 71,7
<subclass name="pt.estgp.estgweb.domain.CourseUnitQuestionImpl" discriminator-value="CourseUnitQuestionImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.CourseUnitAssignement" table="courseUnitAssignement" abstract="true">
<class name="pt.estgp.estgweb.domain.CourseUnitAssignement" table="courseunitassignement" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
95,7 → 95,7
<subclass name="pt.estgp.estgweb.domain.CourseUnitAssignementImpl" discriminator-value="CourseUnitAssignementImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.CourseUnitDeliverable" table="courseUnitDeliverable" abstract="true">
<class name="pt.estgp.estgweb.domain.CourseUnitDeliverable" table="courseunitdeliverable" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
113,7 → 113,7
<subclass name="pt.estgp.estgweb.domain.CourseUnitDeliverableImpl" discriminator-value="CourseUnitDeliverableImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.CourseUnitGrade" table="courseUnitGrade" abstract="true">
<class name="pt.estgp.estgweb.domain.CourseUnitGrade" table="courseunitgrade" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
132,7 → 132,7
<subclass name="pt.estgp.estgweb.domain.CourseUnitGradeImpl" discriminator-value="CourseUnitGradeImpl"/>
</class>
 
<!--<class name="pt.estgp.estgweb.domain.CourseUnit" table="courseUnitAssignement" abstract="true">-->
<!--<class name="pt.estgp.estgweb.domain.CourseUnit" table="courseunitassignement" abstract="true">-->
<!--<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>-->
<!--<meta attribute="scope-class">public abstract</meta>-->
<!--<id name="id" type="long">-->
/impl/src/hbm/pt/estgp/estgweb/domain/IdentifiersManagement.hbm.xml
20,7 → 20,7
<subclass name="pt.estgp.estgweb.domain.ManagedIdentifierImpl" discriminator-value="ManagedIdentifierImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.ManagedIdentifierCollection" table="managedIdentifierCollection" abstract="true">
<class name="pt.estgp.estgweb.domain.ManagedIdentifierCollection" table="managedidentifiercollection" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
33,7 → 33,7
<property name="sequenceNumber" type="long"/>
<property name="description" type="text"/>
<many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" lazy="false" outer-join="true"/>
<set name="managers" lazy="true" table="managedIdentifierCollectionManagers">
<set name="managers" lazy="true" table="managedIdentifiercollectionmanagers">
<key column="collectionId"/>
<many-to-many class="pt.estgp.estgweb.domain.User" column="managerId"/>
</set>
/impl/src/web/admin/courseunits/courseunit.jsp
84,11 → 84,11
<bean:message key="courseunit.teachers"/>
</th>
<td>
<logic:lessEqual value="0" name="courseunit.id">
<logic:lessEqual value="0" name="CourseUnitView" property="id">
<i><bean:message key="courseunit.to.add.teachers.save.first"/></i>
</logic:lessEqual>
 
<logic:greaterThan value="0" name="courseunit.id">
<logic:greaterThan value="0" name="CourseUnitView" property="id">
<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">
128,11 → 128,11
</th>
<td>
 
<logic:lessEqual value="0" name="courseunit.id">
<logic:lessEqual value="0" name="CourseUnitView" property="id">
<i><bean:message key="courseunit.to.add.students.save.first"/></i>
</logic:lessEqual>
 
<logic:greaterThan value="0" name="courseunit.id">
<logic:greaterThan value="0" name="CourseUnitView" property="id">
<html:text styleClass="text" property="studentCode"/>
<input type="button" value="<bean:message key="add"/>"
onclick="set(this.form,'addStudent');this.form.submit();">