Skip to content

AMP-31085: Update TruBudget Branch with latest develolp#4454

Open
brianbrix wants to merge 100 commits into
developfrom
task/AMP-31085/Update-TruBudget-Branch-with-latest-develolp
Open

AMP-31085: Update TruBudget Branch with latest develolp#4454
brianbrix wants to merge 100 commits into
developfrom
task/AMP-31085/Update-TruBudget-Branch-with-latest-develolp

Conversation

@brianbrix

Copy link
Copy Markdown
Contributor

No description provided.

@brianbrix brianbrix force-pushed the task/AMP-31085/Update-TruBudget-Branch-with-latest-develolp branch from c683f54 to 178b95f Compare January 21, 2026 08:43
@brianbrix brianbrix force-pushed the task/AMP-31085/Update-TruBudget-Branch-with-latest-develolp branch from 4da52a1 to 5ea7004 Compare January 21, 2026 13:09
@brianbrix brianbrix force-pushed the task/AMP-31085/Update-TruBudget-Branch-with-latest-develolp branch from 742991e to 031202a Compare April 24, 2026 04:06
…th-latest-develolp

# Conflicts:
#	amp/Dockerfile
@brianbrix brianbrix force-pushed the task/AMP-31085/Update-TruBudget-Branch-with-latest-develolp branch from 29572c8 to 20be240 Compare July 7, 2026 10:58
@brianbrix brianbrix force-pushed the task/AMP-31085/Update-TruBudget-Branch-with-latest-develolp branch from ae8aef7 to 5c06916 Compare July 15, 2026 08:42
Copilot AI review requested due to automatic review settings July 15, 2026 11:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the TruBudget integration branch by bringing in a large set of changes spanning deployment (Docker/ECR), database schema/view updates, TruBudget user management, component funding/status/document enhancements, GIS boundary assets, and importer/access-control adjustments across the AMP codebase.

Changes:

  • Adds/updates TruBudget integration flows (user enablement, intents/permissions, login feedback toast, bulk import setting/job) plus supporting entities/mappings.
  • Extends components/component funding with statuses, reject reasons, and funding documents (UI + entities + DB views/patches).
  • Introduces Docker-based deployment assets (compose, entrypoint, backup) and CI workflows for building/pushing to ECR.

Reviewed changes

Copilot reviewed 147 out of 149 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
docker-compose.yml Adds a minimal AMP stack with internal PostGIS DB and ECR-based AMP image deployment.
backup.sh Adds DB + uploads backup script with retention pruning.
amp/src/test/java/org/digijava/module/aim/util/DynLocationManagerUtilTest.java Adds tests for unicode-normalized location import and overwrite behavior.
amp/src/main/webapp/WEB-INF/moduleConfig/digi-common.xml Registers additional Hibernate-mapped classes (incl. TruBudget entities).
amp/src/main/webapp/WEB-INF/jsp/um/view/viewEditUser.jsp Adds TruBudget user fields + client-side validation/toggling in edit-user UI.
amp/src/main/webapp/WEB-INF/jsp/um/view/addUser.jsp Adds TruBudget user fields + client-side validation/toggling in add-user UI.
amp/src/main/webapp/WEB-INF/jsp/aim/view/viewGlobalSettings.jsp Adds TruBudget section and renames page heading to “Global Settings”.
amp/src/main/webapp/WEB-INF/jsp/aim/view/myDesktop.jsp Adds post-login TruBudget toast notification rendering.
amp/src/main/webapp/WEB-INF/jsp/aim/view/activitypreview/planningSection.jsp Removes several planning preview fields.
amp/src/main/webapp/WEB-INF/jsp/aim/view/activitypreview/componentsSection.jsp Shows component funding status and reject reason in preview section.
amp/src/main/webapp/gis/boundaries/CM/list.json Adds Cameroon boundary layer metadata list.
amp/src/main/resources/xmlpatches/general/views/v_ni_component_funding.xml Updates view to exclude “Rejected” component/funding statuses.
amp/src/main/resources/xmlpatches/general/views/v_components.xml Updates view to exclude “Rejected” components.
amp/src/main/resources/xmlpatches/4.0/AMP-31161-add-trubudget-username-column.xml Adds TruBudget username column + unique index to dg_user.
amp/src/main/resources/xmlpatches/4.0/AMP-31085-add-trubudget-bulk-import-user-setting.xml Adds global setting + view for TruBudget bulk-import user selection.
amp/src/main/resources/xmlpatches/4.0/AMP-31085-Add-Trubudget-Bulk-Import-Job-v1.xml Registers a Quartz job class for TruBudget bulk import.
amp/src/main/resources/xmlpatches/4.0/AMP-30754-Recreate-views-on-next-server-starters.xml Adds patch to force view recreation on next restart.
amp/src/main/resources/org/digijava/module/trubudget/dbentity/TruBudgetActivity.hbm.xml Adds Hibernate mapping for TruBudgetActivity.
amp/src/main/resources/org/digijava/module/trubudget/dbentity/AmpComponentTruSubProject.hbm.xml Adds Hibernate mapping for component↔TruBudget subproject link table.
amp/src/main/resources/org/digijava/module/trubudget/dbentity/AmpComponentFundingTruWF.hbm.xml Adds Hibernate mapping for component funding↔TruBudget workflow links.
amp/src/main/resources/org/digijava/module/aim/dbentity/AmpComponentFundingDocument.hbm.xml Adds Hibernate mapping for component funding documents table.
amp/src/main/resources/org/digijava/module/aim/dbentity/AmpComponentFunding.hbm.xml Extends component funding mapping with status, reject reason, UUID, and docs set.
amp/src/main/resources/org/digijava/module/aim/dbentity/AmpComponent.hbm.xml Extends component mapping with component status.
amp/src/main/resources/org/digijava/kernel/user/User.hbm.xml Adds TruBudget fields + intents m2m mapping to user.
amp/src/main/resources/org/digijava/kernel/user/TruBudgetntentGroup.hbm.xml Adds Hibernate mapping for TruBudget intent groups.
amp/src/main/resources/org/digijava/kernel/entity/trubudget/TruBudgetIntent.hbm.xml Adds Hibernate mapping for TruBudget intents + user m2m.
amp/src/main/resources/org/digijava/kernel/entity/trubudget/SubIntents.hbm.xml Adds Hibernate mapping for TruBudget sub-intents.
amp/src/main/resources/org/dgfoundation/amp/onepager/components/fields/AmpComponentFundingNewResourceFieldPanel.html Adds Wicket markup for component funding document upload panel.
amp/src/main/resources/org/dgfoundation/amp/onepager/components/features/tables/AmpComponentsFundingFormTableFeature.html Adds status/reject reason + documents widgets to funding row UI.
amp/src/main/resources/org/dgfoundation/amp/onepager/components/features/tables/AmpComponentIdentificationFormTableFeature.html Adds component status field placeholder in component identification UI.
amp/src/main/resources/org/dgfoundation/amp/onepager/components/features/tables/AmpComponentFundingResourcesTableFeature.html Adds Wicket table markup for component funding documents list.
amp/src/main/resources/org/dgfoundation/amp/onepager/components/features/AmpActivityFormFeature.html Adds TruBudget close/already-closed panels to activity form markup.
amp/src/main/resources/hibernate.cfg.xml Renames hbm2ddl property key to hibernate.hbm2ddl.auto.
amp/src/main/resources/applicationContext.xml Adds Spring beans for WebClient and connector.
amp/src/main/java/org/digijava/module/um/model/TruUserData.java Adds TruBudget user data model.
amp/src/main/java/org/digijava/module/um/model/TruRevokePermissionRequest.java Adds TruBudget revoke-permission request model.
amp/src/main/java/org/digijava/module/um/model/TruRefreshTokenRequest.java Adds TruBudget refresh-token request model.
amp/src/main/java/org/digijava/module/um/model/TruLoginResponse.java Adds TruBudget login response model.
amp/src/main/java/org/digijava/module/um/model/TruLoginRequest.java Adds TruBudget login request model.
amp/src/main/java/org/digijava/module/um/model/TruGrantPermissionRequest.java Adds TruBudget grant-permission request model.
amp/src/main/java/org/digijava/module/um/form/ViewEditUserForm.java Adds TruBudget fields/intents to edit-user Struts form.
amp/src/main/java/org/digijava/module/um/form/UserRegisterForm.java Adds TruBudget fields/intents to user registration form.
amp/src/main/java/org/digijava/module/um/form/AddUserForm.java Adds TruBudget fields/intents to add-user form and reset defaults.
amp/src/main/java/org/digijava/module/um/action/ViewEditUser.java Adds TruBudget settings + intents population + validation during edit/save.
amp/src/main/java/org/digijava/module/um/action/UserRegister.java Encrypts/stores TruBudget password + intents at registration time (UM).
amp/src/main/java/org/digijava/module/um/action/RegisterUser.java Adds TruBudget username validation + encryption + intents handling.
amp/src/main/java/org/digijava/module/um/action/AddUser.java Loads TruBudget settings/intents into add-user flow.
amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/WorkflowItemDetailsModel.java Adds TruBudget workflow item details model.
amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/WorkflowItem.java Adds TruBudget workflow item model.
amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/WFItemGrantRevokePermModel.java Adds model for workflow-item permission grant/revoke.
amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/ValidateWFDocumentModel.java Adds model for workflow document validation request.
amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/EditWFItemModel.java Adds model for editing a workflow item.
amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/CreateWFResponseModel.java Adds model for workflow item creation response.
amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/CloseWFItemModel.java Adds model for closing/rejecting workflow items.
amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/AssignWFItemModel.java Adds model for assigning workflow items.
amp/src/main/java/org/digijava/module/trubudget/model/subproject/SubProjectGrantRevokePermModel.java Adds model for subproject permission grant/revoke.
amp/src/main/java/org/digijava/module/trubudget/model/subproject/ReorderWorkFlowItemsModel.java Adds model for reordering workflow items.
amp/src/main/java/org/digijava/module/trubudget/model/subproject/EditSubProjectModel.java Adds model for editing a subproject.
amp/src/main/java/org/digijava/module/trubudget/model/subproject/EditSubProjectedBudgetModel.java Adds model for editing projected subproject budgets.
amp/src/main/java/org/digijava/module/trubudget/model/subproject/CloseSubProjectModel.java Adds model for closing a subproject.
amp/src/main/java/org/digijava/module/trubudget/model/subproject/AssignSubProjectModel.java Adds model for assigning a subproject.
amp/src/main/java/org/digijava/module/trubudget/model/project/ProjectGrantRevokePermModel.java Adds model for project permission grant/revoke.
amp/src/main/java/org/digijava/module/trubudget/model/project/EditProjectModel.java Adds model for editing a project.
amp/src/main/java/org/digijava/module/trubudget/model/project/EditProjectedBudgetModel.java Adds model for editing projected budgets.
amp/src/main/java/org/digijava/module/trubudget/model/project/CreateSubProjectModel.java Adds model for creating TruBudget subprojects.
amp/src/main/java/org/digijava/module/trubudget/model/project/CreateProjectModel.java Adds model for creating TruBudget projects.
amp/src/main/java/org/digijava/module/trubudget/model/project/CloseProjectModel.java Adds model for closing a TruBudget project.
amp/src/main/java/org/digijava/module/trubudget/model/project/AssignProjectModel.java Adds model for assigning a TruBudget project.
amp/src/main/java/org/digijava/module/trubudget/dbentity/TruBudgetActivity.java Adds entity for AMP↔TruBudget activity linkage.
amp/src/main/java/org/digijava/module/trubudget/dbentity/AmpComponentTruSubProject.java Adds entity for component↔TruBudget subproject linkage.
amp/src/main/java/org/digijava/module/trubudget/dbentity/AmpComponentFundingTruWF.java Adds entity for component funding↔TruBudget workflow linkage.
amp/src/main/java/org/digijava/module/contentrepository/helper/NodeWrapper.java Tweaks resource node naming/versioning and year-of-publication date set logic.
amp/src/main/java/org/digijava/module/categorymanager/util/CategoryConstants.java Adds constants and hard-coded values for component statuses and docs.
amp/src/main/java/org/digijava/module/aim/util/LocationUtil.java Comments out an explicit session flush in location save.
amp/src/main/java/org/digijava/module/aim/util/DynLocationManagerUtil.java Adds unicode normalization + overwrite behavior adjustments in location import.
amp/src/main/java/org/digijava/module/aim/util/ActivityVersionUtil.java Refactors collection initialization logic into a helper method.
amp/src/main/java/org/digijava/module/aim/startup/WebClientFactoryBean.java Adds Spring FactoryBean producing a WebClient instance.
amp/src/main/java/org/digijava/module/aim/startup/AmpBackgroundActivitiesUtil.java Adds newly created validator users to translator group as well.
amp/src/main/java/org/digijava/module/aim/helper/GlobalSettingsConstants.java Adds constant for “TruBudget Bulk Import User” global setting name.
amp/src/main/java/org/digijava/module/aim/helper/FundingDetail.java Adds fields for component funding status and reject reason.
amp/src/main/java/org/digijava/module/aim/form/DataImporterForm.java Adds flags/fields for location replacement + recording org default.
amp/src/main/java/org/digijava/module/aim/dbentity/AmpComponentFundingDocument.java Adds entity for component funding documents.
amp/src/main/java/org/digijava/module/aim/dbentity/AmpComponentFunding.java Adds status, reject reason, UUID, and docs collection + getters.
amp/src/main/java/org/digijava/module/aim/dbentity/AmpComponent.java Adds component status field + Interchangeable metadata.
amp/src/main/java/org/digijava/module/aim/auth/AmpPostLoginAction.java Adds async TruBudget login attempt + toast messaging via session attributes.
amp/src/main/java/org/digijava/module/aim/annotations/interchange/ActivityFieldsConstants.java Adds Interchange field labels for component status/funding status/docs.
amp/src/main/java/org/digijava/module/aim/action/ShowUserRegister.java Loads TruBudget settings/intents into registration view.
amp/src/main/java/org/digijava/module/aim/action/RegisterUser.java Stores TruBudget password/intents during AIM registration flow.
amp/src/main/java/org/digijava/module/aim/action/Login.java Triggers TruBudget login during legacy login flow.
amp/src/main/java/org/digijava/module/aim/action/EditActivity.java Adds component funding status/reject reason into view model.
amp/src/main/java/org/digijava/module/aim/action/dataimporter/ViewImportProgress.java Restricts importer progress access to admins/team heads/approvers.
amp/src/main/java/org/digijava/module/aim/action/dataimporter/util/ImporterConstants.java Adds new constants for recording org and proposed/agreement dates, etc.
amp/src/main/java/org/digijava/module/aim/action/dataimporter/model/ImplementingAgency.java Adds ImplementingAgency model with percentage and equality semantics.
amp/src/main/java/org/digijava/kernel/user/User.java Adds TruBudget fields/intents to core User model.
amp/src/main/java/org/digijava/kernel/user/TruBudgetIntentGroup.java Adds Java model for intent group (mapping currently commented).
amp/src/main/java/org/digijava/kernel/user/SqlStartupListener.java Adds (commented) startup listener for schema initialization.
amp/src/main/java/org/digijava/kernel/entity/trubudget/TruBudgetIntent.java Adds entity for TruBudget intent.
amp/src/main/java/org/digijava/kernel/entity/trubudget/SubIntents.java Adds entity for TruBudget sub-intents.
amp/src/main/java/org/digijava/kernel/ampapi/endpoints/gis/services/LocationService.java Removes unused Work import.
amp/src/main/java/org/digijava/kernel/ampapi/endpoints/activity/ActivityImporter.java Adjusts save context for data importer + initializes activity before clone/update.
amp/src/main/java/org/dgfoundation/amp/onepager/util/SaveContext.java Adds closeProjectOnTruBudget flag and a dataImporter context builder.
amp/src/main/java/org/dgfoundation/amp/onepager/OnePagerUtil.java Adds toggle helper for component-funding child panels.
amp/src/main/java/org/dgfoundation/amp/onepager/OnePagerConst.java Adds metadata keys and JS template for component funding doc toggling.
amp/src/main/java/org/dgfoundation/amp/onepager/helper/TemporaryDocument.java Sets a default title value for temporary documents.
amp/src/main/java/org/dgfoundation/amp/onepager/helper/TemporaryComponentFundingDocument.java Adds temporary document helper for component funding docs.
amp/src/main/java/org/dgfoundation/amp/onepager/components/upload/FileUploadBehavior.js Adds extra client checks for empty files and missing title.
amp/src/main/java/org/dgfoundation/amp/onepager/components/upload/FileUploadBehavior.java Adds translated message for “empty file” validation.
amp/src/main/java/org/dgfoundation/amp/onepager/components/fields/AmpCategoryFieldPanel.java Minor cleanup in category field model getter.
amp/src/main/java/org/dgfoundation/amp/onepager/components/features/tables/AmpResourcesFormTableFeature.java Fixes NPE risk and modernizes iteration patterns.
amp/src/main/java/org/dgfoundation/amp/onepager/components/features/tables/AmpComponentIdentificationFormTableFeature.java Adds component status select field to component identification feature.
amp/src/main/java/org/dgfoundation/amp/onepager/components/features/subsections/AmpComponentsFundingSubsectionFeature.java Sets default funding status + UUID for new component fundings.
amp/src/main/java/org/dgfoundation/amp/onepager/components/features/sections/AmpComponentsFormSectionFeature.java Sets default component status and modernizes generics usage.
amp/src/main/java/org/dgfoundation/amp/onepager/components/features/saveNavigationPanel.js Adds TruBudget close/already-closed panel show/hide JS.
amp/src/main/java/org/dgfoundation/amp/menu/MenuItemsProcessor.java Adds role-based gating for data importer menu items.
amp/src/main/java/org/dgfoundation/amp/menu/MenuConstants.java Adds constants for data importer menu items.
amp/src/main/java/org/dgfoundation/amp/aitranslation/CachedMachineTranslationService.java Refactors cached-translation queries to JPA Criteria API.
amp/pom.xml Adds reactor-netty and spring-webflux dependencies.
amp/Dockerfile Adds runtime JDBC arg wiring, improves Maven caching, adds entrypoint, installs psql client.
amp/docker/entrypoint.sh Patches context/site config at container start and optionally updates footer in DB.
amp/.env.example Adds env template for AMP+TruBudget Docker deployment.
.github/workflows/deploy.yml Adds deployment targets and frees runner disk space before builds.
.github/workflows/build-push-ecr.yml Adds a workflow to build and push AMP image to ECR.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +83 to +85
criteriaQuery.select(root).where(builder.equal(root.get("sourceLanguage"), srcLang),builder.equal(root.get("targetLanguage"), destLang),
builder.equal(root.get("text"), batchContents));

Comment on lines +182 to +183
Collection<TruBudgetIntent> intents = getTruBudgetIntents();
logger.info("Intents: "+intents);
if (intents != null) {
truBudgetIntents = getTruBudgetIntentsByName(intents);
}
logger.info("Intents: " + truBudgetIntents);
if (intents != null) {
truBudgetIntents = getTruBudgetIntentsByName(intents);
}
logger.info("Intents: " + truBudgetIntents);
if (intents != null) {
truBudgetIntents = getTruBudgetIntentsByName(intents);
}
logger.info("Intents: " + truBudgetIntents);
Comment thread amp/docker/entrypoint.sh
Comment on lines +60 to +65
psql -h "${DB_HOST}" -p "${DB_PORT}" -U "${DB_USER}" -d "${DB_NAME}" <<SQL
UPDATE dg_message
SET message_utf8 = '${AMP_FOOTER_TEXT}',
orig_message = '${AMP_FOOTER_TEXT}'
WHERE message_key = 'Developed in partnership with OECD, UNDP, WB, Government of Ethiopia and DG';
SQL
variables.put("uploadFailedMsg", TranslatorUtil.getTranslatedText("Upload failed! Please try again."));
variables.put("uploadStartedMsg", TranslatorUtil.getTranslatedText("Upload started, please wait..."));
variables.put("uploadFailedTooBigMsg", TranslatorUtil.getTranslatedText("The file size limit is {size} MB. This file exceeds the limit.").replace("{size}", maxFileSizeGS));
variables.put("uploadFailedTooSmallMsg", TranslatorUtil.getTranslatedText("This file is empty.Please upload a non-empty file."));
Comment on lines +35 to +40
} else if (data.title === '') {
alert("Document Title must be present.");
$('#uploadLabel').text("${uploadNoFileLabel}");
$(this).find('[role=fileUploadedMsg]').html('');
$(this).find('[role=fileUploadedMsg]').hide();
}
Comment on lines +109 to +117
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", displayName='" + displayName + '\'' +
", organization='" + organization + '\'' +
", password='" + password + '\'' +
'}';
}
Comment on lines +143 to +154
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", displayName='" + displayName + '\'' +
", organization='" + organization + '\'' +
", allowedIntents=" + allowedIntents +
", groups=" + groups +
", token='" + token + '\'' +
", refreshToken='" + refreshToken + '\'' +
'}';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants