From e77d5d0393cc1ef972a9bb3f3980a7418226047d Mon Sep 17 00:00:00 2001 From: simon Date: Sun, 16 Jul 2017 13:03:24 +0100 Subject: [PATCH] Documentation and disambiguation Separate package name hierarchies for clj and cljs parts of the system, so that it's unambiguous what package (e.g. 'youyesyet.core' is. --- env/dev/cljs/youyesyet/dev.cljs | 4 +-- env/prod/cljs/youyesyet/prod.cljs | 2 +- project.clj | 2 +- resources/sql/queries.sql | 18 +++++++++++++ src/clj/youyesyet/config.clj | 4 ++- src/clj/youyesyet/db/core.clj | 4 ++- src/clj/youyesyet/db/schema.clj | 3 ++- src/clj/youyesyet/handler.clj | 4 ++- src/clj/youyesyet/layout.clj | 6 ++++- src/clj/youyesyet/middleware.clj | 4 ++- src/clj/youyesyet/routes/administrator.clj | 11 ++++++++ src/clj/youyesyet/routes/authenticated.clj | 4 ++- src/clj/youyesyet/routes/home.clj | 3 ++- src/clj/youyesyet/routes/oauth.clj | 3 ++- src/clj/youyesyet/routes/services.clj | 3 ++- src/cljc/youyesyet/outqueue.cljc | 17 +++++++++--- .../youyesyet/{ => canvasser_app}/ajax.cljs | 6 +++-- .../youyesyet/{ => canvasser_app}/core.cljs | 26 ++++++++++--------- .../{ => canvasser_app}/handlers.cljs | 6 +++-- .../{db.cljs => canvasser_app/state.cljs} | 6 +++-- .../{ => canvasser_app}/subscriptions.cljs | 4 ++- .../{ => canvasser_app}/ui_utils.cljs | 4 ++- .../{ => canvasser_app}/views/about.cljs | 8 +++--- .../{ => canvasser_app}/views/building.cljs | 6 +++-- .../{ => canvasser_app}/views/electors.cljs | 8 +++--- .../{ => canvasser_app}/views/followup.cljs | 8 +++--- .../{ => canvasser_app}/views/issue.cljs | 8 +++--- .../{ => canvasser_app}/views/issues.cljs | 8 +++--- .../{ => canvasser_app}/views/map.cljs | 6 +++-- .../{ => canvasser_app}/core_test.cljs | 4 +-- .../youyesyet/canvasser_app/doo_runner.cljs | 6 +++++ test/cljs/youyesyet/doo_runner.cljs | 6 ----- 32 files changed, 148 insertions(+), 64 deletions(-) create mode 100644 src/clj/youyesyet/routes/administrator.clj rename src/cljs/youyesyet/{ => canvasser_app}/ajax.cljs (89%) rename src/cljs/youyesyet/{ => canvasser_app}/core.cljs (84%) rename src/cljs/youyesyet/{ => canvasser_app}/handlers.cljs (96%) rename src/cljs/youyesyet/{db.cljs => canvasser_app/state.cljs} (96%) rename src/cljs/youyesyet/{ => canvasser_app}/subscriptions.cljs (93%) rename src/cljs/youyesyet/{ => canvasser_app}/ui_utils.cljs (95%) rename src/cljs/youyesyet/{ => canvasser_app}/views/about.cljs (91%) rename src/cljs/youyesyet/{ => canvasser_app}/views/building.cljs (87%) rename src/cljs/youyesyet/{ => canvasser_app}/views/electors.cljs (94%) rename src/cljs/youyesyet/{ => canvasser_app}/views/followup.cljs (92%) rename src/cljs/youyesyet/{ => canvasser_app}/views/issue.cljs (88%) rename src/cljs/youyesyet/{ => canvasser_app}/views/issues.cljs (88%) rename src/cljs/youyesyet/{ => canvasser_app}/views/map.cljs (96%) rename test/cljs/youyesyet/{ => canvasser_app}/core_test.cljs (65%) create mode 100644 test/cljs/youyesyet/canvasser_app/doo_runner.cljs delete mode 100644 test/cljs/youyesyet/doo_runner.cljs diff --git a/env/dev/cljs/youyesyet/dev.cljs b/env/dev/cljs/youyesyet/dev.cljs index a246523..6394c48 100644 --- a/env/dev/cljs/youyesyet/dev.cljs +++ b/env/dev/cljs/youyesyet/dev.cljs @@ -1,5 +1,5 @@ -(ns ^:figwheel-no-load youyesyet.app - (:require [youyesyet.core :as core] +(ns ^:figwheel-no-load youyesyet.canvasser-app.app + (:require [youyesyet.canvasser-app.core :as core] [devtools.core :as devtools] [figwheel.client :as figwheel :include-macros true])) diff --git a/env/prod/cljs/youyesyet/prod.cljs b/env/prod/cljs/youyesyet/prod.cljs index ca12fd2..8cc0292 100644 --- a/env/prod/cljs/youyesyet/prod.cljs +++ b/env/prod/cljs/youyesyet/prod.cljs @@ -1,5 +1,5 @@ (ns youyesyet.app - (:require [youyesyet.core :as core])) + (:require [youyesyet.canvasser-app.core :as core])) ;;ignore println statements in prod (set! *print-fn* (fn [& _])) diff --git a/project.clj b/project.clj index 6108563..9a06d8c 100644 --- a/project.clj +++ b/project.clj @@ -121,7 +121,7 @@ {:app {:source-paths ["src/cljs" "src/cljc" "env/dev/cljs"] :compiler - {:main "youyesyet.app" + {:main "youyesyet.canvasser-app.app" :asset-path "/js/out" :output-to "target/cljsbuild/public/js/app.js" :output-dir "target/cljsbuild/public/js/out" diff --git a/resources/sql/queries.sql b/resources/sql/queries.sql index e708a7b..4d866db 100644 --- a/resources/sql/queries.sql +++ b/resources/sql/queries.sql @@ -31,6 +31,7 @@ INSERT INTO addresses (address, postcode, district_id, latitude, longitude) VALUES (:address, :postcode, :district, :latitude, :longitude) +RETURNING id -- :name update-address! :! :n -- :doc update an existing address record @@ -54,6 +55,7 @@ WHERE id = :id INSERT INTO authorities (id) VALUES (:id) +RETURNING id -- :name update-authority! :! :n -- :doc update an existing authority record @@ -81,6 +83,7 @@ WHERE id = :id INSERT INTO canvassers (username, fullname, elector_id, address_id, phone, email, authority_id, authorised) VALUES (:username, :fullname, :elector_id, :address_id, :phone, :email, :authority_id, :authorised) +RETURNING id -- :name update-canvasser! :! :n -- :doc update an existing canvasser record @@ -114,6 +117,7 @@ WHERE id = :id INSERT INTO districts (id, name) VALUES (:id, :name) +RETURNING id -- :name update-district! :! :n -- :doc update an existing district record @@ -137,6 +141,7 @@ WHERE id = :id INSERT INTO electors (name, address_id, phone, email) VALUES (:name, :address_id, :phone, :email) +RETURNING id -- :name update-elector! :! :n -- :doc update an existing elector record @@ -160,6 +165,7 @@ WHERE id = :id INSERT INTO followupactions (request_id, actor, date, notes, closed) VALUES (:request_id, :actor, :date, :notes, :closed) +RETURNING id -- We don't update followup actions. They're permanent record. @@ -179,6 +185,7 @@ WHERE id = :id INSERT INTO followuprequests (elector_id, visit_id, issue_id, method_id) VALUES (:elector_id, :visit_id, :issue_id, :method_id) +RETURNING id -- We don't update followup requests. They're permanent record. @@ -195,6 +202,7 @@ WHERE id = :id INSERT INTO issueexpertise (canvasser_id, issue_id, method_id) VALUES (:canvasser_id, :issue_id, :method_id) +-- issueexertise is a link table, doesn't have an id field. -- :name update-issueexpertise! :! :n -- :doc update an existing issueexpertise record @@ -219,6 +227,8 @@ WHERE id = :id INSERT INTO issues (id, url, content, current) VALUES (:id, :url, :content, :current) +RETURNING id + -- :name update-issue! :! :n -- :doc update an existing issue record @@ -244,6 +254,7 @@ WHERE id = :id INSERT INTO visits (address_id, canvasser_id) VALUES (:address_id, :canvasser_id) +RETURNING id -- visits is audit data; we don't update it. @@ -277,6 +288,13 @@ select * from canvassers_by_team select * from canvassers_by_introducer where introducer = :introducer_id +-- :name get-canvassers-by-search :? :* +-- :doc Get details of all authorised canvassers whose details match this search string. +select * from canvassers + where name like '%' || :search || '%' + or username like '%' || :search || '%' + or email like '%' || :search || '%' + -- :name get-teams_by_organiser :? :* -- :doc Get details of all the teams organised by the canvasser with the specified id select * from teams_by_organiser diff --git a/src/clj/youyesyet/config.clj b/src/clj/youyesyet/config.clj index d3f80e0..2de50fa 100644 --- a/src/clj/youyesyet/config.clj +++ b/src/clj/youyesyet/config.clj @@ -1,4 +1,6 @@ -(ns youyesyet.config +(ns ^{:doc "Read configuration." + :author "Simon Brooke"} + youyesyet.config (:require [cprop.core :refer [load-config]] [cprop.source :as source] [mount.core :refer [args defstate]])) diff --git a/src/clj/youyesyet/db/core.clj b/src/clj/youyesyet/db/core.clj index 696e40b..a57fa50 100644 --- a/src/clj/youyesyet/db/core.clj +++ b/src/clj/youyesyet/db/core.clj @@ -1,4 +1,6 @@ -(ns youyesyet.db.core +(ns ^{:doc "Database access functions." + :author "Simon Brooke"} + youyesyet.db.core (:require [cheshire.core :refer [generate-string parse-string]] [clojure.java.jdbc :as jdbc] diff --git a/src/clj/youyesyet/db/schema.clj b/src/clj/youyesyet/db/schema.clj index 7a6c45b..7571251 100644 --- a/src/clj/youyesyet/db/schema.clj +++ b/src/clj/youyesyet/db/schema.clj @@ -1,4 +1,5 @@ -(ns youyesyet.db.schema +(ns ^{:doc "Korma-flavour database setup, now obsolete but retained for documentation." + :author "Simon Brooke"} youyesyet.db.schema (:require [clojure.java.jdbc :as sql] [korma.core :as kc] [youyesyet.db.core :as yyydb])) diff --git a/src/clj/youyesyet/handler.clj b/src/clj/youyesyet/handler.clj index e25b53c..173497e 100644 --- a/src/clj/youyesyet/handler.clj +++ b/src/clj/youyesyet/handler.clj @@ -1,4 +1,6 @@ -(ns youyesyet.handler +(ns ^{:doc "Handlers for starting and stopping the webapp." + :author "Simon Brooke"} + youyesyet.handler (:require [compojure.core :refer [routes wrap-routes]] [youyesyet.layout :refer [error-page]] [youyesyet.routes.authenticated :refer [authenticated-routes]] diff --git a/src/clj/youyesyet/layout.clj b/src/clj/youyesyet/layout.clj index aaec434..d131cb7 100644 --- a/src/clj/youyesyet/layout.clj +++ b/src/clj/youyesyet/layout.clj @@ -1,4 +1,6 @@ -(ns youyesyet.layout +(ns^{:doc "Render web pages using Selmer tamplating markup." + :author "Simon Brooke"} + youyesyet.layout (:require [selmer.parser :as parser] [selmer.filters :as filters] [markdown.core :refer [md-to-html-string]] @@ -12,6 +14,7 @@ (parser/add-tag! :csrf-field (fn [_ _] (anti-forgery-field))) (filters/add-filter! :markdown (fn [content] [:safe (md-to-html-string content)])) + (defn render "renders the HTML template located relative to resources/templates" [template & [params]] @@ -26,6 +29,7 @@ :version (System/getProperty "youyesyet.version")))) "text/html; charset=utf-8")) + (defn error-page "error-details should be a map containing the following keys: :status - error status diff --git a/src/clj/youyesyet/middleware.clj b/src/clj/youyesyet/middleware.clj index 1775cb9..2288720 100644 --- a/src/clj/youyesyet/middleware.clj +++ b/src/clj/youyesyet/middleware.clj @@ -1,4 +1,6 @@ -(ns youyesyet.middleware +(ns ^{:doc "Plumbing, mainly boilerplate from Luminus." + :author "Simon Brooke"} + youyesyet.middleware (:require [youyesyet.env :refer [defaults]] [clojure.tools.logging :as log] [youyesyet.layout :refer [*app-context* error-page]] diff --git a/src/clj/youyesyet/routes/administrator.clj b/src/clj/youyesyet/routes/administrator.clj new file mode 100644 index 0000000..7a08b36 --- /dev/null +++ b/src/clj/youyesyet/routes/administrator.clj @@ -0,0 +1,11 @@ +(ns ^{:doc "Routes/pages available to administrators, only." + :author "Simon Brooke"} + youyesyet.routes.administrator + (:require [clojure.java.io :as io] + [clojure.walk :refer [keywordize-keys]] + [compojure.core :refer [defroutes GET POST]] + [noir.response :as nresponse] + [noir.util.route :as route] + [ring.util.http-response :as response] + [youyesyet.layout :as layout] + [youyesyet.db.core :as db])) diff --git a/src/clj/youyesyet/routes/authenticated.clj b/src/clj/youyesyet/routes/authenticated.clj index e8b1b7b..b02c512 100644 --- a/src/clj/youyesyet/routes/authenticated.clj +++ b/src/clj/youyesyet/routes/authenticated.clj @@ -1,4 +1,6 @@ -(ns youyesyet.routes.authenticated +(ns ^{:doc "Routes/pages available to all authenticated users." + :author "Simon Brooke"} + youyesyet.routes.authenticated (:require [clojure.java.io :as io] [clojure.walk :refer [keywordize-keys]] [compojure.core :refer [defroutes GET POST]] diff --git a/src/clj/youyesyet/routes/home.clj b/src/clj/youyesyet/routes/home.clj index 9e27942..9fbc094 100644 --- a/src/clj/youyesyet/routes/home.clj +++ b/src/clj/youyesyet/routes/home.clj @@ -1,4 +1,5 @@ -(ns youyesyet.routes.home +(ns ^{:doc "Routes/pages available to unauthenticated users." + :author "Simon Brooke"} youyesyet.routes.home (:require [clojure.walk :refer [keywordize-keys]] [noir.response :as nresponse] [noir.util.route :as route] diff --git a/src/clj/youyesyet/routes/oauth.clj b/src/clj/youyesyet/routes/oauth.clj index d916e10..a7c7e46 100644 --- a/src/clj/youyesyet/routes/oauth.clj +++ b/src/clj/youyesyet/routes/oauth.clj @@ -1,4 +1,5 @@ -(ns youyesyet.routes.oauth +(ns ^{:doc "OAuth authentication routes - not finished, does not work yet." + :author "Simon Brooke"} youyesyet.routes.oauth (:require [compojure.core :refer [defroutes GET]] [ring.util.http-response :refer [ok found]] [clojure.java.io :as io] diff --git a/src/clj/youyesyet/routes/services.clj b/src/clj/youyesyet/routes/services.clj index c0de2b5..43347c7 100644 --- a/src/clj/youyesyet/routes/services.clj +++ b/src/clj/youyesyet/routes/services.clj @@ -1,4 +1,5 @@ -(ns youyesyet.routes.services +(ns ^{:doc "REST API." + :author "Simon Brooke"} youyesyet.routes.services (:require [clj-http.client :as client] [ring.util.http-response :refer :all] [compojure.api.sweet :refer :all] diff --git a/src/cljc/youyesyet/outqueue.cljc b/src/cljc/youyesyet/outqueue.cljc index f2f0df3..8386d4a 100644 --- a/src/cljc/youyesyet/outqueue.cljc +++ b/src/cljc/youyesyet/outqueue.cljc @@ -1,4 +1,6 @@ -(ns youyesyet.outqueue +(ns ^{:doc "Queue of messages waiting to be sent to the server." + :author "Simon Brooke"} + youyesyet.outqueue (:require #?(:clj [clojure.core] :cljs [reagent.core :refer [atom]]))) @@ -41,6 +43,7 @@ (reverse items) (list items))}))) + (defn add! "Add this item to the queue." [q item] @@ -49,7 +52,9 @@ (assoc a :items (cons item (:items a)))))) -(defn q? + +(defn queue? + "True if x is a queue, else false." [x] (try (let [q (deref x) @@ -61,21 +66,25 @@ #?(:clj (print (.getMessage any)) :cljs (js/console.log (str any)))))) + (defn peek "Look at the next item which could be removed from the queue." [q] (last (:items (deref q)))) + (defn locked? [q] (:locked (deref q))) + (defn unlock! ([q ] (unlock! q true)) ([q value] (swap! q (fn [a] (assoc a :locked (not (true? value))))))) + (defn lock! [q] (unlock! q false)) @@ -86,6 +95,7 @@ [q] (count (deref q))) + (defn take! "Return the first item from the queue, rebind the queue to the remaining items. If the queue is empty return nil." @@ -97,12 +107,13 @@ (assoc (assoc a :items new-queue) :v item)))) (:v (deref q))) + (defn maybe-process-next "Apply this process, assumed to be a function of one argument, to the next item in the queue, if the queue is not currently locked; return the value returned by process." [q process] - (if (and (q? q)(not (locked? q))) + (if (and (queue? q)(not (locked? q))) (try (lock! q) (let [v (apply process (list (peek q)))] diff --git a/src/cljs/youyesyet/ajax.cljs b/src/cljs/youyesyet/canvasser_app/ajax.cljs similarity index 89% rename from src/cljs/youyesyet/ajax.cljs rename to src/cljs/youyesyet/canvasser_app/ajax.cljs index ef3a3cb..3db48fc 100644 --- a/src/cljs/youyesyet/ajax.cljs +++ b/src/cljs/youyesyet/canvasser_app/ajax.cljs @@ -1,9 +1,11 @@ -(ns youyesyet.ajax +(ns ^{:doc "Canvasser app transciever for ajax packets." + :author "Simon Brooke"} + youyesyet.canvasser-app.ajax (:require [ajax.core :as ajax])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; -;;;; youyesyet.ajax: transciever for ajax packets. +;;;; youyesyet.canvasser-app.ajax: transciever for ajax packets. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU General Public License diff --git a/src/cljs/youyesyet/core.cljs b/src/cljs/youyesyet/canvasser_app/core.cljs similarity index 84% rename from src/cljs/youyesyet/core.cljs rename to src/cljs/youyesyet/canvasser_app/core.cljs index 27e831c..971261e 100644 --- a/src/cljs/youyesyet/core.cljs +++ b/src/cljs/youyesyet/canvasser_app/core.cljs @@ -1,4 +1,6 @@ -(ns youyesyet.core +(ns ^{:doc "Canvasser app navigation and routing." + :author "Simon Brooke"} + youyesyet.canvasser-app.core (:require cljsjs.react-leaflet [ajax.core :refer [GET POST]] [goog.events :as events] @@ -7,21 +9,21 @@ [reagent.core :as r] [re-frame.core :as rf] [secretary.core :as secretary] - [youyesyet.ajax :refer [load-interceptors!]] - [youyesyet.handlers] - [youyesyet.subscriptions] - [youyesyet.ui-utils :as ui] - [youyesyet.views.about :as about] - [youyesyet.views.electors :as electors] - [youyesyet.views.followup :as followup] - [youyesyet.views.issue :as issue] - [youyesyet.views.issues :as issues] - [youyesyet.views.map :as maps]) + [youyesyet.canvasser-app.ajax :refer [load-interceptors!]] + [youyesyet.canvasser-app.handlers] + [youyesyet.canvasser-app.subscriptions] + [youyesyet.canvasser-app.ui-utils :as ui] + [youyesyet.canvasser-app.views.about :as about] + [youyesyet.canvasser-app.views.electors :as electors] + [youyesyet.canvasser-app.views.followup :as followup] + [youyesyet.canvasser-app.views.issue :as issue] + [youyesyet.canvasser-app.views.issues :as issues] + [youyesyet.canvasser-app.views.map :as maps]) (:import goog.History)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; -;;;; youyesyet.core: core of the app. +;;;; youyesyet.canvasser-app.core: core of the app. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU General Public License diff --git a/src/cljs/youyesyet/handlers.cljs b/src/cljs/youyesyet/canvasser_app/handlers.cljs similarity index 96% rename from src/cljs/youyesyet/handlers.cljs rename to src/cljs/youyesyet/canvasser_app/handlers.cljs index deb11f4..e94d1b2 100644 --- a/src/cljs/youyesyet/handlers.cljs +++ b/src/cljs/youyesyet/canvasser_app/handlers.cljs @@ -1,7 +1,9 @@ -(ns youyesyet.handlers +(ns ^{:doc "Canvasser app event handlers." + :author "Simon Brooke"} + youyesyet.canvasser-app.handlers (:require [cljs.reader :refer [read-string]] [re-frame.core :refer [dispatch reg-event-db]] - [youyesyet.db :as db] + [youyesyet.canvasser-app.state :as db] )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/src/cljs/youyesyet/db.cljs b/src/cljs/youyesyet/canvasser_app/state.cljs similarity index 96% rename from src/cljs/youyesyet/db.cljs rename to src/cljs/youyesyet/canvasser_app/state.cljs index 9659c44..711413e 100644 --- a/src/cljs/youyesyet/db.cljs +++ b/src/cljs/youyesyet/canvasser_app/state.cljs @@ -1,8 +1,10 @@ -(ns youyesyet.db) +(ns ^{:doc "Canvasser app client state." + :author "Simon Brooke"} + youyesyet.canvasser-app.state) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; -;;;; youyesyet.db: the state of the app. +;;;; youyesyet.canvasser-app.state: the state of the app. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU General Public License diff --git a/src/cljs/youyesyet/subscriptions.cljs b/src/cljs/youyesyet/canvasser_app/subscriptions.cljs similarity index 93% rename from src/cljs/youyesyet/subscriptions.cljs rename to src/cljs/youyesyet/canvasser_app/subscriptions.cljs index b1aa09c..c3d18e5 100644 --- a/src/cljs/youyesyet/subscriptions.cljs +++ b/src/cljs/youyesyet/canvasser_app/subscriptions.cljs @@ -1,4 +1,6 @@ -(ns youyesyet.subscriptions +(ns ^{:doc "Canvasser app event subscriptions." + :author "Simon Brooke"} + youyesyet.canvasser-app.subscriptions (:require [re-frame.core :refer [reg-sub]])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/src/cljs/youyesyet/ui_utils.cljs b/src/cljs/youyesyet/canvasser_app/ui_utils.cljs similarity index 95% rename from src/cljs/youyesyet/ui_utils.cljs rename to src/cljs/youyesyet/canvasser_app/ui_utils.cljs index 719090b..068bad6 100644 --- a/src/cljs/youyesyet/ui_utils.cljs +++ b/src/cljs/youyesyet/canvasser_app/ui_utils.cljs @@ -1,4 +1,6 @@ -(ns youyesyet.ui-utils +(ns ^{:doc "Canvasser app user interface widgets." + :author "Simon Brooke"} + youyesyet.canvasser-app.ui-utils (:require [reagent.core :as r] [re-frame.core :as rf])) diff --git a/src/cljs/youyesyet/views/about.cljs b/src/cljs/youyesyet/canvasser_app/views/about.cljs similarity index 91% rename from src/cljs/youyesyet/views/about.cljs rename to src/cljs/youyesyet/canvasser_app/views/about.cljs index 4ca4a4a..6b4d9ca 100644 --- a/src/cljs/youyesyet/views/about.cljs +++ b/src/cljs/youyesyet/canvasser_app/views/about.cljs @@ -1,11 +1,13 @@ -(ns youyesyet.views.about +(ns ^{:doc "Canvasser app about panel." + :author "Simon Brooke"} + youyesyet.canvasser-app.views.about (:require [re-frame.core :refer [reg-sub subscribe]] [markdown.core :refer [md->html]] - [youyesyet.ui-utils :as ui])) + [youyesyet.canvasser-app.ui-utils :as ui])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; -;;;; youyesyet.views.about: about/credits view for youyesyet. +;;;; youyesyet.canvasser-app.views.about: about/credits view for youyesyet. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU General Public License diff --git a/src/cljs/youyesyet/views/building.cljs b/src/cljs/youyesyet/canvasser_app/views/building.cljs similarity index 87% rename from src/cljs/youyesyet/views/building.cljs rename to src/cljs/youyesyet/canvasser_app/views/building.cljs index 01d3dd6..40e5d0e 100644 --- a/src/cljs/youyesyet/views/building.cljs +++ b/src/cljs/youyesyet/canvasser_app/views/building.cljs @@ -1,9 +1,11 @@ -(ns youyesyet.views.building +(ns ^{:doc "Canvasser app households in building panel." + :author "Simon Brooke"} + youyesyet.canvasser-app.views.building (:require [re-frame.core :refer [reg-sub]])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; -;;;; youyesyet.views.building: building view for youyesyet. +;;;; youyesyet.canvasser-app.views.building: building view for youyesyet. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU General Public License diff --git a/src/cljs/youyesyet/views/electors.cljs b/src/cljs/youyesyet/canvasser_app/views/electors.cljs similarity index 94% rename from src/cljs/youyesyet/views/electors.cljs rename to src/cljs/youyesyet/canvasser_app/views/electors.cljs index 05f7af4..aee2d4d 100644 --- a/src/cljs/youyesyet/views/electors.cljs +++ b/src/cljs/youyesyet/canvasser_app/views/electors.cljs @@ -1,11 +1,13 @@ -(ns youyesyet.views.electors +(ns ^{:doc "Canvasser app electors in household panel." + :author "Simon Brooke"} + youyesyet.canvasser-app.views.electors (:require [reagent.core :refer [atom]] [re-frame.core :refer [reg-sub subscribe dispatch]] - [youyesyet.ui-utils :as ui])) + [youyesyet.canvasser-app.ui-utils :as ui])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; -;;;; youyesyet.views.electors: electors view for youyesyet. +;;;; youyesyet.canvasser-app.views.electors: electors view for youyesyet. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU General Public License diff --git a/src/cljs/youyesyet/views/followup.cljs b/src/cljs/youyesyet/canvasser_app/views/followup.cljs similarity index 92% rename from src/cljs/youyesyet/views/followup.cljs rename to src/cljs/youyesyet/canvasser_app/views/followup.cljs index 78c0c04..b81ff58 100644 --- a/src/cljs/youyesyet/views/followup.cljs +++ b/src/cljs/youyesyet/canvasser_app/views/followup.cljs @@ -1,10 +1,12 @@ -(ns youyesyet.views.followup +(ns ^{:doc "Canvasser followup request form panel." + :author "Simon Brooke"} + youyesyet.canvasser-app.views.followup (:require [re-frame.core :refer [reg-sub subscribe dispatch]] - [youyesyet.ui-utils :as ui])) + [youyesyet.canvasser-app.ui-utils :as ui])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; -;;;; youyesyet.views.followup-request: followup-request view for youyesyet. +;;;; youyesyet.canvasser-app.views.followup-request: followup-request view for youyesyet. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU General Public License diff --git a/src/cljs/youyesyet/views/issue.cljs b/src/cljs/youyesyet/canvasser_app/views/issue.cljs similarity index 88% rename from src/cljs/youyesyet/views/issue.cljs rename to src/cljs/youyesyet/canvasser_app/views/issue.cljs index 20620d6..34afe10 100644 --- a/src/cljs/youyesyet/views/issue.cljs +++ b/src/cljs/youyesyet/canvasser_app/views/issue.cljs @@ -1,8 +1,10 @@ -(ns youyesyet.views.issue +(ns ^{:doc "Canvasser app current issue detail panel." + :author "Simon Brooke"} + youyesyet.canvasser-app.views.issue (:require [re-frame.core :refer [reg-sub subscribe]] [markdown.core :refer [md->html]] - [youyesyet.ui-utils :as ui] - [youyesyet.views.issues :as issues])) + [youyesyet.canvasser-app.ui-utils :as ui] + [youyesyet.canvasser-app.views.issues :as issues])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; diff --git a/src/cljs/youyesyet/views/issues.cljs b/src/cljs/youyesyet/canvasser_app/views/issues.cljs similarity index 88% rename from src/cljs/youyesyet/views/issues.cljs rename to src/cljs/youyesyet/canvasser_app/views/issues.cljs index ea8f383..8aa1744 100644 --- a/src/cljs/youyesyet/views/issues.cljs +++ b/src/cljs/youyesyet/canvasser_app/views/issues.cljs @@ -1,10 +1,12 @@ -(ns youyesyet.views.issues +(ns ^{:doc "Canvasser app current issues list panel." + :author "Simon Brooke"} + youyesyet.canvasser-app.views.issues (:require [re-frame.core :refer [reg-sub subscribe]] - [youyesyet.ui-utils :as ui])) + [youyesyet.canvasser-app.ui-utils :as ui])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; -;;;; youyesyet.views.issues: issues view for youyesyet. +;;;; youyesyet.canvasser-app.views.issues: issues view for youyesyet. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU General Public License diff --git a/src/cljs/youyesyet/views/map.cljs b/src/cljs/youyesyet/canvasser_app/views/map.cljs similarity index 96% rename from src/cljs/youyesyet/views/map.cljs rename to src/cljs/youyesyet/canvasser_app/views/map.cljs index c725531..6df73dd 100644 --- a/src/cljs/youyesyet/views/map.cljs +++ b/src/cljs/youyesyet/canvasser_app/views/map.cljs @@ -1,10 +1,12 @@ -(ns youyesyet.views.map +(ns ^{:doc "Canvasser app map view panel." + :author "Simon Brooke"} + youyesyet.canvasser-app.views.map (:require [re-frame.core :refer [reg-sub subscribe dispatch]] [reagent.core :as reagent])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; -;;;; youyesyet.views.map: map view for youyesyet. +;;;; youyesyet.canvasser-app.views.map: map view for youyesyet. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU General Public License diff --git a/test/cljs/youyesyet/core_test.cljs b/test/cljs/youyesyet/canvasser_app/core_test.cljs similarity index 65% rename from test/cljs/youyesyet/core_test.cljs rename to test/cljs/youyesyet/canvasser_app/core_test.cljs index 7de65c8..d0f5e40 100644 --- a/test/cljs/youyesyet/core_test.cljs +++ b/test/cljs/youyesyet/canvasser_app/core_test.cljs @@ -1,7 +1,7 @@ -(ns youyesyet.core-test +(ns youyesyet.canvasser-app.core-test (:require [cljs.test :refer-macros [is are deftest testing use-fixtures]] [reagent.core :as reagent :refer [atom]] - [youyesyet.core :as rc])) + [youyesyet.canvasser-app.core :as rc])) (deftest test-home (is (= true true))) diff --git a/test/cljs/youyesyet/canvasser_app/doo_runner.cljs b/test/cljs/youyesyet/canvasser_app/doo_runner.cljs new file mode 100644 index 0000000..f6c89dd --- /dev/null +++ b/test/cljs/youyesyet/canvasser_app/doo_runner.cljs @@ -0,0 +1,6 @@ +(ns youyesyet.canvasser-app.doo-runner + (:require [doo.runner :refer-macros [doo-tests]] + [youyesyet.canvasser-app.core-test])) + +(doo-tests 'youyesyet.canvasser-app.canvasser-app.core-test) + diff --git a/test/cljs/youyesyet/doo_runner.cljs b/test/cljs/youyesyet/doo_runner.cljs deleted file mode 100644 index 486a282..0000000 --- a/test/cljs/youyesyet/doo_runner.cljs +++ /dev/null @@ -1,6 +0,0 @@ -(ns youyesyet.doo-runner - (:require [doo.runner :refer-macros [doo-tests]] - [youyesyet.core-test])) - -(doo-tests 'youyesyet.core-test) -