Repository: cisagov/manage.get.gov

Issue:
Show simplified domain statuses to the registrant
### Story

As a domain manager
I want to know the status of my domain in simple language
so that I know if any action is needed or if any functions are limited


### Acceptance Criteria

- [x] Domains table on the dashboard shows a user-friendly domain status
- [ ] Show the domain status on the "Domain Overview" page
- [ ] For Domain statuses Deleted and Hold, change manage link to View with eye icon [(Figma)](https://www.figma.com/file/aJbuDLJNNikqQObTuCNKQa/GetGov_Designs_ECS-Truss?type=design&node-id=428%3A11621&mode=design&t=eottghQ6NoX98F6q-1)


### Additional Context
**BACKGROUND**
In general, EPP / domain statuses are not easily understandable to most users; therefore, we need to ensure we're showing "user-friendly" versions of the domain status. 

User-friendly statuses include: 
- _Note:_ "Unknown" _Domain status shows as_ "DNS needed"
- DNS needed 
- Ready
- On hold
- Deleted

Refer to[ status diagram Miro](https://miro.com/app/board/uXjVMuqbLOk=/?moveToWidget=3458764561795634398&cot=14)

**DOMAINS TABLE**
Currently, the approved Domains table displays the application status. But, because the application process is complete, we should update this to show the _domain_ status. 

Reference [Figma mock up](https://www.figma.com/file/aJbuDLJNNikqQObTuCNKQa/GetGov_Designs_ECS-Truss?type=design&node-id=428-25637&mode=design&t=VBfj3tkkg2p3f8UT-0)

**DOMAIN OVERVIEW**
Currently, we do not show the  domain status when viewing the "Manage Domains" pages. The "Manage Domains" pages can be accessed by clicking the "Manage" button next to an approved domain. 

The first page is the "Domain Overview." Add stylized message to the top of that page to indicate the user-friendly domain status.

Reference [Figma mock up](https://www.figma.com/file/aJbuDLJNNikqQObTuCNKQa/GetGov_Designs_ECS-Truss?type=design&node-id=4829-39693&mode=design&t=VBfj3tkkg2p3f8UT-0)

### Issue Links

Depends on: Domain Status presence for testing


Discussion:
Could be reduced further by removing the icon pieces into a separate ticket. 

Resolving patch:
diff --git a/src/registrar/views/index.py b/src/registrar/views/index.py
--- a/src/registrar/views/index.py
+++ b/src/registrar/views/index.py
@@ -19,7 +19,7 @@ def index(request):
             pk=F("domain__id"),
             name=F("domain__name"),
             created_time=F("domain__created_at"),
-            application_status=F("domain__domain_application__status"),
+            state=F("domain__state"),
         )
         context["domains"] = domains
     return render(request, "home.html", context)


Test patch:
diff --git a/src/registrar/tests/test_views.py b/src/registrar/tests/test_views.py
--- a/src/registrar/tests/test_views.py
+++ b/src/registrar/tests/test_views.py
@@ -25,6 +25,7 @@
 from registrar.views.application import ApplicationWizard, Step
 
 from .common import less_console_noise
+from .common import MockEppLib
 
 
 class TestViews(TestCase):
@@ -47,8 +48,9 @@ def test_application_form_not_logged_in(self):
         self.assertIn("/login?next=/register/", response.headers["Location"])
 
 
-class TestWithUser(TestCase):
+class TestWithUser(MockEppLib):
     def setUp(self):
+        super().setUp()
         username = "test_user"
         first_name = "First"
         last_name = "Last"
@@ -59,6 +61,7 @@ def setUp(self):
 
     def tearDown(self):
         # delete any applications too
+        super().tearDown()
         DomainApplication.objects.all().delete()
         self.user.delete()
 
@@ -91,6 +94,7 @@ def test_home_lists_domains(self):
         response = self.client.get("/")
         # count = 2 because it is also in screenreader content
         self.assertContains(response, "igorville.gov", count=2)
+        self.assertContains(response, "DNS Needed")
         # clean up
         role.delete()
 
@@ -1140,6 +1144,7 @@ def test_domain_detail_link_works(self):
         # click the "Edit" link
         detail_page = home_page.click("Manage")
         self.assertContains(detail_page, "igorville.gov")
+        self.assertContains(detail_page, "Status")
 
     def test_domain_user_management(self):
         response = self.client.get(
@@ -1293,6 +1298,7 @@ def test_domain_nameservers(self):
         )
         self.assertContains(page, "Domain name servers")
 
+    @skip("Broken by adding registry connection fix in ticket 848")
     def test_domain_nameservers_form(self):
         """Can change domain's nameservers.