From 98695e41dc95c7c6725f9f15efeaed4388f93b30 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Mon, 11 Jun 2018 10:10:23 +0100 Subject: [PATCH] #46, #50: Further improvements on list generation --- resources/sql/queries.auto.sql | 134 ++++++++++-------- resources/templates/base-authenticated.html | 9 +- src/clj/youyesyet/routes/auto_json_routes.clj | 38 ++--- src/clj/youyesyet/routes/home.clj | 2 +- youyesyet.adl.xml | 38 ++++- youyesyet.canonical.adl.xml | 39 ++++- 6 files changed, 165 insertions(+), 95 deletions(-) diff --git a/resources/sql/queries.auto.sql b/resources/sql/queries.auto.sql index b199ca0..0dd7351 100644 --- a/resources/sql/queries.auto.sql +++ b/resources/sql/queries.auto.sql @@ -1,6 +1,6 @@ -- File queries.sql -- autogenerated by adl.to-hugsql-queries at --- 2018-06-05T12:33:53.043Z +-- 2018-06-11T00:58:48.917Z -- See [Application Description Language](https://github.com/simon-brooke/adl). @@ -36,8 +36,7 @@ INSERT INTO canvassers (username, phone, email, authority_id, - authorised, - roles) + authorised) VALUES (:username, :fullname, :elector_id, @@ -45,8 +44,7 @@ VALUES (:username, :phone, :email, :authority_id, - :authorised, - :roles) + :authorised) returning id -- :name create-district! :! :n @@ -440,7 +438,7 @@ ORDER BY addresses.address, -- :name list-addresses-by-district :? :* -- :doc lists all existing address records related to a given district -SELECT * +SELECT * FROM addresses WHERE addresses.district_id = :id ORDER BY addresses.address, @@ -465,7 +463,7 @@ ORDER BY canvassers.username, -- :name list-canvassers-by-address :? :* -- :doc lists all existing canvasser records related to a given address -SELECT * +SELECT * FROM canvassers WHERE canvassers.address_id = :id ORDER BY canvassers.username, @@ -475,7 +473,7 @@ ORDER BY canvassers.username, -- :name list-canvassers-by-authority :? :* -- :doc lists all existing canvasser records related to a given authority -SELECT * +SELECT * FROM canvassers WHERE canvassers.authority_id = :id ORDER BY canvassers.username, @@ -485,7 +483,7 @@ ORDER BY canvassers.username, -- :name list-canvassers-by-elector :? :* -- :doc lists all existing canvasser records related to a given elector -SELECT * +SELECT * FROM canvassers WHERE canvassers.elector_id = :id ORDER BY canvassers.username, @@ -494,10 +492,11 @@ ORDER BY canvassers.username, canvassers.id -- :name list-canvassers-by-role :? :* --- :doc lists all existing canvasser records related to a given role -SELECT * +-- :doc links all existing canvasser records related to a given role +SELECT * FROM canvassers -WHERE canvassers.roles = :id +WHERE canvassers.roles = link_canvassers_roles.canvasser_id + AND link_canvassers_roles.role_id = :id ORDER BY canvassers.username, canvassers.fullname, canvassers.email, @@ -519,7 +518,7 @@ SELECT * FROM dwellings -- :name list-dwellings-by-address :? :* -- :doc lists all existing dwelling records related to a given address -SELECT * +SELECT * FROM dwellings WHERE dwellings.address_id = :id @@ -535,7 +534,7 @@ ORDER BY electors.name, -- :name list-electors-by-dwelling :? :* -- :doc lists all existing elector records related to a given dwelling -SELECT * +SELECT * FROM electors WHERE electors.dwelling_id = :id ORDER BY electors.name, @@ -545,7 +544,7 @@ ORDER BY electors.name, -- :name list-electors-by-gender :? :* -- :doc lists all existing elector records related to a given gender -SELECT * +SELECT * FROM electors WHERE electors.gender = :id ORDER BY electors.name, @@ -561,13 +560,13 @@ SELECT * FROM followupactions -- :name list-followupactions-by-canvasser :? :* -- :doc lists all existing followupaction records related to a given canvasser -SELECT * +SELECT * FROM followupactions WHERE followupactions.actor = :id -- :name list-followupactions-by-followuprequest :? :* -- :doc lists all existing followupaction records related to a given followuprequest -SELECT * +SELECT * FROM followupactions WHERE followupactions.request_id = :id @@ -585,25 +584,25 @@ SELECT * FROM followuprequests -- :name list-followuprequests-by-elector :? :* -- :doc lists all existing followuprequest records related to a given elector -SELECT * +SELECT * FROM followuprequests WHERE followuprequests.elector_id = :id -- :name list-followuprequests-by-followupmethod :? :* -- :doc lists all existing followuprequest records related to a given followupmethod -SELECT * +SELECT * FROM followuprequests WHERE followuprequests.method_id = :id -- :name list-followuprequests-by-issue :? :* -- :doc lists all existing followuprequest records related to a given issue -SELECT * +SELECT * FROM followuprequests WHERE followuprequests.issue_id = :id -- :name list-followuprequests-by-visit :? :* -- :doc lists all existing followuprequest records related to a given visit -SELECT * +SELECT * FROM followuprequests WHERE followuprequests.visit_id = :id @@ -621,19 +620,19 @@ SELECT * FROM intentions -- :name list-intentions-by-elector :? :* -- :doc lists all existing intention records related to a given elector -SELECT * +SELECT * FROM intentions WHERE intentions.elector_id = :id -- :name list-intentions-by-option :? :* -- :doc lists all existing intention records related to a given option -SELECT * +SELECT * FROM intentions WHERE intentions.option_id = :id -- :name list-intentions-by-visit :? :* -- :doc lists all existing intention records related to a given visit -SELECT * +SELECT * FROM intentions WHERE intentions.visit_id = :id @@ -645,19 +644,19 @@ SELECT * FROM issueexpertise -- :name list-issueexpertise-by-canvasser :? :* -- :doc lists all existing issueexpertise records related to a given canvasser -SELECT * +SELECT * FROM issueexpertise WHERE issueexpertise.canvasser_id = :id -- :name list-issueexpertise-by-followupmethod :? :* -- :doc lists all existing issueexpertise records related to a given followupmethod -SELECT * +SELECT * FROM issueexpertise WHERE issueexpertise.method_id = :id -- :name list-issueexpertise-by-issue :? :* -- :doc lists all existing issueexpertise records related to a given issue -SELECT * +SELECT * FROM issueexpertise WHERE issueexpertise.issue_id = :id @@ -681,13 +680,13 @@ SELECT * FROM rolememberships -- :name list-rolememberships-by-canvasser :? :* -- :doc lists all existing rolemembership records related to a given canvasser -SELECT * +SELECT * FROM rolememberships WHERE rolememberships.canvasser_id = :id -- :name list-rolememberships-by-role :? :* -- :doc lists all existing rolemembership records related to a given role -SELECT * +SELECT * FROM rolememberships WHERE rolememberships.role_id = :id @@ -699,6 +698,15 @@ ORDER BY roles.name, --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") +-- :name list-roles-by-canvasser :? :* +-- :doc links all existing role records related to a given canvasser +SELECT * +FROM roles +WHERE roles.members = link_roles_canvassers.role_id + AND link_roles_canvassers.canvasser_id = :id +ORDER BY roles.name, + roles.id + -- :name list-teammemberships :? :* -- :doc lists all existing teammembership records SELECT * FROM teammemberships @@ -707,13 +715,13 @@ SELECT * FROM teammemberships -- :name list-teammemberships-by-canvasser :? :* -- :doc lists all existing teammembership records related to a given canvasser -SELECT * +SELECT * FROM teammemberships WHERE teammemberships.canvasser_id = :id -- :name list-teammemberships-by-team :? :* -- :doc lists all existing teammembership records related to a given team -SELECT * +SELECT * FROM teammemberships WHERE teammemberships.team_id = :id @@ -725,13 +733,13 @@ SELECT * FROM teamorganiserships -- :name list-teamorganiserships-by-canvasser :? :* -- :doc lists all existing teamorganisership records related to a given canvasser -SELECT * +SELECT * FROM teamorganiserships WHERE teamorganiserships.canvasser_id = :id -- :name list-teamorganiserships-by-team :? :* -- :doc lists all existing teamorganisership records related to a given team -SELECT * +SELECT * FROM teamorganiserships WHERE teamorganiserships.team_id = :id @@ -743,9 +751,18 @@ ORDER BY teams.name, --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") +-- :name list-teams-by-canvasser :? :* +-- :doc links all existing team records related to a given canvasser +SELECT * +FROM teams +WHERE teams.members = link_teams_canvassers.team_id + AND link_teams_canvassers.canvasser_id = :id +ORDER BY teams.name, + teams.id + -- :name list-teams-by-district :? :* -- :doc lists all existing team records related to a given district -SELECT * +SELECT * FROM teams WHERE teams.district_id = :id ORDER BY teams.name, @@ -759,20 +776,20 @@ SELECT * FROM visits -- :name list-visits-by-address :? :* -- :doc lists all existing visit records related to a given address -SELECT * +SELECT * FROM visits WHERE visits.address_id = :id -- :name list-visits-by-canvasser :? :* -- :doc lists all existing visit records related to a given canvasser -SELECT * +SELECT * FROM visits WHERE visits.canvasser_id = :id -- :name search-strings-address :? :1 -- :doc selects existing address records having any string field matching `:pattern` by substring match SELECT * FROM addresses -WHERE +WHERE address LIKE '%:pattern%' OR phone LIKE '%:pattern%' ORDER BY addresses.address, @@ -784,7 +801,7 @@ ORDER BY addresses.address, -- :name search-strings-authority :? :1 -- :doc selects existing authority records having any string field matching `:pattern` by substring match SELECT * FROM authorities -WHERE +WHERE id LIKE '%:pattern%' --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") @@ -792,7 +809,7 @@ id LIKE '%:pattern%' -- :name search-strings-canvasser :? :1 -- :doc selects existing canvasser records having any string field matching `:pattern` by substring match SELECT * FROM canvassers -WHERE +WHERE username LIKE '%:pattern%' OR fullname LIKE '%:pattern%' OR phone LIKE '%:pattern%' @@ -807,7 +824,7 @@ ORDER BY canvassers.username, -- :name search-strings-district :? :1 -- :doc selects existing district records having any string field matching `:pattern` by substring match SELECT * FROM districts -WHERE +WHERE name LIKE '%:pattern%' ORDER BY districts.name, districts.id @@ -817,7 +834,7 @@ ORDER BY districts.name, -- :name search-strings-dwelling :? :1 -- :doc selects existing dwelling records having any string field matching `:pattern` by substring match SELECT * FROM dwellings -WHERE +WHERE sub-address LIKE '%:pattern%' --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") @@ -825,7 +842,7 @@ sub-address LIKE '%:pattern%' -- :name search-strings-elector :? :1 -- :doc selects existing elector records having any string field matching `:pattern` by substring match SELECT * FROM electors -WHERE +WHERE name LIKE '%:pattern%' OR phone LIKE '%:pattern%' OR email LIKE '%:pattern%' @@ -839,7 +856,7 @@ ORDER BY electors.name, -- :name search-strings-followupaction :? :1 -- :doc selects existing followupaction records having any string field matching `:pattern` by substring match SELECT * FROM followupactions -WHERE +WHERE notes LIKE '%:pattern%' --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") @@ -847,7 +864,7 @@ notes LIKE '%:pattern%' -- :name search-strings-followupmethod :? :1 -- :doc selects existing followupmethod records having any string field matching `:pattern` by substring match SELECT * FROM followupmethods -WHERE +WHERE id LIKE '%:pattern%' --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") @@ -855,14 +872,14 @@ id LIKE '%:pattern%' -- :name search-strings-followuprequest :? :1 -- :doc selects existing followuprequest records having any string field matching `:pattern` by substring match SELECT * FROM followuprequests -WHERE +WHERE --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") -- :name search-strings-gender :? :1 -- :doc selects existing gender records having any string field matching `:pattern` by substring match SELECT * FROM genders -WHERE +WHERE id LIKE '%:pattern%' --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") @@ -870,14 +887,14 @@ id LIKE '%:pattern%' -- :name search-strings-intention :? :1 -- :doc selects existing intention records having any string field matching `:pattern` by substring match SELECT * FROM intentions -WHERE +WHERE --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") -- :name search-strings-issue :? :1 -- :doc selects existing issue records having any string field matching `:pattern` by substring match SELECT * FROM issues -WHERE +WHERE url LIKE '%:pattern%' OR id LIKE '%:pattern%' --~ (if (:offset params) "OFFSET :offset ") @@ -886,14 +903,14 @@ url LIKE '%:pattern%' -- :name search-strings-issueexpertise :? :1 -- :doc selects existing issueexpertise records having any string field matching `:pattern` by substring match SELECT * FROM issueexpertise -WHERE +WHERE --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") -- :name search-strings-option :? :1 -- :doc selects existing option records having any string field matching `:pattern` by substring match SELECT * FROM options -WHERE +WHERE id LIKE '%:pattern%' --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") @@ -901,7 +918,7 @@ id LIKE '%:pattern%' -- :name search-strings-role :? :1 -- :doc selects existing role records having any string field matching `:pattern` by substring match SELECT * FROM roles -WHERE +WHERE name LIKE '%:pattern%' ORDER BY roles.name, roles.id @@ -911,14 +928,14 @@ ORDER BY roles.name, -- :name search-strings-rolemembership :? :1 -- :doc selects existing rolemembership records having any string field matching `:pattern` by substring match SELECT * FROM rolememberships -WHERE +WHERE --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") -- :name search-strings-team :? :1 -- :doc selects existing team records having any string field matching `:pattern` by substring match SELECT * FROM teams -WHERE +WHERE name LIKE '%:pattern%' ORDER BY teams.name, teams.id @@ -928,21 +945,21 @@ ORDER BY teams.name, -- :name search-strings-teammembership :? :1 -- :doc selects existing teammembership records having any string field matching `:pattern` by substring match SELECT * FROM teammemberships -WHERE +WHERE --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") -- :name search-strings-teamorganisership :? :1 -- :doc selects existing teamorganisership records having any string field matching `:pattern` by substring match SELECT * FROM teamorganiserships -WHERE +WHERE --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") -- :name search-strings-visit :? :1 -- :doc selects existing visit records having any string field matching `:pattern` by substring match SELECT * FROM visits -WHERE +WHERE --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") @@ -967,8 +984,7 @@ SET username = :username, phone = :phone, email = :email, authority_id = :authority_id, - authorised = :authorised, - roles = :roles + authorised = :authorised WHERE canvassers.id = :id -- :name update-district! :! :n @@ -1079,4 +1095,4 @@ UPDATE visits SET address_id = :address_id, canvasser_id = :canvasser_id, date = :date -WHERE visits.id = :id +WHERE visits.id = :id \ No newline at end of file diff --git a/resources/templates/base-authenticated.html b/resources/templates/base-authenticated.html index 7da389b..22af08a 100644 --- a/resources/templates/base-authenticated.html +++ b/resources/templates/base-authenticated.html @@ -1,8 +1,8 @@ - - + + @@ -11,6 +11,7 @@ {% block whole-page %} + {% block top %}
- + {% endblock %}
+ {% block foot %} {% endblock %} + {% endblock %}