diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/listReport.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/listReport.jsp index 4ff1eb5..5e0ed1c 100644 --- a/YACOSWeb/WebContent/WEB-INF/jsp/listReport.jsp +++ b/YACOSWeb/WebContent/WEB-INF/jsp/listReport.jsp @@ -7,13 +7,15 @@

- +
There is no report for this article at the moment.
+ + @@ -46,6 +48,39 @@
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
: ${rpt.referee.firstName} ${rpt.referee.lastName}
${rpt.article.title}
${rating.criterion.name} is:${rating.value}
${rpt.commentPCMember}
${rpt.commentAuthor}
+ +
+
+ diff --git a/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml b/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml index 67af772..11b0d87 100644 --- a/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml +++ b/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml @@ -292,6 +292,8 @@ + + diff --git a/YACOSWeb/src/org/yacos/web/PCmember/controller/ListReportController.java b/YACOSWeb/src/org/yacos/web/PCmember/controller/ListReportController.java index 0fdc3c0..86623d2 100644 --- a/YACOSWeb/src/org/yacos/web/PCmember/controller/ListReportController.java +++ b/YACOSWeb/src/org/yacos/web/PCmember/controller/ListReportController.java @@ -15,10 +15,16 @@ import org.apache.commons.logging.LogFactory; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndViewDefiningException; import org.springframework.web.servlet.mvc.SimpleFormController; +import org.yacos.core.article.Article; +import org.yacos.core.article.IArticleManager; +import org.yacos.core.article.Article.State; import org.yacos.core.evaluation.IEvaluationManager; import org.yacos.core.evaluation.Rating; import org.yacos.core.evaluation.Report; +import org.yacos.core.users.IUserManager; +import org.yacos.core.users.Role.RoleType; import org.yacos.web.system.controller.NoConferenceSelectedException; +import org.yacos.web.system.session.SessionService; public class ListReportController extends SimpleFormController { @@ -26,51 +32,116 @@ public class ListReportController extends SimpleFormController { protected final Log logger = LogFactory.getLog(getClass()); private IEvaluationManager evaluationManager; + private IUserManager userManager; + private IArticleManager articleManager; + + + public IArticleManager getArticleManager() { + return articleManager; + } + + public void setArticleManager(IArticleManager articleManager) { + this.articleManager = articleManager; + } public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, NoConferenceSelectedException { logger.info("Returning listReport view"); - List listReport; + List listReport=new ArrayList(); String reportId = request.getParameter("id"); + try { Integer id = new Integer(reportId); + Article a = articleManager.getArticle(id); + if (a == null) + throw new ModelAndViewDefiningException(new ModelAndView("404error")); Map model = new HashMap(); - listReport = evaluationManager.getReportsForArticle(id); - + if (userManager.hasRoleForConference(SessionService.getInstance().getCurrentUserLogin(), RoleType.CHAIRMAN, SessionService.getInstance().getCurrentConferenceId())) + + { listReport = evaluationManager.getReportsForArticle(id); + if (listReport.isEmpty()) return new ModelAndView("listReport", "listReport", null); + + else { model.put("listReport", listReport); - - - model.put("listReport", listReport); - List container=new ArrayList(); - - for (int i=0; i<=listReport.size()-1;i++){ - List ratings = evaluationManager.getRatingForReport(listReport.get(i).getId()); - container.add(ratings); - } + + for (int i=0; i<=listReport.size()-1;i++){ + List ratings = evaluationManager.getRatingForReport(listReport.get(i).getId()); + container.add(ratings); + } model.put("container", container); + } + + } + + else + if (userManager.hasRoleForConference(SessionService.getInstance().getCurrentUserLogin(), RoleType.PCMEMBER, SessionService.getInstance().getCurrentConferenceId())) + { + + if (a.getState()== State.ACCEPTED ||a.getState()==State.REJECTED) + { + listReport = evaluationManager.getReportsForArticle(id); + + if (listReport.isEmpty()) + return new ModelAndView("listReport", "listReport", null); + + else {model.put("listReport", listReport); + + List container=new ArrayList(); + + for (int i=0; i<=listReport.size()-1;i++){ + List ratings = evaluationManager.getRatingForReport(listReport.get(i).getId()); + container.add(ratings); + } + model.put("container", container); + } + + } + + else{ + Report rpt = evaluationManager.getReportforArticleAndReferee(id, SessionService.getInstance().getCurrentUserLogin()); + + if (rpt==null) + return new ModelAndView("listReport", "rpt", null); + else { + model.put("rpt", rpt); + List ratings = evaluationManager.getRatingForReport(rpt.getId()); + model.put("rtgs",ratings); + + } + + } + + + + + } + + + + model.put("whereIcome", request.getHeader("REFERER")); - - /* double[] moyennes=new double[listReport.size()]; - + + /* double[] moyennes=new double[listReport.size()]; + for (Rating rt : ratings) { - - + + }*/ - - + + return new ModelAndView("listReport", model); } - + catch (NumberFormatException e) { throw new ModelAndViewDefiningException(new ModelAndView("404error")); } @@ -83,4 +154,12 @@ public class ListReportController extends SimpleFormController { public void setEvaluationManager(IEvaluationManager evaluationManager) { this.evaluationManager = evaluationManager; } + + public IUserManager getUserManager() { + return userManager; + } + + public void setUserManager(IUserManager userManager) { + this.userManager = userManager; + } } \ No newline at end of file