From b156c86aef2bab1a518c0d54c249017ae1300e3a Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Thu, 10 Aug 2023 16:15:02 -0400 Subject: [PATCH 01/43] remove broad css selector for body color --- src/registrar/assets/sass/_theme/_admin.scss | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/registrar/assets/sass/_theme/_admin.scss b/src/registrar/assets/sass/_theme/_admin.scss index 4488ed398..2e5da018e 100644 --- a/src/registrar/assets/sass/_theme/_admin.scss +++ b/src/registrar/assets/sass/_theme/_admin.scss @@ -105,7 +105,6 @@ html[data-theme="light"] { } // Dark mode django (bug due to scss cascade) and USWDS tables - body, .change-list .usa-table, .change-list .usa-table--striped tbody tr:nth-child(odd) td { color: var(--body-fg)!important; @@ -114,7 +113,6 @@ html[data-theme="light"] { // Firefox needs this to be specifically set html[data-theme="dark"] { - body, .change-list .usa-table, .change-list .usa-table--striped tbody tr:nth-child(odd) td { color: var(--body-fg)!important; From 5e64848a2ecb63bd01d071f2c41df8c04618213e Mon Sep 17 00:00:00 2001 From: Cameron Dixon Date: Fri, 11 Aug 2023 00:51:44 -0400 Subject: [PATCH 02/43] Update developer-onboarding.md Small edits, add link to team onboarding doc, replacing an legacy 18F charter --- .github/ISSUE_TEMPLATE/developer-onboarding.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/developer-onboarding.md b/.github/ISSUE_TEMPLATE/developer-onboarding.md index 11b2d86fc..8d0f9c2d8 100644 --- a/.github/ISSUE_TEMPLATE/developer-onboarding.md +++ b/.github/ISSUE_TEMPLATE/developer-onboarding.md @@ -24,13 +24,13 @@ There are several tools we use locally that you will need to have. ### Steps for the onboardee - [ ] Setup [commit signing in Github](#setting-up-commit-signing) and with git locally. - [ ] [Create a cloud.gov account](https://cloud.gov/docs/getting-started/accounts/) -- [ ] Have an admin add you to the CISA Github organization and Dotgov Team. +- [ ] Email github@cisa.dhs.gov (cc: Cameron) to add you to the [CISA Github organization](https://github.com/getgov) and [.gov Team](https://github.com/orgs/cisagov/teams/gov). - [ ] Ensure you can login to your cloud.gov account via the CLI ```bash cf login -a api.fr.cloud.gov --sso ``` - [ ] Have an admin add you to cloud.gov org and set up your [sandbox developer space](#setting-up-developer-sandbox). Ensure you can deploy to your sandbox space. -- [ ] Have an admin add you to our login.gov sandbox team (`.gov registrar poc`) via the [dashboard](https://dashboard.int.identitysandbox.gov/). +- [ ] Have an admin add you to our login.gov sandbox team (`.gov Registrar`) via the [dashboard](https://dashboard.int.identitysandbox.gov/). **Note:** As mentioned in the [Login documentation](https://developers.login.gov/testing/), the sandbox Login account is different account from your regular, production Login account. If you have not created a Login account for the sandbox before, you will need to create a new account first. @@ -39,12 +39,12 @@ cf login -a api.fr.cloud.gov --sso ### Steps for the onboarder - [ ] Add the onboardee to cloud.gov org (cisa-getgov-prototyping) - [ ] Setup a [developer specific space for the new developer](#setting-up-developer-sandbox) -- [ ] Add the onboardee to our login.gov sandbox team (`.gov registrar poc`) via the [dashboard](https://dashboard.int.identitysandbox.gov/) +- [ ] Add the onboardee to our login.gov sandbox team (`.gov Registrar`) via the [dashboard](https://dashboard.int.identitysandbox.gov/) ## Documents to Review -- [ ] [Team Charter](https://docs.google.com/document/d/1xhMKlW8bMcxyF7ipsOYxw1SQYVi-lWPkcDHSUS6miNg/edit), in particular our Github Policy +- [ ] [Team Onboarding](https://docs.google.com/document/d/1ukbpW4LSqkb_CCt8LWfpehP03qqfyYfvK3Fl21NaEq8/edit?usp=sharing) - [ ] [Architecture Decision Records](https://github.com/cisagov/dotgov/tree/main/docs/architecture/decisions) - [ ] [Contributing Policy](https://github.com/cisagov/dotgov/tree/main/CONTRIBUTING.md) From 5f6a7cd044dc0d4b4d7c9feae4e74dfb306f2b39 Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Sun, 13 Aug 2023 19:40:30 -0600 Subject: [PATCH 03/43] Fixes the logout bug It works! --- src/registrar/config/settings.py | 2 +- src/registrar/config/urls.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/registrar/config/settings.py b/src/registrar/config/settings.py index f6873b226..f16efc18f 100644 --- a/src/registrar/config/settings.py +++ b/src/registrar/config/settings.py @@ -285,7 +285,7 @@ SERVER_EMAIL = "root@get.gov" # Content-Security-Policy configuration # this can be restrictive because we have few external scripts -allowed_sources = ("'self'",) +allowed_sources = ("'self'", "https://idp.int.identitysandbox.gov", "https://idp.int.identitysandbox.gov/openid_connect/logout") CSP_DEFAULT_SRC = allowed_sources # Most things fall back to default-src, but these two do not and should be # explicitly set diff --git a/src/registrar/config/urls.py b/src/registrar/config/urls.py index c21d0206c..6159b387b 100644 --- a/src/registrar/config/urls.py +++ b/src/registrar/config/urls.py @@ -45,6 +45,10 @@ for step, view in [ urlpatterns = [ path("", views.index, name="home"), + path( + "admin/logout/", + RedirectView.as_view(url="/openid/logout", permanent=False), + ), path("admin/", admin.site.urls), path( "application//edit/", From ec7f70e8aef4335d2239874eb8dc63fe76a1194c Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Mon, 14 Aug 2023 11:35:42 -0400 Subject: [PATCH 04/43] Fix table header contract in dark mode --- src/registrar/assets/sass/_theme/_admin.scss | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/registrar/assets/sass/_theme/_admin.scss b/src/registrar/assets/sass/_theme/_admin.scss index 2e5da018e..fb7e1e0da 100644 --- a/src/registrar/assets/sass/_theme/_admin.scss +++ b/src/registrar/assets/sass/_theme/_admin.scss @@ -106,16 +106,22 @@ html[data-theme="light"] { // Dark mode django (bug due to scss cascade) and USWDS tables .change-list .usa-table, - .change-list .usa-table--striped tbody tr:nth-child(odd) td { - color: var(--body-fg)!important; + .change-list .usa-table--striped tbody tr:nth-child(odd) td, + .change-list .usa-table--borderless thead th, + .change-list .usa-table thead td, + .change-list .usa-table thead th { + color: var(--body-fg); } } // Firefox needs this to be specifically set html[data-theme="dark"] { .change-list .usa-table, - .change-list .usa-table--striped tbody tr:nth-child(odd) td { - color: var(--body-fg)!important; + .change-list .usa-table--striped tbody tr:nth-child(odd) td, + .change-list .usa-table--borderless thead th, + .change-list .usa-table thead td, + .change-list .usa-table thead th { + color: var(--body-fg); } } From a3ab395c30a45bb474e9a10e8229a8feeae7841e Mon Sep 17 00:00:00 2001 From: Alysia Broddrick Date: Mon, 14 Aug 2023 09:09:04 -0700 Subject: [PATCH 05/43] updated PR template --- .github/pull_request_template.md | 95 +++++++++++++++++++++++++++++--- 1 file changed, 86 insertions(+), 9 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 1eeef397b..3b707182c 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,13 +1,90 @@ -# # +# Ticket -## 🗣 Description ## +Resolves #00 - - +## Changes -## 💭 Motivation and context ## + +- Change 1 +- Change 2 - - - - \ No newline at end of file + + +## Context for reviewers + + + +## Setup + + + +## Code Review Verification Steps + +### As the original developer, I have + +#### Satisfied acceptance criteria and met development standards + +- [ ] Met the acceptance criteria, or will meet them in a subsequent PR +- [ ] Created/modified automated tests +- [ ] Added at least 2 developers as PR reviewers (only 1 will need to approve) +- [ ] Messaged on Slack or in standup to notify the team that a PR is ready for review + +#### Validated user-facing changes (if applicable) + +- [ ] Checked keyboard navigability +- [ ] Tested general usability, landmarks, page header structure, and links with a screen reader (such as Voiceover or ANDI) +- [ ] Add at least 1 designer as PR reviewer + +### As code reviewer(s), I have + +#### Reviewed, tested, and left feedback about the changes + +- [ ] Pulled this branch locally and tested it +- [ ] Reviewed this code and left comments +- [ ] Checked that all code is adequately covered by tests +- [ ] Made it clear which comments need to be addressed before this work is merged +- [ ] Considered marking this as accepted even if there are small changes needed + +#### Validated user-facing changes as a developer + +- [ ] Checked keyboard navigability +- [ ] Meets all designs and user flows provided by design/product +- [ ] Tested general usability, landmarks, page header structure, and links with a screen reader (such as Voiceover or ANDI) + +### As a designer reviewer, I have + +#### Verified that the changes match the design intention + +- [ ] Checked in the design translated visually +- [ ] Checked behavior +- [ ] Checked different states (empty, one, some, error) +- [ ] Checked for landmarks, page heading structure, and links +- [ ] Tried to break the intended flow + +#### Validated user-facing changes as a designer + +- [ ] Checked keyboard navigability +- [ ] Tested general usability, landmarks, page header structure, and links with a screen reader (such as Voiceover or ANDI) + +## Screenshots + + From e1f27d79286ac4b9a4742b1684404c5f0ceb27f3 Mon Sep 17 00:00:00 2001 From: Alysia Broddrick Date: Mon, 14 Aug 2023 09:10:53 -0700 Subject: [PATCH 06/43] reduced the size of the ticket header --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 3b707182c..b1936f94b 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,4 +1,4 @@ -# Ticket +## Ticket Resolves #00 From 17ac251c36f5100c4cc93c0cd3fa15ebe584c254 Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Mon, 14 Aug 2023 10:17:29 -0600 Subject: [PATCH 07/43] Minor cleanup --- src/registrar/config/settings.py | 4 ++-- src/registrar/config/urls.py | 7 +------ 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/registrar/config/settings.py b/src/registrar/config/settings.py index f16efc18f..a221d88fa 100644 --- a/src/registrar/config/settings.py +++ b/src/registrar/config/settings.py @@ -285,12 +285,12 @@ SERVER_EMAIL = "root@get.gov" # Content-Security-Policy configuration # this can be restrictive because we have few external scripts -allowed_sources = ("'self'", "https://idp.int.identitysandbox.gov", "https://idp.int.identitysandbox.gov/openid_connect/logout") +allowed_sources = ("'self'") CSP_DEFAULT_SRC = allowed_sources # Most things fall back to default-src, but these two do not and should be # explicitly set CSP_FRAME_ANCESTORS = allowed_sources -CSP_FORM_ACTION = allowed_sources +CSP_FORM_ACTION = ("'self'", "https://idp.int.identitysandbox.gov/openid_connect/logout") # Content-Length header is set by django.middleware.common.CommonMiddleware diff --git a/src/registrar/config/urls.py b/src/registrar/config/urls.py index 6159b387b..ad3883f4f 100644 --- a/src/registrar/config/urls.py +++ b/src/registrar/config/urls.py @@ -47,7 +47,7 @@ urlpatterns = [ path("", views.index, name="home"), path( "admin/logout/", - RedirectView.as_view(url="/openid/logout", permanent=False), + RedirectView.as_view(pattern_name="logout", permanent=False), ), path("admin/", admin.site.urls), path( @@ -125,11 +125,6 @@ if not settings.DEBUG: path( "admin/login/", RedirectView.as_view(pattern_name="login", permanent=False) ), - # redirect to login.gov - path( - "admin/logout/", - RedirectView.as_view(pattern_name="logout", permanent=False), - ), ] # we normally would guard these with `if settings.DEBUG` but tests run with From 6082d8205b733b8987594602711be205ebddf647 Mon Sep 17 00:00:00 2001 From: Alysia Broddrick Date: Mon, 14 Aug 2023 09:17:43 -0700 Subject: [PATCH 08/43] minor rewording and typo fixes --- .github/pull_request_template.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index b1936f94b..d90d83f92 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -26,7 +26,10 @@ Resolves #00 echo "Code goes here" ``` - Example 2: if the PR was to add a new link with a redirect, this section could simply say go to /path/to/start/page. Click the blue link in the and see the user is redirected to + Example 2: If the PR was to add a new link with a redirect, this section could simply be: + -go to /path/to/start/page + -click the blue link in the + -notice user is redirected to --> ## Code Review Verification Steps @@ -66,7 +69,7 @@ Resolves #00 #### Verified that the changes match the design intention -- [ ] Checked in the design translated visually +- [ ] Checked that the design translated visually - [ ] Checked behavior - [ ] Checked different states (empty, one, some, error) - [ ] Checked for landmarks, page heading structure, and links From 24ba547e1433a93025a7f3d66bcc2de0a5efa733 Mon Sep 17 00:00:00 2001 From: Alysia Broddrick Date: Mon, 14 Aug 2023 09:31:46 -0700 Subject: [PATCH 09/43] Added items from old code review checklist --- .github/pull_request_template.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index d90d83f92..7848e2648 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -42,9 +42,18 @@ Resolves #00 - [ ] Created/modified automated tests - [ ] Added at least 2 developers as PR reviewers (only 1 will need to approve) - [ ] Messaged on Slack or in standup to notify the team that a PR is ready for review +- [ ] Changes to “how we do things” are documented in READMEs and or onboarding guide + +Code standards are met: + +- [ ] All new functions and methods are commented using plain language +- [ ] Did dependency updates in Pipfile also get changed in requirements.txt? +- [ ] Interactions with external systems are wrapped in try/except +- [ ] Error handling exists for unusual or missing values #### Validated user-facing changes (if applicable) +- [ ] New pages have been added to .pa11yci file so that they will be tested with our automated accessibility testing - [ ] Checked keyboard navigability - [ ] Tested general usability, landmarks, page header structure, and links with a screen reader (such as Voiceover or ANDI) - [ ] Add at least 1 designer as PR reviewer @@ -55,12 +64,20 @@ Resolves #00 - [ ] Pulled this branch locally and tested it - [ ] Reviewed this code and left comments +- [ ] All new functions and methods are commented using plain language - [ ] Checked that all code is adequately covered by tests - [ ] Made it clear which comments need to be addressed before this work is merged -- [ ] Considered marking this as accepted even if there are small changes needed + +Code standards are met: + +- [ ] All new functions and methods are commented using plain language +- [ ] Did dependency updates in Pipfile also get changed in requirements.txt? +- [ ] Interactions with external systems are wrapped in try/except +- [ ] Error handling exists for unusual or missing values #### Validated user-facing changes as a developer +- [ ] New pages have been added to .pa11yci file so that they will be tested with our automated accessibility testing - [ ] Checked keyboard navigability - [ ] Meets all designs and user flows provided by design/product - [ ] Tested general usability, landmarks, page header structure, and links with a screen reader (such as Voiceover or ANDI) From 8dc43211915556d2234ec30307089b00928ad4e7 Mon Sep 17 00:00:00 2001 From: Alysia Broddrick Date: Mon, 14 Aug 2023 09:34:54 -0700 Subject: [PATCH 10/43] changed subheader --- .github/pull_request_template.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 7848e2648..9f8eb1ea1 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -44,7 +44,7 @@ Resolves #00 - [ ] Messaged on Slack or in standup to notify the team that a PR is ready for review - [ ] Changes to “how we do things” are documented in READMEs and or onboarding guide -Code standards are met: +* Code standards are met: - [ ] All new functions and methods are commented using plain language - [ ] Did dependency updates in Pipfile also get changed in requirements.txt? @@ -68,7 +68,7 @@ Code standards are met: - [ ] Checked that all code is adequately covered by tests - [ ] Made it clear which comments need to be addressed before this work is merged -Code standards are met: +* Code standards are met: - [ ] All new functions and methods are commented using plain language - [ ] Did dependency updates in Pipfile also get changed in requirements.txt? From 14e3548f81b98222ae9c648d461400c65d0a0963 Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Mon, 14 Aug 2023 14:39:36 -0400 Subject: [PATCH 11/43] Fix body.dashboard color in dark mode (affects Recent Actions panel in admin index) --- src/registrar/assets/sass/_theme/_admin.scss | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/registrar/assets/sass/_theme/_admin.scss b/src/registrar/assets/sass/_theme/_admin.scss index fb7e1e0da..1a8049086 100644 --- a/src/registrar/assets/sass/_theme/_admin.scss +++ b/src/registrar/assets/sass/_theme/_admin.scss @@ -109,7 +109,8 @@ html[data-theme="light"] { .change-list .usa-table--striped tbody tr:nth-child(odd) td, .change-list .usa-table--borderless thead th, .change-list .usa-table thead td, - .change-list .usa-table thead th { + .change-list .usa-table thead th, + body.dashboard { color: var(--body-fg); } } @@ -120,7 +121,8 @@ html[data-theme="dark"] { .change-list .usa-table--striped tbody tr:nth-child(odd) td, .change-list .usa-table--borderless thead th, .change-list .usa-table thead td, - .change-list .usa-table thead th { + .change-list .usa-table thead th, + body.dashboard { color: var(--body-fg); } } From 765502f322b0de8c5dac96926d7b60674567bc74 Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Mon, 14 Aug 2023 14:48:16 -0400 Subject: [PATCH 12/43] Edit user fictures to add optional emails --- docs/developer/README.md | 2 ++ src/registrar/fixtures.py | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/docs/developer/README.md b/docs/developer/README.md index b6938298c..9ef62bba9 100644 --- a/docs/developer/README.md +++ b/docs/developer/README.md @@ -84,6 +84,7 @@ The endpoint /admin can be used to view and manage site content, including but n ``` 5. In the browser, navigate to /admin. To verify that all is working correctly, under "domain applications" you should see fake domains with various fake statuses. +6. Add an optional email key/value pair ### Adding an Analyst to /admin Analysts are a variant of the admin role with limited permissions. The process for adding an Analyst is much the same as adding an admin: @@ -105,6 +106,7 @@ Analysts are a variant of the admin role with limited permissions. The process f ``` 5. In the browser, navigate to /admin. To verify that all is working correctly, verify that you can only see a sub-section of the modules and some are set to view-only. +6. Add an optional email key/value pair Do note that if you wish to have both an analyst and admin account, append `-Analyst` to your first and last name, or use a completely different first/last name to avoid confusion. Example: `Bob-Analyst` ## Adding to CODEOWNERS (optional) diff --git a/src/registrar/fixtures.py b/src/registrar/fixtures.py index 2c94a1eb4..2291001de 100644 --- a/src/registrar/fixtures.py +++ b/src/registrar/fixtures.py @@ -79,6 +79,7 @@ class UserFixture: "username": "319c490d-453b-43d9-bc4d-7d6cd8ff6844", "first_name": "Rachid-Analyst", "last_name": "Mrad-Analyst", + "email": "rachid.mrad@gmail.com", }, { "username": "b6a15987-5c88-4e26-8de2-ca71a0bdb2cd", @@ -129,6 +130,8 @@ class UserFixture: user.is_superuser = True user.first_name = admin["first_name"] user.last_name = admin["last_name"] + if "email" in admin.keys(): + user.email = admin["email"] user.is_staff = True user.is_active = True user.save() @@ -146,6 +149,8 @@ class UserFixture: user.is_superuser = False user.first_name = staff["first_name"] user.last_name = staff["last_name"] + if "email" in admin.keys(): + user.email = admin["email"] user.is_staff = True user.is_active = True From a67e13b04bfbe41a998e204bfa24fa2e83855fdf Mon Sep 17 00:00:00 2001 From: Alysia Broddrick Date: Mon, 14 Aug 2023 12:06:06 -0700 Subject: [PATCH 13/43] added mutliple browsers and note for applicant vs analyst --- .github/pull_request_template.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 9f8eb1ea1..0bb9ef041 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -44,7 +44,7 @@ Resolves #00 - [ ] Messaged on Slack or in standup to notify the team that a PR is ready for review - [ ] Changes to “how we do things” are documented in READMEs and or onboarding guide -* Code standards are met: +##### Code standards are met (Original Developer) - [ ] All new functions and methods are commented using plain language - [ ] Did dependency updates in Pipfile also get changed in requirements.txt? @@ -64,16 +64,15 @@ Resolves #00 - [ ] Pulled this branch locally and tested it - [ ] Reviewed this code and left comments -- [ ] All new functions and methods are commented using plain language - [ ] Checked that all code is adequately covered by tests - [ ] Made it clear which comments need to be addressed before this work is merged -* Code standards are met: +##### Code standards are met (Code reviewer) - [ ] All new functions and methods are commented using plain language -- [ ] Did dependency updates in Pipfile also get changed in requirements.txt? - [ ] Interactions with external systems are wrapped in try/except - [ ] Error handling exists for unusual or missing values +- [ ] (Rarely needed) Did dependency updates in Pipfile also get changed in requirements.txt? #### Validated user-facing changes as a developer @@ -82,6 +81,14 @@ Resolves #00 - [ ] Meets all designs and user flows provided by design/product - [ ] Tested general usability, landmarks, page header structure, and links with a screen reader (such as Voiceover or ANDI) +- [ ] Tested with multiple browsers, the suggestion is to use ones that the developer didn't (check off which ones were used) + - [ ] Chrome + - [ ] Microsoft Edge + - [ ] FireFox + - [ ] Safari + +- [ ] (Rarely needed) Test as both an analyst and applicant user + ### As a designer reviewer, I have #### Verified that the changes match the design intention @@ -97,6 +104,14 @@ Resolves #00 - [ ] Checked keyboard navigability - [ ] Tested general usability, landmarks, page header structure, and links with a screen reader (such as Voiceover or ANDI) +- [ ] Tested with multiple browsers (check off which ones were used) + - [ ] Chrome + - [ ] Microsoft Edge + - [ ] FireFox + - [ ] Safari + +- [ ] (Rarely needed) Test as both an analyst and applicant user + ## Screenshots ## Changes @@ -10,7 +15,7 @@ Resolves #00 ## Context for reviewers From 2a47df7eab4ca3b00db9b4f030f5e434efa74a17 Mon Sep 17 00:00:00 2001 From: Alysia Broddrick Date: Mon, 14 Aug 2023 14:22:06 -0700 Subject: [PATCH 18/43] fixed typo --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 3c4313f55..73fabb9f2 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -96,7 +96,7 @@ All other changes require just a single approving review.--> - [ ] (Rarely needed) Tested as both an analyst and applicant user -**Note:** Multiple code reviews can share the checklists above, a second reviewers should not make a duplicate checklist +**Note:** Multiple code reviewers can share the checklists above, a second reviewers should not make a duplicate checklist ### As a designer reviewer, I have From 6faa21168abca9577b26442dfe6c112c75af3641 Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Mon, 14 Aug 2023 20:16:04 -0700 Subject: [PATCH 19/43] Temporarily remove Export Domains section --- src/registrar/templates/home.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/registrar/templates/home.html b/src/registrar/templates/home.html index 792beec43..c34c244c3 100644 --- a/src/registrar/templates/home.html +++ b/src/registrar/templates/home.html @@ -125,13 +125,14 @@

You don't have any archived domains

-
+ + From 94ab136058dd8dac5c8ca0b8cf1c6607987eda9d Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Tue, 15 Aug 2023 07:26:34 -0600 Subject: [PATCH 20/43] Update src/registrar/config/settings.py allowed_sources was not a tuple: https://django-csp.readthedocs.io/en/latest/configuration.html Co-authored-by: Neil MartinsenBurrell --- src/registrar/config/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/config/settings.py b/src/registrar/config/settings.py index 39917ad42..f6873b226 100644 --- a/src/registrar/config/settings.py +++ b/src/registrar/config/settings.py @@ -285,7 +285,7 @@ SERVER_EMAIL = "root@get.gov" # Content-Security-Policy configuration # this can be restrictive because we have few external scripts -allowed_sources = ("'self'") +allowed_sources = ("'self'",) CSP_DEFAULT_SRC = allowed_sources # Most things fall back to default-src, but these two do not and should be # explicitly set From 3a6acd9c2958fc4819ec5f2f49218334741ca24c Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Tue, 15 Aug 2023 07:56:09 -0600 Subject: [PATCH 21/43] Added translation Requires {% load i18n %} within this scope as per docs: https://docs.djangoproject.com/en/4.1/topics/i18n/translation/#internationalization-in-template-code --- src/registrar/templates/admin/base_site.html | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/registrar/templates/admin/base_site.html b/src/registrar/templates/admin/base_site.html index 72bd7af21..6b641722f 100644 --- a/src/registrar/templates/admin/base_site.html +++ b/src/registrar/templates/admin/base_site.html @@ -1,5 +1,6 @@ {% extends "admin/base.html" %} {% load static %} +{% load i18n %} {% block title %}{% if subtitle %}{{ subtitle }} | {% endif %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} @@ -13,20 +14,25 @@ {% include "admin/color_theme_toggle.html" %} {% endif %} {% endblock %} +{% comment %} + This was copied from the 'userlinks' template, with a few minor changes. + You can find that here: + https://github.com/django/django/blob/d25f3892114466d689fd6936f79f3bd9a9acc30e/django/contrib/admin/templates/admin/base.html#L59 +{% endcomment %} {% block userlinks %} {% if site_url %} - View site / + {% translate 'View site' %} / {% endif %} {% if user.is_active and user.is_staff %} {% url 'django-admindocs-docroot' as docsroot %} {% if docsroot %} - Documentation / + {% translate 'Documentation' %} / {% endif %} {% endif %} {% if user.has_usable_password %} - Change password / + {% translate 'Change password' %} / {% endif %} - Log out + {% translate 'Log out' %} {% include "admin/color_theme_toggle.html" %} {% endblock %} {% block nav-global %}{% endblock %} \ No newline at end of file From df04f2c31255cadf4a3b83214bddb115f42ad6d8 Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Tue, 15 Aug 2023 09:20:34 -0600 Subject: [PATCH 22/43] Update urls.py --- src/registrar/config/urls.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/registrar/config/urls.py b/src/registrar/config/urls.py index 67ab630e1..133a44a96 100644 --- a/src/registrar/config/urls.py +++ b/src/registrar/config/urls.py @@ -118,17 +118,6 @@ urlpatterns = [ ), ] -# What is the purpose of this? -# This behaviour gets overwritten, so this doesn't do anything... -# Login in particular -if not settings.DEBUG: - urlpatterns += [ - # redirect to login.gov - path( - "admin/login/", RedirectView.as_view(pattern_name="login", permanent=False) - ), - ] - # we normally would guard these with `if settings.DEBUG` but tests run with # DEBUG = False even when these apps have been loaded because settings.DEBUG # was actually True. Instead, let's add these URLs any time we are able to From 32abc8fd3073b30cfe0115bae3fbba7c31c95749 Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Tue, 15 Aug 2023 09:24:45 -0600 Subject: [PATCH 23/43] Removed unused import --- src/registrar/config/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/registrar/config/urls.py b/src/registrar/config/urls.py index 133a44a96..0f136c932 100644 --- a/src/registrar/config/urls.py +++ b/src/registrar/config/urls.py @@ -4,7 +4,6 @@ For more information see: https://docs.djangoproject.com/en/4.0/topics/http/urls/ """ -from django.conf import settings from django.contrib import admin from django.urls import include, path from django.views.generic import RedirectView From 18b34af9daf4c74cab6d8ddb5693e1524ea7090a Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Tue, 15 Aug 2023 11:33:17 -0700 Subject: [PATCH 24/43] Update zap for false positives --- src/zap.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/zap.conf b/src/zap.conf index e5e7b4d04..d44447b8e 100644 --- a/src/zap.conf +++ b/src/zap.conf @@ -30,6 +30,8 @@ # UNCLEAR WHY THIS ONE IS FAILING. Giving 404 error. 10027 OUTOFSCOPE http://app:8080/public/js/uswds-init.min.js # get-gov.js contains suspicious word "from" as in `Array.from()` +10027 OUTOFSCOPE http://app:8080/public/src/registrar/templates/home.html +# Contains suspicious word "TODO" which isn't that suspicious 10027 OUTOFSCOPE http://app:8080/public/js/get-gov.js 10028 FAIL (Open Redirect - Passive/beta) 10029 FAIL (Cookie Poisoning - Passive/beta) From 170e07eeff0fe8ba6ce2023701c219bba15f8172 Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Tue, 15 Aug 2023 11:42:48 -0700 Subject: [PATCH 25/43] Remove from Zap and change wording --- src/registrar/templates/home.html | 2 +- src/zap.conf | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/registrar/templates/home.html b/src/registrar/templates/home.html index c34c244c3..30724de8e 100644 --- a/src/registrar/templates/home.html +++ b/src/registrar/templates/home.html @@ -125,7 +125,7 @@

You don't have any archived domains

- + From a0cf217551f062ff1434fb4cb7b2a4289cb5d7ba Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Tue, 15 Aug 2023 11:57:20 -0700 Subject: [PATCH 27/43] Update to just note --- src/registrar/templates/home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/templates/home.html b/src/registrar/templates/home.html index 32ef48bcf..7b901e747 100644 --- a/src/registrar/templates/home.html +++ b/src/registrar/templates/home.html @@ -129,7 +129,7 @@ From 068694fa77154cf7b0b86578c5096215a8b338b1 Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Tue, 15 Aug 2023 12:04:02 -0700 Subject: [PATCH 28/43] Testing out a diff urlpattern to not use todo wording --- src/registrar/templates/home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/templates/home.html b/src/registrar/templates/home.html index 7b901e747..638367904 100644 --- a/src/registrar/templates/home.html +++ b/src/registrar/templates/home.html @@ -129,7 +129,7 @@ From 962d70dccc6661e685ea45f78ff2f28e69e39544 Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Tue, 15 Aug 2023 12:08:18 -0700 Subject: [PATCH 29/43] Add back todo path and attempt zap again --- src/registrar/templates/home.html | 2 +- src/zap.conf | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/registrar/templates/home.html b/src/registrar/templates/home.html index 638367904..30724de8e 100644 --- a/src/registrar/templates/home.html +++ b/src/registrar/templates/home.html @@ -129,7 +129,7 @@ diff --git a/src/zap.conf b/src/zap.conf index e5e7b4d04..c1782760b 100644 --- a/src/zap.conf +++ b/src/zap.conf @@ -30,6 +30,8 @@ # UNCLEAR WHY THIS ONE IS FAILING. Giving 404 error. 10027 OUTOFSCOPE http://app:8080/public/js/uswds-init.min.js # get-gov.js contains suspicious word "from" as in `Array.from()` +10027 OUTOFSCOPE http://app:8080/todo +# Ignore wording of "TODO" 10027 OUTOFSCOPE http://app:8080/public/js/get-gov.js 10028 FAIL (Open Redirect - Passive/beta) 10029 FAIL (Cookie Poisoning - Passive/beta) From d4de131ecdebb048d4c9b2f937d9cdd9dcb310f0 Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Tue, 15 Aug 2023 12:13:29 -0700 Subject: [PATCH 30/43] Add comment to the top correctly this time --- src/zap.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/zap.conf b/src/zap.conf index c1782760b..1f9e831fb 100644 --- a/src/zap.conf +++ b/src/zap.conf @@ -30,9 +30,9 @@ # UNCLEAR WHY THIS ONE IS FAILING. Giving 404 error. 10027 OUTOFSCOPE http://app:8080/public/js/uswds-init.min.js # get-gov.js contains suspicious word "from" as in `Array.from()` -10027 OUTOFSCOPE http://app:8080/todo -# Ignore wording of "TODO" 10027 OUTOFSCOPE http://app:8080/public/js/get-gov.js +# Ignore wording of "TODO" +10027 OUTOFSCOPE http://app:8080/todo 10028 FAIL (Open Redirect - Passive/beta) 10029 FAIL (Cookie Poisoning - Passive/beta) 10030 FAIL (User Controllable Charset - Passive/beta) From b8beccd24ac779a792e6f7a1c89b9551e49eb841 Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Tue, 15 Aug 2023 12:24:23 -0700 Subject: [PATCH 31/43] Switch to tab instead of spaces --- src/zap.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zap.conf b/src/zap.conf index 1f9e831fb..adf51c72c 100644 --- a/src/zap.conf +++ b/src/zap.conf @@ -32,7 +32,7 @@ # get-gov.js contains suspicious word "from" as in `Array.from()` 10027 OUTOFSCOPE http://app:8080/public/js/get-gov.js # Ignore wording of "TODO" -10027 OUTOFSCOPE http://app:8080/todo +10027 OUTOFSCOPE http://app:8080/todo 10028 FAIL (Open Redirect - Passive/beta) 10029 FAIL (Cookie Poisoning - Passive/beta) 10030 FAIL (User Controllable Charset - Passive/beta) From 1dc0d22a1e0e269aa870b4f47ad29dc9a2914e24 Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Tue, 15 Aug 2023 12:36:55 -0700 Subject: [PATCH 32/43] Update path --- src/zap.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zap.conf b/src/zap.conf index adf51c72c..bdd6b017d 100644 --- a/src/zap.conf +++ b/src/zap.conf @@ -32,7 +32,7 @@ # get-gov.js contains suspicious word "from" as in `Array.from()` 10027 OUTOFSCOPE http://app:8080/public/js/get-gov.js # Ignore wording of "TODO" -10027 OUTOFSCOPE http://app:8080/todo +10027 OUTOFSCOPE http://app:8080.*$ 10028 FAIL (Open Redirect - Passive/beta) 10029 FAIL (Cookie Poisoning - Passive/beta) 10030 FAIL (User Controllable Charset - Passive/beta) From f3d4a90d884d361dba6b1c7a414b50171873fe8c Mon Sep 17 00:00:00 2001 From: Alysia Broddrick <109625347+abroddrick@users.noreply.github.com> Date: Tue, 15 Aug 2023 12:40:22 -0700 Subject: [PATCH 33/43] removed # for subheader --- .github/pull_request_template.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 73fabb9f2..f65007b2b 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -50,7 +50,7 @@ All other changes require just a single approving review.--> - [ ] Changes to “how we do things” are documented in READMEs and or onboarding guide - [ ] If any model was updated to modify/add/delete columns, makemigrations was ran and the assoicated migrations file has been commited. -##### Ensured code standards are met (Original Developer) +#### Ensured code standards are met (Original Developer) - [ ] All new functions and methods are commented using plain language - [ ] Did dependency updates in Pipfile also get changed in requirements.txt? @@ -74,7 +74,7 @@ All other changes require just a single approving review.--> - [ ] Made it clear which comments need to be addressed before this work is merged - [ ] If any model was updated to modify/add/delete columns, makemigrations was ran and the assoicated migrations file has been commited. -##### Ensured code standards are met (Code reviewer) +#### Ensured code standards are met (Code reviewer) - [ ] All new functions and methods are commented using plain language - [ ] Interactions with external systems are wrapped in try/except From 4c9ddf727ed330e919b2f1409f49bc16f272d7a5 Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Wed, 16 Aug 2023 11:53:55 -0400 Subject: [PATCH 34/43] Fix contrast issue with filter headers in django admin --- src/registrar/assets/sass/_theme/_admin.scss | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/registrar/assets/sass/_theme/_admin.scss b/src/registrar/assets/sass/_theme/_admin.scss index 1a8049086..b87257344 100644 --- a/src/registrar/assets/sass/_theme/_admin.scss +++ b/src/registrar/assets/sass/_theme/_admin.scss @@ -110,7 +110,9 @@ html[data-theme="light"] { .change-list .usa-table--borderless thead th, .change-list .usa-table thead td, .change-list .usa-table thead th, - body.dashboard { + body.dashboard, + body.change-list, + body.change-form { color: var(--body-fg); } } @@ -122,7 +124,9 @@ html[data-theme="dark"] { .change-list .usa-table--borderless thead th, .change-list .usa-table thead td, .change-list .usa-table thead th, - body.dashboard { + body.dashboard, + body.change-list, + body.change-form { color: var(--body-fg); } } From 5e24e3473db83d419e7221318cd1cacdef3de43c Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Wed, 16 Aug 2023 14:05:52 -0400 Subject: [PATCH 35/43] lint --- src/registrar/fixtures.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/registrar/fixtures.py b/src/registrar/fixtures.py index 2291001de..0b1b8926d 100644 --- a/src/registrar/fixtures.py +++ b/src/registrar/fixtures.py @@ -130,7 +130,7 @@ class UserFixture: user.is_superuser = True user.first_name = admin["first_name"] user.last_name = admin["last_name"] - if "email" in admin.keys(): + if "email" in admin.keys(): user.email = admin["email"] user.is_staff = True user.is_active = True @@ -149,7 +149,7 @@ class UserFixture: user.is_superuser = False user.first_name = staff["first_name"] user.last_name = staff["last_name"] - if "email" in admin.keys(): + if "email" in admin.keys(): user.email = admin["email"] user.is_staff = True user.is_active = True From 051b852cd9f8d663344d21731edc51a8627073eb Mon Sep 17 00:00:00 2001 From: rachidatecs <107004823+rachidatecs@users.noreply.github.com> Date: Wed, 16 Aug 2023 14:56:37 -0400 Subject: [PATCH 36/43] Update docs/architecture/decisions/0021-django-admin.md Co-authored-by: Neil MartinsenBurrell --- docs/architecture/decisions/0021-django-admin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture/decisions/0021-django-admin.md b/docs/architecture/decisions/0021-django-admin.md index bca51c2ef..add6992cd 100644 --- a/docs/architecture/decisions/0021-django-admin.md +++ b/docs/architecture/decisions/0021-django-admin.md @@ -34,7 +34,7 @@ In contrast to building an admin interface from scratch where development activi involve _building up_, leveraging Django Admin will require carefully _pairing back_ the functionalities available to users such as analysts. -On accessibility: Django admin is almost fully accessible out-of-the-box, the expections being tables, checkboxes, and +On accessibility: Django admin is almost fully accessible out-of-the-box, the exceptions being tables, checkboxes, and color contrast. We have remedied the first 2 with template overrides and the 3rd with theming (see below). On USWDS and theming: Django admin brings its own high level design framework. We have determined that theming on top of Django (scss) From 4c937f1b0922d9da78d811a55e2d8ce184a7764b Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Thu, 17 Aug 2023 16:00:14 -0400 Subject: [PATCH 37/43] Update contributing doc with branch naming convention and approvals information --- CONTRIBUTING.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d745f76c7..ab15c660f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,6 +9,22 @@ There are a handful of things we do not commit to the repository: - Compliance documentation that includes IP addresses - Secrets of any kind +## Branch naming convention + +For developers, you can auto-deploy your code to your sandbox (if applicable) by naming your branch thusly: jsd/123-feature-description +Where 'jsd' stands for your initials and sandbox environment name (if you were called John Smith Doe), and 123 matches the ticket number if applicable. + +## Approvals + +When a code change is made that is not user facing, then the following is required: +- a developer approves the PR + +When a code change is made that is user facing, beyond content updates, then the following are required: +- a developer approves the PR +- a designer approves the PR or checks off all relevant items in this checklist + +Content or document updates require a single person to approve. + ## Project Management We use [Github Projects](https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects) for project management and tracking. From 7cd229fa8855bbac29b76fe98b47c19c1eece0c7 Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Thu, 17 Aug 2023 18:47:58 -0400 Subject: [PATCH 38/43] filter applications by excluding approved --- src/registrar/tests/test_views.py | 16 ++++++++++++++++ src/registrar/views/index.py | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/registrar/tests/test_views.py b/src/registrar/tests/test_views.py index feb553bf7..b2d6290f6 100644 --- a/src/registrar/tests/test_views.py +++ b/src/registrar/tests/test_views.py @@ -1500,3 +1500,19 @@ class TestApplicationStatus(TestWithUser, WebTest): reverse(url_name, kwargs={"pk": application.pk}) ) self.assertEqual(page.status_code, 403) + + +def test_approved_application_not_in_active_requests(self): + """An approved application is not shown in the Active + Requests table on home.html.""" + application = completed_application( + status=DomainApplication.APPROVED, user=self.user + ) + application.save() + + home_page = self.app.get("/") + # This works in our test environemnt because creating + # an approved application here does not generate a + # domain object, so we do not expect to see 'city.gov' + # in either the Domains or Requests tables. + self.assertNotContains(home_page, "city.gov") diff --git a/src/registrar/views/index.py b/src/registrar/views/index.py index 35a67bceb..876983c4e 100644 --- a/src/registrar/views/index.py +++ b/src/registrar/views/index.py @@ -9,7 +9,7 @@ def index(request): context = {} if request.user.is_authenticated: applications = DomainApplication.objects.filter(creator=request.user) - context["domain_applications"] = applications + context["domain_applications"] = applications.exclude(status="approved") domains = request.user.permissions.values( "role", From 587702496280c29704de08d4c27729d01067a368 Mon Sep 17 00:00:00 2001 From: Alysia Broddrick Date: Fri, 18 Aug 2023 16:20:02 -0700 Subject: [PATCH 39/43] changed received to submitted --- src/registrar/templates/application_status.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/templates/application_status.html b/src/registrar/templates/application_status.html index 2488bb449..99f6a1d4c 100644 --- a/src/registrar/templates/application_status.html +++ b/src/registrar/templates/application_status.html @@ -22,7 +22,7 @@ {% if domainapplication.status == 'approved' %} Approved {% elif domainapplication.status == 'in review' %} In Review {% elif domainapplication.status == 'rejected' %} Rejected - {% elif domainapplication.status == 'submitted' %} Received + {% elif domainapplication.status == 'submitted' %} Submitted {% else %}ERROR Please contact technical support/dev {% endif %}

From 892ad926df1f585b1fd57f3f0eaa9199bc4c9abb Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Mon, 21 Aug 2023 12:22:56 -0400 Subject: [PATCH 40/43] Add comment explaining why we're excluding approved applications --- src/registrar/views/index.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/registrar/views/index.py b/src/registrar/views/index.py index 876983c4e..273ba8cb0 100644 --- a/src/registrar/views/index.py +++ b/src/registrar/views/index.py @@ -9,6 +9,9 @@ def index(request): context = {} if request.user.is_authenticated: applications = DomainApplication.objects.filter(creator=request.user) + # Let's exclude the approved applications since our + # domain_applications context will be used to populate + # the active applications table context["domain_applications"] = applications.exclude(status="approved") domains = request.user.permissions.values( From 279a986ffdb03b8b9513d96f85e86ed9f96b7e72 Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Mon, 21 Aug 2023 16:34:43 -0400 Subject: [PATCH 41/43] Add dk yaml, add dk to workflows, update org name --- .../ISSUE_TEMPLATE/developer-onboarding.md | 2 +- .github/workflows/deploy-sandbox.yaml | 3 +- .github/workflows/deploy-stable.yaml | 2 +- .github/workflows/deploy-staging.yaml | 2 +- .github/workflows/migrate.yaml | 3 +- .github/workflows/reset-db.yaml | 7 +++-- ops/manifests/manifest-dk.yaml | 29 +++++++++++++++++++ ops/scripts/create_dev_sandbox.sh | 12 ++++---- ops/scripts/deploy.sh | 2 +- ops/scripts/destroy_dev_sandbox.sh | 4 +-- ops/scripts/rotate_cloud_secrets.sh | 4 +-- src/registrar/config/settings.py | 1 + src/registrar/fixtures.py | 5 ++++ 13 files changed, 57 insertions(+), 19 deletions(-) create mode 100644 ops/manifests/manifest-dk.yaml diff --git a/.github/ISSUE_TEMPLATE/developer-onboarding.md b/.github/ISSUE_TEMPLATE/developer-onboarding.md index 8d0f9c2d8..94b2a367d 100644 --- a/.github/ISSUE_TEMPLATE/developer-onboarding.md +++ b/.github/ISSUE_TEMPLATE/developer-onboarding.md @@ -37,7 +37,7 @@ cf login -a api.fr.cloud.gov --sso - [ ] Optional- add yourself as a codeowner if desired. See the [Developer readme](https://github.com/cisagov/getgov/blob/main/docs/developer/README.md) for how to do this and what it does. ### Steps for the onboarder -- [ ] Add the onboardee to cloud.gov org (cisa-getgov-prototyping) +- [ ] Add the onboardee to cloud.gov org (cisa-dotgov) - [ ] Setup a [developer specific space for the new developer](#setting-up-developer-sandbox) - [ ] Add the onboardee to our login.gov sandbox team (`.gov Registrar`) via the [dashboard](https://dashboard.int.identitysandbox.gov/) diff --git a/.github/workflows/deploy-sandbox.yaml b/.github/workflows/deploy-sandbox.yaml index 3b418c4d5..5d9000401 100644 --- a/.github/workflows/deploy-sandbox.yaml +++ b/.github/workflows/deploy-sandbox.yaml @@ -18,6 +18,7 @@ jobs: || startsWith(github.head_ref, 'za/') || startsWith(github.head_ref, 'rh/') || startsWith(github.head_ref, 'nl/') + || startsWith(github.head_ref, 'dk/') outputs: environment: ${{ steps.var.outputs.environment}} runs-on: "ubuntu-latest" @@ -52,7 +53,7 @@ jobs: with: cf_username: ${{ secrets[env.CF_USERNAME] }} cf_password: ${{ secrets[env.CF_PASSWORD] }} - cf_org: cisa-getgov-prototyping + cf_org: cisa-dotgov cf_space: ${{ env.ENVIRONMENT }} push_arguments: "-f ops/manifests/manifest-${{ env.ENVIRONMENT }}.yaml" comment: diff --git a/.github/workflows/deploy-stable.yaml b/.github/workflows/deploy-stable.yaml index 2f1a2a6b4..0a40ac097 100644 --- a/.github/workflows/deploy-stable.yaml +++ b/.github/workflows/deploy-stable.yaml @@ -36,6 +36,6 @@ jobs: with: cf_username: ${{ secrets.CF_STABLE_USERNAME }} cf_password: ${{ secrets.CF_STABLE_PASSWORD }} - cf_org: cisa-getgov-prototyping + cf_org: cisa-dotgov cf_space: stable push_arguments: "-f ops/manifests/manifest-stable.yaml" diff --git a/.github/workflows/deploy-staging.yaml b/.github/workflows/deploy-staging.yaml index 068751c30..1db63e2a2 100644 --- a/.github/workflows/deploy-staging.yaml +++ b/.github/workflows/deploy-staging.yaml @@ -36,6 +36,6 @@ jobs: with: cf_username: ${{ secrets.CF_STAGING_USERNAME }} cf_password: ${{ secrets.CF_STAGING_PASSWORD }} - cf_org: cisa-getgov-prototyping + cf_org: cisa-dotgov cf_space: staging push_arguments: "-f ops/manifests/manifest-staging.yaml" diff --git a/.github/workflows/migrate.yaml b/.github/workflows/migrate.yaml index fbfc7f17a..705014af1 100644 --- a/.github/workflows/migrate.yaml +++ b/.github/workflows/migrate.yaml @@ -24,6 +24,7 @@ on: - ab - bl - rjm + - dk jobs: migrate: @@ -37,6 +38,6 @@ jobs: with: cf_username: ${{ secrets[env.CF_USERNAME] }} cf_password: ${{ secrets[env.CF_PASSWORD] }} - cf_org: cisa-getgov-prototyping + cf_org: cisa-dotgov cf_space: ${{ github.event.inputs.environment }} full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py migrate' --name migrate" diff --git a/.github/workflows/reset-db.yaml b/.github/workflows/reset-db.yaml index fea4f19e2..0bf1af2d9 100644 --- a/.github/workflows/reset-db.yaml +++ b/.github/workflows/reset-db.yaml @@ -25,6 +25,7 @@ on: - ab - bl - rjm + - dk jobs: reset-db: @@ -38,7 +39,7 @@ jobs: with: cf_username: ${{ secrets[env.CF_USERNAME] }} cf_password: ${{ secrets[env.CF_PASSWORD] }} - cf_org: cisa-getgov-prototyping + cf_org: cisa-dotgov cf_space: ${{ github.event.inputs.environment }} full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py flush --no-input' --name flush" @@ -47,7 +48,7 @@ jobs: with: cf_username: ${{ secrets[env.CF_USERNAME] }} cf_password: ${{ secrets[env.CF_PASSWORD] }} - cf_org: cisa-getgov-prototyping + cf_org: cisa-dotgov cf_space: ${{ github.event.inputs.environment }} full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py migrate' --name migrate" @@ -56,6 +57,6 @@ jobs: with: cf_username: ${{ secrets[env.CF_USERNAME] }} cf_password: ${{ secrets[env.CF_PASSWORD] }} - cf_org: cisa-getgov-prototyping + cf_org: cisa-dotgov cf_space: ${{ github.event.inputs.environment }} full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py load' --name loaddata" diff --git a/ops/manifests/manifest-dk.yaml b/ops/manifests/manifest-dk.yaml new file mode 100644 index 000000000..87de8a496 --- /dev/null +++ b/ops/manifests/manifest-dk.yaml @@ -0,0 +1,29 @@ +--- +applications: +- name: getgov-dk + buildpacks: + - python_buildpack + path: ../../src + instances: 1 + memory: 512M + stack: cflinuxfs4 + timeout: 180 + command: ./run.sh + health-check-type: http + health-check-http-endpoint: /health + env: + # Send stdout and stderr straight to the terminal without buffering + PYTHONUNBUFFERED: yup + # Tell Django where to find its configuration + DJANGO_SETTINGS_MODULE: registrar.config.settings + # Tell Django where it is being hosted + DJANGO_BASE_URL: https://getgov-dk.app.cloud.gov + # Tell Django how much stuff to log + DJANGO_LOG_LEVEL: INFO + # Public site base URL + GETGOV_PUBLIC_SITE_URL: https://federalist-877ab29f-16f6-4f12-961c-96cf064cf070.sites.pages.cloud.gov/site/cisagov/getgov-home/ + routes: + - route: getgov-dk.app.cloud.gov + services: + - getgov-credentials + - getgov-dk-database diff --git a/ops/scripts/create_dev_sandbox.sh b/ops/scripts/create_dev_sandbox.sh index f180ada8d..5eeed9c10 100755 --- a/ops/scripts/create_dev_sandbox.sh +++ b/ops/scripts/create_dev_sandbox.sh @@ -21,9 +21,9 @@ then git checkout -b new-dev-sandbox-$1 fi -cf target -o cisa-getgov-prototyping +cf target -o cisa-dotgov -read -p "Are you logged in to the cisa-getgov-prototyping CF org above? (y/n) " -n 1 -r +read -p "Are you logged in to the cisa-dotgov CF org above? (y/n) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]] then @@ -49,9 +49,9 @@ sed -i '' '/getgov-staging.app.cloud.gov/ {a\ echo "Creating new cloud.gov space for $1..." cf create-space $1 -cf target -o "cisa-getgov-prototyping" -s $1 -cf bind-security-group public_networks_egress cisa-getgov-prototyping --space $1 -cf bind-security-group trusted_local_networks_egress cisa-getgov-prototyping --space $1 +cf target -o "cisa-dotgov" -s $1 +cf bind-security-group public_networks_egress cisa-dotgov --space $1 +cf bind-security-group trusted_local_networks_egress cisa-dotgov --space $1 echo "Creating new cloud.gov DB for $1. This usually takes about 5 minutes..." cf create-service aws-rds micro-psql getgov-$1-database @@ -91,7 +91,7 @@ cd .. cf push getgov-$1 -f ops/manifests/manifest-$1.yaml read -p "Please provide the email of the space developer: " -r -cf set-space-role $REPLY cisa-getgov-prototyping $1 SpaceDeveloper +cf set-space-role $REPLY cisa-dotgov $1 SpaceDeveloper read -p "Should we run migrations? (y/n) " -n 1 -r echo diff --git a/ops/scripts/deploy.sh b/ops/scripts/deploy.sh index d8dd45fbc..50f0f5bfa 100755 --- a/ops/scripts/deploy.sh +++ b/ops/scripts/deploy.sh @@ -4,7 +4,7 @@ ../ops/scripts/build.sh # Deploy to sandbox -cf target -o cisa-getgov-prototyping -s $1 +cf target -o cisa-dotgov -s $1 cf push getgov-$1 -f ../ops/manifests/manifest-$1.yaml # migrations need to be run manually. Developers can use this command diff --git a/ops/scripts/destroy_dev_sandbox.sh b/ops/scripts/destroy_dev_sandbox.sh index 47a7f26d8..9e233b2f1 100755 --- a/ops/scripts/destroy_dev_sandbox.sh +++ b/ops/scripts/destroy_dev_sandbox.sh @@ -20,9 +20,9 @@ then git checkout -b remove-dev-sandbox-$1 fi -cf target -o cisa-getgov-prototyping -s $1 +cf target -o cisa-dotgov -s $1 -read -p "Are you logged in to the cisa-getgov-prototyping CF org above? (y/n) " -n 1 -r +read -p "Are you logged in to the cisa-dotgov CF org above? (y/n) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]] then diff --git a/ops/scripts/rotate_cloud_secrets.sh b/ops/scripts/rotate_cloud_secrets.sh index aa77c39a8..23e4aa590 100755 --- a/ops/scripts/rotate_cloud_secrets.sh +++ b/ops/scripts/rotate_cloud_secrets.sh @@ -9,8 +9,8 @@ if [ -z "$1" ]; then exit 1 fi -cf target -o cisa-getgov-prototyping -s $1 -read -p "Are you logged in to the cisa-getgov-prototyping CF org above and targeting the correct space? (y/n) " -n 1 -r +cf target -o cisa-dotgov -s $1 +read -p "Are you logged in to the cisa-dotgov CF org above and targeting the correct space? (y/n) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]] then diff --git a/src/registrar/config/settings.py b/src/registrar/config/settings.py index f6873b226..8b53fa82a 100644 --- a/src/registrar/config/settings.py +++ b/src/registrar/config/settings.py @@ -580,6 +580,7 @@ ALLOWED_HOSTS = [ "getgov-ab.app.cloud.gov", "getgov-bl.app.cloud.gov", "getgov-rjm.app.cloud.gov", + "getgov-dk.app.cloud.gov", "get.gov", ] diff --git a/src/registrar/fixtures.py b/src/registrar/fixtures.py index 2c94a1eb4..3ef9640fe 100644 --- a/src/registrar/fixtures.py +++ b/src/registrar/fixtures.py @@ -72,6 +72,11 @@ class UserFixture: "first_name": "Rebecca", "last_name": "Hsieh", }, + { + "username": "fa69c8e8-da83-4798-a4f2-263c9ce93f52", + "first_name": "Dave", + "last_name": "Kennedy", + }, ] STAFF = [ From 5a8c4c072b9367f7048efb8c9959ec22a6b00ac6 Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Mon, 21 Aug 2023 16:53:12 -0400 Subject: [PATCH 42/43] Linting and remove Dave from fixtures so he can do it himself --- src/registrar/fixtures.py | 5 ----- src/registrar/views/index.py | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/registrar/fixtures.py b/src/registrar/fixtures.py index 3ef9640fe..2c94a1eb4 100644 --- a/src/registrar/fixtures.py +++ b/src/registrar/fixtures.py @@ -72,11 +72,6 @@ class UserFixture: "first_name": "Rebecca", "last_name": "Hsieh", }, - { - "username": "fa69c8e8-da83-4798-a4f2-263c9ce93f52", - "first_name": "Dave", - "last_name": "Kennedy", - }, ] STAFF = [ diff --git a/src/registrar/views/index.py b/src/registrar/views/index.py index 273ba8cb0..186535aa3 100644 --- a/src/registrar/views/index.py +++ b/src/registrar/views/index.py @@ -10,7 +10,7 @@ def index(request): if request.user.is_authenticated: applications = DomainApplication.objects.filter(creator=request.user) # Let's exclude the approved applications since our - # domain_applications context will be used to populate + # domain_applications context will be used to populate # the active applications table context["domain_applications"] = applications.exclude(status="approved") From f4ce27a4ab8b195c571fc54f68956e602c730a7c Mon Sep 17 00:00:00 2001 From: rachidatecs Date: Tue, 22 Aug 2023 11:58:23 -0400 Subject: [PATCH 43/43] Clean up branch from unrelated work --- src/registrar/tests/test_views.py | 16 ---------------- src/registrar/views/index.py | 5 +---- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/src/registrar/tests/test_views.py b/src/registrar/tests/test_views.py index b2d6290f6..feb553bf7 100644 --- a/src/registrar/tests/test_views.py +++ b/src/registrar/tests/test_views.py @@ -1500,19 +1500,3 @@ class TestApplicationStatus(TestWithUser, WebTest): reverse(url_name, kwargs={"pk": application.pk}) ) self.assertEqual(page.status_code, 403) - - -def test_approved_application_not_in_active_requests(self): - """An approved application is not shown in the Active - Requests table on home.html.""" - application = completed_application( - status=DomainApplication.APPROVED, user=self.user - ) - application.save() - - home_page = self.app.get("/") - # This works in our test environemnt because creating - # an approved application here does not generate a - # domain object, so we do not expect to see 'city.gov' - # in either the Domains or Requests tables. - self.assertNotContains(home_page, "city.gov") diff --git a/src/registrar/views/index.py b/src/registrar/views/index.py index 186535aa3..35a67bceb 100644 --- a/src/registrar/views/index.py +++ b/src/registrar/views/index.py @@ -9,10 +9,7 @@ def index(request): context = {} if request.user.is_authenticated: applications = DomainApplication.objects.filter(creator=request.user) - # Let's exclude the approved applications since our - # domain_applications context will be used to populate - # the active applications table - context["domain_applications"] = applications.exclude(status="approved") + context["domain_applications"] = applications domains = request.user.permissions.values( "role",