/** * Handles the model processing required for the submissions page. - Workflow tasks owned by user * - Workflow tasks available in pool - Unfinished submissions - Archived submissions * * <p>TODO: Need to perform auth check */ @RequestMapping("/submissions/**") protected String displaySubmissions( @RequestAttribute Context context, ModelMap model, HttpServletRequest request) throws Exception { List<WorkflowItem> ownedItems = WorkflowManager.getOwnedTasks(context, context.getCurrentUser()); model.addAttribute("ownedItems", ownedItems); List<WorkflowItem> pooledItems = WorkflowManager.getPooledTasks(context, context.getCurrentUser()); model.addAttribute("pooledItems", pooledItems); WorkspaceItem[] unfinishedItems = WorkspaceItem.findByEPerson(context, context.getCurrentUser()); model.addAttribute("unfinishedItems", unfinishedItems); SupervisedItem[] supervisedItems = SupervisedItem.findbyEPerson(context, context.getCurrentUser()); model.addAttribute("supervisedItems", supervisedItems); WorkflowItem[] inprogressItems = WorkflowItem.findByEPerson(context, context.getCurrentUser()); model.addAttribute("inprogressItems", inprogressItems); ItemIterator submittedItemsIterator = Item.findBySubmitter(context, context.getCurrentUser()); // Converting ItemIterator into something easier to digest List<Item> submittedItems = new LinkedList<Item>(); try { while (submittedItemsIterator.hasNext()) { submittedItems.add(submittedItemsIterator.next()); } } finally { if (submittedItemsIterator != null) { submittedItemsIterator.close(); } } model.addAttribute("submittedItems", submittedItems); return "pages/submissions"; }