Minor UI fixes

This commit is contained in:
simon 2017-07-21 16:39:59 +01:00
parent 3a18cacf0f
commit 89745e3a83
3 changed files with 56 additions and 30 deletions

View file

@ -61,28 +61,52 @@
(fn [db [_ args]] (fn [db [_ args]]
(let [intention (:intention args) (let [intention (:intention args)
elector-id (:elector-id args) elector-id (:elector-id args)
elector old-elector (first
(first
(remove nil? (remove nil?
(map (map
#(if (= elector-id (:id %)) %) #(if (= elector-id (:id %)) %)
(:electors (:address db))))) (:electors (:dwelling db)))))
new-elector (assoc old-elector :intention intention)
old-dwelling (:dwelling db)
new-dwelling (assoc
old-dwelling
:electors
(cons
new-elector
(remove
#(= % old-elector)
(:electors old-dwelling))))
old-address (:address db) old-address (:address db)
new-address (assoc old-address :electors (cons (assoc elector :intention intention) (remove #(= % elector) (:electors old-address))))] new-address (assoc
old-address
:dwellings
(cons
new-dwelling
(remove
#(= % old-dwelling)
(:dwellings old-address))))]
(cond (cond
(nil? elector) (nil? old-elector)
(assoc db :error "No elector found; not setting intention") (assoc db :error "No elector found; not setting intention")
(= intention (:intention elector)) (do (js/console.log "Elector's intention hasn't changed; not setting intention") db) (= intention (:intention old-elector))
(do
(js/console.log "Elector's intention hasn't changed; not setting intention")
db)
true true
(do (do
(js/console.log (str "Setting intention of elector " elector " to " intention)) (js/console.log (str "Setting intention of elector " old-elector " to " intention))
(merge (merge
(clear-messages db) (clear-messages db)
{:addresses {:addresses
(cons new-address (remove old-address (:addresses db))) (cons
new-address
(remove #(= % old-address) (:addresses db)))
:address new-address :address new-address
:elector elector :dwelling new-dwelling
:outqueue (cons (assoc args :action :set-intention) (:outqueue db))})))))) :elector new-elector
:outqueue (cons
(assoc args :action :set-intention)
(:outqueue db))}))))))
(reg-event-db (reg-event-db

View file

@ -49,4 +49,6 @@
(ui/big-link (ui/big-link
(:sub-address dwelling) (:sub-address dwelling)
(str "#/electors/" (:id dwelling))) ) (str "#/electors/" (:id dwelling))) )
(:dwellings address))]]])) (sort
#(< (:sub-address %1) (:sub-address %2))
(:dwellings address)))]]]))

View file

@ -62,8 +62,8 @@
(remove (remove
nil? nil?
(map (map
#(:intention %) :intention
(map :electors (mapcat :electors
(:dwellings address)))))] (:dwellings address)))))]
(case (count intentions) (case (count intentions)
0 "unknown-pin" 0 "unknown-pin"