AMP-31085: Update TruBudget Branch with latest develolp#4454
Open
brianbrix wants to merge 100 commits into
Open
AMP-31085: Update TruBudget Branch with latest develolp#4454brianbrix wants to merge 100 commits into
brianbrix wants to merge 100 commits into
Conversation
c683f54 to
178b95f
Compare
4da52a1 to
5ea7004
Compare
742991e to
031202a
Compare
…th-latest-develolp # Conflicts: # amp/Dockerfile
29572c8 to
20be240
Compare
ae8aef7 to
5c06916
Compare
Contributor
There was a problem hiding this comment.
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 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 + '\'' + | ||
| '}'; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.