Previously, we were displaying the total_portfolio_value as just
currently obligated funds. Instead, this value should be obligated funds
in current task orders and signed, upcoming task orders
- Edits views to only show spending at the portfolio level -- no longer
broken out by JEDI CLIN
- Removes Monthly Spending table -- keeps the template, just no longer
uses it.
- Removes amount unspent from the expired funding table
Add a property on the portfolio model to calculate the total
obligated funds for a portfolio. This replaces a one-off calculation
in a view function, and sets up functionality for future access
Currently the create call will be consumed by on-demand requests from the frontend, and the 2 stage create will be used by the enviroment management group provisioning to verify an initial subscription was created.
In some functions, we redirect a user based on a parameter in a query
string. This commit adds a function that checks to see if a given url
matches a url pattern of a view function. This will help us ensure that
the url passed as the next parameter isn't malicious.
- Set dict values directly instead of creating a variable
- Comment out unused route function entirely
- Use f-strings for string interpolation
- Move div inside if statement so empty divs are not printed
- Update the form to use BooleanFields for the permissions and make the
form more similar to the Application Members form
- Use MemberFormTemplate macro in the portfolio settings template
- fix tests affected by the form changes
To satisfy security requirements, we need to explicitly track:
- when a user attempts to log in, successful or not
- when a user logs out
- whether or not the user associated with a request is logged in
The first two are satisfied by extra log statements and the last is a
new boolean field on the JSON logs.
This is leftover from a previous iteration of ATAT where inviting a user
to a portfolio would create a pending entry in the users table. This is
no longer used.