diff --git a/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalController.java b/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalController.java index 423ec9985a..343378b6f5 100644 --- a/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalController.java +++ b/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalController.java @@ -26,8 +26,5 @@ public interface PeerPortalController { PeerRequest storePeerRequest(final FileUpload upload, PeerRequest request) throws Exception; - void notifyOfReviewRating(PeerReview review); - - void notifyCompletionOfReview(PeerReview review); } diff --git a/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalControllerImpl.java b/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalControllerImpl.java index 717f91afc0..4aa454fe5e 100644 --- a/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalControllerImpl.java +++ b/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalControllerImpl.java @@ -5,22 +5,16 @@ import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; -import java.util.Properties; import org.apache.log4j.Level; import org.apache.log4j.Logger; -import org.apache.wicket.PageParameters; -import org.apache.wicket.RequestCycle; import org.apache.wicket.markup.html.form.upload.FileUpload; -import org.apache.wicket.protocol.http.RequestUtils; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; -import se.su.dsv.scipro.conference.pages.SupervisorConferencePage; import se.su.dsv.scipro.data.controllers.NotificationController; -import se.su.dsv.scipro.data.controllers.NotificationMessage; import se.su.dsv.scipro.data.dao.interfaces.FileDescriptionDao; import se.su.dsv.scipro.data.dao.interfaces.ProjectDao; import se.su.dsv.scipro.data.dataobjects.FileDescription; @@ -28,22 +22,14 @@ import se.su.dsv.scipro.data.dataobjects.Project; import se.su.dsv.scipro.data.dataobjects.ProjectClass; import se.su.dsv.scipro.data.dataobjects.ProjectClassSettings; import se.su.dsv.scipro.data.dataobjects.Student; -import se.su.dsv.scipro.data.dataobjects.User; -import se.su.dsv.scipro.data.enums.NotificationEventType; -import se.su.dsv.scipro.data.enums.NotificationPriority; import se.su.dsv.scipro.exceptions.UpdatedSincePageLoadException; import se.su.dsv.scipro.peer.data.dao.interfaces.PeerRequestDao; import se.su.dsv.scipro.peer.data.dao.interfaces.PeerReviewDao; import se.su.dsv.scipro.peer.data.dataobjects.PeerRequest; import se.su.dsv.scipro.peer.data.dataobjects.PeerReview; import se.su.dsv.scipro.peer.enums.RequestStatus; -import se.su.dsv.scipro.peer.pages.ProjectPeerReviewPage; -import se.su.dsv.scipro.peer.pages.ProjectPeerStatsPage; -import se.su.dsv.scipro.peer.pages.SupervisorPeerReviewPage; import se.su.dsv.scipro.repository.FileRepository; import se.su.dsv.scipro.repository.util.FileStorageException; -import se.su.dsv.scipro.security.auth.roles.Roles; -import se.su.dsv.scipro.util.PropsUtils; /** * @@ -247,7 +233,7 @@ public class PeerPortalControllerImpl implements PeerPortalController { request = peerRequestDao.save(request); // Notify the requester - notifyAcceptOfReview(request, student, project); + notificationController.notifyAcceptOfReview(request, student, project); return review; } catch (Exception e) { @@ -267,151 +253,7 @@ public class PeerPortalControllerImpl implements PeerPortalController { } } - /** - * TODO Rewrite using template engine of some sort - * - * @param request - * @param student - * @param project - */ - protected void notifyAcceptOfReview(PeerRequest request, Student student, Project project) { - try { - Properties props = null; - - props = PropsUtils.load("notification.properties"); - - String mailSubject = props.getProperty("acceptPeerReviewSubject"); - String requestAccepted = props.getProperty("requestAccepted"); - String heShe = props.getProperty("heShe"); - String complete = props.getProperty("complete"); - - User requestingUser = request.getRequester().getUser(); - - String messageBody = requestAccepted - + student.getUser().toString() - + heShe - + project.getProjectClass().getProjectClassSettings() - .getNumDaysToSubmitPeerReview() + complete; - - String webNotificationMessage = requestAccepted + student.getUser().toString(); - - NotificationMessage notificationMessage = new NotificationMessage(webNotificationMessage, - mailSubject, messageBody); - - PageParameters pp = new PageParameters(); - - String peerStatsUrl = RequestUtils.toAbsolutePath(RequestCycle.get() - .urlFor(ProjectPeerStatsPage.class, pp).toString()); - - notificationController.processNotification(requestingUser, notificationMessage, - peerStatsUrl, NotificationPriority.MEDIUM); - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * TODO Rewrite - * - * @param review - */ - public void notifyCompletionOfReview(PeerReview review) { - try { - - Properties props = null; - props = PropsUtils.load("notification.properties"); - String mailSubject = props.getProperty("completedReviewSubject"); - String requestReviewed = props.getProperty("requestReviewed"); - String supervisorMessageBody = props.getProperty("supervisorMessageBody"); - String supervisorMessageBody2 = props.getProperty("supervisorMessageBody2"); - String supervisorMessageBody3 = props.getProperty("supervisorMessageBody3"); - String commaWithLinebreak = props.getProperty("commaWithLinebreak"); - String inProject = props.getProperty("inProject"); - String hasPerformed = props.getProperty("hasPerformed"); - PeerRequest peerRequest = review.getPeerRequest(); - User requestingUser = peerRequest.getRequester().getUser(); - - PageParameters pp = new PageParameters(); - pp.add(PeerReview.PP_PEER_REVIEW_ID, review.getId().toString()); - - String reviewUrl = RequestUtils.toAbsolutePath(RequestCycle.get() - .urlFor(ProjectPeerReviewPage.class, pp).toString()); - String supervisorReviewUrl = RequestUtils.toAbsolutePath(RequestCycle.get() - .urlFor(SupervisorPeerReviewPage.class, pp).toString()); - - //Message for student when his/her review request is completed. - String messageBody = requestReviewed; - - NotificationMessage notificationMessage = new NotificationMessage(messageBody, - mailSubject, messageBody); - - notificationController.processNotification(requestingUser, notificationMessage, - reviewUrl, NotificationPriority.MEDIUM); - - //Message for supervisor of the project with a completed review. - messageBody = - supervisorMessageBody - + peerRequest.getProject().getTitle() - + supervisorMessageBody2; - User requestSupervisor = peerRequest.getProject().getHeadSupervisor().getUser(); - - NotificationMessage notificationMessageSupervisorOfProject = new NotificationMessage(messageBody, - mailSubject, messageBody); - - notificationController.processNotification(requestSupervisor, - notificationMessageSupervisorOfProject, supervisorReviewUrl, NotificationPriority.MEDIUM); - - //Message for supervisor of the reviewer that have made a review for another project. - - String webNotificationMessage = review.getReviewer().getUser().toString() + inProject + review.getProject().getTitle() + hasPerformed; - - messageBody = supervisorMessageBody - + review.getProject().getTitle() - + commaWithLinebreak + review.getReviewer().getUser().toString() - + supervisorMessageBody3; - - User reviewSupervisor = review.getProject().getHeadSupervisor().getUser(); - NotificationMessage notificationMessageSupervisorOfReviewer = new NotificationMessage(webNotificationMessage, - mailSubject, messageBody); - - notificationController.processNotification(reviewSupervisor, notificationMessageSupervisorOfReviewer, supervisorReviewUrl, NotificationPriority.MEDIUM); - - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * TODO Rewrite - * - * @param review - */ - public void notifyOfReviewRating(PeerReview review) { - try { - Properties props = null; - props = PropsUtils.load("notification.properties"); - String mailSubject = props.getProperty("reviewRatedSubject"); - String reviewRatedBody = props.getProperty("reviewRatedBody"); - User reviewingUser = review.getReviewer().getUser(); - - PageParameters pp = new PageParameters(); - pp.add(PeerReview.PP_PEER_REVIEW_ID, review.getId().toString()); - String projectReviewUrl = RequestUtils.toAbsolutePath(RequestCycle.get() - .urlFor(ProjectPeerReviewPage.class, pp).toString()); - - - String messageBody = reviewRatedBody; - - NotificationMessage notificationMessage = new NotificationMessage(messageBody, - mailSubject, messageBody); - - notificationController.processNotification(reviewingUser, notificationMessage, - projectReviewUrl, NotificationPriority.MEDIUM); - - } catch (Exception e) { - e.printStackTrace(); - } - } + /** * Store file to a pre-populated PeerRequest diff --git a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewPerformReviewPanel.java b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewPerformReviewPanel.java index ae8961d3eb..a3da423c9d 100644 --- a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewPerformReviewPanel.java +++ b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewPerformReviewPanel.java @@ -33,6 +33,7 @@ import org.odlabs.wiquery.core.javascript.JsStatement; import se.su.dsv.scipro.SciProSession; import se.su.dsv.scipro.components.JavascriptCountdown; import se.su.dsv.scipro.data.DomainObjectDetachableModel; +import se.su.dsv.scipro.data.controllers.NotificationController; import se.su.dsv.scipro.data.dataobjects.User; import se.su.dsv.scipro.peer.data.dao.controllers.PeerPortalController; import se.su.dsv.scipro.peer.data.dao.interfaces.PeerRequestDao; @@ -66,6 +67,9 @@ public class PeerReviewPerformReviewPanel extends Panel { @SpringBean private PeerPortalController peerPortalController; + @SpringBean + private NotificationController notificationController; + public PeerReviewPerformReviewPanel(String id, final PeerReview peerReview) { super(id); /* @@ -257,7 +261,7 @@ public class PeerReviewPerformReviewPanel extends Panel { peerReview.setSubmitted(true); peerRequest.setStatus(RequestStatus.FINISHED); getSession().info("Your review has been saved, thank you!"); - peerPortalController.notifyCompletionOfReview(peerReview); + notificationController.notifyCompletionOfReview(peerReview); } peerRequest = peerRequestDao.save(peerRequest); diff --git a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewRatingPanel.java b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewRatingPanel.java index 4a706eba9e..9e777a0f33 100644 --- a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewRatingPanel.java +++ b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewRatingPanel.java @@ -19,6 +19,7 @@ import org.apache.wicket.spring.injection.annot.SpringBean; import se.su.dsv.scipro.SciProSession; import se.su.dsv.scipro.components.StarRater; +import se.su.dsv.scipro.data.controllers.NotificationController; import se.su.dsv.scipro.peer.data.dao.controllers.PeerPortalController; import se.su.dsv.scipro.peer.data.dao.interfaces.ReviewRatingDao; import se.su.dsv.scipro.peer.data.dataobjects.PeerReview; @@ -31,7 +32,7 @@ public class PeerReviewRatingPanel extends Panel { @SpringBean private ReviewRatingDao reviewRatingDao; @SpringBean - private PeerPortalController peerPortalController; + private NotificationController notificationController; public PeerReviewRatingPanel(String id, final IModel<PeerReview> model) { super(id, model); @@ -108,7 +109,7 @@ public class PeerReviewRatingPanel extends Panel { starRating.setReadOnly(true); target.addComponent(PeerReviewRatingPanel.this); - peerPortalController.notifyOfReviewRating(rating.getPeerReview()); + notificationController.notifyOfReviewRating(rating.getPeerReview()); }