notificationscontroller
Change-Id: Ibf8ce4d27665b40977e9a8c24fe235de63734c6d
This commit is contained in:
parent
5db061e81c
commit
6f06dbb7ba
src/main/java/se/su/dsv/scipro/peer
@ -26,8 +26,5 @@ public interface PeerPortalController {
|
||||
|
||||
PeerRequest storePeerRequest(final FileUpload upload, PeerRequest request) throws Exception;
|
||||
|
||||
void notifyOfReviewRating(PeerReview review);
|
||||
|
||||
void notifyCompletionOfReview(PeerReview review);
|
||||
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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());
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user