diff --git a/coeus-db/coeus-db-sql/src/main/resources/co/kuali/coeus/data/migration/sql/oracle/rice/bootstrap/V1602_001_RESSUP-1478.sql b/coeus-db/coeus-db-sql/src/main/resources/co/kuali/coeus/data/migration/sql/oracle/rice/bootstrap/V1602_001_RESSUP-1478.sql new file mode 100644 index 00000000000..7408da9e720 --- /dev/null +++ b/coeus-db/coeus-db-sql/src/main/resources/co/kuali/coeus/data/migration/sql/oracle/rice/bootstrap/V1602_001_RESSUP-1478.sql @@ -0,0 +1,2 @@ + +Insert into KRCR_PARM_T (NMSPC_CD,CMPNT_CD,PARM_NM,OBJ_ID,VER_NBR,PARM_TYP_CD,VAL,PARM_DESC_TXT,EVAL_OPRTR_CD,APPL_ID) values ('KC-GEN','Document','KC_MEDUSA_COMPLIANCE_MODULE_CHECKBOX_DEFAULT',sys_guid(),1,'CONFG','Y','This boolean determines whether the Include Compliance Modules checkbox defaults to checked (Y) or unchecked (N)','A','KC'); diff --git a/coeus-impl/src/main/java/org/kuali/coeus/common/framework/medusa/MedusaBean.java b/coeus-impl/src/main/java/org/kuali/coeus/common/framework/medusa/MedusaBean.java index 0f8c249c3f9..0b689790762 100644 --- a/coeus-impl/src/main/java/org/kuali/coeus/common/framework/medusa/MedusaBean.java +++ b/coeus-impl/src/main/java/org/kuali/coeus/common/framework/medusa/MedusaBean.java @@ -24,6 +24,8 @@ import java.io.Serializable; import java.util.Collections; import java.util.List; +import org.kuali.rice.coreservice.framework.parameter.ParameterService; +import org.kuali.rice.coreservice.framework.CoreFrameworkServiceLocator; public class MedusaBean implements Serializable{ @@ -31,21 +33,31 @@ public class MedusaBean implements Serializable{ private static final long serialVersionUID = -8727199559530816767L; private String medusaViewRadio; private String moduleName; + private String complianceModulesCheckbox; private Long moduleIdentifier; private List parentNodes; private MedusaNode currentNode; - + + ParameterService parameterService = CoreFrameworkServiceLocator.getParameterService(); + String complianceModuleCheckboxDefault = parameterService.getParameterValueAsString("KC-GEN","Document","KC_MEDUSA_COMPLIANCE_MODULE_CHECKBOX_DEFAULT"); + public MedusaBean() { setMedusaViewRadio("0"); + if (StringUtils.equalsIgnoreCase(complianceModuleCheckboxDefault, "N")) { + setComplianceModulesCheckbox(""); + } + else { + setComplianceModulesCheckbox("includeComplianceModules"); + } } - + public void init(String moduleName, Long moduleIdentifier) { setMedusaViewRadio("0"); setModuleName(moduleName); setModuleIdentifier(moduleIdentifier); generateParentNodes(); } - + /** * Gets the medudaViewRadio attribute. * @return Returns the medudaViewRadio. @@ -65,6 +77,17 @@ public void setMedusaViewRadio(String medusaViewRadio) { } } + public String getComplianceModulesCheckbox() { + return this.complianceModulesCheckbox; + } + + public void setComplianceModulesCheckbox(String complianceModulesCheckbox) { + if (!StringUtils.equals(this.complianceModulesCheckbox, complianceModulesCheckbox)) { + this.complianceModulesCheckbox = complianceModulesCheckbox; + generateParentNodes(); + } + } + /** * Gets the moduleName attribute. * @return Returns the moduleName. @@ -96,19 +119,20 @@ public Long getModuleIdentifier() { public void setModuleIdentifier(Long moduleIdentifier) { this.moduleIdentifier = moduleIdentifier; } - + private MedusaService getMedusaService() { return KcServiceLocator.getService(MedusaService.class); } - + public void generateParentNodes() { + boolean includeComplianceModules = StringUtils.equals("includeComplianceModules", getComplianceModulesCheckbox()); if(StringUtils.equalsIgnoreCase("0", getMedusaViewRadio())){ - setParentNodes(getMedusaService().getMedusaByProposal(getModuleName(), getModuleIdentifier())); + setParentNodes(getMedusaService().getMedusaByProposal(getModuleName(), getModuleIdentifier(), includeComplianceModules)); }else if(StringUtils.equalsIgnoreCase("1", getMedusaViewRadio())){ - setParentNodes(getMedusaService().getMedusaByAward(getModuleName(), getModuleIdentifier())); + setParentNodes(getMedusaService().getMedusaByAward(getModuleName(), getModuleIdentifier(), includeComplianceModules)); } - sortNodes(parentNodes); + sortNodes(parentNodes); } @@ -118,12 +142,12 @@ public List getParentNodes() { } return parentNodes; } - + private void sortNodes(List nodes){ Collections.sort(nodes, new MedusaNodeComparator()); for(MedusaNode mNode: nodes){ if(!mNode.getChildNodes().isEmpty()){ - sortNodes((List) mNode.getChildNodes()); + sortNodes((List) mNode.getChildNodes()); } } } @@ -131,13 +155,13 @@ private void sortNodes(List nodes){ public void setParentNodes(List parentNodes) { this.parentNodes = parentNodes; } - + public MedusaNode getCurrentNode() { return currentNode; } - + public void setCurrentNode(MedusaNode currentNode) { this.currentNode = currentNode; } - + } diff --git a/coeus-impl/src/main/java/org/kuali/coeus/common/framework/medusa/MedusaService.java b/coeus-impl/src/main/java/org/kuali/coeus/common/framework/medusa/MedusaService.java index f213f1e54e8..3931d882e68 100644 --- a/coeus-impl/src/main/java/org/kuali/coeus/common/framework/medusa/MedusaService.java +++ b/coeus-impl/src/main/java/org/kuali/coeus/common/framework/medusa/MedusaService.java @@ -20,6 +20,7 @@ import java.util.List; + /** * * Medusa Service provides the methods for displaying the tree-like view and summary of @@ -36,7 +37,7 @@ public interface MedusaService { * @param moduleIdentifier the primary key of the object to be looked up in the specified module * @return */ - public List getMedusaByAward(String moduleName, Long moduleIdentifier); + public List getMedusaByAward(String moduleName, Long moduleIdentifier, boolean includeComplianceModules); /** * @@ -47,8 +48,8 @@ public interface MedusaService { * @param moduleIdentifier the primary key of the object to be looked up in the specified module * @return */ - public List getMedusaByProposal(String moduleName, Long moduleIdentifier); - + public List getMedusaByProposal(String moduleName, Long moduleIdentifier, boolean includeComplianceModules); + /** * * Returns a single MedusaNode that can be used to render the lazy-loaded summary for the diff --git a/coeus-impl/src/main/java/org/kuali/coeus/common/impl/medusa/MedusaServiceImpl.java b/coeus-impl/src/main/java/org/kuali/coeus/common/impl/medusa/MedusaServiceImpl.java index b0609f1f83f..d6ecc7b0d5c 100644 --- a/coeus-impl/src/main/java/org/kuali/coeus/common/impl/medusa/MedusaServiceImpl.java +++ b/coeus-impl/src/main/java/org/kuali/coeus/common/impl/medusa/MedusaServiceImpl.java @@ -142,15 +142,15 @@ protected NsfCode getNsfCode(String nsfCode) { } @Override - public List getMedusaByProposal(String moduleName, Long moduleIdentifier) { + public List getMedusaByProposal(String moduleName, Long moduleIdentifier, boolean includeComplianceModules) { String preferredModule = Constants.INSTITUTIONAL_PROPOSAL_MODULE; - return getMedusaTree(moduleName, moduleIdentifier, preferredModule); + return getMedusaTree(moduleName, moduleIdentifier, preferredModule, includeComplianceModules); } @Override - public List getMedusaByAward(String moduleName, Long moduleIdentifier) { + public List getMedusaByAward(String moduleName, Long moduleIdentifier, boolean includeComplianceModules) { String preferredModule = Constants.AWARD_MODULE; - return getMedusaTree(moduleName, moduleIdentifier, preferredModule); + return getMedusaTree(moduleName, moduleIdentifier, preferredModule, includeComplianceModules); } /** @@ -161,50 +161,50 @@ public List getMedusaByAward(String moduleName, Long moduleIdentifie * @param preferredModule defines the object type that should be placed at the top level when possible * @return */ - protected List getMedusaTree(String moduleName, Long moduleIdentifier, String preferredModule) { + protected List getMedusaTree(String moduleName, Long moduleIdentifier, String preferredModule, boolean includeComplianceModules) { List nodes = new ArrayList(); HashMap> graph = new HashMap>(); if (StringUtils.equals(moduleName, Constants.AWARD_MODULE)) { Award award = getAward(moduleIdentifier); addVertex(graph, award); - buildGraph(graph, award); + buildGraph(graph, award, includeComplianceModules); nodes = getParentNodes(graph, new String[]{preferredModule, Constants.AWARD_MODULE}); } else if (StringUtils.equals(moduleName, Constants.INSTITUTIONAL_PROPOSAL_MODULE)) { InstitutionalProposal proposal = getInstitutionalProposal(moduleIdentifier); addVertex(graph, proposal); - buildGraph(graph, proposal); + buildGraph(graph, proposal, includeComplianceModules); nodes = getParentNodes(graph, new String[]{preferredModule, Constants.INSTITUTIONAL_PROPOSAL_MODULE}); } else if (StringUtils.equals(moduleName, Constants.DEVELOPMENT_PROPOSAL_MODULE)) { DevelopmentProposal proposal = getDevelopmentProposal(moduleIdentifier.toString()); addVertex(graph, proposal); - buildGraph(graph, proposal); + buildGraph(graph, proposal, includeComplianceModules); nodes = getParentNodes(graph, new String[]{preferredModule, Constants.DEVELOPMENT_PROPOSAL_MODULE}); } else if (StringUtils.equals(moduleName, Constants.NEGOTIATION_MODULE)) { Negotiation negotiation = getNegotiation(moduleIdentifier); if (negotiation != null) { addVertex(graph, negotiation); - buildGraph(graph, negotiation); + buildGraph(graph, negotiation, includeComplianceModules); nodes = getParentNodes(graph, new String[]{preferredModule, Constants.NEGOTIATION_MODULE}); } } else if (StringUtils.equals(moduleName, Constants.SUBAWARD_MODULE)) { SubAward subAward = getSubAward(moduleIdentifier); if (subAward != null) { addVertex(graph, subAward); - buildGraph(graph, subAward); + buildGraph(graph, subAward, includeComplianceModules); nodes = getParentNodes(graph, new String[]{preferredModule, Constants.SUBAWARD_MODULE}); } } else if (StringUtils.equals(moduleName, Constants.IRB_MODULE)) { Protocol protocol = getProtocol(moduleIdentifier); if (protocol != null) { addVertex(graph, protocol); - buildGraph(graph, protocol); + buildGraph(graph, protocol, includeComplianceModules); nodes = getParentNodes(graph, new String[]{preferredModule, Constants.IRB_MODULE}); } } else if (StringUtils.equals(moduleName, Constants.IACUC_MODULE)) { IacucProtocol protocol = getIacuc(moduleIdentifier); if (protocol != null) { addVertex(graph, protocol); - buildGraph(graph, protocol); + buildGraph(graph, protocol, includeComplianceModules); nodes = getParentNodes(graph, new String[]{preferredModule, Constants.IACUC_MODULE}); } } @@ -315,30 +315,42 @@ protected boolean isBoInList(List nodes, Object bo) { return false; } - protected void buildGraph(HashMap> graph, SubAward subAward) { + protected void buildGraph(HashMap> graph, SubAward subAward, boolean includeComplianceModules) { Collection awards = getAwards(subAward); for (Award award : awards) { - addToGraph(graph, award, subAward); + addToGraph(graph, award, subAward, includeComplianceModules); } Collection negotiations = getNegotiations(subAward); for (Negotiation negotiation : negotiations) { - addToGraph(graph, negotiation, subAward); + addToGraph(graph, negotiation, subAward, includeComplianceModules); } } - protected void buildGraph(HashMap> graph, ProtocolBase protocol) { + protected void buildGraph(HashMap> graph, ProtocolBase protocol, boolean includeComplianceModules) { for (ProtocolFundingSourceBase fundingSource : protocol.getProtocolFundingSources()) { if (StringUtils.equals(fundingSource.getFundingSourceTypeCode(), FundingSourceType.AWARD)) { - addToGraph(graph, getAward(fundingSource.getFundingSourceNumber()), protocol); + addToGraph(graph, getAward(fundingSource.getFundingSourceNumber()), protocol, includeComplianceModules); } else if (StringUtils.equals(fundingSource.getFundingSourceTypeCode(), FundingSourceType.INSTITUTIONAL_PROPOSAL)) { - addToGraph(graph, getInstitutionalProposal(fundingSource.getFundingSourceNumber()), protocol); + addToGraph(graph, getInstitutionalProposal(fundingSource.getFundingSourceNumber()), protocol, includeComplianceModules); } else if (StringUtils.equals(fundingSource.getFundingSourceTypeCode(), FundingSourceType.PROPOSAL_DEVELOPMENT)) { - addToGraph(graph, getDevelopmentProposal(fundingSource.getFundingSourceNumber()), protocol); + addToGraph(graph, getDevelopmentProposal(fundingSource.getFundingSourceNumber()), protocol, includeComplianceModules); } } - } - + } + + protected void buildGraph(HashMap> graph, IacucProtocol protocol, boolean includeComplianceModules) { + for (org.kuali.kra.protocol.protocol.funding.ProtocolFundingSourceBase fundingSource : protocol.getProtocolFundingSources()) { + if (StringUtils.equals(fundingSource.getFundingSourceTypeCode(), FundingSourceType.AWARD)) { + addToGraph(graph, getAward(fundingSource.getFundingSourceNumber()), protocol, includeComplianceModules); + } else if (StringUtils.equals(fundingSource.getFundingSourceTypeCode(), FundingSourceType.INSTITUTIONAL_PROPOSAL)) { + addToGraph(graph, getInstitutionalProposal(fundingSource.getFundingSourceNumber()), protocol, includeComplianceModules); + } else if (StringUtils.equals(fundingSource.getFundingSourceTypeCode(), FundingSourceType.PROPOSAL_DEVELOPMENT)) { + addToGraph(graph, getDevelopmentProposal(fundingSource.getFundingSourceNumber()), protocol, includeComplianceModules); + } + } + } + protected void addSpecialReviewLinksToGraph(HashMap> graph, List specialReviews, Object existingBo) { Map specialReviewLinking = getSpecialReviewLinkingEnabled(existingBo); for (SpecialReview specialReview : specialReviews) { @@ -347,14 +359,14 @@ protected void addSpecialReviewLinksToGraph(HashMap> graph, && !StringUtils.equals(specialReview.getApprovalTypeCode(), SpecialReviewApprovalType.NOT_YET_APPLIED)) { Protocol protocol = getProtocol(specialReview.getProtocolNumber()); if (protocol != null) { - addToGraph(graph, protocol, existingBo); + addToGraph(graph, protocol, existingBo, true); } } else if (StringUtils.equals(specialReview.getSpecialReviewTypeCode(), SpecialReviewType.ANIMAL_USAGE) && specialReviewLinking.get(SpecialReviewType.ANIMAL_USAGE) && !StringUtils.equals(specialReview.getApprovalTypeCode(), SpecialReviewApprovalType.NOT_YET_APPLIED)) { IacucProtocol protocol = getIacuc(specialReview.getProtocolNumber()); if (protocol != null) { - addToGraph(graph, protocol, existingBo); + addToGraph(graph, protocol, existingBo, true); } } @@ -396,20 +408,22 @@ protected Map getSpecialReviewLinkingEnabled(Object existingBo) * @param graph * @param award */ - protected void buildGraph(HashMap> graph, Award award) { + protected void buildGraph(HashMap> graph, Award award, boolean includeComplianceModules) { Collection proposals = getProposals(award); for (InstitutionalProposal proposal : proposals) { - addToGraph(graph, proposal, award); + addToGraph(graph, proposal, award, includeComplianceModules); } Collection negotiations = getNegotiations(award); for (Negotiation negotiation : negotiations) { - addToGraph(graph, negotiation, award); + addToGraph(graph, negotiation, award, includeComplianceModules); } Collection subAwards = getSubAwards(award); for (SubAward subAward : subAwards) { - addToGraph(graph, subAward, award); + addToGraph(graph, subAward, award, includeComplianceModules); + } + if (includeComplianceModules) { + addSpecialReviewLinksToGraph(graph, award.getSpecialReviews(), award); } - addSpecialReviewLinksToGraph(graph, award.getSpecialReviews(), award); } /** @@ -418,20 +432,22 @@ protected void buildGraph(HashMap> graph, Award award) { * @param graph * @param proposal */ - protected void buildGraph(HashMap> graph, InstitutionalProposal proposal) { + protected void buildGraph(HashMap> graph, InstitutionalProposal proposal, boolean includeComplianceModules) { Collection awards = getAwards(proposal); for (Award award : awards) { - addToGraph(graph, award, proposal); + addToGraph(graph, award, proposal, includeComplianceModules); } Collection proposals = getDevelopmentProposals(proposal); for (DevelopmentProposal devProp : proposals) { - addToGraph(graph, devProp, proposal); + addToGraph(graph, devProp, proposal, includeComplianceModules); } Collection negotiations = getNegotiations(proposal); for (Negotiation negotiation : negotiations) { - addToGraph(graph, negotiation, proposal); + addToGraph(graph, negotiation, proposal, includeComplianceModules); + } + if (includeComplianceModules) { + addSpecialReviewLinksToGraph(graph, proposal.getSpecialReviews(), proposal); } - addSpecialReviewLinksToGraph(graph, proposal.getSpecialReviews(), proposal); } /** @@ -440,41 +456,41 @@ protected void buildGraph(HashMap> graph, InstitutionalProp * @param graph * @param devProp */ - protected void buildGraph(HashMap> graph, DevelopmentProposal devProp) { + protected void buildGraph(HashMap> graph, DevelopmentProposal devProp, boolean includeComplianceModules) { Collection proposals = getProposals(devProp); for (InstitutionalProposal proposal : proposals) { - addToGraph(graph, proposal, devProp); + addToGraph(graph, proposal, devProp, includeComplianceModules); } addSpecialReviewLinksToGraph(graph, devProp.getPropSpecialReviews(), devProp); } - protected void buildGraph(HashMap> graph, Negotiation negotiation) { + protected void buildGraph(HashMap> graph, Negotiation negotiation, boolean includeComplianceModules) { Object bo = getNegotiationService().getAssociatedObject(negotiation); if (bo instanceof Award || bo instanceof InstitutionalProposal || bo instanceof SubAward) { - addToGraph(graph, bo, negotiation); + addToGraph(graph, bo, negotiation, includeComplianceModules); } } - protected void addToGraph(HashMap> graph, Object newBo, Object existingBo) { + protected void addToGraph(HashMap> graph, Object newBo, Object existingBo, boolean includeComplianceModules) { if (newBo == null || existingBo == null) { throw new RuntimeException("Inavlid or null Medusa link found"); } if (findMatchingBo(graph.keySet(), newBo) == null) { addEdge(graph, existingBo, newBo); if (newBo instanceof Award) { - buildGraph(graph, (Award)newBo); + buildGraph(graph, (Award)newBo, includeComplianceModules); } else if (newBo instanceof InstitutionalProposal) { - buildGraph(graph, (InstitutionalProposal) newBo); + buildGraph(graph, (InstitutionalProposal) newBo, includeComplianceModules); } else if (newBo instanceof DevelopmentProposal) { - buildGraph(graph, (DevelopmentProposal) newBo); + buildGraph(graph, (DevelopmentProposal) newBo, includeComplianceModules); } else if (newBo instanceof Negotiation) { - buildGraph(graph, (Negotiation) newBo); + buildGraph(graph, (Negotiation) newBo, includeComplianceModules); } else if (newBo instanceof SubAward) { - buildGraph(graph, (SubAward) newBo); + buildGraph(graph, (SubAward) newBo, includeComplianceModules); } else if (newBo instanceof Protocol) { - buildGraph(graph, (Protocol) newBo); + buildGraph(graph, (Protocol) newBo, includeComplianceModules); } else if (newBo instanceof IacucProtocol) { - buildGraph(graph, (IacucProtocol) newBo); + buildGraph(graph, (IacucProtocol) newBo, includeComplianceModules); } } else { addEdge(graph, existingBo, newBo); diff --git a/coeus-impl/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocumentForm.java b/coeus-impl/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocumentForm.java index 903e2f4e756..a3eabe1077b 100644 --- a/coeus-impl/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocumentForm.java +++ b/coeus-impl/src/main/java/org/kuali/coeus/propdev/impl/core/ProposalDevelopmentDocumentForm.java @@ -386,7 +386,7 @@ public Tree getMedusaTreeView() { rootNode.setNodeLabel("Medusa Tree"); medusaTree.setRootElement(rootNode); if (getDevelopmentProposal().getProposalNumber() != null) { - rootNode.setChildNodes(getMedusaService().getMedusaByProposal("DP", Long.valueOf(getDevelopmentProposal().getProposalNumber()))); + rootNode.setChildNodes(getMedusaService().getMedusaByProposal("DP", Long.valueOf(getDevelopmentProposal().getProposalNumber()), true)); } return medusaTree; } diff --git a/coeus-impl/src/main/java/org/kuali/kra/coi/disclosure/CoiDisclosureServiceImpl.java b/coeus-impl/src/main/java/org/kuali/kra/coi/disclosure/CoiDisclosureServiceImpl.java index f435e5a8199..a3a01a5ebe9 100644 --- a/coeus-impl/src/main/java/org/kuali/kra/coi/disclosure/CoiDisclosureServiceImpl.java +++ b/coeus-impl/src/main/java/org/kuali/kra/coi/disclosure/CoiDisclosureServiceImpl.java @@ -1823,7 +1823,7 @@ private List getDisclosedProjectsBasedOnDevelopmentProp String userId) { List disclosedProjects = new ArrayList(); for(DevelopmentProposal devProposal : devProposalsToCompleteDiscl) { - List medusaNodes = getMedusaService().getMedusaByProposal(Constants.DEVELOPMENT_PROPOSAL_MODULE, Long.parseLong(devProposal.getProposalNumber())); + List medusaNodes = getMedusaService().getMedusaByProposal(Constants.DEVELOPMENT_PROPOSAL_MODULE, Long.parseLong(devProposal.getProposalNumber()),true); CoiDisclosedProjectBean disclosedProjectBean = new CoiDisclosedProjectBean(); populateDisclosedAwardsAndProposals(medusaNodes, userId, disclosedProjectBean); disclosedProjects.add(disclosedProjectBean); @@ -1846,7 +1846,7 @@ private List getDisclosedProjectsBasedOnInstitutePropos String userId) { List disclosedProjects = new ArrayList(); for(InstitutionalProposal instProposal : instProposalsToCompleteDiscl) { - List medusaNodes = getMedusaService().getMedusaByProposal(Constants.INSTITUTIONAL_PROPOSAL_MODULE, instProposal.getProposalId()); + List medusaNodes = getMedusaService().getMedusaByProposal(Constants.INSTITUTIONAL_PROPOSAL_MODULE, instProposal.getProposalId(),true); CoiDisclosedProjectBean disclosedProjectBean = new CoiDisclosedProjectBean(); populateDisclosedAwardsAndProposals(medusaNodes, userId, disclosedProjectBean); disclosedProjects.add(disclosedProjectBean); @@ -1869,7 +1869,7 @@ private List getDisclosedProjectsBasedOnAwardLink(List< String userId) { List disclosedProjects = new ArrayList(); for(Award award : awardsToCompleteDiscl) { - List medusaNodes = getMedusaService().getMedusaByAward(Constants.AWARD_MODULE, award.getAwardId()); + List medusaNodes = getMedusaService().getMedusaByAward(Constants.AWARD_MODULE, award.getAwardId(), true); CoiDisclosedProjectBean disclosedProjectBean = new CoiDisclosedProjectBean(); populateDisclosedAwardsAndProposals(medusaNodes, userId, disclosedProjectBean); disclosedProjects.add(disclosedProjectBean); diff --git a/coeus-webapp/src/main/webapp/WEB-INF/tags/medusa/medusa.tag b/coeus-webapp/src/main/webapp/WEB-INF/tags/medusa/medusa.tag index 30ad16b529e..85c06962e27 100644 --- a/coeus-webapp/src/main/webapp/WEB-INF/tags/medusa/medusa.tag +++ b/coeus-webapp/src/main/webapp/WEB-INF/tags/medusa/medusa.tag @@ -68,7 +68,19 @@ Award > Proposal - + + + + + Include Compliance Modules + + + Include Compliance Modules + + + + + @@ -88,6 +100,8 @@ +${kfunc:registerEditableProperty(KualiForm, "medusaBean.complianceModulesCheckbox")} + ${kfunc:registerEditableProperty(KualiForm, "medusaBean.medusaViewRadio")} ${kfunc:registerEditableProperty(KualiForm, "medusaBean.moduleName")} @@ -95,4 +109,16 @@ ${kfunc:registerEditableProperty(KualiForm, "medusaBean.moduleName")} ${kfunc:registerEditableProperty(KualiForm, "medusaBean.moduleIdentifier")} + +