Real screenshots in the userspec.

This commit is contained in:
simon 2017-07-21 17:44:56 +01:00
parent 89745e3a83
commit 02b120fb63
17 changed files with 34 additions and 17 deletions

View file

@ -75,18 +75,26 @@ Note that:
The map view shows a map of the streets immediately around their current location, overlaid, on dwellings where canvas has already been done, with icons indicating the voting preference expressed, and with the dwellings where canvassing is still required marked with an icon indicating this: The map view shows a map of the streets immediately around their current location, overlaid, on dwellings where canvas has already been done, with icons indicating the voting preference expressed, and with the dwellings where canvassing is still required marked with an icon indicating this:
![Map View](https://raw.githubusercontent.com/simon-brooke/youyesyet/master/dummies/mapview_800.png) ![Map View](https://raw.githubusercontent.com/simon-brooke/youyesyet/master/dummies/mapview.png)
Selecting a building on the map leads to Selecting a building on the map leads to
1. On buildings with multiple flats, a schematic view of the flats in the building (I haven't yet really got a good idea how to do this; it may be just a list). Selecting a flat from this view leads to the *Electors View*; 1. On buildings with multiple flats, the *Building View*;
2. On buildings with only one dwelling, the *Electors View*. 2. On buildings with only one dwelling, the *Electors View*.
## Building View
A list of dwellings in a building.
![Building View](https://raw.githubusercontent.com/simon-brooke/youyesyet/master/dummies/building.png)
Selecting a flat from this view leads to the *Electors View*.
## Electors View ## Electors View
The *Electors View* shows a schematic of the registered electors in a dwelling: The *Electors View* shows a schematic of the registered electors in a dwelling:
![Electors View](https://raw.githubusercontent.com/simon-brooke/youyesyet/master/dummies/occupants_800.png) ![Electors View](https://raw.githubusercontent.com/simon-brooke/youyesyet/master/dummies/occupants.png)
One figure is shown for each elector, labelled with their name. In the dummy pages I've shown gendered stick figures, because I believe that in many casesthis will help the canvasser identify the person who has answered the door; but this may be seen as excluding electors with non-binary gender, and, in any case, I believe we don't actually get gender data (other than salutation) in the electoral roll data. So this may have to be reconsidered. One figure is shown for each elector, labelled with their name. In the dummy pages I've shown gendered stick figures, because I believe that in many casesthis will help the canvasser identify the person who has answered the door; but this may be seen as excluding electors with non-binary gender, and, in any case, I believe we don't actually get gender data (other than salutation) in the electoral roll data. So this may have to be reconsidered.
@ -112,9 +120,18 @@ The *Issues View* is a simple list of issues:
| Other | | Other |
+------------------------------------------------+ +------------------------------------------------+
![Issues View](https://raw.githubusercontent.com/simon-brooke/youyesyet/master/dummies/issues.png)
This list will not be hard-coded but will be dynamic; thus, if we find an issue we didn't predict is regularly coming up on the doorstep an *Administrator* can add it to the list. This list will not be hard-coded but will be dynamic; thus, if we find an issue we didn't predict is regularly coming up on the doorstep an *Administrator* can add it to the list.
Selecting the back button from the *Issues View* returns to the *Electors View*. Selecting any option from the Issues view leads to a single page giving top level points the canvasser can make to the elector on the doorstep, and a link to a *Followup Request* form. There is also a 'back' button allowing the user to return to the *Issues View* Selecting the back button from the *Issues View* returns to the *Electors View*. Selecting any option from the Issues view leads to the *Issue View*.
## Issue View
A single page giving top level points the canvasser can make to the elector on the doorstep, regarding the selected issue; and a link to a *Followup Request* form. There is also a 'back' button allowing the user to return to the *Issues View*.
![Issue View](https://raw.githubusercontent.com/simon-brooke/youyesyet/master/dummies/issue.png)
## Followup Request form ## Followup Request form
@ -132,6 +149,8 @@ The *Followup Request* form is a simple form which allows the canvasser to recor
| | | |
+------------------------------------------------+ +------------------------------------------------+
![Followup Request Form](https://raw.githubusercontent.com/simon-brooke/youyesyet/master/dummies/followup.png)
## How Street Canvassers will use the system ## How Street Canvassers will use the system
Street Canvassers will typically use the system by Street Canvassers will typically use the system by

BIN
dummies/building.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
dummies/building.xcf Normal file

Binary file not shown.

BIN
dummies/followup.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
dummies/followup.xcf Normal file

Binary file not shown.

BIN
dummies/issue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
dummies/issue.xcf Normal file

Binary file not shown.

BIN
dummies/issues.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
dummies/issues.xcf Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 MiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

View file

@ -96,13 +96,10 @@
:closure-warnings :closure-warnings
{:externs-validation :off :non-standard-jsdoc :off} {:externs-validation :off :non-standard-jsdoc :off}
:externs ["react/externs/react.js"]}}}} :externs ["react/externs/react.js"]}}}}
:aot :all :aot :all
:uberjar-name "youyesyet.jar" :uberjar-name "youyesyet.jar"
:source-paths ["env/prod/clj"] :source-paths ["env/prod/clj"]
:resource-paths ["env/prod/resources"]} :resource-paths ["env/prod/resources"]}
:dev [:project/dev :profiles/dev] :dev [:project/dev :profiles/dev]
:test [:project/dev :project/test :profiles/test] :test [:project/dev :project/test :profiles/test]
@ -133,9 +130,6 @@
:source-map true :source-map true
:optimizations :none :optimizations :none
:pretty-print true}}}} :pretty-print true}}}}
:doo {:build "test"} :doo {:build "test"}
:source-paths ["env/dev/clj"] :source-paths ["env/dev/clj"]
:resource-paths ["env/dev/resources"] :resource-paths ["env/dev/resources"]

View file

@ -390,6 +390,10 @@ th {
padding-bottom: 2em; padding-bottom: 2em;
} }
#issue-text {
font-size: 200%;
}
#main-container { #main-container {
width: 100%; width: 100%;
margin: 0; margin: 0;

View file

@ -41,18 +41,18 @@
{:id 4 :name "Andy Anderson" :intention :yes}]}]} {:id 4 :name "Andy Anderson" :intention :yes}]}]}
;;; a list of the addresses in the current location at which there ;;; a list of the addresses in the current location at which there
;;; are electors registered. ;;; are electors registered.
:addresses [{:id 1 :address "13 Imaginary Terrace, IM1 3TE" :latitude 55.8253043 :longitude -4.2570944 :addresses [{:id 1 :address "13 Imaginary Terrace, IM1 3TE" :latitude 55.8253043 :longitude -4.2569057
:dwellings [{:id 1 :dwellings [{:id 1
:electors [{:id 1 :name "Alan Anderson" :gender :male :intention :no} :electors [{:id 1 :name "Alan Anderson" :gender :male :intention :no}
{:id 2 :name "Ann Anderson" :gender :female} {:id 2 :name "Ann Anderson" :gender :female}
{:id 3 :name "Alex Anderson" :gender :fluid :intention :yes} {:id 3 :name "Alex Anderson" :gender :fluid :intention :yes}
{:id 4 :name "Andy Anderson" :intention :yes}]}]} {:id 4 :name "Andy Anderson" :intention :yes}]}]}
{:id 2 :address "15 Imaginary Terrace, IM1 3TE" :latitude 55.8252354 :longitude -4.2572778 {:id 2 :address "15 Imaginary Terrace, IM1 3TE" :latitude 55.8252354 :longitude -4.2569077
:dwellings [{:id 2 :dwellings [{:id 2
:electors [{:id 1 :name "Beryl Brown" :gender :female} :electors [{:id 1 :name "Beryl Brown" :gender :female}
{:id 2 :name "Betty Black" :gender :female}]}]} {:id 2 :name "Betty Black" :gender :female}]}]}
{:id 3 :address "17 Imaginary Terrace, IM1 3TE" :latitude 55.825166 :longitude -4.257026 {:id 3 :address "17 Imaginary Terrace, IM1 3TE" :latitude 55.825166 :longitude -4.256926
:dwellings [{:id 3 :sub-address "Flat 1" :dwellings [{:id 3 :sub-address "Flat 1"
:electors [{:id 1 :name "Catriona Crathie" :gender :female :intention :yes} :electors [{:id 1 :name "Catriona Crathie" :gender :female :intention :yes}
{:id 2 :name "Colin Caruthers" :gender :male :intention :yes} {:id 2 :name "Colin Caruthers" :gender :male :intention :yes}

View file

@ -41,11 +41,11 @@
(let [issue @(subscribe [:issue]) (let [issue @(subscribe [:issue])
issues @(subscribe [:issues]) issues @(subscribe [:issues])
elector @(subscribe [:elector]) elector @(subscribe [:elector])
address @(subscribe [:address])] dwelling @(subscribe [:dwelling])]
(js/console.log (str "Issue is " issue "; elector is " elector)) (js/console.log (str "Issue is " issue "; elector is " elector))
(cond (cond
(nil? address) (nil? dwelling)
(ui/error-panel "No address selected") (ui/error-panel "No dwelling selected")
(nil? issues) (nil? issues)
(ui/error-panel "No issues loaded") (ui/error-panel "No issues loaded")
true true
@ -59,7 +59,7 @@
:on-change #(dispatch [:set-elector (.-value (.-target %))])} :on-change #(dispatch [:set-elector (.-value (.-target %))])}
(map (map
#(let [] #(let []
[:option {:value (:id %) :key (:id %)} (:name %)]) (:electors address))]] [:option {:value (:id %) :key (:id %)} (:name %)]) (:electors dwelling))]]
[:p.widget [:p.widget
[:label {:for "issue"} "Issue"] [:label {:for "issue"} "Issue"]
;; #(reset! val (-> % .-target .-value)) ;; #(reset! val (-> % .-target .-value))