Skip to content

Commit

Permalink
Content updates before comparables
Browse files Browse the repository at this point in the history
  • Loading branch information
pjsier committed Jan 2, 2024
1 parent 01091c1 commit 1fd5cad
Show file tree
Hide file tree
Showing 16 changed files with 295 additions and 306 deletions.
8 changes: 4 additions & 4 deletions api/templates/emails/submission_detroit.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@
Steps in Appeals Process:
<ul>
<li>
<b>Step 1</b>: Complete this online application by <b>February 15, 2024</b>.
<b>Step 1</b>: Complete this online application by <b>March 1, 2024</b>.
</li>
<li>
<b>Step 2</b>: We will review your application, determine if you are
eligible, and reach out with any questions or further information you may
need.
</li>
<li>
<b>Step 3</b>: An advocate from our team will submit your documents to the
March Board of Review by March 8, 2024.
<b>Step 3</b>: Our team will submit your documents to the March Board of
Review by March 8, 2024.
</li>
<li>
<b>Step 4</b>: Before June of 2024, the Board of Review will send you a
letter notifying you whether your home&apos;s assessed value is reduced
letter notifying you whether it has reduced your home&apos;s assessed value
because of your appeal.
</li>
</ul>
Expand Down
111 changes: 54 additions & 57 deletions cypress/e2e/appeals.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,73 +14,70 @@ describe("Appeal flow", () => {

it("Submits an appeal", () => {
const regions = [detroit, cook]
regions.forEach(
({ appealUrl, pin, street_number, street_name, comparables }) => {
cy.visit(appealUrl)
cy.get("#Eligibility_residence [type=radio]").check("Yes")
cy.get("#Eligibility_owner [type=radio]").check("Yes")
regions.forEach(({ appealUrl, pin, street_number, street_name }) => {
cy.visit(appealUrl)
cy.get("#Eligibility_residence [type=radio]").check("Yes")
cy.get("#Eligibility_owner [type=radio]").check("Yes")

cy.get("input[placeholder=number]").type(street_number)
cy.get("input[placeholder=street]").type(street_name)
cy.get("button[type=submit]").click()
cy.get(".ant-table-content").contains(pin).should("exist")
cy.get("input[placeholder=number]").type(street_number)
cy.get("input[placeholder=street]").type(street_name)
cy.get("button[type=submit]").click()
cy.get(".ant-table-content").contains(pin).should("exist")

cy.get(".ant-table-cell button").first().click()
cy.get("button").contains("Next Page").click()
cy.get(".ant-table-cell button").first().click()
cy.get("button").contains("Next Page").click()

cy.get("h1").contains("Homeowner Contact Information").should("exist")
cy.get("#Housing_Information_first_name").type(contact.first_name)
cy.get("#Housing_Information_last_name").type(contact.last_name)
cy.get("#Housing_Information_email").type(contact.email)
cy.get("#Housing_Information_phone").type(contact.phone)
cy.get("#Housing_Information_phonetype [type=radio]").check("Home")
cy.get("#Housing_Information_address").type(contact.address)
cy.get("#Housing_Information_city").type(contact.city)
cy.get("#Housing_Information_state").type(contact.state)
cy.get("#Housing_Information_zip").type(contact.zip)
cy.get("#Housing_Information_mailingsame [type=radio]").check("Yes")
cy.get("#Housing_Information_altcontact [type=radio]").check("No")
cy.get("#Housing_Information_phonetime [type=radio]").check("anytime")
cy.get("#Housing_Information_heardabout").click()
cy.get(".ant-select-dropdown").contains("Local Organization").click()
cy.get("button[type=submit]").contains("Next Page").click()
cy.get("h1").contains("Homeowner Contact Information").should("exist")
cy.get("#Housing_Information_first_name").type(contact.first_name)
cy.get("#Housing_Information_last_name").type(contact.last_name)
cy.get("#Housing_Information_email").type(contact.email)
cy.get("#Housing_Information_phone").type(contact.phone)
cy.get("#Housing_Information_phonetype [type=radio]").check("Home")
cy.get("#Housing_Information_address").type(contact.address)
cy.get("#Housing_Information_city").type(contact.city)
cy.get("#Housing_Information_state").type(contact.state)
cy.get("#Housing_Information_zip").type(contact.zip)
cy.get("#Housing_Information_mailingsame [type=radio]").check("Yes")
cy.get("#Housing_Information_altcontact [type=radio]").check("No")
cy.get("#Housing_Information_heardabout").click()
cy.get(".ant-select-dropdown").contains("Local Organization").click()
cy.get("button[type=submit]").contains("Next Page").click()

cy.get("#Agreement_agreement label")
.contains("I want FREE ASSISTANCE")
.click()
cy.get("#Agreement_agreement_name").type(contact.name)
cy.get("button").contains("Next Page").click()
cy.get("#Agreement_agreement label")
.contains("I want FREE ASSISTANCE")
.click()
cy.get("#Agreement_agreement_name").type(contact.name)
cy.get("button").contains("Next Page").click()

cy.get(".ant-table-row")
.contains(`${street_number} ${street_name}`)
.should("be.visible")
cy.get(".ant-table-row")
.contains(`${street_number} ${street_name}`)
.should("be.visible")

cy.get("#Housing_Information_validcharacteristics [type=radio]").check(
"Yes"
)
cy.get("button[type=submit]").contains("Next Page").click()
cy.get("#Housing_Information_validcharacteristics [type=radio]").check(
"Yes"
)
cy.get("button[type=submit]").contains("Next Page").click()

comparables.forEach(({ street_number, street_name }) => {
cy.get(".ant-table-content")
.last()
.contains("td", `${street_number} ${street_name}`)
.should("exist")
.parent()
.find("button")
.click()
})
// comparables.forEach(({ street_number, street_name }) => {
// cy.get(".ant-table-content")
// .last()
// .contains("td", `${street_number} ${street_name}`)
// .should("exist")
// .parent()
// .find("button")
// .click()
// })

cy.get("button").contains("Next Page").click()
// cy.get("button").contains("Next Page").click()

cy.get("#damage_damage_level label").contains("Average").click()
cy.get("button").contains("Next Page").click()
cy.get("#damage_damage_level label").contains("Average").click()
cy.get("button").contains("Next Page").click()

cy.get("button").contains("Finalize Application").click()
cy.get("button").contains("Finalize Application").click()

cy.get("h2")
.contains("Your application has now been submitted.")
.should("be.visible")
}
)
cy.get("h2")
.contains("Your application has now been submitted.")
.should("be.visible")
})
})
})
10 changes: 7 additions & 3 deletions src/components/header.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from "react"
import { Layout, Menu } from "antd"
import coalition from "../assets/coalition_logo.png"
import { CONTACT_EMAIL } from "../utils"
import { CONTACT_EMAIL, HELP_LINK } from "../utils"

const { Header } = Layout

Expand All @@ -20,8 +20,12 @@ const PTAPHeader = () => (
<img height={50} alt="Coalition Logo" src={coalition} />
</a>
</Menu.Item>
<Menu.Item key="phone" disabled={true}>
<span style={{ color: "black" }}>Call or text us at: 313-329-7610</span>
<Menu.Item key="appointment">
<span style={{ color: "black" }}>
<a target="_blank" rel="noopener noreferrer" href={HELP_LINK}>
Make an appointment
</a>
</span>
</Menu.Item>
<Menu.Item key="email" disabled={true}>
<span style={{ color: "black" }}>Email us at: {CONTACT_EMAIL}</span>
Expand Down
21 changes: 1 addition & 20 deletions src/components/property-info.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from "react"
import PropTypes from "prop-types"
import { Table, Alert } from "antd"
import { Table } from "antd"
import { cleanParcel, DISPLAY_FIELDS, DISPLAY_FIELDS_COOK } from "../utils"

// displays the target property information
Expand All @@ -10,24 +10,6 @@ const PropertyInfo = ({ city, target }) => {
: DISPLAY_FIELDS
const fields = baseFields.filter(({ title }) => title !== "Distance")

let additionalInfo = ""
if (city === "detroit") {
additionalInfo = (
<>
<p>
Taxpayer of Record: {target.taxpayer}. Current Principal Residence
Exemption (PRE) Exemption Status: {target.homestead_exemption}%.
</p>
{+target.homestead_exemption === 100 && (
<Alert
type="warning"
message="We may not be able to assist with your property because it has a current exemption of 100%"
/>
)}
</>
)
}

return (
<>
<Table
Expand All @@ -40,7 +22,6 @@ const PropertyInfo = ({ city, target }) => {
))}
</Table>
<br />
{additionalInfo}
</>
)
}
Expand Down
5 changes: 1 addition & 4 deletions src/context/appeal.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,6 @@ function appealReducer(appeal, action) {
},
}
}
case "set-agreement": {
return { ...appeal, agreement: action.agreement }
}
case "set-agreement-name": {
return {
...appeal,
Expand Down Expand Up @@ -113,7 +110,7 @@ const initialAppeal = {
eligible: null,
target: null,
propertyInfo: null,
agreement: null,
agreement: true, // TODO: Remove from multiple places
agreement_name: null,
estimate: {},
step: 1,
Expand Down
7 changes: 5 additions & 2 deletions src/layouts/page-layout.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React from "react"
import PropTypes from "prop-types"
import { Layout } from "antd"
import Header from "../components/header"
import { HELP_LINK } from "../utils"

const { Content, Footer } = Layout

Expand All @@ -12,8 +13,10 @@ const PageLayout = (props) => (
<div className="site-layout-content">{props.children}</div>
</Content>
<Footer style={{ textAlign: "center" }}>
Call 313-438-8698 with any questions. Please leave a message if we
don&apos;t pick up and we will return your call within 48 hours.
<a target="_blank" rel="noopener noreferrer" href={HELP_LINK}>
Make an appointment
</a>{" "}
if you have any questions
</Footer>
</Layout>
)
Expand Down
39 changes: 20 additions & 19 deletions src/pages/content/appeal-intro.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,46 +4,41 @@ import { HELP_LINK } from "../../utils"

const AppealIntro = ({ city }) => (
<>
<p>
<b>Disclaimer:</b> Completing this Application does not guarantee that the
Project will be able to represent you. The information you provide will
help the Project determine if we can assist you. After completing this
Application, the Project will try to contact you three times. If we don’t
hear from you after three attempts, we will remove you from our list.
</p>
<h1>The Appeals Process</h1>
<p>Here is a general overview of the appeals process:</p>

{city === "detroit" && (
<ul>
<li>
<b>Step 1</b>: Complete this online application by{" "}
<b>February 15, 2024</b>. If you are unable to complete the
Application or have questions, plase fill out this form to set up an
appointment to answer any questions or troubleshoot any issues you
might have: <a href={HELP_LINK}>Schedule an appointment</a>
<b>March 1, 2024</b>. If you are unable to complete the application or
have questions, please fill out this form to set up an appointment to
answer any questions or troubleshoot any issues you might have:{" "}
<a target="_blank" rel="noopener noreferrer" href={HELP_LINK}>
Schedule an appointment
</a>
</li>
<li>
<b>Step 2</b>: We will review your application, determine if you are
eligible, and reach out with any questions or further information you
may need.
</li>
<li>
<b>Step 3</b>: An advocate from our team will submit your documents to
the March Board of Review by March 8, 2024.
<b>Step 3</b>: Our team will submit your documents to the March Board
of Review by March 8, 2024.
</li>
<li>
<b>Step 4</b>: Before June of 2024, the Board of Review will send you
a letter notifying you whether your home&apos;s assessed value is
reduced because of your appeal.
a letter notifying you whether it has reduced your home&apos;s
assessed value because of your appeal.
</li>
</ul>
)}
{city === "chicago" && (
<ul>
<li>
<b>Step 1</b>: Contact the Coalition for Property Tax Justice and work
with an advocate to complete this Application. If you have questions,
with an advocate to complete this application. If you have questions,
email us: &nbsp;
<a href="mailto:chicagoptap@gmail.com?subject=Request for Assistance">
chicagoptap@gmail.com
Expand All @@ -54,7 +49,7 @@ const AppealIntro = ({ city }) => (
<b>Step 2</b>: Review your eligibility for services with an advocate.
</li>
<li>
<b>Step 3</b>: If your Application is accepted, an advocate will work
<b>Step 3</b>: If your application is accepted, an advocate will work
with you to carefully review your application. At this stage, you must
send your advocate pictures of any repairs your home may need, as this
can help lower your assessment.
Expand All @@ -77,14 +72,20 @@ const AppealIntro = ({ city }) => (
{city == "detroit" && (
<ul>
<li>You own a home in the City of Detroit.</li>
<li>You occupy that home as your permanent residence.</li>
<li>
You occupy that home as your permanent residence (we do not service
landlords).
</li>
<li>Your home is worth $100,000 or less.</li>
</ul>
)}
{city == "chicago" && (
<ul>
<li>You own a home in Cook County.</li>
<li>You occupy that home as your permanent residence.</li>
<li>
You occupy that home as your permanent residence (we do not service
landlords).
</li>
<li>Your home is worth $225,000 or less.</li>
</ul>
)}
Expand Down
9 changes: 5 additions & 4 deletions src/pages/final-page.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from "react"
import { Button, Space } from "antd"

const PTAPHeader4 = () => (
const FinalPage = () => (
<>
<h2>Your application has now been submitted.</h2>
<p>
Expand All @@ -13,17 +13,18 @@ const PTAPHeader4 = () => (
</p>

<Space>
<p>Do you want to join our fight for Property Tax Justice</p>
<Button size="large" type="primary">
<a
href="https://illegalforeclosures.org/"
href="https://actionnetwork.org/petitions/impacted-detroiters-compensation?source=ptapapp"
target="_blank"
rel="noopener noreferrer"
>
See more information on our website
Take Action
</a>
</Button>
</Space>
</>
)

export default PTAPHeader4
export default FinalPage
Loading

0 comments on commit 1fd5cad

Please sign in to comment.