diff --git a/project.clj b/project.clj index c134c35..408db4a 100644 --- a/project.clj +++ b/project.clj @@ -5,35 +5,36 @@ :dependencies [[org.clojure/clojure "1.8.0"] [org.clojure/clojurescript "1.9.229" :scope "provided"] - [ring/ring-servlet "1.5.0"] + [ring/ring-servlet "1.5.1"] [clj-oauth "1.5.5"] - [ch.qos.logback/logback-classic "1.1.8"] - [re-frame "0.9.1"] + [ch.qos.logback/logback-classic "1.2.2"] + [re-frame "0.9.2"] [cljs-ajax "0.5.8"] [secretary "1.2.3"] - [reagent-utils "0.2.0"] - [reagent "0.6.0"] + [reagent-utils "0.2.1"] + [reagent "0.6.1"] [korma "0.4.3"] - [selmer "1.10.3"] - [markdown-clj "0.9.91"] - [ring-middleware-format "0.7.0"] - [metosin/ring-http-response "0.8.0"] - [bouncer "1.0.0"] - [org.webjars/bootstrap "4.0.0-alpha.5"] + [selmer "1.10.6"] + [markdown-clj "0.9.98"] + [ring-middleware-format "0.7.2"] + [metosin/ring-http-response "0.8.2"] + [bouncer "1.0.1"] + [org.webjars/bootstrap "4.0.0-alpha.6-1"] [org.webjars/font-awesome "4.7.0"] - [org.webjars.bower/tether "1.3.7"] + [org.webjars.bower/tether "1.4.0"] [org.clojure/tools.logging "0.3.1"] - [compojure "1.5.1"] + [compojure "1.5.2"] + [metosin/compojure-api "1.1.10"] [ring-webjars "0.1.1"] - [ring/ring-defaults "0.2.1"] + [ring/ring-defaults "0.2.3"] [luminus/ring-ttl-session "0.3.1"] [mount "0.1.11"] - [cprop "0.1.9"] + [cprop "0.1.10"] [org.clojure/tools.cli "0.3.5"] - [migratus "0.8.32"] + [migratus "0.8.33"] [luminus-nrepl "0.1.4"] - [luminus-migrations "0.2.9"] - [conman "0.6.2"] + [luminus-migrations "0.3.0"] + [conman "0.6.3"] [org.postgresql/postgresql "9.4.1212"] ] @@ -111,16 +112,16 @@ :project/dev {:dependencies [[prone "1.1.4"] [ring/ring-mock "0.3.0"] - [ring/ring-devel "1.5.0"] + [ring/ring-devel "1.5.1"] [luminus-jetty "0.1.4"] [pjstadig/humane-test-output "0.8.1"] [org.clojure/core.cache "0.6.5"] - [org.apache.httpcomponents/httpcore "4.4.5"] + [org.apache.httpcomponents/httpcore "4.4.6"] [clj-webdriver/clj-webdriver "0.7.2"] - [org.seleniumhq.selenium/selenium-server "3.0.1"] + [org.seleniumhq.selenium/selenium-server "3.3.1"] [doo "0.1.7"] - [binaryage/devtools "0.8.3"] - [figwheel-sidecar "0.5.8"] + [binaryage/devtools "0.9.2"] + [figwheel-sidecar "0.5.9"] [com.cemerick/piggieback "0.2.2-SNAPSHOT"] [directory-naming/naming-java "0.8"]] :plugins [[com.jakemccrary/lein-test-refresh "0.14.0"] diff --git a/src/clj/youyesyet/db/schema.clj b/src/clj/youyesyet/db/schema.clj index c999486..7a6c45b 100644 --- a/src/clj/youyesyet/db/schema.clj +++ b/src/clj/youyesyet/db/schema.clj @@ -34,6 +34,26 @@ ;;; redundant, and if they are the namespace probably needs to be renamed to 'entities'. ;;; See also resources/migrations/20161014170335-basic-setup.up.sql +(defn create-districts-table! + "Create a table to hold the electoral districts in which electors are registered. + Note that, as this app is being developed for the independence referendum in which + polling is across the whole of Scotland, this part of the design isn't fully thought + through; if later adapted to general or local elections, some breakdown or hierarchy + of polling districts into constituencies will be required." + [] + (sql/db-do-commands + yyydb/*db* + (sql/create-table-ddl + :districts + ;; it may be necessary to have a serial abstract primary key but I suspect + ;; polling districts already have numbers assigned by the Electoral Commission and + ;; it would be sensible to use those. TODO: check. + [:id "integer not null primary key"] + [:name "varchar(64) not null"] + ;; TODO: it would make sense to hold polygon data for polling districts so we can reflect + ;; them on the map, but I haven't thought through how to do that yet. + ))) + (kc/defentity district (kc/pk :id) diff --git a/src/clj/youyesyet/routes/services.clj b/src/clj/youyesyet/routes/services.clj index e44bb79..c0de2b5 100644 --- a/src/clj/youyesyet/routes/services.clj +++ b/src/clj/youyesyet/routes/services.clj @@ -44,4 +44,4 @@ :return Long :header-params [x :- Long, y :- Long] :summary "x^y with header-parameters" - (ok (long (Math/pow x y)))))) + (ok (long (Math/pow x y)))))))