From 84487cebc51fabfc8570e728f5660e27adb76614 Mon Sep 17 00:00:00 2001 From: ekong5 Date: Sat, 3 Aug 2024 16:03:43 -0700 Subject: [PATCH 1/9] clear button added to search panel --- src/backend/expungeservice/form_filling.py | 34 ++++++++++++++++++- .../RecordSearch/SearchPanel/index.tsx | 19 +++++++++-- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/src/backend/expungeservice/form_filling.py b/src/backend/expungeservice/form_filling.py index dfe456a77..29abf1cb8 100644 --- a/src/backend/expungeservice/form_filling.py +++ b/src/backend/expungeservice/form_filling.py @@ -1,4 +1,6 @@ from dataclasses import dataclass +from flask import request, json, make_response +from expungeservice.endpoints.demo import Demo from os import path from pathlib import Path from tempfile import mkdtemp @@ -21,8 +23,11 @@ from expungeservice.models.expungement_result import ChargeEligibilityStatus from expungeservice.models.record_summary import RecordSummary from expungeservice.pdf.markdown_to_pdf import MarkdownToPDF +from expungeservice.pdf.markdown_renderer import MarkdownRenderer +from expungeservice.endpoints.search import Search from expungeservice.util import DateWithFuture + DA_ADDRESSES = { "baker": "Baker County Courthouse - 1995 Third Street, Suite 320 - Baker City, OR 97814", "benton": "District Attorney's Office - 120 NW 4th St. - Corvallis, OR 97330", @@ -576,7 +581,7 @@ class FormFilling: OSP_PDF_NAME = "OSP_Form" @staticmethod - def build_zip(record_summary: RecordSummary, user_information_dict: Dict[str, str]) -> Tuple[str, str]: + def build_zip(record_summary: RecordSummary, record: Dict, user_information_dict: Dict[str, str]) -> Tuple[str, str]: temp_dir = mkdtemp() zip_file_name = "expungement_packet.zip" zip_path = path.join(mkdtemp(), zip_file_name) @@ -601,11 +606,37 @@ def build_zip(record_summary: RecordSummary, user_information_dict: Dict[str, st ) user_information_dict_2["has_eligible_convictions"] = has_eligible_convictions osp_file_info = FormFilling._create_and_write_pdf(user_information_dict_2, temp_dir) + print(osp_file_info) + print(type(osp_file_info)) zip_file.write(*osp_file_info) + + request_data = request.get_json() + demo = request_data.get("demo") + search = Demo if demo else Search + response = search().post() # type: ignore + record = json.loads(response)["record"] + aliases = request_data["aliases"] + source = MarkdownRenderer.to_markdown(record, aliases=aliases) + pdf = MarkdownToPDF.to_pdf("Expungement analysis", source) + #print(pdf) + response = make_response(pdf) + response.headers["Content-Type"] = "application/pdf" + first_alias = aliases[0] + name = f"{first_alias['first_name']}_{first_alias['last_name']}".upper() + filename = f"{name}_record_summary.pdf" + response.headers["Content-Disposition"] = f"inline; filename={filename}" + print(response.headers["Content-Disposition"]) + #print(response.headers) + filepath = path.join(temp_dir, filename), filename + #zip_file.write(*filepath) zip_file.close() return zip_path, zip_file_name + '''@staticmethod + def all_motions_set_aside(record_summary: RecordSummary, record: Dict, user_information_dict: Dict[str, str]):''' + + @staticmethod def _unify_sids(record_summary: RecordSummary) -> str: """ @@ -654,6 +685,7 @@ def _build_download_file_path(download_dir: str, source_data: Union[UserInfo, Ca file_name += ".pdf" + #print(download_dir) return path.join(download_dir, file_name), file_name @staticmethod diff --git a/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx b/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx index da8530e18..081b20f5d 100644 --- a/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx +++ b/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx @@ -1,6 +1,7 @@ import React, { useState } from "react"; import { AliasData, AliasFieldNames } from "./types"; import { useAppSelector, useAppDispatch } from "../../../redux/hooks"; +import { clearAllData } from "../../../redux/store"; import { selectSearchFormValues, setSearchFormDate, @@ -41,6 +42,11 @@ export default function SearchPanel() { ), ]; + const handleStartOverClick = () => { + dispatch(clearAllData()); + window.scrollTo(0, 0); + }; + return (
dispatch(addSearchFormAlias())} /> @@ -102,9 +108,18 @@ export default function SearchPanel() { styling="blank" type="submit" displayText="Search" - buttonClassName="fw7 br2 bg-blue white bg-animate hover-bg-dark-blue db w-100 tc pv3 btn--search" + buttonClassName="fw7 br2 bg-blue white bg-animate hover-bg-dark-blue db w-90 tc fw5 pv3 ph3 btn--search mr2" iconClassName="fa-search pr2" /> + + + From 7614341275277f3b47926dd0d236da7417446240 Mon Sep 17 00:00:00 2001 From: ekong5 Date: Sat, 3 Aug 2024 17:01:54 -0700 Subject: [PATCH 2/9] removed clear button from bottom of expanded view --- .../src/components/RecordSearch/ExpandedView/index.tsx | 10 ---------- .../src/components/RecordSearch/SearchPanel/index.tsx | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/frontend/src/components/RecordSearch/ExpandedView/index.tsx b/src/frontend/src/components/RecordSearch/ExpandedView/index.tsx index d4a9c271c..7d8a22e32 100644 --- a/src/frontend/src/components/RecordSearch/ExpandedView/index.tsx +++ b/src/frontend/src/components/RecordSearch/ExpandedView/index.tsx @@ -175,16 +175,6 @@ export default function ExpandedView({ showColor }: Props) { - - - - ); } diff --git a/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx b/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx index 081b20f5d..e4ac1211c 100644 --- a/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx +++ b/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx @@ -116,7 +116,7 @@ export default function SearchPanel() { styling="button" buttonClassName="w4 tc br2 bg-gray-blue-2 hover-dark-blue mid-gray tc fw5 pv3 ph3 w-50" iconClassName="fa-arrow-up pr2" - displayText="Clear Data And Start Over" + displayText="Clear Data" onClick={handleStartOverClick} /> From 83dcf57e08ddc9bfacae814295edf359352432ff Mon Sep 17 00:00:00 2001 From: ekong5 Date: Sat, 3 Aug 2024 17:05:46 -0700 Subject: [PATCH 3/9] adjusted search panel button widths --- .../src/components/RecordSearch/SearchPanel/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx b/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx index e4ac1211c..84813eba5 100644 --- a/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx +++ b/src/frontend/src/components/RecordSearch/SearchPanel/index.tsx @@ -99,7 +99,7 @@ export default function SearchPanel() { dispatch(addSearchFormAlias())} /> @@ -114,7 +114,7 @@ export default function SearchPanel() { Date: Sat, 3 Aug 2024 22:00:51 -0700 Subject: [PATCH 4/9] updated snapshots --- src/backend/expungeservice/form_filling.py | 34 +------------------ .../ExpandedView/ExpandedView.test.tsx | 7 ---- .../__snapshots__/ExpandedView.test.tsx.snap | 19 ----------- .../Layout/__snapshots__/Layout.test.tsx.snap | 14 ++++++-- .../SearchPanel/SearchPanel.test.tsx | 7 ++++ .../__snapshots__/SearchPanel.test.tsx.snap | 14 ++++++-- 6 files changed, 32 insertions(+), 63 deletions(-) diff --git a/src/backend/expungeservice/form_filling.py b/src/backend/expungeservice/form_filling.py index 29abf1cb8..dfe456a77 100644 --- a/src/backend/expungeservice/form_filling.py +++ b/src/backend/expungeservice/form_filling.py @@ -1,6 +1,4 @@ from dataclasses import dataclass -from flask import request, json, make_response -from expungeservice.endpoints.demo import Demo from os import path from pathlib import Path from tempfile import mkdtemp @@ -23,11 +21,8 @@ from expungeservice.models.expungement_result import ChargeEligibilityStatus from expungeservice.models.record_summary import RecordSummary from expungeservice.pdf.markdown_to_pdf import MarkdownToPDF -from expungeservice.pdf.markdown_renderer import MarkdownRenderer -from expungeservice.endpoints.search import Search from expungeservice.util import DateWithFuture - DA_ADDRESSES = { "baker": "Baker County Courthouse - 1995 Third Street, Suite 320 - Baker City, OR 97814", "benton": "District Attorney's Office - 120 NW 4th St. - Corvallis, OR 97330", @@ -581,7 +576,7 @@ class FormFilling: OSP_PDF_NAME = "OSP_Form" @staticmethod - def build_zip(record_summary: RecordSummary, record: Dict, user_information_dict: Dict[str, str]) -> Tuple[str, str]: + def build_zip(record_summary: RecordSummary, user_information_dict: Dict[str, str]) -> Tuple[str, str]: temp_dir = mkdtemp() zip_file_name = "expungement_packet.zip" zip_path = path.join(mkdtemp(), zip_file_name) @@ -606,37 +601,11 @@ def build_zip(record_summary: RecordSummary, record: Dict, user_information_dict ) user_information_dict_2["has_eligible_convictions"] = has_eligible_convictions osp_file_info = FormFilling._create_and_write_pdf(user_information_dict_2, temp_dir) - print(osp_file_info) - print(type(osp_file_info)) zip_file.write(*osp_file_info) - - request_data = request.get_json() - demo = request_data.get("demo") - search = Demo if demo else Search - response = search().post() # type: ignore - record = json.loads(response)["record"] - aliases = request_data["aliases"] - source = MarkdownRenderer.to_markdown(record, aliases=aliases) - pdf = MarkdownToPDF.to_pdf("Expungement analysis", source) - #print(pdf) - response = make_response(pdf) - response.headers["Content-Type"] = "application/pdf" - first_alias = aliases[0] - name = f"{first_alias['first_name']}_{first_alias['last_name']}".upper() - filename = f"{name}_record_summary.pdf" - response.headers["Content-Disposition"] = f"inline; filename={filename}" - print(response.headers["Content-Disposition"]) - #print(response.headers) - filepath = path.join(temp_dir, filename), filename - #zip_file.write(*filepath) zip_file.close() return zip_path, zip_file_name - '''@staticmethod - def all_motions_set_aside(record_summary: RecordSummary, record: Dict, user_information_dict: Dict[str, str]):''' - - @staticmethod def _unify_sids(record_summary: RecordSummary) -> str: """ @@ -685,7 +654,6 @@ def _build_download_file_path(download_dir: str, source_data: Union[UserInfo, Ca file_name += ".pdf" - #print(download_dir) return path.join(download_dir, file_name), file_name @staticmethod diff --git a/src/frontend/src/components/RecordSearch/ExpandedView/ExpandedView.test.tsx b/src/frontend/src/components/RecordSearch/ExpandedView/ExpandedView.test.tsx index c3b50647d..a2f50f13d 100644 --- a/src/frontend/src/components/RecordSearch/ExpandedView/ExpandedView.test.tsx +++ b/src/frontend/src/components/RecordSearch/ExpandedView/ExpandedView.test.tsx @@ -78,10 +78,3 @@ test("the button to download the expungement packet works", async () => { await clickButton(user, "download packet"); expect(requestSpy).toHaveBeenCalled(); }); - -test("the button to start over works", async () => { - const { user, asFragment } = setup(); - - await clickButton(user, "start over"); - expect(asFragment()).toMatchSnapshot(); -}); diff --git a/src/frontend/src/components/RecordSearch/ExpandedView/__snapshots__/ExpandedView.test.tsx.snap b/src/frontend/src/components/RecordSearch/ExpandedView/__snapshots__/ExpandedView.test.tsx.snap index 7328042f5..7405afd53 100644 --- a/src/frontend/src/components/RecordSearch/ExpandedView/__snapshots__/ExpandedView.test.tsx.snap +++ b/src/frontend/src/components/RecordSearch/ExpandedView/__snapshots__/ExpandedView.test.tsx.snap @@ -2598,25 +2598,6 @@ exports[`filter checkboxes the nav checkbox that hides traffic charges works 1`] -
-

- Finish Up -

-