diff --git a/project.clj b/project.clj index 6ae71ee..f253f46 100644 --- a/project.clj +++ b/project.clj @@ -33,7 +33,7 @@ [org.webjars/bootstrap "4.0.0-alpha.6-1"] [org.webjars/font-awesome "4.7.0"] [org.webjars.bower/tether "1.4.0"] - [re-frame "0.9.2"] + [re-frame "0.10.5"] [reagent "0.6.1"] [reagent-utils "0.2.1"] [ring-middleware-format "0.7.2"] @@ -136,10 +136,10 @@ [com.cemerick/piggieback "0.2.2-SNAPSHOT"] [directory-naming/naming-java "0.8"] [doo "0.1.7"] - [figwheel-sidecar "0.5.9"]] + [figwheel-sidecar "0.5.15"]] :plugins [[com.jakemccrary/lein-test-refresh "0.18.1"] [lein-doo "0.1.7"] - [lein-figwheel "0.5.9"] + [lein-figwheel "0.5.15"] [org.clojure/clojurescript "1.9.495"]] :cljsbuild {:builds diff --git a/resources/sql/queries.auto.sql b/resources/sql/queries.auto.sql index 4797930..2009302 100644 --- a/resources/sql/queries.auto.sql +++ b/resources/sql/queries.auto.sql @@ -1,7 +1,7 @@ ------------------------------------------------------------------------ -- File queries.sql -- --- autogenerated by adl.to-hugsql-queries at 2018-07-07T08:09:48.253Z +-- autogenerated by adl.to-hugsql-queries at 2018-07-09T20:55:32.719Z -- -- See [Application Description -- Language](https://github.com/simon-brooke/adl). @@ -504,6 +504,19 @@ ORDER BY lv_canvassers.username, lv_canvassers.email, lv_canvassers.id +-- :name list-canvassers-by-issue :? :* +-- :doc links all existing canvasser records related to a given issue +SELECT * +FROM canvassers, ln_expertise_canvassers_issues +WHERE canvassers.id = ln_expertise_canvassers_issues.canvasser_id + AND ln_expertise_canvassers_issues.issue_id = :id +ORDER BY canvassers.username, + canvassers.fullname, + canvassers.address_id, + canvassers.phone, + canvassers.email, + canvassers.id + -- :name list-canvassers-by-role :? :* -- :doc links all existing canvasser records related to a given role SELECT * @@ -728,6 +741,13 @@ SELECT DISTINCT * FROM lv_issues --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") +-- :name list-issues-by-canvasser :? :* +-- :doc links all existing issue records related to a given canvasser +SELECT * +FROM issues, ln_experts_issues_canvassers +WHERE issues.id = ln_experts_issues_canvassers.issue_id + AND ln_experts_issues_canvassers.canvasser_id = :id + -- :name list-options :? :* -- :doc lists all existing option records SELECT DISTINCT * FROM lv_options diff --git a/resources/sql/queries.sql b/resources/sql/queries.sql index 9735513..a50d78f 100644 --- a/resources/sql/queries.sql +++ b/resources/sql/queries.sql @@ -36,4 +36,27 @@ FROM addresses WHERE locality = :locality +-- :name list-open-requests :? :* +-- :doc lists all existing followuprequest records which have not been closed and which the :expert has expertise to answer. +SELECT DISTINCT request.*, + electors.name ||', '|| electors.gender AS elector_id_expanded, + addresses.address ||', '|| addresses.postcode ||', '|| visits.date AS visit_id_expanded, + request.issue_id as issue_id_expanded, + request.method_id AS method_id_expanded, + visits.date +FROM followuprequests as request, + ln_experts_issues_canvassers as expertise, + canvassers as experts, + electors, + addresses, + visits +where not exists (select * from followupactions as action + where action.request_id = request.id + and action.closed = true) +and request.elector_id = electors.id +and request.visit_id = visits.id +and visits.address_id = addresses.id +and request.issue_id = expertise.issue_id +and expertise.canvasser_id = :expert +ORDER BY visits.date desc diff --git a/resources/sql/youyesyet.postgres.sql b/resources/sql/youyesyet.postgres.sql index 3143ff6..f092acb 100644 --- a/resources/sql/youyesyet.postgres.sql +++ b/resources/sql/youyesyet.postgres.sql @@ -5,7 +5,7 @@ -- -- auto-generated by [Application Description Language framework] -- --- (https://github.com/simon-brooke/adl) at 20180707T080949.294Z +-- (https://github.com/simon-brooke/adl) at 20180709T205533.789Z -- -- A web-app intended to be used by canvassers -- campaigning for a 'Yes' vote in the second independence @@ -915,6 +915,38 @@ ALTER TABLE visits ADD CONSTRAINT ri_visits_canvassers_canvasser_id REFERENCES canvassers(id) ON DELETE NO ACTION ; +------------------------------------------------------------------------ +-- link table joining canvassers with issues +------------------------------------------------------------------------ +CREATE TABLE ln_expertise_canvassers_issues +( + canvasser_id INTEGER, + issue_id VARCHAR(32) +); +GRANT SELECT ON ln_expertise_canvassers_issues TO admin, + analysts, + canvassers, + issueeditors, + issueexperts, + teamorganisers ; +GRANT INSERT ON ln_expertise_canvassers_issues TO admin, + canvassers, + teamorganisers ; +GRANT UPDATE ON ln_expertise_canvassers_issues TO admin, + canvassers, + teamorganisers ; +GRANT DELETE ON ln_expertise_canvassers_issues TO admin ; + +ALTER TABLE ln_expertise_canvassers_issues ADD CONSTRAINT ri_ln_expertise_canvassers_issues_canvassers_canvasser_id + FOREIGN KEY( canvasser_id ) + REFERENCES canvassers(id) + ON DELETE NO ACTION ; + +ALTER TABLE ln_expertise_canvassers_issues ADD CONSTRAINT ri_ln_expertise_canvassers_issues_issues_issue_id + FOREIGN KEY( issue_id ) + REFERENCES issues(id) + ON DELETE NO ACTION ; + ------------------------------------------------------------------------ -- link table joining canvassers with roles ------------------------------------------------------------------------ @@ -977,6 +1009,36 @@ ALTER TABLE ln_teams_events_teams ADD CONSTRAINT ri_ln_teams_events_teams_teams_ REFERENCES teams(id) ON DELETE NO ACTION ; +------------------------------------------------------------------------ +-- link table joining issues with canvassers +------------------------------------------------------------------------ +CREATE TABLE ln_experts_issues_canvassers +( + issue_id VARCHAR(32), + canvasser_id INTEGER +); +GRANT SELECT ON ln_experts_issues_canvassers TO admin, + analysts, + canvassers, + issueeditors, + issueexperts, + teamorganisers ; +GRANT INSERT ON ln_experts_issues_canvassers TO admin, + issueeditors ; +GRANT UPDATE ON ln_experts_issues_canvassers TO admin, + issueeditors ; +GRANT DELETE ON ln_experts_issues_canvassers TO admin ; + +ALTER TABLE ln_experts_issues_canvassers ADD CONSTRAINT ri_ln_experts_issues_canvassers_canvassers_canvasser_id + FOREIGN KEY( canvasser_id ) + REFERENCES canvassers(id) + ON DELETE NO ACTION ; + +ALTER TABLE ln_experts_issues_canvassers ADD CONSTRAINT ri_ln_experts_issues_canvassers_issues_issue_id + FOREIGN KEY( issue_id ) + REFERENCES issues(id) + ON DELETE NO ACTION ; + ------------------------------------------------------------------------ -- link table joining roles with canvassers ------------------------------------------------------------------------ diff --git a/resources/templates/auto/application-index.html b/resources/templates/auto/application-index.html index 2c5e2ca..4f7b672 100644 --- a/resources/templates/auto/application-index.html +++ b/resources/templates/auto/application-index.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - @@ -7,7 +7,7 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->