/** * Returns the Attendance Dash board information list. * * @param model - ModelMap. * @param attendanceDashboardDto - AttendanceDashboardDto. * @param request - an instance of HttpServletRequest contains the parameters of the request. * @param flag - flag. * @return BestStudentAttendance list. * @throws AkuraAppException - The exception details that occurred when processing. */ private List<BestStudentAttendanceTemplate> getBestAttendanceInfoWithPagination( ModelMap model, HttpServletRequest request, AttendanceDashboardDto attendanceDashboardDto, boolean flag) throws AkuraAppException { try { LOG.debug(AttendanceDashboardController.class); // minimum number of the item to be published on the page. int minNo = 0; String pagination = (String) request.getParameter(PAGINATE); String minNumber = (String) request.getParameter(ITEM_NO); if (minNumber != AkuraWebConstant.EMPTY_STRING && minNumber != null) { minNo = Integer.parseInt(minNumber); } if (pagination != null && pagination != AkuraWebConstant.EMPTY_STRING) { if (pagination.equals(new ErrorMsgLoader().getErrorMessage(PAGINATION_NEXT))) { minNo = minNo + PAGINATION_NO; model.addAttribute(PAGE_MIN_NO, minNo); model.addAttribute(PAGE_MAX_NO, PAGINATION_NO + minNo); flag = true; } else { minNo = minNo - PAGINATION_NO; if (minNo < 0) { minNo = 0; } model.addAttribute(PAGE_MIN_NO, minNo); } } else { model.addAttribute(PAGE_MIN_NO, minNo); model.addAttribute(PAGE_MAX_NO, PAGINATION_NO); } attendanceDashboardDto.setMinNo(minNo); attendanceDashboardDto.setFlag(flag); return dailyAttendanceService.getTopAttendanceList(attendanceDashboardDto); } catch (AkuraAppException e) { throw e; } }
/** * Returns the attendance dash board information with pagination. * * @param modelMap - a model map contains the data. * @param request - request scope data. * @param response - response scope data. * @param attendanceDashboardDto - AttendanceDashboardDto * @return - the name of the view to be redirected. * @throws AkuraAppException - The exception details that occurred when processing. */ @RequestMapping(value = ATTENDANCE_PAGINATION, method = RequestMethod.POST) public ModelAndView getPagination( HttpServletRequest request, HttpServletResponse response, @ModelAttribute(MODEL_ATT_TEMPLATE) AttendanceDashboardDto attendanceDashboardDto, ModelMap modelMap) throws AkuraAppException { boolean flag = false; modelMap.addAttribute(STATUS, Boolean.FALSE); String selectedClass = request.getParameter(SELECT_CLASSES); if (selectedClass != null) { ClassGrade classGradeObj = commonService.findClassGrade(Integer.parseInt(selectedClass)); if (classGradeObj != null) { attendanceDashboardDto.setClassDescription(classGradeObj.getDescription()); } } setMonthAndClass(request, attendanceDashboardDto); attendanceDashboardDto.setAcademicDays(getAcademicDays(attendanceDashboardDto)); setSelectedValues(attendanceDashboardDto, modelMap); List<BestStudentAttendanceTemplate> bestStudentAttendanceList = getBestAttendanceInfoWithPagination(modelMap, request, attendanceDashboardDto, flag); if (bestStudentAttendanceList == null) { int minNo = attendanceDashboardDto.getMinNo() - PAGINATION_NO; attendanceDashboardDto.setMinNo(minNo); bestStudentAttendanceList = dailyAttendanceService.getTopAttendanceList(attendanceDashboardDto); modelMap.addAttribute(STATUS, Boolean.TRUE); modelMap.addAttribute(PAGE_MIN_NO, minNo); } if (bestStudentAttendanceList != null) { if (attendanceDashboardDto.isFlag()) { modelMap.addAttribute(PAGE_MAX_NO, bestStudentAttendanceList.size() + PAGINATION_NO); } else { modelMap.addAttribute(PAGE_MAX_NO, bestStudentAttendanceList.size()); } } modelMap.addAttribute(BEST_STUDENT_ATTENDANCE_LIST, bestStudentAttendanceList); return new ModelAndView(VIEW_ATTENDANCE_DASHBOARD, modelMap); }