/** * This is a hook/hack for assign reviewer/submit for review, which has potential of multiple * reviewers reviewers are supposed to be processed separately, but for 'prompt user', it merged * into one prompt. 'reviewer role' are the same, but the role qualifiers' are different which is * based on context. the role qualifier are populated when we merge all recipients in to one list. * So, when sendnotification, it is just using the last 'context', so at this point, we don't want * rolequalifiers being populated again. If it is populated again, all reviewer role will retrieve * same reviewer because the context are the same at the point of 'send'. Unless, there is better * approach, we'll stick with this hack for now. isPopulateRole is only 'true' for this case, so * the other cases will stay the same as before this change. * * @see * org.kuali.coeus.common.notification.impl.NotificationContextBase#populateRoleQualifiers(org.kuali.coeus.common.notification.impl.bo.NotificationTypeRecipient) */ @Override public void populateRoleQualifiers(NotificationTypeRecipient notificationRecipient) throws UnknownRoleException { if (CollectionUtils.isEmpty(notificationRecipient.getRoleQualifiers())) { super.populateRoleQualifiers(notificationRecipient); } }
private List<NotificationTypeRecipient> getDefaultNotificationTypeRecipients( String roleName, String personId, String rolodexId) { List<NotificationTypeRecipient> notificationTypeRecipients = new ArrayList<NotificationTypeRecipient>(); if (StringUtils.isNotBlank(roleName)) { NotificationTypeRecipient notificationTypeRecipientRoleName = new NotificationTypeRecipient(); notificationTypeRecipientRoleName.setRoleName(roleName); notificationTypeRecipients.add(notificationTypeRecipientRoleName); } if (StringUtils.isNotBlank(personId)) { NotificationTypeRecipient notificationTypeRecipientPersonId = new NotificationTypeRecipient(); notificationTypeRecipientPersonId.setPersonId(personId); notificationTypeRecipients.add(notificationTypeRecipientPersonId); } if (StringUtils.isNotBlank(rolodexId)) { NotificationTypeRecipient notificationTypeRecipientRolodexId = new NotificationTypeRecipient(); notificationTypeRecipientRolodexId.setRolodexId(rolodexId); notificationTypeRecipients.add(notificationTypeRecipientRolodexId); } return notificationTypeRecipients; }
public void checkForCertifiedByProxy( DevelopmentProposal developmentProposal, ProposalPerson person, boolean recentlyCompleted) { boolean selfCertifyOnly = getParameterService() .getParameterValueAsBoolean( Constants.MODULE_NAMESPACE_PROPOSAL_DEVELOPMENT, Constants.PARAMETER_COMPONENT_DOCUMENT, ProposalDevelopmentConstants.Parameters.KEY_PERSON_CERTIFICATION_SELF_CERTIFY_ONLY); if (selfCertifyOnly) { String proxyId = getGlobalVariableService().getUserSession().getPrincipalId(); if (!StringUtils.equals(person.getPersonId(), proxyId) && recentlyCompleted) { ProposalDevelopmentNotificationContext context = new ProposalDevelopmentNotificationContext( developmentProposal, "106", "Proposal Person Certification Completed"); ((ProposalDevelopmentNotificationRenderer) context.getRenderer()) .setDevelopmentProposal(developmentProposal); KcNotification notification = getKcNotificationService().createNotificationObject(context); NotificationTypeRecipient recipient = new NotificationTypeRecipient(); recipient.setPersonId(person.getPersonId()); getKcNotificationService() .sendNotification(context, notification, Collections.singletonList(recipient)); } } }