Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 360 → Rev 363

/impl/conf/language/MessageResourcesCourse.properties
55,10 → 55,10
course.program.courses.choose.year=Escolha o ano que deseja consultar
 
 
courseunit.programfile.valid=programa <u>Aprovado</u> pela coordenação de área
 
 
 
 
 
 
 
/impl/conf/app.properties
30,8 → 30,12
email.courseunit.announcement.subject.pt={0}: {1} (ESTG)
email.courseunit.announcement.subject.en={0}: {1} (ESTG)
 
email.courseunit.blogpost.subject.pt={0}: {1} (ESTG)
email.courseunit.blogpost.subject.en={0}: {1} (ESTG)
 
email.new.grades=true
email.courseunit.announcements=true
email.courseunit.blogs=true
 
email.summaries=false
 
/impl/conf/template/email/courseUnitBlogPost_en.txt
New file
0,0 → 1,22
# 0 : Course Unit Name
# 1 : Title
# 2 : Text
# 3 : Teacher
#
# Course Unit Announcement
#
Dear Student
 
A new post has been inserted in unit blog:
{0}
 
{1}
 
{2}
 
Best Regards {3}
 
---------------------------------------------
Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Portalegre
http://www.estgp.pt
/impl/conf/template/email/courseUnitBlogPost_pt.txt
New file
0,0 → 1,22
# 0 : Course Unit Name
# 1 : Title
# 2 : Text
# 3 : Teacher
#
# Course Unit Announcement
#
Caro estudante
 
Um novo post foi publicado no blog da unidade:
{0}
 
{1}
 
{2}
 
Com os melhores cumprimentos {3}
 
---------------------------------------------
Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Portalegre
http://www.estgp.pt
/impl/src/java/pt/estgp/estgweb/Globals.java
146,6 → 146,7
public static final boolean EMAIL_NEW_GRADES = ConfigProperties.getBooleanProperty("email.new.grades");
public static final boolean EMAIL_SUMMARIES = ConfigProperties.getBooleanProperty("email.summaries");
public static final boolean EMAIL_COURSEUNIT_ANNOUNCEMENTS = ConfigProperties.getBooleanProperty("email.courseunit.announcements");
public static final boolean EMAIL_COURSEUNIT_BLOGS = ConfigProperties.getBooleanProperty("email.courseunit.blogs");
 
public static final boolean SMS_COURSEUNIT_ANNOUNCEMENT_ONLY_PROFS = ConfigProperties.getBooleanProperty("sms.courseunit.announcement.only.profs");
 
185,6 → 186,11
public static final String EMAIL_COURSEUNIT_ANNOUNCEMENT_TEMPLATE_PT = "courseUnitAnnouncement_pt.txt";
public static final String EMAIL_COURSEUNIT_ANNOUNCEMENT_TEMPLATE_EN = "courseUnitAnnouncement_en.txt";
 
public static final String EMAIL_COURSEUNIT_BLOGPOST_SUBJECT_PT = ConfigProperties.getProperty("email.courseunit.blogpost.subject.pt");
public static final String EMAIL_COURSEUNIT_BLOGPOST_SUBJECT_EN = ConfigProperties.getProperty("email.courseunit.blogpost.subject.en");
public static final String EMAIL_COURSEUNIT_BLOGPOST_TEMPLATE_PT = "courseUnitBlogPost_pt.txt";
public static final String EMAIL_COURSEUNIT_BLOGPOST_TEMPLATE_EN = "courseUnitBlogPost_en.txt";
 
public static final String EMAIL_NEW_GRADES_SUBJECT_PT = ConfigProperties.getProperty("email.new.grades.subject.pt");
public static final String EMAIL_NEW_GRADES_SUBJECT_EN = ConfigProperties.getProperty("email.new.grades.subject.en");
 
/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java
6,10 → 6,7
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.enums.LangEnum;
import pt.estgp.estgweb.domain.CourseUnitAnnouncement;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.CourseUnitSummary;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.utils.Email;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
161,7 → 158,40
return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
}
 
public Email getCourseUnitBlogPostEmail(BlogPost post, LangEnum langEnum, String from, List<User> users)
{
List<String> arguments = new ArrayList<String>();
arguments.add(((CourseUnitBlog)post.getBlog()).getCourseUnit().getName());
arguments.add(post.getTitle());
arguments.add(post.getText());
arguments.add(from);
 
String subjectTxt;
String template;
 
if(langEnum == LangEnum.PORTUGUESE)
{
template = Globals.EMAIL_COURSEUNIT_BLOGPOST_TEMPLATE_PT;
subjectTxt = Globals.EMAIL_COURSEUNIT_BLOGPOST_SUBJECT_PT;
}
else
{
template = Globals.EMAIL_COURSEUNIT_BLOGPOST_TEMPLATE_EN;
subjectTxt = Globals.EMAIL_COURSEUNIT_BLOGPOST_SUBJECT_EN;
}
 
List<String> recipients = new ArrayList<String>();
for(User u: users)
{
if(Email.validEmail(u.getEmail()))
recipients.add(u.getEmail());
}
 
String subject = java.text.MessageFormat.format(subjectTxt,new String[]{((CourseUnitBlog)post.getBlog()).getCourseUnit().getNormalizedName(),post.getTitle()});
return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
}
 
 
public Email getNewGradesEmail(List<String[]> grades, LangEnum langEnum, String studentEmail, String studentName)
{
List<String> arguments = new ArrayList<String>();
/impl/src/java/pt/estgp/estgweb/services/blogs/CreateBlogPostService.java
4,13 → 4,21
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.domain.views.BlogPostView;
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.ImageManager;
import pt.estgp.estgweb.services.sms.SMSJob;
import pt.estgp.estgweb.services.jobs.JobScheduleService;
import pt.estgp.estgweb.services.email.SendEmailService;
import pt.estgp.estgweb.services.email.EMAILJob;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.utils.Email;
import org.apache.log4j.Logger;
 
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
 
import jomm.utils.MyCalendar;
 
63,12 → 71,36
{
bPV.setStatus(true);
}
 
bPV.persistViewInObject(bP);
bP.setOwner(userSession.getUser());
bP.setBlog(b);
bP.setSaveDate(new Date());
DaoFactory.getBlogPostDaoImpl().save(bP);
trySendPostEmail(bP,userSession);
return new BlogPostView(bP);
}
 
 
private void trySendPostEmail(BlogPost post, UserSession userSession)
{
if(post.getBlog() instanceof CourseUnitBlog && Globals.EMAIL_COURSEUNIT_BLOGS)
{
CourseUnit c = ((CourseUnitBlog)post.getBlog()).getCourseUnit();
List<User> users = new ArrayList<User>();
if(c.getStudents() != null)
users.addAll(c.getStudents());
if(c.getTeachers() != null)
users.addAll(c.getTeachers());
sendPostEmail(post,post.getTitle(), userSession, users);
}
}
 
private void sendPostEmail(BlogPost p, String desc, UserSession userSession, List<User> users)
{
SendEmailService sendEmailService = new SendEmailService();
Email e = sendEmailService.getCourseUnitBlogPostEmail(p, LangEnum.PORTUGUESE,userSession.getName(),users);
EMAILJob emailJob = new EMAILJob(e);
JobScheduleService.getInstance().scheduleNow(emailJob,"CourseUnit BlogPost Email:" + desc,userSession);
}
}
/impl/src/java/pt/estgp/estgweb/domain/views/AnnouncementView.java
371,9 → 371,9
return StringsUtils.getFormatedText(text);
}
 
public Boolean getHaveAllText()
public Boolean getTextBiggerThenPermited()
{
if(getInternalUrlPath() != null)
if(getInternalUrlPath() != null && getInternalUrlPath().trim().length()>0)
return false;
if(getType().equals("top.flash.news"))
{
/impl/src/web/public/index.jsp
76,7 → 76,7
</p>
</logic:empty>
<logic:notEmpty name="item" property="url">
<logic:equal value="false" name="item" property="haveAllText">
<logic:equal value="false" name="item" property="textBiggerThenPermited">
<h2>
<html:link href="${item.url}">${item.title}</html:link>
</h2>
84,7 → 84,7
<html:link href="${item.url}">${item.textSummarySmall}</html:link>
</p>
</logic:equal>
<logic:equal value="true" name="item" property="haveAllText">
<logic:equal value="true" name="item" property="textBiggerThenPermited">
<h2>
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</h2>
136,7 → 136,7
</p>
</logic:empty>
<logic:notEmpty name="item" property="url">
<logic:equal value="false" name="item" property="haveAllText">
<logic:equal value="false" name="item" property="textBiggerThenPermited">
<h2>
<html:link href="${item.url}">${item.title}</html:link>
</h2>
144,7 → 144,7
<html:link href="${item.url}">${item.textSummarySmall}</html:link>
</p>
</logic:equal>
<logic:equal value="true" name="item" property="haveAllText">
<logic:equal value="true" name="item" property="textBiggerThenPermited">
<h2>
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</h2>
/impl/src/web/public/announcements/announcementsPortalLeft.jsp
80,7 → 80,7
</logic:empty>
<logic:notEmpty name="item" property="url">
<%
if (!item.getHaveAllText())
if (!item.isTextBiggerThenPermited())
{
%>
<div class="portalAnnouncementTitle">
/impl/src/web/public/announcements/getFlashNews.jsp
31,7 → 31,7
<h2><a href="<%=request.getContextPath()%>/loadAnnouncement.do?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTitle()%></a></h2>
<p><a href="<%=request.getContextPath()%>/loadAnnouncement.do?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTextSummary()%></a></p>
<%}
else if(!announcementView.getHaveAllText())
else if (!announcementView.getTextBiggerThenPermited())
{%>
<h2><a href="<%=announcementView.getUrl()%>"><%=announcementView.getTitle()%></a></h2>
<p><a href="<%=announcementView.getUrl()%>"><%=announcementView.getText()%></a></p>
/impl/src/web/public/announcements/announcements.jsp
29,7 → 29,7
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
<%if (!item.isTextBiggerThenPermited())
{%>
<html:link href="${item.url}">${item.title}</html:link>
<%}
/impl/src/web/public/announcements/announcementsPortalRight.jsp
77,7 → 77,7
</logic:empty>
<logic:notEmpty name="item" property="url">
<%
if (!item.getHaveAllText())
if (!item.isTextBiggerThenPermited())
{
%>
<div class="portalAnnouncementTitle">
/impl/src/web/user/courseunits/courseunit.jsp
51,11 → 51,16
</p>
<p>
<baco:canManage name="CourseUnitView">
<html:file property="programFile"/>
<logic:equal value="false" name="CourseUnitView" property="validProgram">
<html:file property="programFile"/>
</logic:equal>
</baco:canManage>
<logic:present name="CourseUnitView" property="programStreamId">
<a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.programStreamId}"><bean:message key="courseunit.programfilepath"/></a> (${CourseUnitView.programSize} Kb)
</logic:present>
(<logic:equal value="true" name="CourseUnitView" property="validProgram">
<bean:message key="courseunit.programfile.valid"/>
</logic:equal>)
<logic:notPresent name="CourseUnitView" property="programStreamId">
<bean:message key="courseunit.programfilepath.not.available"/>
</logic:notPresent>
/impl/src/web/user/serviceZone/serviceZone.jsp
77,7 → 77,7
</li>
</baco:isModuleOn>
<baco:isModuleOn module="todos">
<baco:hasRole role="admin,super,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil">
<baco:hasRole role="admin,all,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil">
<li>
<html:link action="/user/startSubmitTodoAnnouncementFromServiceZone">
<bean:message key="submit.todo.announcement"/>
119,7 → 119,7
 
<baco:isModuleOn module="courseunits">
 
<baco:hasRole role="admin,super,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil">
<baco:hasRole role="admin,all,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil">
<li>
<bean:message key="courses"/>
<ul>
151,7 → 151,7
<%--</html:link>--%>
<%--</li>--%>
<li>
<baco:hasRole role="admin,super,servicesPrograms,administrativeCouncil,scientificCouncil,pedagogicCouncil">
<baco:hasRole role="admin,all,servicesPrograms,administrativeCouncil,scientificCouncil,pedagogicCouncil">
<html:link action="/user/startLoadCoursesProgramsFromServiceZone">
<bean:message key="course.program.courses"/>
</html:link>