flexion/ef-cms

Judges: Add/Remove/Modify Judge Users

Opened this issue · 5 comments

As a court, so that judge personnel changes can be done administratively at the time of need, I need to be able to add, remove, or modify judges and their chambers without needing a code release.

Currently the architecture in DAWSON requires a code release to onboard a new judge, remove a retired/deceased judge, or change a judge from one type to another (e.g., STJ->Regular, Regular->Senior) .

As judges are key personnel here at the Court, we should be able to react quickly to changes needed at that level and ensure DAWSON is up-to-date with the judge roster. We would like to be able to make these changes without requiring a code release, ideally administratively by a Court DevOps user on the back end or in DAWSON itself.

Pre-Conditions

Acceptance Criteria

  • New judge users can be implemented in DAWSON without requiring a code release to production
  • Removal of judge users from dropdown lists/selections can be implemented in DAWSON without requiring a code release to producton
  • Modification of existing judge users (title, chambers, signature, email address, etc.) can be implemented in DAWSON without requiring a code release to production
  • Appropriate documentation on process is produced and can be followed

Notes

  • The "easier" way is OK for this story. Based on the outcome, we will scope additional phases to work towards an administrative front end.

Tasks

Test Cases

Story Definition of Ready (updated on 12/23/22)

The following criteria must be met in order for the user story to be picked up by the Flexion development team.
The user story must:

  • Is framed in business/user need, the value has been addressed.
  • Includes acceptance criteria
  • Has been refined
  • Pre conditions have been satisfied.

Process:
Flexion developers and designers will test if the story meets acceptance criteria and test cases in Flexion dev and staging environments (“standard testing”). If additional acceptance criteria or testing scenarios are discovered while the story is in progress, a new story should be created, added to the backlog and prioritized by the product owner.

Definition of Done (Updated 5-19-22)

Product Owner

UX

  • Business test scenarios have been refined to meet all acceptance criteria
  • Usability has been validated
  • Wiki has been updated (if applicable)
  • Story has been tested on a mobile device (for external users only)

Engineering

  • Automated test scripts have been written, including visual tests for newly added PDFs.
  • Field level and page level validation errors (front-end and server-side) integrated and functioning.
  • Verify that language for docket record for internal users and external users is identical.
  • New screens have been added to pa11y scripts.
  • All new functionality verified to work with keyboard and macOS voiceover https://www.apple.com/voiceover/info/guide/_1124.html.
  • READMEs, other appropriate docs, and swagger/APIs fully updated.
  • UI should be touch optimized and responsive for external only (functions on supported mobile devices and optimized for screen sizes as required).
  • Interactors should validate entities before calling persistence methods.
  • Code refactored for clarity and to remove any known technical debt.
  • If new docket entries have been added as seed data to efcms-local.json, 3 local s3 files corresponding to that docketEntryId have been added to web-api/storage/fixtures/s3/noop-documents-local-us-east-1
  • Acceptance criteria for the story has been met.
  • If there are special instructions in order to deploy into the next environment, add them as a comment in the story.
  • If the work completed for the story requires a reindex without a migration, or any other special deploy steps, apply these changes to the following flexion branches:
    • experimental1
    • experimental2
    • experimental3
    • experimental4
    • experimental5
    • experimental6
    • develop
  • Reviewed by UX on a deployed environment.
  • Reviewed by PO on a deployed environment. Can be deployed to the Court's test environment if prod-like data is required. Otherwise deployed to any experimental environment.
  • Deployed to the Court's staging environment.

Pre-refinement questions:

  • The backend way is 'easy' but the adding people through Dawson is huge. If we wanted the UI, could do the movement of data from the code to the database in this ticket and followup with UI to allow a dawson user to do it. - Do it easy way.
  • If we were to build this out, who should be allowed to add users to dawson?
  • Would it be beneficial to roll the judge creation stuff into something zendesk can utilize? Probably but not a requirement

Judges are part of their own chamber section.

Test Cases

1) DAWSON DevOps or Admin user creates a new Judge User; User can complete this task without having a release.

  • DAWSON DevOps or Admin user refers to the documentation that outlines the process
  • Follows the steps outlined in the documentation

Expected Results:

  • NEW FUNCTIONALITY - Documentation on how to complete adding a new judge is clear and accurate
  • NEW FUNCTIONALITY - New Judge User is created in DAWSON appropriately
  • NEW FUNCTIONALITY - New Judge User displays in appropriate dropdown menus
    • Order Search page: Judge Dropdown
    • Opinion Search page: Judge Dropdown
    • Messages
    • Activity Report
    • Case Inventory Report
    • Custom Case Report
    • Pending Report
    • Edit Case Status/Caption - When Assigned Case, Assigned Motion, CAV, Jurisdiction Retained, Submitted, Submitted - Rule 122, Rule 155 is selected, Judge Name appears in the Associated Judge Dropdown
    • Trial Session Filters
    • Create Trial Session - Assigned Judge
      • After selecting the judge, the chambers phone number populates correctly
    • Judge's Name dropdown when docketing a Decision type document
    • Judge's Name dropdown when docketing an Opinion type document
  • NEW FUNCTIONALITY - Judge name displays correctly on the Deadlines report (The judge will only display here if there is the correct data present in DAWSON)
  • NEW FUNCTIONALITY - Judge name displays correctly on the Submitted/CAV table (The judge will only display here if there is the correct data present in DAWSON)
  • NEW FUNCTIONALITY - Judge name displays correctly on the Pending motions table (The judge will only display here if there is the correct data present in DAWSON)
  • NEW FUNCTIONALITY - Judge name displays correctly on the Trial session planning report (The judge will only display here if there is the correct data present in DAWSON)

2) After the Judge is created per the documentation, The Judge user receives an email indicating that an account was created for them; Judge can log in and use DAWSON.

Part 1

  • As the new Judge user, navigate to your email

Expected Results:

  • NEW FUNCTIONALITY - The U.S. Tax Court DAWSON: Account Created email is in your inbox

Part 2

  • Navigate to DAWSON and log in using the credentials provided in the email
  • Click Log in

Expected Results

  • NEW FUNCTIONALITY - Judge user receives the screen to create a permanent password

Part 3

  • Log in with the permanent password

Expected Results:

  • NEW FUNCTIONALITY - Judge User is routed to their dashboard
  • NEW FUNCTIONALITY - The stuff in test case 1 passes
  • NEW FUNCTIONALITY - The Judge's name display appropriately on a signed order
  • NEW FUNCTIONALITY - Judge can send/receive messages
  • NEW FUNCTIONALITY - Judge can add Judge Notes to a case
  • NEW FUNCTIONALITY - Judge can stamp motions

3) Regression tests

  • Judge can be assigned to a calendared Trial Session
  • Judge see's trial session on their dashboard, can complete tasks associated with the trial session

4) DAWSON DevOps or Admin user Edits an existing Judge User; User can complete this task without having a release.

  • DAWSON DevOps or Admin user refers to the documentation that outlines the process
  • Follows the steps outlined in the documentation

Expected Results:

  • NEW FUNCTIONALITY - Documentation on how to complete editing an existing judge is clear and accurate
  • NEW FUNCTIONALITY - Edited Judge User displays in appropriate dropdown menus
    • Order Search page: Judge Dropdown
    • Opinion Search page: Judge Dropdown
    • Messages
    • Activity Report
    • Case Inventory Report
    • Custom Case Report
    • Pending Report
    • Edit Case Status/Caption - When Assigned Case, Assigned Motion, CAV, Jurisdiction Retained, Submitted, Submitted - Rule 122, Rule 155 is selected, Judge Name appears in the Associated Judge Dropdown
    • Trial Session Filters
    • Create Trial Session - Assigned Judge
      • After selecting the judge, the chambers phone number populates correctly
    • Judge's Name dropdown when docketing a Decision type document
    • Judge's Name dropdown when docketing an Opinion type document
  • NEW FUNCTIONALITY - Judge name displays correctly on the Deadlines report (The judge will only display here if there is the correct data present in DAWSON)
  • NEW FUNCTIONALITY - Judge name displays correctly on the Submitted/CAV table (The judge will only display here if there is the correct data present in DAWSON)
  • NEW FUNCTIONALITY - Judge name displays correctly on the Pending motions table (The judge will only display here if there is the correct data present in DAWSON)
  • NEW FUNCTIONALITY - Judge name displays correctly on the Trial session planning report (The judge will only display here if there is the correct data present in DAWSON)

5) Judge user that was edited, can log in and work in DAWSON as per normal

  • This is a regression test

Expected Results:

  • NEW FUNCTIONALITY - Existing cases assigned to the judge are still assigned
    - [ ] NEW FUNCTIONALITY - If the Judge's name was edited - name change is reflected
  • NEW FUNCTIONALITY - If the Judge's email address changed, Judge can log in to DAWSON with the new email
  • NEW FUNCTIONALITY - If the Judge's "Judge type" was changed, it is reflected appropriately in their signature and on the Judge's Activity report
  • NEW FUNCTIONALITY - Judge can do all thing as per normal

6) DAWSON DevOps or Admin user Deactivates/Removes an existing Judge User; User can complete this task without having a release.

  • DAWSON DevOps or Admin user refers to the documentation that outlines the process
  • Follows the steps outlined in the documentation

Expected Results:

  • NEW FUNCTIONALITY - Documentation on how to complete deactivating/removing a judge is clear and accurate
  • NEW FUNCTIONALITY - Deactivated/Removed Judge User is no longer in the following dropdown menus
    • Messages
    • Activity Report
    • Case Inventory Report (if they do still have cases - they would display here)
    • Pending Report (if they do still have pending items - they would display here)
    • Edit Case Status/Caption - When Assigned Case, Assigned Motion, CAV, Jurisdiction Retained, Submitted, Submitted - Rule 122, Rule 155 is selected, Judge Name does not appear in the Associated Judge Dropdown
    • Trial Session Filters
    • Create Trial Session - Assigned Judge
    • Judge's Name dropdown when docketing a Decision type document
    • Judge's Name dropdown when docketing an Opinion type document
  • NEW FUNCTIONALITY - Judge name should not display on the Deadlines report (The judge will only display here if there is still an associated case with a deadline present in DAWSON)
  • NEW FUNCTIONALITY - Judge name displays correctly on the Trial session planning report (The judge will only display here if the Judge completed a trial session correct in the past in DAWSON)
  • NEW FUNCTIONALITY - Deactivated Judge User is still displayed in the following dropdown menus
    • Order Search page: Judge Dropdown
    • Opinion Search page: Judge Dropdown
      - [ ] Custom Case Report

7) Deactivated/Removed Judge user attempts to log in to DAWSON; Judge is no longer able to log in

  • As the Deactivated/Removed Judge, Navigate to the DAWSON log in page
  • Input your credentials, click log in

Expected Results:

  • User should receive an alert indicating that the email address/PW is invalid.
  • Deactivated/Removed Judge's Cognito record is disabled (dev question - is this correct, or it is deleted?)

8) Regression test the create all judge users script; Any updates made to the Judge users are reflected appropriately in the script that creates the judges in the lower environments

  • Take note of all changes that were made in the previous tests
  • Be sure that the create all judge users script runs

Expected Results:

  • Changes are reflected appropriately in the lower environments

Functionality in the UI looks good, I believe the remaining items in the test cases probably need to be checked by Court Engineering. @jimlerza @jtdevos @Mwindo

Specifically, please check the documentation to ensure that it is understandable and ensuring that when an admin runs the deactivate court user script, the judge user (or any other user they are deactivating) is disabled (deleted?) in Cognito. @Mwindo said that this step wasn't happening when we were testing. Thanks!

Testing Feedback: @Mwindo

If a clerk adds a new trial session and adds the judge or edits the assigned judge on an upcoming trial session to a different judge, the chambers phone number of the selected judge no longer auto-populates when a judge is selected.

This is currently still working on Staging.

Mwindo commented

Update: The above was caused because there was an intervening glue job that cleared out the phone numbers added to Dynamo in test. After re-running the script to add these phone numbers to test, the issue should now be fixed.