/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> |