icefoganalytics / elcc-data-management

Data Management application for Education's Early Learning Child Centre
Apache License 2.0
0 stars 0 forks source link

ELCC-22: Make the Boxes on the Summary Pane Calculated From the Worksheets #55

Closed klondikemarlen closed 11 months ago

klondikemarlen commented 12 months ago

Fixes https://yg-hpw.atlassian.net/browse/ELCC-22

Context

Log in to http://localhost:8080/child-care-centres/1 → Summary → Reconciliation

Requirements

Proposed Implementation

Limitations of Platform

  1. ~Logs you out every 30 minutes or so~ - Fixed - was actually a race condition in the authentication pipeline
  2. ~Does not support direct navigation via url, you have to log in, go to the dashboard, and click through to child care centers, then “view details” – every time you make an edit to the source.~ - Fixed - used route props and direct lookup of center from id

Implementation

  1. Make Summary tabs referential via URL.
    1. This vastly speeds up development as app reload on change will remain on the same tab
    2. This makes it easier to debug, as end users can now explain exactly where they are in the app via the URL.
    3. This makes it easier to get to a location, as you can now bookmark the tab directly.
    4. Its also an accessibility thing.
  2. I opted not to embed the "fiscal year" in the URL at this point, due to task complexity, but it should definitely get put in there at some point. This would make the URL /child-care-centres/1/fiscal-year/2023-24/summary/reconciliation
  3. Pulled in some Controller logic from https://github.com/icefoganalytics/travel-authorization, yay open source!
  4. Add a payments table to track payments.
  5. Build out a basic api, and store pattern, again take from https://github.com/icefoganalytics/travel-authorization.
  6. Use an "Excel" style UI for payments entry, rather than a traditional data table + form action setup, to simplify product transition.

Screenshots

New image

New Payments Tab image

Old image

Testing Instructions

  1. Boot the app via dev up
  2. Check that the app complies, and that you can log in at http://localhost:8080.
  3. Check that you can log in to the app can that the dashboard loads correct.
  4. Click on the "Education is Currently Funding" widget, the first one at the top left.
  5. Check that it displays the expected centres.
  6. Click on the first one.
  7. Check that this opens a panel to the right, with a "View Details" button that links to http://localhost:8080/child-care-centres/1/summary.
  8. Click on the "View Details" button.
  9. Check that you get the Summary -> Reconciliation tab and that the url is now http://localhost:8080/child-care-centres/1/summary/reconciliation.
  10. Check that you can switch to the worksheets, and employees tabs, and that you can switch back to the Summary tab. The url form will be the old non-specific name for the Worksheets and Employees tabs i.e. http://localhost:8080/child-care-centres/1.
  11. Check that switching back to the "Summary" tab redirects to the "Reconciliation" sub-tab and the URL is again localhost:8080/child-care-centres/1/summary/reconciliation.
  12. Check that you can navigate to all the "Summary" tabs and that their URLs update to match the tab name.
  13. Go to the "Payments" tab and enter some payments.
  14. Note that the "Payment Name" gets auto-filled but is editable.
  15. Note that the Payment Date" gets auto-filled to the current year.
  16. Check that you can create/update/delete payments.
  17. Check that edits to "Payment Amount" do not trigger a cursor jump to end of the field.
  18. Check that the "Summary -> Reconciliation" tab gets updated with the payment amounts, and with the expenses listed in the top level "Worksheets -> " tabs.
  19. Check that you can refresh the page on any of the linked url tabs, or navigate to them directly via the URL.