protected ModelAndView navigate( ProposalDevelopmentDocumentForm form, BindingResult result, HttpServletRequest request, HttpServletResponse response) throws Exception { if (form.getDevelopmentProposal().getS2sOpportunity() != null && !getProposalDevelopmentService() .isGrantsGovEnabledForProposal(form.getDevelopmentProposal())) { ((ProposalDevelopmentViewHelperServiceImpl) form.getViewHelperService()) .clearOpportunity(form.getDevelopmentProposal()); } populateAdHocRecipients(form.getProposalDevelopmentDocument()); String navigateToPageId = form.getActionParamaterValue(UifParameters.NAVIGATE_TO_PAGE_ID); if (isNavigateToDeliveryInfoPage(navigateToPageId)) { if (form.getDevelopmentProposal().getS2sOpportunity() != null) { getGlobalVariableService() .getMessageMap() .putInfo( ProposalDevelopmentConstants.KradConstants.DELIVERY_INFO_PAGE, KeyConstants.DELIVERY_INFO_NOT_NEEDED); } } if (form.isCanEditView()) { return save(form); } else { return getNavigationControllerService().navigate(form); } }
public ModelAndView save(ProposalDevelopmentDocumentForm form) throws Exception { ProposalDevelopmentDocument proposalDevelopmentDocument = (ProposalDevelopmentDocument) form.getDocument(); if (StringUtils.equalsIgnoreCase(form.getPageId(), Constants.PROP_DEV_PERMISSIONS_PAGE)) { saveDocumentPermissions(form); } if (StringUtils.equalsIgnoreCase( form.getPageId(), ProposalDevelopmentDataValidationConstants.ATTACHMENT_PAGE_ID)) { ((ProposalDevelopmentViewHelperServiceImpl) form.getViewHelperService()) .populateAttachmentReferences(form.getDevelopmentProposal()); } if (getGlobalVariableService().getMessageMap().getErrorCount() == 0 && form.getEditableCollectionLines() != null) { form.getEditableCollectionLines().clear(); } if (StringUtils.equalsIgnoreCase( form.getPageId(), ProposalDevelopmentDataValidationConstants.DETAILS_PAGE_ID)) { handleSponsorChange(proposalDevelopmentDocument); } preSave(proposalDevelopmentDocument); proposalDevelopmentService.initializeUnitOrganizationLocation(proposalDevelopmentDocument); proposalDevelopmentService.initializeProposalSiteNumbers(proposalDevelopmentDocument); for (ProposalPersonBiography biography : form.getDevelopmentProposal().getPropPersonBios()) { getProposalPersonBiographyService() .prepareProposalPersonBiographyForSave(form.getDevelopmentProposal(), biography); } ((ProposalDevelopmentViewHelperServiceImpl) form.getViewHelperService()) .setOrdinalPosition(form.getDevelopmentProposal().getProposalPersons()); saveAnswerHeaders(form, form.getPageId()); getTransactionalDocumentControllerService().save(form); if (form.isAuditActivated()) { getAuditHelper().auditConditionally(form); } populateAdHocRecipients(form.getProposalDevelopmentDocument()); if (StringUtils.equalsIgnoreCase(form.getPageId(), Constants.CREDIT_ALLOCATION_PAGE)) { ((ProposalDevelopmentViewHelperServiceImpl) form.getViewHelperService()) .populateCreditSplits(form); } if (StringUtils.equalsIgnoreCase(form.getPageId(), Constants.QUESTIONS_PAGE)) { ((ProposalDevelopmentViewHelperServiceImpl) form.getViewHelperService()) .populateQuestionnaires(form); } String pageId = form.getActionParamaterValue(UifParameters.NAVIGATE_TO_PAGE_ID); final ModelAndView view; if (StringUtils.isNotBlank(pageId) && getGlobalVariableService().getMessageMap().hasNoErrors()) { form.setDirtyForm(false); view = getModelAndViewService().getModelAndView(form, pageId); } else { view = getModelAndViewService().getModelAndView(form); } if (form.getProposalDevelopmentDocument().getDevelopmentProposal() != null && form.getProposalDevelopmentDocument().getDevelopmentProposal().getPropSpecialReviews() != null) { form.getProposalDevelopmentDocument() .getDevelopmentProposal() .getPropSpecialReviews() .stream() .filter(specialReview -> !specialReview.isLinkedToProtocol()) .forEach( specialReview -> form.getSpecialReviewHelper().prepareProtocolLinkViewFields(specialReview)); } getProjectPublisher() .publishProject( getPropDevProjectRetrievalService() .retrieveProject( form.getProposalDevelopmentDocument() .getDevelopmentProposal() .getProposalNumber())); return view; }