From b3c539f35867146b5c11ef441a6414f2ed3bfc7b Mon Sep 17 00:00:00 2001
From: Ben Adida
Date: Thu, 30 Jul 2020 11:51:51 -0700
Subject: [PATCH 1/7] First pass
---
client/src/components/ElectionManager.tsx | 4 +-
.../src/components/HandMarkedPaperBallot.tsx | 5 +-
client/src/routerPaths.ts | 1 +
.../src/screens/UserTestingBallotScreen.tsx | 48 ++
client/src/screens/testElection.json | 510 ++++++++++++++++++
5 files changed, 566 insertions(+), 2 deletions(-)
create mode 100644 client/src/screens/UserTestingBallotScreen.tsx
create mode 100644 client/src/screens/testElection.json
diff --git a/client/src/components/ElectionManager.tsx b/client/src/components/ElectionManager.tsx
index 8bfad07..94ababf 100644
--- a/client/src/components/ElectionManager.tsx
+++ b/client/src/components/ElectionManager.tsx
@@ -12,6 +12,8 @@ import TestDeckScreen from '../screens/TestDeckScreen'
import TallyScreen from '../screens/TallyScreen'
import TallyReportScreen from '../screens/TallyReportScreen'
+import UserTestingBallotScreen from '../screens/UserTestingBallotScreen'
+
import routerPaths from '../routerPaths'
import OvervoteCombinationReportScreen from '../screens/OvervoteCombinationReportScreen'
@@ -20,7 +22,7 @@ const ElectionManager = () => {
const election = e!
if (!election) {
- return
+ return
}
return (
diff --git a/client/src/components/HandMarkedPaperBallot.tsx b/client/src/components/HandMarkedPaperBallot.tsx
index c03febf..8c92924 100644
--- a/client/src/components/HandMarkedPaperBallot.tsx
+++ b/client/src/components/HandMarkedPaperBallot.tsx
@@ -122,7 +122,8 @@ const ballotMetadata = ({
primaryLocaleCode: string
secondaryLocaleCode: string
ballotId?: string
-}): string => {
+}): string => {
+
const params = new URLSearchParams([
['t', `${!isLiveMode ? 't' : '_'}`],
['pr', precinctId],
@@ -449,6 +450,8 @@ const HandMarkedPaperBallot = ({
useLayoutEffect(() => {
const printBallot = printBallotRef?.current
+ console.log("printballot", printBallot)
+
if (!printBallot) {
return
}
diff --git a/client/src/routerPaths.ts b/client/src/routerPaths.ts
index 4ee05c5..fc672cc 100644
--- a/client/src/routerPaths.ts
+++ b/client/src/routerPaths.ts
@@ -27,6 +27,7 @@ const routerPaths = {
`/tally/test-ballot-deck/${precinctId}`,
overvoteCombinationReport: '/tally/pairs',
export: '/export-election-ballot-package',
+ userTestingBallot: '/usertesting/ballot',
}
export default routerPaths
diff --git a/client/src/screens/UserTestingBallotScreen.tsx b/client/src/screens/UserTestingBallotScreen.tsx
new file mode 100644
index 0000000..d6d8959
--- /dev/null
+++ b/client/src/screens/UserTestingBallotScreen.tsx
@@ -0,0 +1,48 @@
+import React from 'react'
+import {
+ getPrecinctById,
+ Election,
+} from '@votingworks/ballot-encoder'
+
+import { BallotLocale } from '../config/types'
+
+import PrintButton from '../components/PrintButton'
+import HandMarkedPaperBallot from '../components/HandMarkedPaperBallot'
+import NavigationScreen from '../components/NavigationScreen'
+
+import testElection from './testElection.json'
+
+const UserTestingBallotScreen = () => {
+ const precinctId = "23"
+ const ballotStyleId = "12"
+ const election = (testElection as unknown) as Election
+ const locales: BallotLocale = {
+ primary: "en-US"
+ }
+
+ const precinctName = getPrecinctById({ election, precinctId })?.name
+
+ return (
+
+
+
+ Ballot Style {ballotStyleId} for {precinctName}
+
+
+
+ Print Ballot
+
+
+
+
+
+ )
+}
+
+export default UserTestingBallotScreen
diff --git a/client/src/screens/testElection.json b/client/src/screens/testElection.json
new file mode 100644
index 0000000..27345ad
--- /dev/null
+++ b/client/src/screens/testElection.json
@@ -0,0 +1,510 @@
+{
+ "title": "General Election",
+ "state": "State of Hamilton",
+ "county": {
+ "id": "franklin",
+ "name": "Franklin County",
+ "_lang": {
+ "es-US": {
+ "name": "Condado de Franklin"
+ }
+ }
+ },
+ "date": "2020-11-03T00:00:00-08:00",
+ "_lang": {
+ "es-US": {
+ "title": "Eleccion General",
+ "state": "Estado de Hamilton"
+ }
+ },
+ "districts": [
+ {
+ "id": "district-1",
+ "name": "District 1"
+ },
+ {
+ "id": "district-2",
+ "name": "District 2"
+ },
+ {
+ "id": "district-3",
+ "name": "District 3"
+ },
+ {
+ "id": "7",
+ "name": "District 7"
+ }
+ ],
+ "parties": [
+ {
+ "id": "0",
+ "name": "Democrat",
+ "fullName": "Democratic Party",
+ "abbrev": "D",
+ "_lang": {
+ "es-US": {
+ "name": "Democratico",
+ "fullName": "Partido Democratico"
+ }
+ }
+ },
+ {
+ "id": "1",
+ "name": "Republican",
+ "fullName": "Republican Party",
+ "abbrev": "R",
+ "_lang": {
+ "es-US": {
+ "name": "Republicano",
+ "fullName": "Partido Republicano"
+ }
+ }
+ },
+ {
+ "id": "2",
+ "name": "Libertarian",
+ "fullName": "Libertarian Party",
+ "abbrev": "Li",
+ "_lang": {
+ "es-US": {
+ "name": "Libertario",
+ "fullName": "Partido Libertario"
+ }
+ }
+ },
+ {
+ "id": "3",
+ "name": "Green",
+ "fullName": "Green Party",
+ "abbrev": "G",
+ "_lang": {
+ "es-US": {
+ "name": "Verde",
+ "fullName": "Partido Verde"
+ }
+ }
+ }
+ ],
+ "contests": [
+ {
+ "id": "president2",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "United States",
+ "title": "Best animal to have as a pet",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "dog",
+ "name": "Dog",
+ "partyId": "0"
+ },
+ {
+ "id": "cat",
+ "name": "Cat",
+ "partyId": "1"
+ },
+ {
+ "id": "hamster",
+ "name": "Hamster",
+ "partyId": "3"
+ },
+ {
+ "id": "bird",
+ "name": "Bird",
+ "partyId": "3"
+ },
+ {
+ "id": "snake",
+ "name": "Snake",
+ "partyId": "2"
+ },
+ {
+ "id": "fish",
+ "name": "Fish"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Presidente"
+ }
+ }
+ },
+ {
+ "id": "senator3",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "United States",
+ "title": "Most enjoyable sport to watch",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "football",
+ "name": "Football",
+ "partyId": "0"
+ },
+ {
+ "id": "baseball",
+ "name": "Baseball",
+ "partyId": "1"
+ },
+ {
+ "id": "basketball",
+ "name": "Basketball",
+ "partyId": "3"
+ },
+ {
+ "id": "hockey",
+ "name": "Hockey",
+ "partyId": "3"
+ },
+ {
+ "id": "curling",
+ "name": "Curling",
+ "partyId": "3"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Senador"
+ }
+ }
+ },
+ {
+ "id": "representative-district-18",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "United States",
+ "title": "Which team would you most like to see dissolved?",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "nyy",
+ "name": "New York Yankees (baseball)",
+ "partyId": "0"
+ },
+ {
+ "id": "lal",
+ "name": "Los Angeles Lakers (basketball)",
+ "partyId": "0"
+ },
+ {
+ "id": "brs",
+ "name": "Boston Red Sox (baseball)",
+ "partyId": "0"
+ },
+ {
+ "id": "drw",
+ "name": "Detroit Red Wings (hockey)",
+ "partyId": "0"
+ },
+ {
+ "id": "bc",
+ "name": "Boston Celtics (basketball)",
+ "partyId": "0"
+ },
+ {
+ "id": "nep",
+ "name": "New England Patriots (football)",
+ "partyId": "0"
+ },
+ {
+ "id": "mc",
+ "name": "Montreal Canadiens (hockey)",
+ "partyId": "0"
+ },
+ {
+ "id": "dc",
+ "name": "Dallas Cowboys (football)",
+ "partyId": "0"
+ },
+
+ {
+ "id": "mh",
+ "name": "Miami Heat (basketball)",
+ "partyId": "1"
+ },
+ {
+ "id": "gsw",
+ "name": "Golden State Warriors (basketball)",
+ "partyId": "3"
+ },
+ {
+ "id": "gbp",
+ "name": "Green Bay Packers (football)",
+ "partyId": "3"
+ },
+ {
+ "id": "lvgk",
+ "name": "Las Vegas Golden Knights (hockey)",
+ "partyId": "3"
+ }
+ ],
+ "allowWriteIns": false,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Representante, Distrito 18"
+ }
+ }
+ },
+ {
+ "id": "prop-1",
+ "districtId": "district-2",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "title": "Is Michael Jordan the best basketball player of all time?",
+ "description": " ",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Proposición 1",
+ "description": " "
+ }
+ }
+ },
+ {
+ "id": "prop-2",
+ "districtId": "district-2",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "title": "Is a hot dog a sandwich?",
+ "description": " ",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Proposición 1",
+ "description": " "
+ }
+ }
+ },
+ {
+ "id": "prop-3",
+ "districtId": "district-2",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "title": "Does pineapple belong on a pizza?",
+ "description": " ",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Proposición 1",
+ "description": " "
+ }
+ }
+ },
+ {
+ "id": "prop-4",
+ "districtId": "district-2",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "title": "Is it better to be too hot or too cold?",
+ "description": " ",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Proposición 1",
+ "description": " "
+ }
+ }
+ },
+ {
+ "id": "president",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "United States",
+ "title": "Best animal to have as a pet",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "dog",
+ "name": "Dog",
+ "partyId": "0"
+ },
+ {
+ "id": "cat",
+ "name": "Cat",
+ "partyId": "1"
+ },
+ {
+ "id": "hamster",
+ "name": "Hamster",
+ "partyId": "3"
+ },
+ {
+ "id": "bird",
+ "name": "Bird",
+ "partyId": "3"
+ },
+ {
+ "id": "snake",
+ "name": "Snake",
+ "partyId": "2"
+ },
+ {
+ "id": "fish",
+ "name": "Fish",
+ "partyId": "2"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Presidente"
+ }
+ }
+ },
+ {
+ "id": "senator2",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "United States",
+ "title": "What decade at thebest hair",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "1950s",
+ "name": "1950s",
+ "partyId": "0"
+ },
+ {
+ "id": "1960s",
+ "name": "1960s",
+ "partyId": "1"
+ },
+ {
+ "id": "1970s",
+ "name": "1970s",
+ "partyId": "3"
+ },
+ {
+ "id": "1980s",
+ "name": "1980s",
+ "partyId": "3"
+ },
+ {
+ "id": "1990s",
+ "name": "1990s",
+ "partyId": "3"
+ },
+ {
+ "id": "2000s",
+ "name": "2000s",
+ "partyId": "3"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Senador"
+ }
+ }
+ },
+ {
+ "id": "senator",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "United States",
+ "title": "Most likeable member(s) of the British royal family",
+ "seats": 3,
+ "candidates": [
+ {
+ "id": "queen-elizabeth",
+ "name": "Queen Elizabeth",
+ "partyId": "0"
+ },
+ {
+ "id": "corgis",
+ "name": "The Queen’s corgis",
+ "partyId": "3"
+ },
+ {
+ "id": "prince-charles",
+ "name": "Prince Charles",
+ "partyId": "1"
+ },
+ {
+ "id": "prince-phillip",
+ "name": "Prince Phillip",
+ "partyId": "3"
+ },
+ {
+ "id": "prince-william",
+ "name": "Prince William",
+ "partyId": "3"
+ },
+ {
+ "id": "prince-harry",
+ "name": "Prince Harry",
+ "partyId": "3"
+ },
+ {
+ "id": "kate-middleton",
+ "name": "Kate Middleton",
+ "partyId": "3"
+ },
+ {
+ "id": "megan-markle",
+ "name": "Megan Markle",
+ "partyId": "3"
+ }
+ ],
+ "allowWriteIns": false,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Senador"
+ }
+ }
+ },
+ {
+ "id": "prop-5",
+ "districtId": "district-2",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "title": "Proposition 1",
+ "description": "S ",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Proposición 1",
+ "description": " "
+ }
+ }
+ }
+ ],
+ "precincts": [
+ {
+ "id": "23",
+ "name": "Center Springfield"
+ },
+ {
+ "id": "21",
+ "name": "North Springfield"
+ },
+ {
+ "id": "20",
+ "name": "South Springfield"
+ }
+ ],
+ "ballotStyles": [
+ {
+ "id": "12",
+ "precincts": ["23", "21"],
+ "districts": ["district-1", "district-2"]
+ },
+ {
+ "id": "5",
+ "precincts": ["21", "20"],
+ "districts": ["district-1"]
+ }
+ ],
+ "seal": ""
+ }
+
\ No newline at end of file
From a147d5c4c0d8082c1ec28d57e1834232c841e7c0 Mon Sep 17 00:00:00 2001
From: Beau Smith
Date: Tue, 11 Aug 2020 13:41:56 -0700
Subject: [PATCH 2/7] feat: Massaging data.
---
client/src/AppRoot.tsx | 45 +-
client/src/components/ElectionManager.tsx | 156 +--
.../src/components/HandMarkedPaperBallot.tsx | 5 +-
client/src/routerPaths.ts | 1 +
.../src/screens/UserTestingBallotScreen.tsx | 19 +-
client/src/screens/testElection.json | 965 +++++++++---------
6 files changed, 597 insertions(+), 594 deletions(-)
diff --git a/client/src/AppRoot.tsx b/client/src/AppRoot.tsx
index a011d57..6113208 100644
--- a/client/src/AppRoot.tsx
+++ b/client/src/AppRoot.tsx
@@ -6,7 +6,7 @@ import { sha256 } from 'js-sha256'
import {
Election,
OptionalElection,
- parseElection,
+ // parseElection,
} from '@votingworks/ballot-encoder'
import AppContext from './contexts/AppContext'
@@ -18,6 +18,7 @@ import { Storage } from './utils/Storage'
import ElectionManager from './components/ElectionManager'
import { SaveElection, OptionalVoteCounts } from './config/types'
+import testElection from './screens/testElection.json'
export interface AppStorage {
election?: Election
@@ -36,16 +37,20 @@ export const isOfficialResultsKey = 'isOfficialResults'
const AppRoot = ({ storage }: Props) => {
const printBallotRef = useRef(null)
- const getElection = async () => {
- const election = await storage.get(electionStorageKey)
+ // const getElection = async () => {
+ // const election = await storage.get(electionStorageKey)
- return election ? parseElection(election) : undefined
- }
+ // return election ? parseElection(election) : undefined
+ // }
- const getCVRFiles = async () => storage.get(cvrsStorageKey)
- const getIsOfficialResults = async () => storage.get(isOfficialResultsKey)
+ // const getCVRFiles = async () => storage.get(cvrsStorageKey)
+ // const getIsOfficialResults = async () => storage.get(isOfficialResultsKey)
- const [election, setElection] = useState(undefined)
+ const [election, setElection] = useState(
+ undefined
+ // testElection as Election
+ )
+ // console.log({ election })
const [electionHash, setElectionHash] = useState('')
const [castVoteRecordFiles, setCastVoteRecordFiles] = useState(
CastVoteRecordFiles.empty
@@ -60,19 +65,20 @@ const AppRoot = ({ storage }: Props) => {
useEffect(() => {
;(async () => {
if (!election) {
- const storageElection = await getElection()
- if (storageElection) {
- setElection(storageElection)
- setElectionHash(sha256(JSON.stringify(storageElection)))
+ // const storageElection = await getElection()
+ const fooElection = testElection as Election
+ if (fooElection) {
+ setElection(fooElection)
+ setElectionHash(sha256(JSON.stringify(fooElection)))
}
- if (castVoteRecordFiles === CastVoteRecordFiles.empty) {
- const storageCVRFiles = await getCVRFiles()
- if (storageCVRFiles) {
- setCastVoteRecordFiles(CastVoteRecordFiles.import(storageCVRFiles))
- setIsOfficialResults((await getIsOfficialResults()) || false)
- }
- }
+ // if (castVoteRecordFiles === CastVoteRecordFiles.empty) {
+ // const storageCVRFiles = await getCVRFiles()
+ // if (storageCVRFiles) {
+ // setCastVoteRecordFiles(CastVoteRecordFiles.import(storageCVRFiles))
+ // setIsOfficialResults((await getIsOfficialResults()) || false)
+ // }
+ // }
}
})()
})
@@ -128,6 +134,7 @@ const AppRoot = ({ storage }: Props) => {
>
+
)
}
diff --git a/client/src/components/ElectionManager.tsx b/client/src/components/ElectionManager.tsx
index 94ababf..4c915e9 100644
--- a/client/src/components/ElectionManager.tsx
+++ b/client/src/components/ElectionManager.tsx
@@ -1,89 +1,91 @@
-import React, { useContext } from 'react'
-import { Switch, Route, Redirect } from 'react-router-dom'
+import React from 'react' // useContext
+// import { Switch, Route, Redirect } from 'react-router-dom'
-import AppContext from '../contexts/AppContext'
+// import AppContext from '../contexts/AppContext'
-import ElectionEditDefinitionScreen from '../screens/ElectionEditDefinitionScreen'
-import BallotListScreen from '../screens/BallotListScreen'
-import BallotScreen from '../screens/BallotScreen'
-import ExportElectionBallotPackageScreen from '../screens/ExportElectionBallotPackageScreen'
-import UnconfiguredScreen from '../screens/UnconfiguredScreen'
-import TestDeckScreen from '../screens/TestDeckScreen'
-import TallyScreen from '../screens/TallyScreen'
-import TallyReportScreen from '../screens/TallyReportScreen'
+// import ElectionEditDefinitionScreen from '../screens/ElectionEditDefinitionScreen'
+// import BallotListScreen from '../screens/BallotListScreen'
+// import BallotScreen from '../screens/BallotScreen'
+// import ExportElectionBallotPackageScreen from '../screens/ExportElectionBallotPackageScreen'
+// import UnconfiguredScreen from '../screens/UnconfiguredScreen'
+// import TestDeckScreen from '../screens/TestDeckScreen'
+// import TallyScreen from '../screens/TallyScreen'
+// import TallyReportScreen from '../screens/TallyReportScreen'
import UserTestingBallotScreen from '../screens/UserTestingBallotScreen'
-import routerPaths from '../routerPaths'
-import OvervoteCombinationReportScreen from '../screens/OvervoteCombinationReportScreen'
+// import routerPaths from '../routerPaths'
+// import OvervoteCombinationReportScreen from '../screens/OvervoteCombinationReportScreen'
const ElectionManager = () => {
- const { election: e } = useContext(AppContext)
- const election = e!
+ // const { election: e } = useContext(AppContext)
+ // const election = e!
- if (!election) {
- return
- }
+ return
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
+ // if (!election) {
+ // return
+ // }
+
+ // return (
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ // )
}
export default ElectionManager
diff --git a/client/src/components/HandMarkedPaperBallot.tsx b/client/src/components/HandMarkedPaperBallot.tsx
index 8c92924..067e68e 100644
--- a/client/src/components/HandMarkedPaperBallot.tsx
+++ b/client/src/components/HandMarkedPaperBallot.tsx
@@ -122,8 +122,7 @@ const ballotMetadata = ({
primaryLocaleCode: string
secondaryLocaleCode: string
ballotId?: string
-}): string => {
-
+}): string => {
const params = new URLSearchParams([
['t', `${!isLiveMode ? 't' : '_'}`],
['pr', precinctId],
@@ -450,7 +449,7 @@ const HandMarkedPaperBallot = ({
useLayoutEffect(() => {
const printBallot = printBallotRef?.current
- console.log("printballot", printBallot)
+ console.log('printballot', printBallot)
if (!printBallot) {
return
diff --git a/client/src/routerPaths.ts b/client/src/routerPaths.ts
index fc672cc..d55a175 100644
--- a/client/src/routerPaths.ts
+++ b/client/src/routerPaths.ts
@@ -27,6 +27,7 @@ const routerPaths = {
`/tally/test-ballot-deck/${precinctId}`,
overvoteCombinationReport: '/tally/pairs',
export: '/export-election-ballot-package',
+ combineResultsFiles: '/tally/combine-results-files',
userTestingBallot: '/usertesting/ballot',
}
diff --git a/client/src/screens/UserTestingBallotScreen.tsx b/client/src/screens/UserTestingBallotScreen.tsx
index d6d8959..f704973 100644
--- a/client/src/screens/UserTestingBallotScreen.tsx
+++ b/client/src/screens/UserTestingBallotScreen.tsx
@@ -1,8 +1,5 @@
import React from 'react'
-import {
- getPrecinctById,
- Election,
-} from '@votingworks/ballot-encoder'
+import { getPrecinctById, Election } from '@votingworks/ballot-encoder'
import { BallotLocale } from '../config/types'
@@ -13,11 +10,11 @@ import NavigationScreen from '../components/NavigationScreen'
import testElection from './testElection.json'
const UserTestingBallotScreen = () => {
- const precinctId = "23"
- const ballotStyleId = "12"
+ const precinctId = '23'
+ const ballotStyleId = '12'
const election = (testElection as unknown) as Election
const locales: BallotLocale = {
- primary: "en-US"
+ primary: 'en-US',
}
const precinctName = getPrecinctById({ election, precinctId })?.name
@@ -29,20 +26,18 @@ const UserTestingBallotScreen = () => {
Ballot Style {ballotStyleId} for {precinctName}
-
- Print Ballot
-
+ Print Ballot
- )
+ )
}
export default UserTestingBallotScreen
diff --git a/client/src/screens/testElection.json b/client/src/screens/testElection.json
index 27345ad..813f872 100644
--- a/client/src/screens/testElection.json
+++ b/client/src/screens/testElection.json
@@ -1,510 +1,509 @@
{
- "title": "General Election",
- "state": "State of Hamilton",
- "county": {
- "id": "franklin",
- "name": "Franklin County",
+ "title": "General Election",
+ "state": "State of Hamilton",
+ "county": {
+ "id": "franklin",
+ "name": "Franklin County",
+ "_lang": {
+ "es-US": {
+ "name": "Condado de Franklin"
+ }
+ }
+ },
+ "date": "2020-11-03T00:00:00-08:00",
+ "_lang": {
+ "es-US": {
+ "title": "Eleccion General",
+ "state": "Estado de Hamilton"
+ }
+ },
+ "districts": [
+ {
+ "id": "district-1",
+ "name": "District 1"
+ },
+ {
+ "id": "district-2",
+ "name": "District 2"
+ },
+ {
+ "id": "district-3",
+ "name": "District 3"
+ },
+ {
+ "id": "7",
+ "name": "District 7"
+ }
+ ],
+ "parties": [
+ {
+ "id": "0",
+ "name": "Democrat",
+ "fullName": "Democratic Party",
+ "abbrev": "D",
"_lang": {
"es-US": {
- "name": "Condado de Franklin"
+ "name": "Democratico",
+ "fullName": "Partido Democratico"
}
}
},
- "date": "2020-11-03T00:00:00-08:00",
- "_lang": {
- "es-US": {
- "title": "Eleccion General",
- "state": "Estado de Hamilton"
+ {
+ "id": "1",
+ "name": "Republican",
+ "fullName": "Republican Party",
+ "abbrev": "R",
+ "_lang": {
+ "es-US": {
+ "name": "Republicano",
+ "fullName": "Partido Republicano"
+ }
}
},
- "districts": [
- {
- "id": "district-1",
- "name": "District 1"
- },
- {
- "id": "district-2",
- "name": "District 2"
- },
- {
- "id": "district-3",
- "name": "District 3"
- },
- {
- "id": "7",
- "name": "District 7"
- }
- ],
- "parties": [
- {
- "id": "0",
- "name": "Democrat",
- "fullName": "Democratic Party",
- "abbrev": "D",
- "_lang": {
- "es-US": {
- "name": "Democratico",
- "fullName": "Partido Democratico"
- }
+ {
+ "id": "2",
+ "name": "Libertarian",
+ "fullName": "Libertarian Party",
+ "abbrev": "Li",
+ "_lang": {
+ "es-US": {
+ "name": "Libertario",
+ "fullName": "Partido Libertario"
}
- },
- {
- "id": "1",
- "name": "Republican",
- "fullName": "Republican Party",
- "abbrev": "R",
- "_lang": {
- "es-US": {
- "name": "Republicano",
- "fullName": "Partido Republicano"
- }
+ }
+ },
+ {
+ "id": "3",
+ "name": "Green",
+ "fullName": "Green Party",
+ "abbrev": "G",
+ "_lang": {
+ "es-US": {
+ "name": "Verde",
+ "fullName": "Partido Verde"
}
- },
- {
- "id": "2",
- "name": "Libertarian",
- "fullName": "Libertarian Party",
- "abbrev": "Li",
- "_lang": {
- "es-US": {
- "name": "Libertario",
- "fullName": "Partido Libertario"
- }
+ }
+ }
+ ],
+ "contests": [
+ {
+ "id": "president2",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "United States",
+ "title": "What is the best animal to have as a pet?",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "dog",
+ "name": "Dog",
+ "partyId": "0"
+ },
+ {
+ "id": "cat",
+ "name": "Cat",
+ "partyId": "1"
+ },
+ {
+ "id": "hamster",
+ "name": "Hamster",
+ "partyId": "3"
+ },
+ {
+ "id": "bird",
+ "name": "Bird",
+ "partyId": "3"
+ },
+ {
+ "id": "snake",
+ "name": "Snake",
+ "partyId": "2"
+ },
+ {
+ "id": "fish",
+ "name": "Fish"
}
- },
- {
- "id": "3",
- "name": "Green",
- "fullName": "Green Party",
- "abbrev": "G",
- "_lang": {
- "es-US": {
- "name": "Verde",
- "fullName": "Partido Verde"
- }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Presidente"
}
}
- ],
- "contests": [
- {
- "id": "president2",
- "districtId": "district-1",
- "type": "candidate",
- "section": "United States",
- "title": "Best animal to have as a pet",
- "seats": 1,
- "candidates": [
- {
- "id": "dog",
- "name": "Dog",
- "partyId": "0"
- },
- {
- "id": "cat",
- "name": "Cat",
- "partyId": "1"
- },
- {
- "id": "hamster",
- "name": "Hamster",
- "partyId": "3"
- },
- {
- "id": "bird",
- "name": "Bird",
- "partyId": "3"
- },
- {
- "id": "snake",
- "name": "Snake",
- "partyId": "2"
- },
- {
- "id": "fish",
- "name": "Fish"
- }
- ],
- "allowWriteIns": true,
- "_lang": {
- "es-US": {
- "section": "Estados Unidos",
- "title": "Presidente"
- }
+ },
+ {
+ "id": "senator3",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "United States",
+ "title": "What is the most enjoyable sport to watch?",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "football",
+ "name": "Football",
+ "partyId": "0"
+ },
+ {
+ "id": "baseball",
+ "name": "Baseball",
+ "partyId": "1"
+ },
+ {
+ "id": "basketball",
+ "name": "Basketball",
+ "partyId": "3"
+ },
+ {
+ "id": "hockey",
+ "name": "Hockey",
+ "partyId": "3"
+ },
+ {
+ "id": "curling",
+ "name": "Curling",
+ "partyId": "3"
}
- },
- {
- "id": "senator3",
- "districtId": "district-2",
- "type": "candidate",
- "section": "United States",
- "title": "Most enjoyable sport to watch",
- "seats": 1,
- "candidates": [
- {
- "id": "football",
- "name": "Football",
- "partyId": "0"
- },
- {
- "id": "baseball",
- "name": "Baseball",
- "partyId": "1"
- },
- {
- "id": "basketball",
- "name": "Basketball",
- "partyId": "3"
- },
- {
- "id": "hockey",
- "name": "Hockey",
- "partyId": "3"
- },
- {
- "id": "curling",
- "name": "Curling",
- "partyId": "3"
- }
- ],
- "allowWriteIns": true,
- "_lang": {
- "es-US": {
- "section": "Estados Unidos",
- "title": "Senador"
- }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Senador"
}
- },
- {
- "id": "representative-district-18",
- "districtId": "district-1",
- "type": "candidate",
- "section": "United States",
- "title": "Which team would you most like to see dissolved?",
- "seats": 1,
- "candidates": [
- {
- "id": "nyy",
- "name": "New York Yankees (baseball)",
- "partyId": "0"
- },
- {
- "id": "lal",
- "name": "Los Angeles Lakers (basketball)",
- "partyId": "0"
- },
- {
- "id": "brs",
- "name": "Boston Red Sox (baseball)",
- "partyId": "0"
- },
- {
- "id": "drw",
- "name": "Detroit Red Wings (hockey)",
- "partyId": "0"
- },
- {
- "id": "bc",
- "name": "Boston Celtics (basketball)",
- "partyId": "0"
- },
- {
- "id": "nep",
- "name": "New England Patriots (football)",
- "partyId": "0"
- },
- {
- "id": "mc",
- "name": "Montreal Canadiens (hockey)",
- "partyId": "0"
- },
- {
- "id": "dc",
- "name": "Dallas Cowboys (football)",
- "partyId": "0"
- },
-
- {
- "id": "mh",
- "name": "Miami Heat (basketball)",
- "partyId": "1"
- },
- {
- "id": "gsw",
- "name": "Golden State Warriors (basketball)",
- "partyId": "3"
- },
- {
- "id": "gbp",
- "name": "Green Bay Packers (football)",
- "partyId": "3"
- },
- {
- "id": "lvgk",
- "name": "Las Vegas Golden Knights (hockey)",
- "partyId": "3"
- }
- ],
- "allowWriteIns": false,
- "_lang": {
- "es-US": {
- "section": "Estados Unidos",
- "title": "Representante, Distrito 18"
- }
+ }
+ },
+ {
+ "id": "representative-district-18",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "United States",
+ "title": "Which team would you most like to see dissolved?",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "nyy",
+ "name": "New York Yankees (baseball)",
+ "partyId": "0"
+ },
+ {
+ "id": "lal",
+ "name": "Los Angeles Lakers (basketball)",
+ "partyId": "0"
+ },
+ {
+ "id": "brs",
+ "name": "Boston Red Sox (baseball)",
+ "partyId": "0"
+ },
+ {
+ "id": "drw",
+ "name": "Detroit Red Wings (hockey)",
+ "partyId": "0"
+ },
+ {
+ "id": "bc",
+ "name": "Boston Celtics (basketball)",
+ "partyId": "0"
+ },
+ {
+ "id": "nep",
+ "name": "New England Patriots (football)",
+ "partyId": "0"
+ },
+ {
+ "id": "mc",
+ "name": "Montreal Canadiens (hockey)",
+ "partyId": "0"
+ },
+ {
+ "id": "dc",
+ "name": "Dallas Cowboys (football)",
+ "partyId": "0"
+ },
+
+ {
+ "id": "mh",
+ "name": "Miami Heat (basketball)",
+ "partyId": "1"
+ },
+ {
+ "id": "gsw",
+ "name": "Golden State Warriors (basketball)",
+ "partyId": "3"
+ },
+ {
+ "id": "gbp",
+ "name": "Green Bay Packers (football)",
+ "partyId": "3"
+ },
+ {
+ "id": "lvgk",
+ "name": "Las Vegas Golden Knights (hockey)",
+ "partyId": "3"
}
- },
- {
- "id": "prop-1",
- "districtId": "district-2",
- "type": "yesno",
- "section": "State of Hamilton",
- "title": "Is Michael Jordan the best basketball player of all time?",
- "description": " ",
- "_lang": {
- "es-US": {
- "section": "Estado de Hamilton",
- "title": "Proposición 1",
- "description": " "
- }
+ ],
+ "allowWriteIns": false,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Representante, Distrito 18"
}
- },
- {
- "id": "prop-2",
- "districtId": "district-2",
- "type": "yesno",
- "section": "State of Hamilton",
- "title": "Is a hot dog a sandwich?",
- "description": " ",
- "_lang": {
- "es-US": {
- "section": "Estado de Hamilton",
- "title": "Proposición 1",
- "description": " "
- }
+ }
+ },
+ {
+ "id": "prop-1",
+ "districtId": "district-2",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "title": "Is Michael Jordan the best basketball player of all time?",
+ "description": " ",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Proposición 1",
+ "description": " "
}
- },
- {
- "id": "prop-3",
- "districtId": "district-2",
- "type": "yesno",
- "section": "State of Hamilton",
- "title": "Does pineapple belong on a pizza?",
- "description": " ",
- "_lang": {
- "es-US": {
- "section": "Estado de Hamilton",
- "title": "Proposición 1",
- "description": " "
- }
+ }
+ },
+ {
+ "id": "prop-2",
+ "districtId": "district-2",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "title": "Is a hot dog a sandwich?",
+ "description": " ",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Proposición 1",
+ "description": " "
+ }
+ }
+ },
+ {
+ "id": "prop-3",
+ "districtId": "district-2",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "title": "Does pineapple belong on a pizza?",
+ "description": " ",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Proposición 1",
+ "description": " "
}
- },
- {
- "id": "prop-4",
- "districtId": "district-2",
- "type": "yesno",
- "section": "State of Hamilton",
- "title": "Is it better to be too hot or too cold?",
- "description": " ",
- "_lang": {
- "es-US": {
- "section": "Estado de Hamilton",
- "title": "Proposición 1",
- "description": " "
- }
+ }
+ },
+ {
+ "id": "prop-4",
+ "districtId": "district-2",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "title": "Is it better to be too hot or too cold?",
+ "description": " ",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Proposición 1",
+ "description": " "
}
- },
- {
- "id": "president",
- "districtId": "district-1",
- "type": "candidate",
- "section": "United States",
- "title": "Best animal to have as a pet",
- "seats": 1,
- "candidates": [
- {
- "id": "dog",
- "name": "Dog",
- "partyId": "0"
- },
- {
- "id": "cat",
- "name": "Cat",
- "partyId": "1"
- },
- {
- "id": "hamster",
- "name": "Hamster",
- "partyId": "3"
- },
- {
- "id": "bird",
- "name": "Bird",
- "partyId": "3"
- },
- {
- "id": "snake",
- "name": "Snake",
- "partyId": "2"
- },
- {
- "id": "fish",
- "name": "Fish",
- "partyId": "2"
- }
- ],
- "allowWriteIns": true,
- "_lang": {
- "es-US": {
- "section": "Estados Unidos",
- "title": "Presidente"
- }
+ }
+ },
+ {
+ "id": "president",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "United States",
+ "title": "Best animal to have as a pet",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "dog",
+ "name": "Dog",
+ "partyId": "0"
+ },
+ {
+ "id": "cat",
+ "name": "Cat",
+ "partyId": "1"
+ },
+ {
+ "id": "hamster",
+ "name": "Hamster",
+ "partyId": "3"
+ },
+ {
+ "id": "bird",
+ "name": "Bird",
+ "partyId": "3"
+ },
+ {
+ "id": "snake",
+ "name": "Snake",
+ "partyId": "2"
+ },
+ {
+ "id": "fish",
+ "name": "Fish",
+ "partyId": "2"
}
- },
- {
- "id": "senator2",
- "districtId": "district-2",
- "type": "candidate",
- "section": "United States",
- "title": "What decade at thebest hair",
- "seats": 1,
- "candidates": [
- {
- "id": "1950s",
- "name": "1950s",
- "partyId": "0"
- },
- {
- "id": "1960s",
- "name": "1960s",
- "partyId": "1"
- },
- {
- "id": "1970s",
- "name": "1970s",
- "partyId": "3"
- },
- {
- "id": "1980s",
- "name": "1980s",
- "partyId": "3"
- },
- {
- "id": "1990s",
- "name": "1990s",
- "partyId": "3"
- },
- {
- "id": "2000s",
- "name": "2000s",
- "partyId": "3"
- }
- ],
- "allowWriteIns": true,
- "_lang": {
- "es-US": {
- "section": "Estados Unidos",
- "title": "Senador"
- }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Presidente"
}
- },
- {
- "id": "senator",
- "districtId": "district-2",
- "type": "candidate",
- "section": "United States",
- "title": "Most likeable member(s) of the British royal family",
- "seats": 3,
- "candidates": [
- {
- "id": "queen-elizabeth",
- "name": "Queen Elizabeth",
- "partyId": "0"
- },
- {
- "id": "corgis",
- "name": "The Queen’s corgis",
- "partyId": "3"
- },
- {
- "id": "prince-charles",
- "name": "Prince Charles",
- "partyId": "1"
- },
- {
- "id": "prince-phillip",
- "name": "Prince Phillip",
- "partyId": "3"
- },
- {
- "id": "prince-william",
- "name": "Prince William",
- "partyId": "3"
- },
- {
- "id": "prince-harry",
- "name": "Prince Harry",
- "partyId": "3"
- },
- {
- "id": "kate-middleton",
- "name": "Kate Middleton",
- "partyId": "3"
- },
- {
- "id": "megan-markle",
- "name": "Megan Markle",
- "partyId": "3"
- }
- ],
- "allowWriteIns": false,
- "_lang": {
- "es-US": {
- "section": "Estados Unidos",
- "title": "Senador"
- }
+ }
+ },
+ {
+ "id": "senator2",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "United States",
+ "title": "What decade at thebest hair",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "1950s",
+ "name": "1950s",
+ "partyId": "0"
+ },
+ {
+ "id": "1960s",
+ "name": "1960s",
+ "partyId": "1"
+ },
+ {
+ "id": "1970s",
+ "name": "1970s",
+ "partyId": "3"
+ },
+ {
+ "id": "1980s",
+ "name": "1980s",
+ "partyId": "3"
+ },
+ {
+ "id": "1990s",
+ "name": "1990s",
+ "partyId": "3"
+ },
+ {
+ "id": "2000s",
+ "name": "2000s",
+ "partyId": "3"
}
- },
- {
- "id": "prop-5",
- "districtId": "district-2",
- "type": "yesno",
- "section": "State of Hamilton",
- "title": "Proposition 1",
- "description": "S ",
- "_lang": {
- "es-US": {
- "section": "Estado de Hamilton",
- "title": "Proposición 1",
- "description": " "
- }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Senador"
}
}
- ],
- "precincts": [
- {
- "id": "23",
- "name": "Center Springfield"
- },
- {
- "id": "21",
- "name": "North Springfield"
- },
- {
- "id": "20",
- "name": "South Springfield"
+ },
+ {
+ "id": "senator",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "United States",
+ "title": "Most likeable member(s) of the British royal family",
+ "seats": 3,
+ "candidates": [
+ {
+ "id": "queen-elizabeth",
+ "name": "Queen Elizabeth",
+ "partyId": "0"
+ },
+ {
+ "id": "corgis",
+ "name": "The Queen’s corgis",
+ "partyId": "3"
+ },
+ {
+ "id": "prince-charles",
+ "name": "Prince Charles",
+ "partyId": "1"
+ },
+ {
+ "id": "prince-phillip",
+ "name": "Prince Phillip",
+ "partyId": "3"
+ },
+ {
+ "id": "prince-william",
+ "name": "Prince William",
+ "partyId": "3"
+ },
+ {
+ "id": "prince-harry",
+ "name": "Prince Harry",
+ "partyId": "3"
+ },
+ {
+ "id": "kate-middleton",
+ "name": "Kate Middleton",
+ "partyId": "3"
+ },
+ {
+ "id": "megan-markle",
+ "name": "Megan Markle",
+ "partyId": "3"
+ }
+ ],
+ "allowWriteIns": false,
+ "_lang": {
+ "es-US": {
+ "section": "Estados Unidos",
+ "title": "Senador"
+ }
}
- ],
- "ballotStyles": [
- {
- "id": "12",
- "precincts": ["23", "21"],
- "districts": ["district-1", "district-2"]
- },
- {
- "id": "5",
- "precincts": ["21", "20"],
- "districts": ["district-1"]
+ },
+ {
+ "id": "prop-5",
+ "districtId": "district-2",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "title": "Proposition 1",
+ "description": "S ",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Proposición 1",
+ "description": " "
+ }
}
- ],
- "seal": ""
- }
-
\ No newline at end of file
+ }
+ ],
+ "precincts": [
+ {
+ "id": "23",
+ "name": "Center Springfield"
+ },
+ {
+ "id": "21",
+ "name": "North Springfield"
+ },
+ {
+ "id": "20",
+ "name": "South Springfield"
+ }
+ ],
+ "ballotStyles": [
+ {
+ "id": "12",
+ "precincts": ["23", "21"],
+ "districts": ["district-1", "district-2"]
+ },
+ {
+ "id": "5",
+ "precincts": ["21", "20"],
+ "districts": ["district-1"]
+ }
+ ],
+ "seal": ""
+}
From 697ceaf340ee8b1858d2fd05adf1a8e8293930ea Mon Sep 17 00:00:00 2001
From: Ben Adida
Date: Tue, 11 Aug 2020 13:51:36 -0700
Subject: [PATCH 3/7] extract ballotId param
---
client/src/screens/UserTestingBallotScreen.tsx | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/client/src/screens/UserTestingBallotScreen.tsx b/client/src/screens/UserTestingBallotScreen.tsx
index f704973..49056ba 100644
--- a/client/src/screens/UserTestingBallotScreen.tsx
+++ b/client/src/screens/UserTestingBallotScreen.tsx
@@ -30,6 +30,10 @@ const UserTestingBallotScreen = () => {
Date: Tue, 11 Aug 2020 21:36:58 -0700
Subject: [PATCH 4/7] updated election
---
client/src/screens/testElection.json | 797 +++++++++++++++++++++------
1 file changed, 617 insertions(+), 180 deletions(-)
diff --git a/client/src/screens/testElection.json b/client/src/screens/testElection.json
index 813f872..dc04c68 100644
--- a/client/src/screens/testElection.json
+++ b/client/src/screens/testElection.json
@@ -62,6 +62,18 @@
},
{
"id": "2",
+ "name": "Independent",
+ "fullName": "Independent Party",
+ "abbrev": "I",
+ "_lang": {
+ "es-US": {
+ "name": "Independiente",
+ "fullName": "Partido Independiente"
+ }
+ }
+ },
+ {
+ "id": "3",
"name": "Libertarian",
"fullName": "Libertarian Party",
"abbrev": "Li",
@@ -73,7 +85,7 @@
}
},
{
- "id": "3",
+ "id": "4",
"name": "Green",
"fullName": "Green Party",
"abbrev": "G",
@@ -87,41 +99,37 @@
],
"contests": [
{
- "id": "president2",
+ "id": "president",
"districtId": "district-1",
"type": "candidate",
"section": "United States",
- "title": "What is the best animal to have as a pet?",
+ "title": "President",
"seats": 1,
"candidates": [
{
- "id": "dog",
- "name": "Dog",
+ "id": "marie-curie",
+ "name": "Marie Curie",
"partyId": "0"
},
{
- "id": "cat",
- "name": "Cat",
+ "id": "indiana-jones",
+ "name": "Indiana Jones",
"partyId": "1"
},
{
- "id": "hamster",
- "name": "Hamster",
- "partyId": "3"
+ "id": "mona-lisa",
+ "name": "Mona Lisa",
+ "partyId": "2"
},
{
- "id": "bird",
- "name": "Bird",
+ "id": "jackie-chan",
+ "name": "Jackie Chan",
"partyId": "3"
},
{
- "id": "snake",
- "name": "Snake",
- "partyId": "2"
- },
- {
- "id": "fish",
- "name": "Fish"
+ "id": "tim-allen",
+ "name": "Tim Allen",
+ "partyId": "4"
}
],
"allowWriteIns": true,
@@ -133,40 +141,30 @@
}
},
{
- "id": "senator3",
+ "id": "senator",
"districtId": "district-2",
"type": "candidate",
"section": "United States",
- "title": "What is the most enjoyable sport to watch?",
+ "title": "Senator",
"seats": 1,
"candidates": [
{
- "id": "football",
- "name": "Football",
+ "id": "earhart",
+ "name": "Amelia Earhart",
"partyId": "0"
},
{
- "id": "baseball",
- "name": "Baseball",
+ "id": "bond",
+ "name": "James Bond",
"partyId": "1"
},
{
- "id": "basketball",
- "name": "Basketball",
- "partyId": "3"
- },
- {
- "id": "hockey",
- "name": "Hockey",
- "partyId": "3"
- },
- {
- "id": "curling",
- "name": "Curling",
- "partyId": "3"
+ "id": "antoinette",
+ "name": "Marie Antoinette",
+ "partyId": "2"
}
],
- "allowWriteIns": true,
+ "allowWriteIns": false,
"_lang": {
"es-US": {
"section": "Estados Unidos",
@@ -179,302 +177,693 @@
"districtId": "district-1",
"type": "candidate",
"section": "United States",
- "title": "Which team would you most like to see dissolved?",
+ "title": "Representative, District 18",
"seats": 1,
"candidates": [
{
- "id": "nyy",
- "name": "New York Yankees (baseball)",
+ "id": "michael-jordan",
+ "name": "Michael Jordan",
"partyId": "0"
- },
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Representante, 18º Distrito"
+ }
+ }
+ },
+ {
+ "id": "governor",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "State of Hamilton",
+ "title": "Governor",
+ "seats": 1,
+ "candidates": [
{
- "id": "lal",
- "name": "Los Angeles Lakers (basketball)",
+ "id": "sherlock-holmes",
+ "name": "Sherlock Holmes",
"partyId": "0"
},
{
- "id": "brs",
- "name": "Boston Red Sox (baseball)",
+ "id": "thomas-edison",
+ "name": "Thomas Edison",
+ "partyId": "1"
+ }
+ ],
+ "allowWriteIns": false,
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Gobernador"
+ }
+ }
+ },
+ {
+ "id": "lieutenant-governor",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "State of Hamilton",
+ "title": "Lieutenant Governor",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "winston-churchill",
+ "name": "Winston Churchill",
"partyId": "0"
},
{
- "id": "drw",
- "name": "Detroit Red Wings (hockey)",
- "partyId": "0"
+ "id": "oprah-winfrey",
+ "name": "Oprah Winfrey",
+ "partyId": "1"
},
{
- "id": "bc",
- "name": "Boston Celtics (basketball)",
- "partyId": "0"
+ "id": "louis-armstrong",
+ "name": "Louis Armstrong",
+ "partyId": "2"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Vicegobernador"
+ }
+ }
+ },
+ {
+ "id": "ss-justic-3",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "State of Hamilton",
+ "title": "Justice, Supreme Court",
+ "seats": 2,
+ "candidates": [
+ {
+ "id": "john-snow",
+ "name": "John Snow"
},
{
- "id": "nep",
- "name": "New England Patriots (football)",
- "partyId": "0"
+ "id": "mark-twain",
+ "name": "Mark Twain"
},
{
- "id": "mc",
- "name": "Montreal Canadiens (hockey)",
- "partyId": "0"
+ "id": "benjamin-franklin",
+ "name": "Benjamin Franklin"
+ },
+ {
+ "id": "robert-downey-jr",
+ "name": "Robert Downey Jr."
},
{
- "id": "dc",
- "name": "Dallas Cowboys (football)",
+ "id": "bill-nye",
+ "name": "Bill Nye"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Justicia, Corte Suprema"
+ }
+ }
+ },
+ {
+ "id": "comptroller",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "State of Hamilton",
+ "title": "State Comptroller",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "natalie-portman",
+ "name": "Natalie Portman",
+ "partyId": "0"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Contralor Estatal"
+ }
+ }
+ },
+ {
+ "id": "comm-ag",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "State of Hamilton",
+ "title": "Commissioner of Agriculture",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "helen-keller",
+ "name": "Helen Keller",
"partyId": "0"
},
-
{
- "id": "mh",
- "name": "Miami Heat (basketball)",
+ "id": "steve-jobs",
+ "name": "Steve Jobs",
"partyId": "1"
- },
+ }
+ ],
+ "allowWriteIns": false,
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Comisionado de Agricultura"
+ }
+ }
+ },
+ {
+ "id": "state-senator",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "State of Hamilton",
+ "title": "State Senator",
+ "seats": 1,
+ "candidates": [
{
- "id": "gsw",
- "name": "Golden State Warriors (basketball)",
- "partyId": "3"
+ "id": "charles-dickens",
+ "name": "Charles Dickens",
+ "partyId": "1"
},
{
- "id": "gbp",
- "name": "Green Bay Packers (football)",
- "partyId": "3"
+ "id": "hugh-jackman",
+ "name": "Hugh Jackman",
+ "partyId": "0"
+ }
+ ],
+ "allowWriteIns": false,
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "title": "Senador Estatal"
+ }
+ }
+ },
+ {
+ "id": "state-representative",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "State of Hamilton",
+ "title": "State Representative, District 9",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "julius-ceasar",
+ "name": "Julius Caesar",
+ "partyId": "1"
},
{
- "id": "lvgk",
- "name": "Las Vegas Golden Knights (hockey)",
- "partyId": "3"
+ "id": "harry-houdini",
+ "name": "Harry Houdini",
+ "partyId": "0"
}
],
"allowWriteIns": false,
"_lang": {
"es-US": {
- "section": "Estados Unidos",
- "title": "Representante, Distrito 18"
+ "section": "Estado de Hamilton",
+ "title": "Representante Estatal"
}
}
},
{
- "id": "prop-1",
- "districtId": "district-2",
- "type": "yesno",
+ "id": "chief-justice-1",
+ "districtId": "district-1",
+ "type": "candidate",
"section": "State of Hamilton",
- "title": "Is Michael Jordan the best basketball player of all time?",
- "description": " ",
+ "title": "Chief Justice, 1st Court of Appeals",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "charles-darwin",
+ "name": "Charles Darwin"
+ },
+ {
+ "id": "stephen-hawking",
+ "name": "Stephen Hawking"
+ }
+ ],
+ "allowWriteIns": false,
"_lang": {
"es-US": {
"section": "Estado de Hamilton",
- "title": "Proposición 1",
- "description": " "
+ "title": "Jefe de Justicia, 1er Tribunal de Apelaciones"
}
}
},
{
- "id": "prop-2",
- "districtId": "district-2",
- "type": "yesno",
+ "id": "district-judge-11",
+ "districtId": "district-1",
+ "type": "candidate",
"section": "State of Hamilton",
- "title": "Is a hot dog a sandwich?",
- "description": " ",
+ "title": "District Judge, 11th Judicial District",
+ "seats": 3,
+ "candidates": [
+ {
+ "id": "bill-gates",
+ "name": "Bill Gates"
+ },
+ {
+ "id": "susan-b-anthony",
+ "name": "Susan B. Anthony"
+ },
+ {
+ "id": "pablo-picasso",
+ "name": "Pablo Picasso"
+ },
+ {
+ "id": "wolfgang-amadeus-mozart",
+ "name": "Wolfgang Amadeus Mozart"
+ },
+ {
+ "id": "george-washington",
+ "name": "George Washington"
+ }
+ ],
+ "allowWriteIns": true,
"_lang": {
"es-US": {
"section": "Estado de Hamilton",
- "title": "Proposición 1",
- "description": " "
+ "title": "Juez de Distrito, 11º Distrito Judicial"
}
}
},
{
- "id": "prop-3",
- "districtId": "district-2",
- "type": "yesno",
+ "id": "district-judge-125",
+ "districtId": "district-1",
+ "type": "candidate",
"section": "State of Hamilton",
- "title": "Does pineapple belong on a pizza?",
- "description": " ",
+ "title": "District Judge, 125th Judicial District",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "jane-austen",
+ "name": "Jane Austen"
+ },
+ {
+ "id": "carrie-fisher",
+ "name": "Carrie Fisher"
+ }
+ ],
+ "allowWriteIns": true,
"_lang": {
"es-US": {
"section": "Estado de Hamilton",
- "title": "Proposición 1",
- "description": " "
+ "title": "Juez de Distrito, 125º Distrito Judicial"
}
}
},
{
- "id": "prop-4",
- "districtId": "district-2",
- "type": "yesno",
+ "id": "district-judge-127",
+ "districtId": "district-1",
+ "type": "candidate",
"section": "State of Hamilton",
- "title": "Is it better to be too hot or too cold?",
- "description": " ",
+ "title": "District Judge, 127th Judicial District",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "bob-barker",
+ "name": "Bob Barker"
+ },
+ {
+ "id": "angelina-jolie",
+ "name": "Angelina Jolie"
+ }
+ ],
+ "allowWriteIns": true,
"_lang": {
"es-US": {
"section": "Estado de Hamilton",
- "title": "Proposición 1",
- "description": " "
+ "title": "Juez de Distrito, 127º Distrito Judicial"
}
}
},
{
- "id": "president",
+ "id": "school-board",
"districtId": "district-1",
"type": "candidate",
- "section": "United States",
- "title": "Best animal to have as a pet",
- "seats": 1,
+ "section": "Franklin County",
+ "title": "County School Board",
+ "seats": 2,
"candidates": [
{
- "id": "dog",
- "name": "Dog",
+ "id": "mark-antony",
+ "name": "Mark Antony",
+ "partyId": "0"
+ },
+ {
+ "id": "harriet-tubman",
+ "name": "Harriet Tubman",
"partyId": "0"
},
{
- "id": "cat",
- "name": "Cat",
+ "id": "martin-luther-king",
+ "name": "Dr. Martin Luther King Jr.",
"partyId": "1"
},
{
- "id": "hamster",
- "name": "Hamster",
- "partyId": "3"
+ "id": "marilyn-monroe",
+ "name": "Marilyn Monroe",
+ "partyId": "1"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Condado de Franklin",
+ "title": "Consejo Escolar"
+ }
+ }
+ },
+ {
+ "id": "county-clerk",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "Franklin County",
+ "title": "County Clerk",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "frank-sinatra",
+ "name": "Frank Sinatra",
+ "partyId": "1"
},
{
- "id": "bird",
- "name": "Bird",
- "partyId": "3"
+ "id": "andy-warhol",
+ "name": "Andy Warhol",
+ "partyId": "0"
+ }
+ ],
+ "allowWriteIns": false,
+ "_lang": {
+ "es-US": {
+ "section": "Condado de Franklin",
+ "title": "Secretario del Condado"
+ }
+ }
+ },
+ {
+ "id": "public-service-comissioner",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "Franklin County",
+ "title": "Public Service Comissioner",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "luke-skywalker",
+ "name": "Luke Skywalker",
+ "partyId": "1"
+ },
+ {
+ "id": "elvis-presley",
+ "name": "Elvis Presley",
+ "partyId": "0"
+ }
+ ],
+ "allowWriteIns": false,
+ "_lang": {
+ "es-US": {
+ "section": "Condado de Franklin",
+ "title": "Comisario de Servicios Públicos"
+ }
+ }
+ },
+ {
+ "id": "county-coronor",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "Franklin County",
+ "title": "County Coroner",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "salvador-dali",
+ "name": "Salvador Dali",
+ "partyId": "0"
},
{
- "id": "snake",
- "name": "Snake",
+ "id": "anne-hathaway",
+ "name": "Anne Hathaway",
+ "partyId": "1"
+ },
+ {
+ "id": "steven-spielberg",
+ "name": "Steven Spielberg",
"partyId": "2"
},
{
- "id": "fish",
- "name": "Fish",
+ "id": "neil-armstrong",
+ "name": "Neil Armstrong",
"partyId": "2"
}
],
"allowWriteIns": true,
"_lang": {
"es-US": {
- "section": "Estados Unidos",
- "title": "Presidente"
+ "section": "Condado de Franklin",
+ "title": "Forense del Condado"
}
}
},
{
- "id": "senator2",
+ "id": "district-attorney",
"districtId": "district-2",
"type": "candidate",
- "section": "United States",
- "title": "What decade at thebest hair",
+ "section": "Franklin County",
+ "title": "District Attorney",
"seats": 1,
"candidates": [
{
- "id": "1950s",
- "name": "1950s",
+ "id": "theodore-roosevelt",
+ "name": "Theodore Roosevelt",
"partyId": "0"
},
{
- "id": "1960s",
- "name": "1960s",
+ "id": "edgar-allan-poe",
+ "name": "Edgar Allan Poe",
"partyId": "1"
- },
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Condado de Franklin",
+ "title": "Fiscal de Distrito"
+ }
+ }
+ },
+ {
+ "id": "county-attorney",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "Franklin County",
+ "title": "County Attorney",
+ "seats": 1,
+ "candidates": [
{
- "id": "1970s",
- "name": "1970s",
- "partyId": "3"
+ "id": "isaac-newton",
+ "name": "Isaac Newton",
+ "partyId": "0"
},
{
- "id": "1980s",
- "name": "1980s",
- "partyId": "3"
+ "id": "harry-potter",
+ "name": "Harry Potter",
+ "partyId": "1"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Condado de Franklin",
+ "title": "Abogado del Condado"
+ }
+ }
+ },
+ {
+ "id": "sheriff",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "Franklin County",
+ "title": "Sheriff",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "robin-williams",
+ "name": "Robin Williams",
+ "partyId": "0"
},
{
- "id": "1990s",
- "name": "1990s",
- "partyId": "3"
+ "id": "brad-pitt",
+ "name": "Brad Pitt",
+ "partyId": "1"
},
{
- "id": "2000s",
- "name": "2000s",
+ "id": "william-shakespeare",
+ "name": "William Shakespeare",
"partyId": "3"
}
],
"allowWriteIns": true,
"_lang": {
"es-US": {
- "section": "Estados Unidos",
- "title": "Senador"
+ "section": "Condado de Franklin",
+ "title": "Alguacil"
}
}
},
{
- "id": "senator",
+ "id": "county-tax-assessor",
"districtId": "district-2",
"type": "candidate",
- "section": "United States",
- "title": "Most likeable member(s) of the British royal family",
- "seats": 3,
+ "section": "Franklin County",
+ "title": "County Tax Assessor-Collector",
+ "seats": 1,
"candidates": [
{
- "id": "queen-elizabeth",
- "name": "Queen Elizabeth",
+ "id": "bruce-lee",
+ "name": "Bruce Lee",
"partyId": "0"
},
{
- "id": "corgis",
- "name": "The Queen’s corgis",
- "partyId": "3"
- },
- {
- "id": "prince-charles",
- "name": "Prince Charles",
+ "id": "christopher-columbus",
+ "name": "Christopher Columbus",
"partyId": "1"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Condado de Franklin",
+ "title": "Asesor-Recaudador de Impuestos del País"
+ }
+ }
+ },
+ {
+ "id": "Justice-peace-1-1",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "Franklin County",
+ "title": "Justice of the Peace, Precinct 1, Place 1",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "julia-child",
+ "name": "Julia Child"
},
{
- "id": "prince-phillip",
- "name": "Prince Phillip",
- "partyId": "3"
+ "id": "paul-mccartney",
+ "name": "Paul McCartney"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Condado de Franklin",
+ "title": "Juez de la Paz, Precinto 1, Lugar 1"
+ }
+ }
+ },
+ {
+ "id": "constable-1",
+ "districtId": "district-2",
+ "type": "candidate",
+ "section": "Franklin County",
+ "title": "Constable, Precinct 1",
+ "seats": 1,
+ "candidates": [
+ {
+ "id": "beethoven",
+ "name": "Ludwig Van Beethoven",
+ "partyId": "0"
},
{
- "id": "prince-william",
- "name": "Prince William",
- "partyId": "3"
+ "id": "walt-disney",
+ "name": "Walt Disney",
+ "partyId": "1"
+ }
+ ],
+ "allowWriteIns": true,
+ "_lang": {
+ "es-US": {
+ "section": "Condado de Franklin",
+ "title": "Alguacil, distrito 1"
+ }
+ }
+ },
+ {
+ "id": "city-council",
+ "districtId": "district-1",
+ "type": "candidate",
+ "section": "Franklin City",
+ "title": "Franklin City Council",
+ "seats": 3,
+ "candidates": [
+ {
+ "id": "nikola-tesla",
+ "name": "Nikola Tesla",
+ "partyId": "0"
},
{
- "id": "prince-harry",
- "name": "Prince Harry",
- "partyId": "3"
+ "id": "vincent-van-gogh",
+ "name": "Vincent Van Gogh",
+ "partyId": "0"
},
{
- "id": "kate-middleton",
- "name": "Kate Middleton",
- "partyId": "3"
+ "id": "johan-sebastian-bach",
+ "name": "Johann Sebastian Bach",
+ "partyId": "1"
},
{
- "id": "megan-markle",
- "name": "Megan Markle",
- "partyId": "3"
+ "id": "alexander-graham-bell",
+ "name": "Alexander Graham Bell",
+ "partyId": "2"
}
],
- "allowWriteIns": false,
+ "allowWriteIns": true,
"_lang": {
"es-US": {
- "section": "Estados Unidos",
- "title": "Senador"
+ "section": "Ciudad de Franklin",
+ "title": "Consejo Municipal"
}
}
},
{
- "id": "prop-5",
+ "id": "prop-1",
"districtId": "district-2",
"type": "yesno",
"section": "State of Hamilton",
"title": "Proposition 1",
- "description": "S ",
+ "description": "Shall there be an amendment to the State Constitution concerning initiative and referendum petitions, and, in connection therewith, changing petition rights and procedures; allowing petitions to be submitted at all levels of state government; limiting initiative ballot titles to 75 words; changing single-subject requirements and procedures; limiting the annual number of new laws that governments may exclude from possible referendum petitions; establishing standards for review of filed petitions; specifying that petitions may be voted on at any November election; limiting the use of government resources to discuss a petition; requiring voter approval for future petition laws and rules and for changes to certain voter-approved petitions; and authorizing measures to enforce the amendment?",
"_lang": {
"es-US": {
"section": "Estado de Hamilton",
"title": "Proposición 1",
- "description": " "
+ "description": "¿Deberá haber una enmienda a la Constitución del Estado con respecto a las peticiones de iniciativa y referéndum y en relación con esto, el cambio de los derechos y procedimientos de petición; permitiendo que se presenten peticiones en todos los niveles del gobierno estatal; limitando los títulos de las papeletas de iniciativa a 75 palabras; cambiando de requisitos y procedimientos de una sola asignatura; limitando el número anual de nuevas leyes que los gobiernos pueden excluir de posibles peticiones de referéndum; estableciendo estándares para la revisión de peticiones presentadas; especificando que las peticiones se pueden votar en cualquier elección de noviembre; limitando el uso de recursos del gobierno para discutir una petición; requeriendo la aprobación de los votantes para futuras leyes y reglas de petición y para cambios en ciertas peticiones aprobadas por los votantes; y autorizando medidas para hacer cumplir la enmienda?"
+ }
+ }
+ },
+ {
+ "id": "prop-2",
+ "districtId": "district-1",
+ "type": "yesno",
+ "section": "State of Hamilton",
+ "shortTitle": "Proposition 2",
+ "title": "Proposition 2",
+ "description": "Shall the state Constitution be amended to create a Healthy Future Trust Fund which will: 1) be used to reduce and prevent tobacco use, to increase funding for healthcare access and treatment for eligible low-income individuals and Medicaid recipients, and cover administrative costs; 2) be funded by tax of four cents per cigarette and twenty percent on other tobacco products; and 3) be kept separate from general revenue and annually audited?",
+ "_lang": {
+ "es-US": {
+ "section": "Estado de Hamilton",
+ "shortTitle": "Proposición 2",
+ "title": "Proposición 2",
+ "description": "¿Se enmendará la Constitución del Estado para crear un Fondo Fiduciario Healthy Future que: 1) se utilizará para reducir y prevenir el consumo de tabaco, para aumentar la financiación para el acceso a la atención médica y el tratamiento para personas elegibles de bajos ingresos y beneficiarios de Medicaid, y cubrir los costos administrativos; 2) ser financiado por impuestos de cuatro centavos por cigarrillo y veinte por ciento en otros productos de tabaco; y 3) mantenerse separado de los ingresos generales y auditado anualmente?"
}
}
}
@@ -505,5 +894,53 @@
"districts": ["district-1"]
}
],
- "seal": ""
+ "seal": "",
+ "ballotStrings": {
+ "Official Ballot": "Official Ballot",
+ "TEST BALLOT": "TEST BALLOT",
+ "Yes": "Yes",
+ "No": "No",
+ "Precinct": "Precinct",
+ "Style": "Style",
+ "Page": "Page",
+ "Pages": "Pages",
+ "{{primaryPartyName}} {{electionTitle}}": "{{primaryPartyName}} {{electionTitle}}",
+ "write-in": "write-in",
+ "Vote for 1": "Vote for 1",
+ "Vote for not more than {{ seats }}": "Vote for not more than {{ seats }}",
+ "voteYesOrNo": "Vote Yes or No",
+ "Instructions": "To Vote",
+ "To vote, use a black pen to completely fill in the oval to the left of your choice.": "Use a black pen to completely fill in the oval to the left of your choice. Do not make any marks outside of the oval.",
+ "To Vote for a Write-In": "To Vote for a Write-In",
+ "To vote for a person not on the ballot, completely fill in the oval to the left of the “write-in” line and print the person’s name on the line.": "Completely fill in the oval to the left of the “write-in” line, and print the person’s name.",
+ "To correct a mistake": "To correct a mistake",
+ "To make a correction, please ask for a replacement ballot. Any marks other than filled ovals may cause your ballot not to be counted.": "Review your ballot for errors before mailing, If you’ve made a mistake, you can download a new ballot.",
+ "Thank you for voting.": "Thank you for voting.",
+ "You have reached the end of the ballot. Please review your ballot selections.": "Thank you for voting. Please review your ballot for errors and then mail in a stamped envelope to: VotingWorks, 60 29th Street, Box 664, San Francisco, CA 94110",
+ "_lang": {
+ "es-US": {
+ "Official Ballot": "Boleta Oficial",
+ "TEST BALLOT": "BOLETA DE PRUEBA",
+ "Yes": "Sí",
+ "No": "No",
+ "Precinct": "Recinto",
+ "Style": "Estilo",
+ "Page": "Página",
+ "Pages": "Paginas",
+ "{{primaryPartyName}} {{electionTitle}}": "{{electionTitle}} del {{primaryPartyName}}",
+ "write-in": "vote por",
+ "Vote for 1": "Vote por 1",
+ "Vote for not more than {{ seats }}": "Vote por no más de {{ seats }}",
+ "voteYesOrNo": "Vote Sí o No",
+ "Instructions": "Para Votar",
+ "To vote, use a black pen to completely fill in the oval to the left of your choice.": "Use un bolígrafo negro para rellenar completamente el óvalo a la izquierda de su selección.",
+ "To Vote for a Write-In": "Para asignar un voto",
+ "To vote for a person not on the ballot, completely fill in the oval to the left of the “write-in” line and print the person’s name on the line.": "Para votar para una persona que no aparece en la boleta electoral, rellena completamente el óvalo a la izquierda de la línea de “vote por” y escriba el nombre de la persona en la línea.",
+ "To correct a mistake": "Para corregir un error",
+ "To make a correction, please ask for a replacement ballot. Any marks other than filled ovals may cause your ballot not to be counted.": "Para hacer una corrección, solicite una boleta nueva. Cualquier marca que no sea óvalo relleno puede hacer que su boleta no cuente.",
+ "Thank you for voting.": "Gracias por votar.",
+ "You have reached the end of the ballot. Please review your ballot selections.": "Ha llegado al final de la votación. Por favor revise las opciones seleccionadas en su boleta."
+ }
+ }
+ }
}
From 6d2ca60dcae658db32bb012ae9a91b0fa4ae5c63 Mon Sep 17 00:00:00 2001
From: Ben Adida
Date: Fri, 14 Aug 2020 13:40:57 -0700
Subject: [PATCH 5/7] new election
---
client/src/screens/testElection.json | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/client/src/screens/testElection.json b/client/src/screens/testElection.json
index dc04c68..a03368b 100644
--- a/client/src/screens/testElection.json
+++ b/client/src/screens/testElection.json
@@ -13,7 +13,7 @@
"date": "2020-11-03T00:00:00-08:00",
"_lang": {
"es-US": {
- "title": "Eleccion General",
+ "title": "Elección General",
"state": "Estado de Hamilton"
}
},
@@ -32,7 +32,7 @@
},
{
"id": "7",
- "name": "District 7"
+ "name": "7"
}
],
"parties": [
@@ -362,16 +362,16 @@
"_lang": {
"es-US": {
"section": "Estado de Hamilton",
- "title": "Senador Estatal"
+ "title": "Senator del Estado"
}
}
},
{
"id": "state-representative",
- "districtId": "district-1",
+ "districtId": "district-2",
"type": "candidate",
"section": "State of Hamilton",
- "title": "State Representative, District 9",
+ "title": "State Representative, District 2",
"seats": 1,
"candidates": [
{
@@ -592,7 +592,7 @@
"_lang": {
"es-US": {
"section": "Condado de Franklin",
- "title": "Comisario de Servicios Públicos"
+ "title": "Comisionado de Servicio Público"
}
}
},
@@ -885,8 +885,8 @@
"ballotStyles": [
{
"id": "12",
- "precincts": ["23", "21"],
- "districts": ["district-1", "district-2"]
+ "precincts": ["23", "21", "20"],
+ "districts": ["district-1", "district-2", "district-3", "7"]
},
{
"id": "5",
@@ -894,7 +894,8 @@
"districts": ["district-1"]
}
],
- "seal": "",
+ "seal": "",
+
"ballotStrings": {
"Official Ballot": "Official Ballot",
"TEST BALLOT": "TEST BALLOT",
@@ -939,7 +940,7 @@
"To correct a mistake": "Para corregir un error",
"To make a correction, please ask for a replacement ballot. Any marks other than filled ovals may cause your ballot not to be counted.": "Para hacer una corrección, solicite una boleta nueva. Cualquier marca que no sea óvalo relleno puede hacer que su boleta no cuente.",
"Thank you for voting.": "Gracias por votar.",
- "You have reached the end of the ballot. Please review your ballot selections.": "Ha llegado al final de la votación. Por favor revise las opciones seleccionadas en su boleta."
+ "You have reached the end of the ballot. Please review your ballot selections.": "Ha llegado al final de la votación. Por favor revise las opciones seleccionadas en su boleta para ver si hay errores y luego envíela en un sobre con sello a: 60 29th Street, Box 664, San Francisco, CA 94110"
}
}
}
From cbe3014d1371bf8376d91597f9a5938071afe73d Mon Sep 17 00:00:00 2001
From: Ben Adida
Date: Fri, 14 Aug 2020 15:33:32 -0700
Subject: [PATCH 6/7] spanish
---
client/src/screens/UserTestingBallotScreen.tsx | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/client/src/screens/UserTestingBallotScreen.tsx b/client/src/screens/UserTestingBallotScreen.tsx
index 49056ba..6f4a86b 100644
--- a/client/src/screens/UserTestingBallotScreen.tsx
+++ b/client/src/screens/UserTestingBallotScreen.tsx
@@ -17,6 +17,14 @@ const UserTestingBallotScreen = () => {
primary: 'en-US',
}
+ const params = new URL(document.location.toString()).searchParams
+ const ballotId = params.get('ballotId') || undefined
+ const withSpanish = params.get('spanish') || false
+
+ if (withSpanish) {
+ locales.secondary = 'es-US'
+ }
+
const precinctName = getPrecinctById({ election, precinctId })?.name
return (
@@ -30,10 +38,7 @@ const UserTestingBallotScreen = () => {
Date: Wed, 19 Aug 2020 12:48:40 -0700
Subject: [PATCH 7/7] new test election for rice
---
client/src/screens/testElection.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/client/src/screens/testElection.json b/client/src/screens/testElection.json
index a03368b..9d55759 100644
--- a/client/src/screens/testElection.json
+++ b/client/src/screens/testElection.json
@@ -915,9 +915,9 @@
"To Vote for a Write-In": "To Vote for a Write-In",
"To vote for a person not on the ballot, completely fill in the oval to the left of the “write-in” line and print the person’s name on the line.": "Completely fill in the oval to the left of the “write-in” line, and print the person’s name.",
"To correct a mistake": "To correct a mistake",
- "To make a correction, please ask for a replacement ballot. Any marks other than filled ovals may cause your ballot not to be counted.": "Review your ballot for errors before mailing, If you’ve made a mistake, you can download a new ballot.",
+ "To make a correction, please ask for a replacement ballot. Any marks other than filled ovals may cause your ballot not to be counted.": "Review your ballot for errors before mailing, If you’ve made a mistake, you can print a new ballot.",
"Thank you for voting.": "Thank you for voting.",
- "You have reached the end of the ballot. Please review your ballot selections.": "Thank you for voting. Please review your ballot for errors and then mail in a stamped envelope to: VotingWorks, 60 29th Street, Box 664, San Francisco, CA 94110",
+ "You have reached the end of the ballot. Please review your ballot selections.": "Thank you for completing your ballot. Please review your ballot for errors and then mail in a stamped envelope to: VotingWorks, 60 29th Street, Box 664, San Francisco, CA 94110",
"_lang": {
"es-US": {
"Official Ballot": "Boleta Oficial",