task/AMP-31085/Update-TruBudget-Branch-with-latest-develolp-draft - #4506
Open
brianbrix wants to merge 126 commits into
Open
task/AMP-31085/Update-TruBudget-Branch-with-latest-develolp-draft#4506brianbrix wants to merge 126 commits into
brianbrix wants to merge 126 commits into
Conversation
…th-latest-develolp # Conflicts: # amp/Dockerfile
Resolve activity delete issue
Resolve activity delete issue
Resolve activity delete issue
…th-latest-develolp # Conflicts: # amp/src/main/java/org/digijava/module/aim/auth/AmpPostLoginAction.java # amp/src/main/java/org/digijava/module/aim/util/ActivityUtil.java # amp/src/main/resources/org/digijava/module/aim/dbentity/AmpActivityVersion.hbm.xml
…ot create a new subproject
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the AMP 4.0 branch with a large set of changes primarily focused on TruBudget integration, component funding enhancements (statuses + documents), and operational/deployment updates (Docker + CI workflows). It also includes a handful of GIS robustness fixes, UI adjustments, and data-importer access controls.
Changes:
- Add/extend TruBudget integration across persistence mappings, user management forms/actions, background status sync job, and UI affordances (closed notices / login toast).
- Extend components/component-funding with status fields, reject reason, and component-funding document support (Wicket UI + Hibernate mappings + SQL views).
- Update deployment/runtime tooling (Docker entrypoint patching, new ECR build workflow, deploy workflow updates) and assorted stability fixes (GIS loading fallback, Unicode import test, etc.).
Reviewed changes
Copilot reviewed 167 out of 171 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| amp/TEMPLATE/ampTemplate/site-config.xml | Update AMP version/release date metadata. |
| amp/TEMPLATE/ampTemplate/gisModule/dev/app/js/amp/sidebar/layers/views/statistical-data-view.js | Render subsections even if indicators fail to load. |
| amp/TEMPLATE/ampTemplate/gisModule/dev/app/js/amp/map/views/main-view.js | Guard default-gis-country against null and normalize case. |
| amp/TEMPLATE/ampTemplate/gisModule/dev/app/js/amp/data/collections/indicator-collection.js | Reject indicator deferred on fetch failures (warn + reject). |
| amp/src/test/java/org/digijava/module/aim/util/DynLocationManagerUtilTest.java | Add tests for Unicode-normalization parent matching + overwrite behavior. |
| amp/src/main/webapp/WEB-INF/moduleConfig/digi-common.xml | Register new Hibernate-mapped TruBudget/component entities. |
| amp/src/main/webapp/WEB-INF/jsp/aim/view/viewGlobalSettings.jsp | Add “trubudget” settings section; rename title to “Global Settings”. |
| amp/src/main/webapp/WEB-INF/jsp/aim/view/organisationManager.jsp | Add bulk-select + “Delete Selected” UI for admins. |
| amp/src/main/webapp/WEB-INF/jsp/aim/view/myDesktop.jsp | Show TruBudget login toast from session-scoped message. |
| amp/src/main/webapp/WEB-INF/jsp/aim/view/activitypreview/planningSection.jsp | Remove several planning preview lines (RFE/evaluation dates). |
| amp/src/main/webapp/WEB-INF/jsp/aim/view/activitypreview/componentsSection.jsp | Show component funding status + reject reason in preview. |
| amp/src/main/webapp/gis/boundaries/CM/list.json | Add Cameroon boundaries metadata list. |
| amp/src/main/resources/xmlpatches/general/views/v_ni_component_funding.xml | Update view to include statuses and exclude rejected items. |
| amp/src/main/resources/xmlpatches/general/views/v_components.xml | Exclude rejected components in view. |
| amp/src/main/resources/xmlpatches/4.0/Update-Import-Tables-v4.xml | Fix malformed closing tag. |
| amp/src/main/resources/xmlpatches/4.0/AMP-FOOTER-TEXT-Add-Footer-Text-Setting.xml | Add “Footer Text” global setting patch. |
| amp/src/main/resources/xmlpatches/4.0/AMP-31165-Add-Trubudget-Status-Sync-Job.xml | Add Quartz job class row for TruBudget status sync. |
| amp/src/main/resources/xmlpatches/4.0/AMP-31161-add-trubudget-username-column.xml | Add tru_budget_user_name column + unique index. |
| amp/src/main/resources/xmlpatches/4.0/AMP-31085-add-trubudget-bulk-import-user-setting.xml | Add 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 | Add Quartz job class row for TruBudget bulk import job. |
| amp/src/main/resources/xmlpatches/4.0/AMP-30754-Recreate-views-on-next-server-starters.xml | Add patch to flag view recreation on restart. |
| amp/src/main/resources/org/digijava/module/trubudget/dbentity/TruBudgetActivity.hbm.xml | New Hibernate mapping for TruBudget activity link table. |
| amp/src/main/resources/org/digijava/module/trubudget/dbentity/AmpComponentTruSubProject.hbm.xml | New Hibernate mapping for component↔subproject link table. |
| amp/src/main/resources/org/digijava/module/trubudget/dbentity/AmpComponentFundingTruWF.hbm.xml | New Hibernate mapping for component funding↔workflow item link table. |
| amp/src/main/resources/org/digijava/module/aim/dbentity/AmpComponentFundingDocument.hbm.xml | New Hibernate mapping for component-funding documents. |
| amp/src/main/resources/org/digijava/module/aim/dbentity/AmpComponentFunding.hbm.xml | Add new columns/relations (status, reject reason, docs). |
| amp/src/main/resources/org/digijava/module/aim/dbentity/AmpComponent.hbm.xml | Add stable id + component status mapping. |
| amp/src/main/resources/org/digijava/module/aim/dbentity/AmpActivityVersion.hbm.xml | Clarify cascade semantics for categories set. |
| amp/src/main/resources/org/digijava/kernel/user/User.hbm.xml | Add TruBudget fields + intents many-to-many mapping. |
| amp/src/main/resources/org/digijava/kernel/user/TruBudgetntentGroup.hbm.xml | New mapping for TruBudget intent group. |
| amp/src/main/resources/org/digijava/kernel/entity/trubudget/TruBudgetIntent.hbm.xml | New mapping for TruBudget intent entity. |
| amp/src/main/resources/org/digijava/kernel/entity/trubudget/SubIntents.hbm.xml | New mapping for TruBudget sub-intents entity. |
| amp/src/main/resources/org/dgfoundation/amp/onepager/components/fields/AmpComponentFundingNewResourceFieldPanel.html | New Wicket markup for component funding document upload. |
| amp/src/main/resources/org/dgfoundation/amp/onepager/components/fields/AmpComponentField.html | Add TruBudget “closed” notice placeholder. |
| amp/src/main/resources/org/dgfoundation/amp/onepager/components/features/tables/AmpComponentsFundingFormTableFeature.html | Add status/reject reason + documents panels to component funding UI. |
| amp/src/main/resources/org/dgfoundation/amp/onepager/components/features/tables/AmpComponentIdentificationFormTableFeature.html | Add component status field to component identification UI. |
| amp/src/main/resources/org/dgfoundation/amp/onepager/components/features/tables/AmpComponentFundingResourcesTableFeature.html | New Wicket markup for listing component funding documents. |
| amp/src/main/resources/org/dgfoundation/amp/onepager/components/features/AmpActivityFormFeature.html | Add TruBudget confirmation/info modals + closed notice placeholder. |
| amp/src/main/resources/java/resources/application.properties | Add bulk-delete org manager messages. |
| amp/src/main/resources/hibernate.cfg.xml | Rename schema auto-update property key. |
| amp/src/main/resources/applicationContext.xml | Register WebClient + Reactor connector beans. |
| amp/src/main/java/org/digijava/module/um/model/TruUserData.java | New TruBudget user DTO (contains password field). |
| amp/src/main/java/org/digijava/module/um/model/TruRevokePermissionRequest.java | New DTO for revoke permission request. |
| amp/src/main/java/org/digijava/module/um/model/TruRefreshTokenRequest.java | New DTO for refresh token request. |
| amp/src/main/java/org/digijava/module/um/model/TruLoginResponse.java | New DTO for login response (contains token fields). |
| amp/src/main/java/org/digijava/module/um/model/TruLoginRequest.java | New DTO for login request. |
| amp/src/main/java/org/digijava/module/um/model/TruGrantPermissionRequest.java | New DTO for grant permission request. |
| amp/src/main/java/org/digijava/module/um/form/ViewEditUserForm.java | Add TruBudget fields/intents to edit-user form. |
| amp/src/main/java/org/digijava/module/um/form/UserRegisterForm.java | Add TruBudget fields/intents to registration form. |
| amp/src/main/java/org/digijava/module/um/form/AddUserForm.java | Add TruBudget fields/intents to add-user form. |
| amp/src/main/java/org/digijava/module/um/action/UserRegister.java | Populate TruBudget data during user registration. |
| amp/src/main/java/org/digijava/module/um/action/RegisterUser.java | Validate/set TruBudget username/password/intents on register flow. |
| amp/src/main/java/org/digijava/module/um/action/AddUser.java | Populate TruBudget settings/intents on add-user UI init. |
| amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/WFItemGrantRevokePermModel.java | New workflow-item permission DTO. |
| amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/ValidateWFDocumentModel.java | New DTO for workflow document validation. |
| amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/EditWFItemModel.java | New DTO for workflow item edits. |
| amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/CreateWFResponseModel.java | New DTO for workflow create response. |
| amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/CloseWFItemModel.java | New DTO for workflow item close/reject. |
| amp/src/main/java/org/digijava/module/trubudget/model/workflowitem/AssignWFItemModel.java | New DTO for workflow item assignment. |
| amp/src/main/java/org/digijava/module/trubudget/model/subproject/SubProjectViewDetailsModel.java | New DTO for subproject details view. |
| amp/src/main/java/org/digijava/module/trubudget/model/subproject/SubProjectGrantRevokePermModel.java | New DTO for subproject permissions. |
| amp/src/main/java/org/digijava/module/trubudget/model/subproject/ReorderWorkFlowItemsModel.java | New DTO for workflow reorder. |
| amp/src/main/java/org/digijava/module/trubudget/model/subproject/EditSubProjectModel.java | New DTO for subproject edits. |
| amp/src/main/java/org/digijava/module/trubudget/model/subproject/EditSubProjectedBudgetModel.java | New DTO for subproject projected budget edits. |
| amp/src/main/java/org/digijava/module/trubudget/model/subproject/CloseSubProjectModel.java | New DTO for subproject close. |
| amp/src/main/java/org/digijava/module/trubudget/model/subproject/AssignSubProjectModel.java | New DTO for subproject assignment. |
| amp/src/main/java/org/digijava/module/trubudget/model/project/ProjectViewDetailsModel.java | New DTO for project details view. |
| amp/src/main/java/org/digijava/module/trubudget/model/project/ProjectGrantRevokePermModel.java | New DTO for project permissions. |
| amp/src/main/java/org/digijava/module/trubudget/model/project/EditProjectModel.java | New DTO for project edits. |
| amp/src/main/java/org/digijava/module/trubudget/model/project/EditProjectedBudgetModel.java | New DTO for project projected budget edits. |
| amp/src/main/java/org/digijava/module/trubudget/model/project/CreateSubProjectModel.java | New DTO for creating subprojects. |
| amp/src/main/java/org/digijava/module/trubudget/model/project/CreateProjectModel.java | New DTO for creating projects. |
| amp/src/main/java/org/digijava/module/trubudget/model/project/CloseProjectModel.java | New DTO for project close. |
| amp/src/main/java/org/digijava/module/trubudget/model/project/AssignProjectModel.java | New DTO for project assignment. |
| amp/src/main/java/org/digijava/module/trubudget/jobs/TruBudgetStatusSyncJob.java | New scheduled job to sync closed status from TruBudget into AMP DB. |
| amp/src/main/java/org/digijava/module/trubudget/dbentity/TruBudgetActivity.java | New JPA entity for TruBudget activity link table. |
| amp/src/main/java/org/digijava/module/trubudget/dbentity/AmpComponentTruSubProject.java | New JPA entity for component↔subproject link table. |
| amp/src/main/java/org/digijava/module/trubudget/dbentity/AmpComponentFundingTruWF.java | New JPA entity for component funding↔workflow item link table. |
| amp/src/main/java/org/digijava/module/contentrepository/helper/NodeWrapper.java | Handle missing/empty titles; minor cleanup. |
| amp/src/main/java/org/digijava/module/categorymanager/util/CategoryConstants.java | Add component statuses/funding statuses + document category keys/values. |
| amp/src/main/java/org/digijava/module/aim/util/LocationUtil.java | Comment out flush call (left as comment). |
| amp/src/main/java/org/digijava/module/aim/util/ActivityVersionUtil.java | Refactor initialization of collection getters via helper. |
| amp/src/main/java/org/digijava/module/aim/startup/WebClientFactoryBean.java | Add FactoryBean to create WebClient. |
| amp/src/main/java/org/digijava/module/aim/startup/QuartzStartupListener.java | Auto-schedule TruBudget status sync job when enabled. |
| amp/src/main/java/org/digijava/module/aim/startup/AmpBackgroundActivitiesUtil.java | Add validator users to translators group as well. |
| amp/src/main/java/org/digijava/module/aim/helper/GlobalSettingsConstants.java | Add Footer Text + TruBudget Bulk Import User keys. |
| amp/src/main/java/org/digijava/module/aim/helper/FundingDetail.java | Add component funding status + reject reason to helper. |
| amp/src/main/java/org/digijava/module/aim/form/OrgManagerForm.java | Add selectedOrgIds binding for bulk org delete. |
| amp/src/main/java/org/digijava/module/aim/form/DataImporterForm.java | Add location replacement + recording org defaults. |
| amp/src/main/java/org/digijava/module/aim/dbentity/AmpComponentFundingDocument.java | New JPA entity for component-funding documents. |
| amp/src/main/java/org/digijava/module/aim/dbentity/AmpComponentFunding.java | Add status, reject reason, stable id, and docs collection (plus formatter). |
| amp/src/main/java/org/digijava/module/aim/dbentity/AmpComponent.java | Add stable id + component status. |
| amp/src/main/java/org/digijava/module/aim/auth/AmpPostLoginAction.java | Trigger TruBudget login in background and set toast message. |
| amp/src/main/java/org/digijava/module/aim/annotations/interchange/ActivityFieldsConstants.java | Add constants for component/component funding status/docs. |
| amp/src/main/java/org/digijava/module/aim/action/ShowUserRegister.java | Populate TruBudget enablement flag + intents on registration screen. |
| amp/src/main/java/org/digijava/module/aim/action/RegisterUser.java | Populate TruBudget data during registration flow. |
| amp/src/main/java/org/digijava/module/aim/action/OrganisationManager.java | Implement bulk delete with constraint checks + messages. |
| amp/src/main/java/org/digijava/module/aim/action/Login.java | Trigger TruBudget login during login flow. |
| amp/src/main/java/org/digijava/module/aim/action/EditActivity.java | Include component funding status + reject reason when building funding detail. |
| amp/src/main/java/org/digijava/module/aim/action/dataimporter/ViewImportProgress.java | Add access control (admin/team head/approver) before showing progress. |
| amp/src/main/java/org/digijava/module/aim/action/dataimporter/util/ImporterConstants.java | Add new importer constants (recording org/internal id/proposed dates). |
| amp/src/main/java/org/digijava/module/aim/action/dataimporter/model/ImplementingAgency.java | New model class with equality on organization. |
| amp/src/main/java/org/digijava/kernel/user/User.java | Add TruBudget fields + intents set to kernel User model. |
| amp/src/main/java/org/digijava/kernel/user/TruBudgetIntentGroup.java | New POJO for intent group (annotations commented out). |
| amp/src/main/java/org/digijava/kernel/user/SqlStartupListener.java | New (commented) startup listener for schema initialization. |
| amp/src/main/java/org/digijava/kernel/entity/trubudget/TruBudgetIntent.java | New JPA entity for TruBudget intent. |
| amp/src/main/java/org/digijava/kernel/entity/trubudget/SubIntents.java | New JPA entity for TruBudget sub-intents. |
| amp/src/main/java/org/digijava/kernel/ampapi/postgis/util/QueryUtil.java | Fix private indicator query join condition. |
| amp/src/main/java/org/digijava/kernel/ampapi/endpoints/security/SecurityService.java | Allow footer text override via global setting. |
| amp/src/main/java/org/digijava/kernel/ampapi/endpoints/security/dto/LayoutInformation.java | Add footerOverride field. |
| amp/src/main/java/org/digijava/kernel/ampapi/endpoints/gis/services/LocationService.java | Remove unused import. |
| amp/src/main/java/org/digijava/kernel/ampapi/endpoints/activity/ActivityImporter.java | Adjust SaveContext for data importer; initialize activity before clone. |
| amp/src/main/java/org/dgfoundation/amp/onepager/util/SaveContext.java | Add closeProjectOnTruBudget flag and dataImporter context helper. |
| amp/src/main/java/org/dgfoundation/amp/onepager/OnePagerUtil.java | Add JS toggle helper for component funding children. |
| amp/src/main/java/org/dgfoundation/amp/onepager/OnePagerConst.java | Add metadata keys + toggle JS for component-funding resources. |
| amp/src/main/java/org/dgfoundation/amp/onepager/helper/TemporaryDocument.java | Default title string set. |
| amp/src/main/java/org/dgfoundation/amp/onepager/helper/TemporaryComponentFundingDocument.java | New temp doc type for component funding documents. |
| amp/src/main/java/org/dgfoundation/amp/onepager/components/upload/FileUploadBehavior.js | Add empty-file and title checks during upload initiation. |
| amp/src/main/java/org/dgfoundation/amp/onepager/components/upload/FileUploadBehavior.java | Add translated message for empty-file upload rejection. |
| amp/src/main/java/org/dgfoundation/amp/onepager/components/fields/AmpComponentField.java | Disable component editing if TruBudget subproject is closed. |
| amp/src/main/java/org/dgfoundation/amp/onepager/components/fields/AmpCategoryFieldPanel.java | Minor refactor (return directly). |
| amp/src/main/java/org/dgfoundation/amp/onepager/components/features/tables/AmpResourcesFormTableFeature.java | Null-safety and iteration refactor for resources list. |
| amp/src/main/java/org/dgfoundation/amp/onepager/components/features/tables/AmpComponentIdentificationFormTableFeature.java | Add component status select field to form table. |
| amp/src/main/java/org/dgfoundation/amp/onepager/components/features/subsections/AmpComponentsFundingSubsectionFeature.java | Default new component funding status + generate stable UUID. |
| amp/src/main/java/org/dgfoundation/amp/onepager/components/features/sections/AmpComponentsFormSectionFeature.java | Default new component status; generic cleanup. |
| amp/src/main/java/org/dgfoundation/amp/onepager/components/features/saveNavigationPanel.js | Add TruBudget close/closed modals JS handlers. |
| amp/src/main/java/org/dgfoundation/amp/menu/MenuItemsProcessor.java | Restrict data-importer menu visibility to authorized users. |
| amp/src/main/java/org/dgfoundation/amp/menu/MenuConstants.java | Add menu constants for data importer items. |
| amp/src/main/java/org/dgfoundation/amp/aitranslation/CachedMachineTranslationService.java | Migrate criteria usage (but currently broken predicate). |
| amp/pom.xml | Set version to 4.0; add reactor-netty + spring-webflux deps. |
| amp/Dockerfile | Add runtime JDBC args; use entrypoint patching; add psql client. |
| amp/docker/entrypoint.sh | New entrypoint to patch JDBC/build label and optionally patch footer text in DB. |
| amp/.env.example | New example env file for AMP+TruBudget docker deployment. |
| .gitmodules | Add deploy submodule. |
| .github/workflows/deploy.yml | Add new deploy targets + free disk step. |
| .github/workflows/build-push-ecr.yml | Add workflow to build+push AMP image to ECR. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+79
to
+85
| Session session = PersistenceManager.getRequestDBSession(); | ||
| CriteriaBuilder builder = session.getCriteriaBuilder(); | ||
| CriteriaQuery<MachineTranslation> criteriaQuery = builder.createQuery(MachineTranslation.class); | ||
| Root<MachineTranslation> root = criteriaQuery.from(MachineTranslation.class); | ||
| criteriaQuery.select(root).where(builder.equal(root.get("sourceLanguage"), srcLang),builder.equal(root.get("targetLanguage"), destLang), | ||
| builder.equal(root.get("text"), batchContents)); | ||
|
|
| <property name="jdbc.use_streams_for_binary">true</property> | ||
| <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property> | ||
| <property name="hbm2ddl.auto">update</property> | ||
| <property name="hibernate.hbm2ddl.auto">update</property> |
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 + '\'' + | ||
| '}'; | ||
| } |
Comment on lines
+290
to
+292
| public String getComponentFundingStatusFormatted() { | ||
| return componentFundingStatus.getValue().toLowerCase(); | ||
| } |
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 |
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.