More detail work. An awful lot is working now.
This commit is contained in:
parent
635d1830d3
commit
78365f8c8b
|
@ -1,7 +1,7 @@
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
-- File queries.sql
|
-- File queries.sql
|
||||||
--
|
--
|
||||||
-- autogenerated by adl.to-hugsql-queries at 2018-06-29T16:36:18.648Z
|
-- autogenerated by adl.to-hugsql-queries at 2018-06-29T22:21:53.869Z
|
||||||
--
|
--
|
||||||
-- See [Application Description
|
-- See [Application Description
|
||||||
-- Language](https://github.com/simon-brooke/adl).
|
-- Language](https://github.com/simon-brooke/adl).
|
||||||
|
@ -392,7 +392,7 @@ ORDER BY visits.address_id,
|
||||||
|
|
||||||
-- :name list-addresses :? :*
|
-- :name list-addresses :? :*
|
||||||
-- :doc lists all existing address records
|
-- :doc lists all existing address records
|
||||||
SELECT * FROM lv_addresses
|
SELECT DISTINCT * FROM lv_addresses
|
||||||
ORDER BY lv_addresses.address,
|
ORDER BY lv_addresses.address,
|
||||||
lv_addresses.postcode,
|
lv_addresses.postcode,
|
||||||
lv_addresses.id
|
lv_addresses.id
|
||||||
|
@ -411,13 +411,13 @@ ORDER BY lv_addresses.address,
|
||||||
|
|
||||||
-- :name list-authorities :? :*
|
-- :name list-authorities :? :*
|
||||||
-- :doc lists all existing authority records
|
-- :doc lists all existing authority records
|
||||||
SELECT * FROM lv_authorities
|
SELECT DISTINCT * FROM lv_authorities
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
||||||
|
|
||||||
-- :name list-canvassers :? :*
|
-- :name list-canvassers :? :*
|
||||||
-- :doc lists all existing canvasser records
|
-- :doc lists all existing canvasser records
|
||||||
SELECT * FROM lv_canvassers
|
SELECT DISTINCT * FROM lv_canvassers
|
||||||
ORDER BY lv_canvassers.username,
|
ORDER BY lv_canvassers.username,
|
||||||
lv_canvassers.fullname,
|
lv_canvassers.fullname,
|
||||||
lv_canvassers.email,
|
lv_canvassers.email,
|
||||||
|
@ -471,7 +471,7 @@ ORDER BY canvassers.username,
|
||||||
|
|
||||||
-- :name list-districts :? :*
|
-- :name list-districts :? :*
|
||||||
-- :doc lists all existing district records
|
-- :doc lists all existing district records
|
||||||
SELECT * FROM lv_districts
|
SELECT DISTINCT * FROM lv_districts
|
||||||
ORDER BY lv_districts.name,
|
ORDER BY lv_districts.name,
|
||||||
lv_districts.id
|
lv_districts.id
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
|
@ -479,7 +479,7 @@ ORDER BY lv_districts.name,
|
||||||
|
|
||||||
-- :name list-dwellings :? :*
|
-- :name list-dwellings :? :*
|
||||||
-- :doc lists all existing dwelling records
|
-- :doc lists all existing dwelling records
|
||||||
SELECT * FROM lv_dwellings
|
SELECT DISTINCT * FROM lv_dwellings
|
||||||
ORDER BY lv_dwellings.address_id,
|
ORDER BY lv_dwellings.address_id,
|
||||||
lv_dwellings.sub_address,
|
lv_dwellings.sub_address,
|
||||||
lv_dwellings.id
|
lv_dwellings.id
|
||||||
|
@ -498,7 +498,7 @@ ORDER BY lv_dwellings.address_id,
|
||||||
|
|
||||||
-- :name list-electors :? :*
|
-- :name list-electors :? :*
|
||||||
-- :doc lists all existing elector records
|
-- :doc lists all existing elector records
|
||||||
SELECT * FROM lv_electors
|
SELECT DISTINCT * FROM lv_electors
|
||||||
ORDER BY lv_electors.name,
|
ORDER BY lv_electors.name,
|
||||||
lv_electors.phone,
|
lv_electors.phone,
|
||||||
lv_electors.email,
|
lv_electors.email,
|
||||||
|
@ -533,7 +533,7 @@ ORDER BY lv_electors.name,
|
||||||
|
|
||||||
-- :name list-followupactions :? :*
|
-- :name list-followupactions :? :*
|
||||||
-- :doc lists all existing followupaction records
|
-- :doc lists all existing followupaction records
|
||||||
SELECT * FROM lv_followupactions
|
SELECT DISTINCT * FROM lv_followupactions
|
||||||
ORDER BY lv_followupactions.date,
|
ORDER BY lv_followupactions.date,
|
||||||
lv_followupactions.notes,
|
lv_followupactions.notes,
|
||||||
lv_followupactions.id
|
lv_followupactions.id
|
||||||
|
@ -562,13 +562,13 @@ ORDER BY lv_followupactions.date,
|
||||||
|
|
||||||
-- :name list-followupmethods :? :*
|
-- :name list-followupmethods :? :*
|
||||||
-- :doc lists all existing followupmethod records
|
-- :doc lists all existing followupmethod records
|
||||||
SELECT * FROM lv_followupmethods
|
SELECT DISTINCT * FROM lv_followupmethods
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
||||||
|
|
||||||
-- :name list-followuprequests :? :*
|
-- :name list-followuprequests :? :*
|
||||||
-- :doc lists all existing followuprequest records
|
-- :doc lists all existing followuprequest records
|
||||||
SELECT * FROM lv_followuprequests
|
SELECT DISTINCT * FROM lv_followuprequests
|
||||||
ORDER BY lv_followuprequests.elector_id,
|
ORDER BY lv_followuprequests.elector_id,
|
||||||
lv_followuprequests.visit_id,
|
lv_followuprequests.visit_id,
|
||||||
lv_followuprequests.issue_id,
|
lv_followuprequests.issue_id,
|
||||||
|
@ -622,13 +622,13 @@ ORDER BY lv_followuprequests.elector_id,
|
||||||
|
|
||||||
-- :name list-genders :? :*
|
-- :name list-genders :? :*
|
||||||
-- :doc lists all existing gender records
|
-- :doc lists all existing gender records
|
||||||
SELECT * FROM lv_genders
|
SELECT DISTINCT * FROM lv_genders
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
||||||
|
|
||||||
-- :name list-intentions :? :*
|
-- :name list-intentions :? :*
|
||||||
-- :doc lists all existing intention records
|
-- :doc lists all existing intention records
|
||||||
SELECT * FROM lv_intentions
|
SELECT DISTINCT * FROM lv_intentions
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
||||||
|
|
||||||
|
@ -655,19 +655,19 @@ WHERE lv_intentions.Id = intentions.Id
|
||||||
|
|
||||||
-- :name list-issues :? :*
|
-- :name list-issues :? :*
|
||||||
-- :doc lists all existing issue records
|
-- :doc lists all existing issue records
|
||||||
SELECT * FROM lv_issues
|
SELECT DISTINCT * FROM lv_issues
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
||||||
|
|
||||||
-- :name list-options :? :*
|
-- :name list-options :? :*
|
||||||
-- :doc lists all existing option records
|
-- :doc lists all existing option records
|
||||||
SELECT * FROM lv_options
|
SELECT DISTINCT * FROM lv_options
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
||||||
|
|
||||||
-- :name list-roles :? :*
|
-- :name list-roles :? :*
|
||||||
-- :doc lists all existing role records
|
-- :doc lists all existing role records
|
||||||
SELECT * FROM lv_roles
|
SELECT DISTINCT * FROM lv_roles
|
||||||
ORDER BY lv_roles.name,
|
ORDER BY lv_roles.name,
|
||||||
lv_roles.id
|
lv_roles.id
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
|
@ -684,7 +684,7 @@ ORDER BY roles.name,
|
||||||
|
|
||||||
-- :name list-teams :? :*
|
-- :name list-teams :? :*
|
||||||
-- :doc lists all existing team records
|
-- :doc lists all existing team records
|
||||||
SELECT * FROM lv_teams
|
SELECT DISTINCT * FROM lv_teams
|
||||||
ORDER BY lv_teams.name,
|
ORDER BY lv_teams.name,
|
||||||
lv_teams.id
|
lv_teams.id
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
|
@ -710,7 +710,7 @@ ORDER BY lv_teams.name,
|
||||||
|
|
||||||
-- :name list-visits :? :*
|
-- :name list-visits :? :*
|
||||||
-- :doc lists all existing visit records
|
-- :doc lists all existing visit records
|
||||||
SELECT * FROM lv_visits
|
SELECT DISTINCT * FROM lv_visits
|
||||||
ORDER BY lv_visits.address_id,
|
ORDER BY lv_visits.address_id,
|
||||||
lv_visits.date,
|
lv_visits.date,
|
||||||
lv_visits.id
|
lv_visits.id
|
||||||
|
@ -739,7 +739,7 @@ ORDER BY lv_visits.address_id,
|
||||||
|
|
||||||
-- :name search-strings-address :? :1
|
-- :name search-strings-address :? :1
|
||||||
-- :doc selects existing address records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing address records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_addresses
|
SELECT DISTINCT * FROM lv_addresses
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:address params) "OR address LIKE '%:address%'")
|
--~ (if (:address params) "OR address LIKE '%:address%'")
|
||||||
--~ (if (:postcode params) "OR postcode LIKE '%:postcode%'")
|
--~ (if (:postcode params) "OR postcode LIKE '%:postcode%'")
|
||||||
|
@ -757,7 +757,7 @@ ORDER BY lv_addresses.address,
|
||||||
|
|
||||||
-- :name search-strings-authority :? :1
|
-- :name search-strings-authority :? :1
|
||||||
-- :doc selects existing authority records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing authority records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_authorities
|
SELECT DISTINCT * FROM lv_authorities
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:request-token-uri params) "OR request_token_uri LIKE '%:request-token-uri%'")
|
--~ (if (:request-token-uri params) "OR request_token_uri LIKE '%:request-token-uri%'")
|
||||||
--~ (if (:access-token-uri params) "OR access_token_uri LIKE '%:access-token-uri%'")
|
--~ (if (:access-token-uri params) "OR access_token_uri LIKE '%:access-token-uri%'")
|
||||||
|
@ -770,7 +770,7 @@ WHERE false
|
||||||
|
|
||||||
-- :name search-strings-canvasser :? :1
|
-- :name search-strings-canvasser :? :1
|
||||||
-- :doc selects existing canvasser records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing canvasser records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_canvassers
|
SELECT DISTINCT * FROM lv_canvassers
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:username params) "OR username LIKE '%:username%'")
|
--~ (if (:username params) "OR username LIKE '%:username%'")
|
||||||
--~ (if (:fullname params) "OR fullname LIKE '%:fullname%'")
|
--~ (if (:fullname params) "OR fullname LIKE '%:fullname%'")
|
||||||
|
@ -778,7 +778,7 @@ WHERE false
|
||||||
--~ (if (:address_id params) "OR address_id = :address_id")
|
--~ (if (:address_id params) "OR address_id = :address_id")
|
||||||
--~ (if (:phone params) "OR phone LIKE '%:phone%'")
|
--~ (if (:phone params) "OR phone LIKE '%:phone%'")
|
||||||
--~ (if (:email params) "OR email LIKE '%:email%'")
|
--~ (if (:email params) "OR email LIKE '%:email%'")
|
||||||
--~ (if (:authority_id params) "OR authority_id = :authority_id")
|
--~ (if (:authority_id params) "OR authority_id LIKE '%:authority_id%'")
|
||||||
--~ (if (:authorised params) "OR authorised = :authorised")
|
--~ (if (:authorised params) "OR authorised = :authorised")
|
||||||
--~ (if (:id params) "OR id = :id")
|
--~ (if (:id params) "OR id = :id")
|
||||||
ORDER BY lv_canvassers.username,
|
ORDER BY lv_canvassers.username,
|
||||||
|
@ -790,7 +790,7 @@ ORDER BY lv_canvassers.username,
|
||||||
|
|
||||||
-- :name search-strings-district :? :1
|
-- :name search-strings-district :? :1
|
||||||
-- :doc selects existing district records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing district records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_districts
|
SELECT DISTINCT * FROM lv_districts
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:name params) "OR name LIKE '%:name%'")
|
--~ (if (:name params) "OR name LIKE '%:name%'")
|
||||||
--~ (if (:id params) "OR id = :id")
|
--~ (if (:id params) "OR id = :id")
|
||||||
|
@ -801,7 +801,7 @@ ORDER BY lv_districts.name,
|
||||||
|
|
||||||
-- :name search-strings-dwelling :? :1
|
-- :name search-strings-dwelling :? :1
|
||||||
-- :doc selects existing dwelling records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing dwelling records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_dwellings
|
SELECT DISTINCT * FROM lv_dwellings
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:address_id params) "OR address_id = :address_id")
|
--~ (if (:address_id params) "OR address_id = :address_id")
|
||||||
--~ (if (:sub-address params) "OR sub_address LIKE '%:sub-address%'")
|
--~ (if (:sub-address params) "OR sub_address LIKE '%:sub-address%'")
|
||||||
|
@ -814,13 +814,13 @@ ORDER BY lv_dwellings.address_id,
|
||||||
|
|
||||||
-- :name search-strings-elector :? :1
|
-- :name search-strings-elector :? :1
|
||||||
-- :doc selects existing elector records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing elector records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_electors
|
SELECT DISTINCT * FROM lv_electors
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:name params) "OR name LIKE '%:name%'")
|
--~ (if (:name params) "OR name LIKE '%:name%'")
|
||||||
--~ (if (:dwelling_id params) "OR dwelling_id = :dwelling_id")
|
--~ (if (:dwelling_id params) "OR dwelling_id = :dwelling_id")
|
||||||
--~ (if (:phone params) "OR phone LIKE '%:phone%'")
|
--~ (if (:phone params) "OR phone LIKE '%:phone%'")
|
||||||
--~ (if (:email params) "OR email LIKE '%:email%'")
|
--~ (if (:email params) "OR email LIKE '%:email%'")
|
||||||
--~ (if (:gender params) "OR gender = :gender")
|
--~ (if (:gender params) "OR gender LIKE '%:gender%'")
|
||||||
--~ (if (:id params) "OR id = :id")
|
--~ (if (:id params) "OR id = :id")
|
||||||
ORDER BY lv_electors.name,
|
ORDER BY lv_electors.name,
|
||||||
lv_electors.phone,
|
lv_electors.phone,
|
||||||
|
@ -832,7 +832,7 @@ ORDER BY lv_electors.name,
|
||||||
|
|
||||||
-- :name search-strings-followupaction :? :1
|
-- :name search-strings-followupaction :? :1
|
||||||
-- :doc selects existing followupaction records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing followupaction records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_followupactions
|
SELECT DISTINCT * FROM lv_followupactions
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:request_id params) "OR request_id = :request_id")
|
--~ (if (:request_id params) "OR request_id = :request_id")
|
||||||
--~ (if (:actor params) "OR actor = :actor")
|
--~ (if (:actor params) "OR actor = :actor")
|
||||||
|
@ -848,7 +848,7 @@ ORDER BY lv_followupactions.date,
|
||||||
|
|
||||||
-- :name search-strings-followupmethod :? :1
|
-- :name search-strings-followupmethod :? :1
|
||||||
-- :doc selects existing followupmethod records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing followupmethod records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_followupmethods
|
SELECT DISTINCT * FROM lv_followupmethods
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:id params) "OR id LIKE '%:id%'")
|
--~ (if (:id params) "OR id LIKE '%:id%'")
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
|
@ -856,12 +856,12 @@ WHERE false
|
||||||
|
|
||||||
-- :name search-strings-followuprequest :? :1
|
-- :name search-strings-followuprequest :? :1
|
||||||
-- :doc selects existing followuprequest records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing followuprequest records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_followuprequests
|
SELECT DISTINCT * FROM lv_followuprequests
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:elector_id params) "OR elector_id = :elector_id")
|
--~ (if (:elector_id params) "OR elector_id = :elector_id")
|
||||||
--~ (if (:visit_id params) "OR visit_id = :visit_id")
|
--~ (if (:visit_id params) "OR visit_id = :visit_id")
|
||||||
--~ (if (:issue_id params) "OR issue_id = :issue_id")
|
--~ (if (:issue_id params) "OR issue_id LIKE '%:issue_id%'")
|
||||||
--~ (if (:method_id params) "OR method_id = :method_id")
|
--~ (if (:method_id params) "OR method_id LIKE '%:method_id%'")
|
||||||
--~ (if (:id params) "OR id = :id")
|
--~ (if (:id params) "OR id = :id")
|
||||||
ORDER BY lv_followuprequests.elector_id,
|
ORDER BY lv_followuprequests.elector_id,
|
||||||
lv_followuprequests.visit_id,
|
lv_followuprequests.visit_id,
|
||||||
|
@ -872,7 +872,7 @@ ORDER BY lv_followuprequests.elector_id,
|
||||||
|
|
||||||
-- :name search-strings-gender :? :1
|
-- :name search-strings-gender :? :1
|
||||||
-- :doc selects existing gender records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing gender records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_genders
|
SELECT DISTINCT * FROM lv_genders
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:id params) "OR id LIKE '%:id%'")
|
--~ (if (:id params) "OR id LIKE '%:id%'")
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
|
@ -880,11 +880,11 @@ WHERE false
|
||||||
|
|
||||||
-- :name search-strings-intention :? :1
|
-- :name search-strings-intention :? :1
|
||||||
-- :doc selects existing intention records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing intention records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_intentions
|
SELECT DISTINCT * FROM lv_intentions
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:visit_id params) "OR visit_id = :visit_id")
|
--~ (if (:visit_id params) "OR visit_id = :visit_id")
|
||||||
--~ (if (:elector_id params) "OR elector_id = :elector_id")
|
--~ (if (:elector_id params) "OR elector_id = :elector_id")
|
||||||
--~ (if (:option_id params) "OR option_id = :option_id")
|
--~ (if (:option_id params) "OR option_id LIKE '%:option_id%'")
|
||||||
--~ (if (:locality params) "OR locality = :locality")
|
--~ (if (:locality params) "OR locality = :locality")
|
||||||
--~ (if (:Id params) "OR Id = :Id")
|
--~ (if (:Id params) "OR Id = :Id")
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
|
@ -892,7 +892,7 @@ WHERE false
|
||||||
|
|
||||||
-- :name search-strings-issue :? :1
|
-- :name search-strings-issue :? :1
|
||||||
-- :doc selects existing issue records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing issue records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_issues
|
SELECT DISTINCT * FROM lv_issues
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:url params) "OR url LIKE '%:url%'")
|
--~ (if (:url params) "OR url LIKE '%:url%'")
|
||||||
--~ (if (:current params) "OR current = :current")
|
--~ (if (:current params) "OR current = :current")
|
||||||
|
@ -902,7 +902,7 @@ WHERE false
|
||||||
|
|
||||||
-- :name search-strings-option :? :1
|
-- :name search-strings-option :? :1
|
||||||
-- :doc selects existing option records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing option records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_options
|
SELECT DISTINCT * FROM lv_options
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:id params) "OR id LIKE '%:id%'")
|
--~ (if (:id params) "OR id LIKE '%:id%'")
|
||||||
--~ (if (:offset params) "OFFSET :offset ")
|
--~ (if (:offset params) "OFFSET :offset ")
|
||||||
|
@ -910,7 +910,7 @@ WHERE false
|
||||||
|
|
||||||
-- :name search-strings-role :? :1
|
-- :name search-strings-role :? :1
|
||||||
-- :doc selects existing role records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing role records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_roles
|
SELECT DISTINCT * FROM lv_roles
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:name params) "OR name LIKE '%:name%'")
|
--~ (if (:name params) "OR name LIKE '%:name%'")
|
||||||
--~ (if (:id params) "OR id = :id")
|
--~ (if (:id params) "OR id = :id")
|
||||||
|
@ -921,7 +921,7 @@ ORDER BY lv_roles.name,
|
||||||
|
|
||||||
-- :name search-strings-team :? :1
|
-- :name search-strings-team :? :1
|
||||||
-- :doc selects existing team records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing team records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_teams
|
SELECT DISTINCT * FROM lv_teams
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:name params) "OR name LIKE '%:name%'")
|
--~ (if (:name params) "OR name LIKE '%:name%'")
|
||||||
--~ (if (:district_id params) "OR district_id = :district_id")
|
--~ (if (:district_id params) "OR district_id = :district_id")
|
||||||
|
@ -935,7 +935,7 @@ ORDER BY lv_teams.name,
|
||||||
|
|
||||||
-- :name search-strings-visit :? :1
|
-- :name search-strings-visit :? :1
|
||||||
-- :doc selects existing visit records having any string field matching the parameter of the same name by substring match
|
-- :doc selects existing visit records having any string field matching the parameter of the same name by substring match
|
||||||
SELECT * FROM lv_visits
|
SELECT DISTINCT * FROM lv_visits
|
||||||
WHERE false
|
WHERE false
|
||||||
--~ (if (:address_id params) "OR address_id = :address_id")
|
--~ (if (:address_id params) "OR address_id = :address_id")
|
||||||
--~ (if (:canvasser_id params) "OR canvasser_id = :canvasser_id")
|
--~ (if (:canvasser_id params) "OR canvasser_id = :canvasser_id")
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
<!-- File application-index.html generated 2018-06-29T16:36:20.140Z by adl.to-selmer-templates.
|
<!-- File application-index.html generated 2018-06-29T22:21:55.471Z by adl.to-selmer-templates.
|
||||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||||
{% block head %}
|
{% block head %}
|
||||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||||
|
@ -23,23 +23,43 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<dl class='index'>
|
<dl class='index'>
|
||||||
<dt>
|
<dt>
|
||||||
<a href='list-electors-Electors'>
|
<a href='list-addresses-Addresses'>
|
||||||
Elector
|
Address
|
||||||
</a>
|
</a>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
All electors known to the system; electors are people believed to be entitled to vote in the current campaign.
|
Addresses of all buildings which contain dwellings.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a href='list-genders-Genders'>
|
<a href='list-authorities-Authorities'>
|
||||||
Gender
|
Authority
|
||||||
</a>
|
</a>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
All genders which may be assigned to electors.
|
Authorities which may authenticate canvassers to the system.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a href='list-canvassers-Canvassers'>
|
||||||
|
Canvasser
|
||||||
|
</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
Primary users of the system: those actually interviewing electors.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a href='list-districts-Districts'>
|
||||||
|
District
|
||||||
|
</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
Electoral districts: TODO: Shape (polygon) information will need to be added, for use in maps.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
|
@ -58,43 +78,50 @@ All dwellings within addresses in the system; a dwelling is a
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a href='list-addresses-Addresses'>
|
<a href='list-electors-Electors'>
|
||||||
Address
|
Elector
|
||||||
</a>
|
</a>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Addresses of all buildings which contain dwellings.
|
All electors known to the system; electors are people believed to be entitled to vote in the current campaign.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a href='list-visits-Visits'>
|
<a href='list-followupactions-Followupactions'>
|
||||||
Visit
|
Followupaction
|
||||||
</a>
|
</a>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
All visits made by canvassers to dwellings in which opinions were recorded.
|
Actions taken on followup requests.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a href='list-authorities-Authorities'>
|
<a href='list-followupmethods-Followupmethods'>
|
||||||
Authority
|
Followupmethod
|
||||||
|
</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a href='list-followuprequests-Followuprequests'>
|
||||||
|
Followuprequest
|
||||||
</a>
|
</a>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Authorities which may authenticate canvassers to the system.
|
Requests for a followup with an issue expert
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a href='list-issues-Issues'>
|
<a href='list-genders-Genders'>
|
||||||
Issue
|
Gender
|
||||||
</a>
|
</a>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Issues believed to be of interest to electors, about which they may have questions.
|
All genders which may be assigned to electors.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
|
@ -108,23 +135,23 @@ Intentions of electors to vote for options elicited in visits.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a href='list-canvassers-Canvassers'>
|
<a href='list-issues-Issues'>
|
||||||
Canvasser
|
Issue
|
||||||
</a>
|
</a>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Primary users of the system: those actually interviewing electors.
|
Issues believed to be of interest to electors, about which they may have questions.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a href='list-followuprequests-Followuprequests'>
|
<a href='list-options-Options'>
|
||||||
Followuprequest
|
Option
|
||||||
</a>
|
</a>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Requests for a followup with an issue expert
|
Options in the election or referendum being canvassed on
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
|
@ -145,42 +172,15 @@ Team
|
||||||
<dd>
|
<dd>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a href='list-districts-Districts'>
|
<a href='list-visits-Visits'>
|
||||||
District
|
Visit
|
||||||
</a>
|
</a>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Electoral districts: TODO: Shape (polygon) information will need to be added, for use in maps.
|
All visits made by canvassers to dwellings in which opinions were recorded.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
|
||||||
<a href='list-followupactions-Followupactions'>
|
|
||||||
Followupaction
|
|
||||||
</a>
|
|
||||||
</dt>
|
|
||||||
<dd>
|
|
||||||
<p>
|
|
||||||
Actions taken on followup requests.
|
|
||||||
</p>
|
|
||||||
</dd>
|
|
||||||
<dt>
|
|
||||||
<a href='list-options-Options'>
|
|
||||||
Option
|
|
||||||
</a>
|
|
||||||
</dt>
|
|
||||||
<dd>
|
|
||||||
<p>
|
|
||||||
Options in the election or referendum being canvassed on
|
|
||||||
</p>
|
|
||||||
</dd>
|
|
||||||
<dt>
|
|
||||||
<a href='list-followupmethods-Followupmethods'>
|
|
||||||
Followupmethod
|
|
||||||
</a>
|
|
||||||
</dt>
|
|
||||||
<dd>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -34,6 +34,9 @@
|
||||||
</header>
|
</header>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
<div id="main-container" class="container">
|
<div id="main-container" class="container">
|
||||||
|
<div id="back-link-container">
|
||||||
|
<a href="javascript:history.back()" id="back-link">Back</a>
|
||||||
|
</div>
|
||||||
<div id="big-links">
|
<div id="big-links">
|
||||||
{% block big-links %}
|
{% block big-links %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -43,9 +46,6 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
<br clear="both"/>
|
<br clear="both"/>
|
||||||
<div id="back-link-container">
|
|
||||||
<a href="javascript:history.back()" id="back-link">Back</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% block foot %}
|
{% block foot %}
|
||||||
<footer>
|
<footer>
|
||||||
|
|
|
@ -43,8 +43,6 @@
|
||||||
:start ((or (:init defaults) identity))
|
:start ((or (:init defaults) identity))
|
||||||
:stop ((or (:stop defaults) identity)))
|
:stop ((or (:stop defaults) identity)))
|
||||||
|
|
||||||
;;(mount/start db/*db*)
|
|
||||||
|
|
||||||
(defn init
|
(defn init
|
||||||
"init will be called once when
|
"init will be called once when
|
||||||
app is deployed as a servlet on
|
app is deployed as a servlet on
|
||||||
|
|
|
@ -2,13 +2,15 @@
|
||||||
:author "Simon Brooke"}
|
:author "Simon Brooke"}
|
||||||
youyesyet.layout
|
youyesyet.layout
|
||||||
(:require [adl-support.tags :as tags]
|
(:require [adl-support.tags :as tags]
|
||||||
|
[clojure.string :refer [lower-case]]
|
||||||
|
[clojure.tools.logging :as log]
|
||||||
[markdown.core :refer [md-to-html-string]]
|
[markdown.core :refer [md-to-html-string]]
|
||||||
[noir.session :as session]
|
|
||||||
[ring.util.http-response :refer [content-type ok]]
|
[ring.util.http-response :refer [content-type ok]]
|
||||||
[ring.util.anti-forgery :refer [anti-forgery-field]]
|
[ring.util.anti-forgery :refer [anti-forgery-field]]
|
||||||
[ring.middleware.anti-forgery :refer [*anti-forgery-token*]]
|
[ring.middleware.anti-forgery :refer [*anti-forgery-token*]]
|
||||||
[selmer.parser :as parser]
|
[selmer.parser :as parser]
|
||||||
[selmer.filters :as filters]
|
[selmer.filters :as filters]
|
||||||
|
[youyesyet.db.core :as db]
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,18 +19,25 @@
|
||||||
(parser/set-resource-path! (clojure.java.io/resource "templates"))
|
(parser/set-resource-path! (clojure.java.io/resource "templates"))
|
||||||
(parser/add-tag! :csrf-field (fn [_ _] (anti-forgery-field)))
|
(parser/add-tag! :csrf-field (fn [_ _] (anti-forgery-field)))
|
||||||
(filters/add-filter! :markdown (fn [content] [:safe (md-to-html-string content)]))
|
(filters/add-filter! :markdown (fn [content] [:safe (md-to-html-string content)]))
|
||||||
|
(tags/add-tags)
|
||||||
|
|
||||||
|
(defn raw-get-user-roles [user]
|
||||||
|
"Return, as a set, the names of the roles of which this user is a member."
|
||||||
|
(if
|
||||||
|
user
|
||||||
|
(do
|
||||||
|
(log/debug (str "seeking roles for user " user))
|
||||||
|
(set (map #(lower-case (:name %)) (db/list-roles-by-canvasser db/*db* user))))))
|
||||||
|
|
||||||
|
|
||||||
(defn raw-get-user-roles [_]
|
;; role assignments change only rarely.
|
||||||
#{"admin" "canvassers"})
|
|
||||||
|
|
||||||
(def get-user-roles (memoize raw-get-user-roles))
|
(def get-user-roles (memoize raw-get-user-roles))
|
||||||
|
|
||||||
|
|
||||||
(defn render
|
(defn render
|
||||||
"renders the HTML template located relative to resources/templates"
|
"renders the HTML template located relative to resources/templates"
|
||||||
[template & [params]]
|
[template session & [params]]
|
||||||
(let [user (try session/get :user)]
|
(let [user (:user session)]
|
||||||
(content-type
|
(content-type
|
||||||
(ok
|
(ok
|
||||||
(parser/render-file
|
(parser/render-file
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
(ns ^{:doc "Plumbing, mainly boilerplate from Luminus."
|
(ns ^{:doc "Plumbing, mainly boilerplate from Luminus."}
|
||||||
:author "Simon Brooke"}
|
|
||||||
youyesyet.middleware
|
youyesyet.middleware
|
||||||
(:require [youyesyet.env :refer [defaults]]
|
(:require [youyesyet.env :refer [defaults]]
|
||||||
[clojure.tools.logging :as log]
|
[clojure.tools.logging :as log]
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
(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]))
|
|
|
@ -54,6 +54,7 @@
|
||||||
))]
|
))]
|
||||||
(layout/render
|
(layout/render
|
||||||
"canvasser.html"
|
"canvasser.html"
|
||||||
|
(:session request)
|
||||||
{:title (if canvasser
|
{:title (if canvasser
|
||||||
(str
|
(str
|
||||||
"Edit canvasser "
|
"Edit canvasser "
|
||||||
|
@ -66,10 +67,10 @@
|
||||||
|
|
||||||
(defn routing-page
|
(defn routing-page
|
||||||
"Render the routing page, which offers routes according to the user's roles"
|
"Render the routing page, which offers routes according to the user's roles"
|
||||||
[]
|
[request]
|
||||||
(layout/render "routing.html"))
|
(layout/render "routing.html" (:session request)))
|
||||||
|
|
||||||
(defroutes authenticated-routes
|
(defroutes authenticated-routes
|
||||||
(GET "/edit-canvasser" request (canvasser-page request))
|
(GET "/edit-canvasser" request (canvasser-page request))
|
||||||
(POST "/edit-canvasser" request (canvasser-page request))
|
(POST "/edit-canvasser" request (canvasser-page request))
|
||||||
(GET "/routing" [] (routing-page)))
|
(GET "/routing" [request] (routing-page request)))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
(ns
|
(ns
|
||||||
youyesyet.routes.auto
|
youyesyet.routes.auto
|
||||||
"User interface routes for Youyesyet auto-generated by [Application Description Language framework](https://github.com/simon-brooke/adl) at 20180629T141538.443Z"
|
"User interface routes for Youyesyet auto-generated by [Application Description Language framework](https://github.com/simon-brooke/adl) at 20180629T222155.170Z"
|
||||||
(:require
|
(:require
|
||||||
[adl-support.core :as support]
|
[adl-support.core :as support]
|
||||||
[clojure.java.io :as io]
|
[clojure.java.io :as io]
|
||||||
|
@ -27,6 +27,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-addresses-Addresses.html")
|
(support/resolve-template "list-addresses-Addresses.html")
|
||||||
|
(:session r)
|
||||||
{:title "Addresses",
|
{:title "Addresses",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -42,6 +43,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-addresses-Address.html")
|
(support/resolve-template "form-addresses-Address.html")
|
||||||
|
(:session r)
|
||||||
{:title "Address",
|
{:title "Address",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -55,6 +57,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-authorities-Authorities.html")
|
(support/resolve-template "list-authorities-Authorities.html")
|
||||||
|
(:session r)
|
||||||
{:title "Authorities",
|
{:title "Authorities",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -70,6 +73,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-authorities-Authority.html")
|
(support/resolve-template "form-authorities-Authority.html")
|
||||||
|
(:session r)
|
||||||
{:title "Authority",
|
{:title "Authority",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -85,6 +89,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-canvassers-Canvassers.html")
|
(support/resolve-template "list-canvassers-Canvassers.html")
|
||||||
|
(:session r)
|
||||||
{:title "Canvassers",
|
{:title "Canvassers",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -100,6 +105,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-canvassers-Canvasser.html")
|
(support/resolve-template "form-canvassers-Canvasser.html")
|
||||||
|
(:session r)
|
||||||
{:title "Canvasser",
|
{:title "Canvasser",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -109,7 +115,8 @@
|
||||||
(db/get-canvasser db/*db* p)),
|
(db/get-canvasser db/*db* p)),
|
||||||
:electors (db/list-electors db/*db*),
|
:electors (db/list-electors db/*db*),
|
||||||
:addresses (db/list-addresses db/*db*),
|
:addresses (db/list-addresses db/*db*),
|
||||||
:authorities (db/list-authorities db/*db*)})))
|
:authorities (db/list-authorities db/*db*),
|
||||||
|
:roles (db/list-roles db/*db*)})))
|
||||||
|
|
||||||
(defn
|
(defn
|
||||||
list-districts-Districts
|
list-districts-Districts
|
||||||
|
@ -118,6 +125,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-districts-Districts.html")
|
(support/resolve-template "list-districts-Districts.html")
|
||||||
|
(:session r)
|
||||||
{:title "Districts",
|
{:title "Districts",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -133,6 +141,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-districts-District.html")
|
(support/resolve-template "form-districts-District.html")
|
||||||
|
(:session r)
|
||||||
{:title "District",
|
{:title "District",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -148,6 +157,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-dwellings-Dwellings.html")
|
(support/resolve-template "list-dwellings-Dwellings.html")
|
||||||
|
(:session r)
|
||||||
{:title "Dwellings",
|
{:title "Dwellings",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -163,6 +173,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-dwellings-Dwelling.html")
|
(support/resolve-template "form-dwellings-Dwelling.html")
|
||||||
|
(:session r)
|
||||||
{:title "Dwelling",
|
{:title "Dwelling",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -179,6 +190,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-electors-Electors.html")
|
(support/resolve-template "list-electors-Electors.html")
|
||||||
|
(:session r)
|
||||||
{:title "Electors",
|
{:title "Electors",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -194,6 +206,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-electors-Elector.html")
|
(support/resolve-template "form-electors-Elector.html")
|
||||||
|
(:session r)
|
||||||
{:title "Elector",
|
{:title "Elector",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -209,6 +222,7 @@
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template
|
(support/resolve-template
|
||||||
"list-followupactions-Followupactions.html")
|
"list-followupactions-Followupactions.html")
|
||||||
|
(:session r)
|
||||||
{:title "Followupactions",
|
{:title "Followupactions",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -225,6 +239,7 @@
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template
|
(support/resolve-template
|
||||||
"form-followupactions-Followupaction.html")
|
"form-followupactions-Followupaction.html")
|
||||||
|
(:session r)
|
||||||
{:title "Followupaction",
|
{:title "Followupaction",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -243,6 +258,7 @@
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template
|
(support/resolve-template
|
||||||
"list-followupmethods-Followupmethods.html")
|
"list-followupmethods-Followupmethods.html")
|
||||||
|
(:session r)
|
||||||
{:title "Followupmethods",
|
{:title "Followupmethods",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -259,6 +275,7 @@
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template
|
(support/resolve-template
|
||||||
"form-followupmethods-Followupmethod.html")
|
"form-followupmethods-Followupmethod.html")
|
||||||
|
(:session r)
|
||||||
{:title "Followupmethod",
|
{:title "Followupmethod",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -275,6 +292,7 @@
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template
|
(support/resolve-template
|
||||||
"list-followuprequests-Followuprequests.html")
|
"list-followuprequests-Followuprequests.html")
|
||||||
|
(:session r)
|
||||||
{:title "Followuprequests",
|
{:title "Followuprequests",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -291,6 +309,7 @@
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template
|
(support/resolve-template
|
||||||
"form-followuprequests-Followuprequest.html")
|
"form-followuprequests-Followuprequest.html")
|
||||||
|
(:session r)
|
||||||
{:title "Followuprequest",
|
{:title "Followuprequest",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -310,6 +329,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-genders-Genders.html")
|
(support/resolve-template "list-genders-Genders.html")
|
||||||
|
(:session r)
|
||||||
{:title "Genders",
|
{:title "Genders",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -325,6 +345,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-genders-Gender.html")
|
(support/resolve-template "form-genders-Gender.html")
|
||||||
|
(:session r)
|
||||||
{:title "Gender",
|
{:title "Gender",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -340,6 +361,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-intentions-Intentions.html")
|
(support/resolve-template "list-intentions-Intentions.html")
|
||||||
|
(:session r)
|
||||||
{:title "Intentions",
|
{:title "Intentions",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -355,6 +377,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-intentions-Intention.html")
|
(support/resolve-template "form-intentions-Intention.html")
|
||||||
|
(:session r)
|
||||||
{:title "Intention",
|
{:title "Intention",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -373,6 +396,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-issues-Issues.html")
|
(support/resolve-template "list-issues-Issues.html")
|
||||||
|
(:session r)
|
||||||
{:title "Issues",
|
{:title "Issues",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -388,6 +412,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-issues-Issue.html")
|
(support/resolve-template "form-issues-Issue.html")
|
||||||
|
(:session r)
|
||||||
{:title "Issue",
|
{:title "Issue",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -400,6 +425,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-options-Options.html")
|
(support/resolve-template "list-options-Options.html")
|
||||||
|
(:session r)
|
||||||
{:title "Options",
|
{:title "Options",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -415,6 +441,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-options-Option.html")
|
(support/resolve-template "form-options-Option.html")
|
||||||
|
(:session r)
|
||||||
{:title "Option",
|
{:title "Option",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
@ -430,6 +457,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-roles-Roles.html")
|
(support/resolve-template "list-roles-Roles.html")
|
||||||
|
(:session r)
|
||||||
{:title "Roles",
|
{:title "Roles",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -445,10 +473,12 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-roles-Role.html")
|
(support/resolve-template "form-roles-Role.html")
|
||||||
|
(:session r)
|
||||||
{:title "Role",
|
{:title "Role",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
(if (empty? (remove nil? (vals p))) [] (db/get-role db/*db* p))})))
|
(if (empty? (remove nil? (vals p))) [] (db/get-role db/*db* p)),
|
||||||
|
:canvassers (db/list-canvassers db/*db*)})))
|
||||||
|
|
||||||
(defn
|
(defn
|
||||||
list-teams-Teams
|
list-teams-Teams
|
||||||
|
@ -457,6 +487,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-teams-Teams.html")
|
(support/resolve-template "list-teams-Teams.html")
|
||||||
|
(:session r)
|
||||||
{:title "Teams",
|
{:title "Teams",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -472,11 +503,13 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-teams-Team.html")
|
(support/resolve-template "form-teams-Team.html")
|
||||||
|
(:session r)
|
||||||
{:title "Team",
|
{:title "Team",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
(if (empty? (remove nil? (vals p))) [] (db/get-team db/*db* p)),
|
(if (empty? (remove nil? (vals p))) [] (db/get-team db/*db* p)),
|
||||||
:districts (db/list-districts db/*db*)})))
|
:districts (db/list-districts db/*db*),
|
||||||
|
:canvassers (db/list-canvassers db/*db*)})))
|
||||||
|
|
||||||
(defn
|
(defn
|
||||||
list-visits-Visits
|
list-visits-Visits
|
||||||
|
@ -485,6 +518,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "list-visits-Visits.html")
|
(support/resolve-template "list-visits-Visits.html")
|
||||||
|
(:session r)
|
||||||
{:title "Visits",
|
{:title "Visits",
|
||||||
:params p,
|
:params p,
|
||||||
:records
|
:records
|
||||||
|
@ -500,6 +534,7 @@
|
||||||
[p (support/massage-params (:params r))]
|
[p (support/massage-params (:params r))]
|
||||||
(l/render
|
(l/render
|
||||||
(support/resolve-template "form-visits-Visit.html")
|
(support/resolve-template "form-visits-Visit.html")
|
||||||
|
(:session r)
|
||||||
{:title "Visit",
|
{:title "Visit",
|
||||||
:params p,
|
:params p,
|
||||||
:record
|
:record
|
||||||
|
|
|
@ -37,11 +37,11 @@
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defn app-page []
|
(defn app-page []
|
||||||
(layout/render "app.html"))
|
(layout/render "app.html" {}))
|
||||||
|
|
||||||
|
|
||||||
(defn about-page []
|
(defn about-page []
|
||||||
(layout/render "about.html"))
|
(layout/render "about.html" {}))
|
||||||
|
|
||||||
|
|
||||||
(defn call-me-page [request]
|
(defn call-me-page [request]
|
||||||
|
@ -49,8 +49,8 @@
|
||||||
request
|
request
|
||||||
(do
|
(do
|
||||||
;; do something to store it in the database
|
;; do something to store it in the database
|
||||||
(layout/render "call-me-accepted.html" (:params request)))
|
(layout/render "call-me-accepted.html" (:session request) (:params request)))
|
||||||
(layout/render "call-me.html"
|
(layout/render "call-me.html" (:session request)
|
||||||
{:title "Please call me!"
|
{:title "Please call me!"
|
||||||
;; TODO: Issues need to be fetched from the database
|
;; TODO: Issues need to be fetched from the database
|
||||||
:concerns nil})))
|
:concerns nil})))
|
||||||
|
@ -59,21 +59,20 @@
|
||||||
(defn roles-page [request]
|
(defn roles-page [request]
|
||||||
(let
|
(let
|
||||||
[session (:session request)
|
[session (:session request)
|
||||||
username (:user session)
|
user (:user session)
|
||||||
user (if username (db-core/get-canvasser-by-username db-core/*db* {:username username}))
|
|
||||||
roles (if user (db-core/list-roles-by-canvasser db-core/*db* {:id (:id user)}))]
|
roles (if user (db-core/list-roles-by-canvasser db-core/*db* {:id (:id user)}))]
|
||||||
(cond
|
(cond
|
||||||
roles (layout/render "roles.html"
|
roles (layout/render "roles.html"
|
||||||
|
(:session request)
|
||||||
{:title (str "Welcome " (:fullname user) ", what do you want to do?")
|
{:title (str "Welcome " (:fullname user) ", what do you want to do?")
|
||||||
:user user
|
:user user
|
||||||
:roles roles})
|
:roles roles})
|
||||||
(empty? roles)(response/found "/app")
|
(empty? roles)(response/found "/app")
|
||||||
true (assoc (response/found "/login") :session (dissoc session :user))
|
true (assoc (response/found "/login") :session (dissoc session :user)))))
|
||||||
)))
|
|
||||||
|
|
||||||
|
|
||||||
(defn home-page []
|
(defn home-page []
|
||||||
(layout/render "home.html" {:title "You Yes Yet?"}))
|
(layout/render "home.html" {} {:title "You Yes Yet?"}))
|
||||||
|
|
||||||
|
|
||||||
(defn login-page
|
(defn login-page
|
||||||
|
@ -99,14 +98,18 @@
|
||||||
;; it-will-do-for-now security in place; instead, I want this to be test code only
|
;; it-will-do-for-now security in place; instead, I want this to be test code only
|
||||||
;; until we have o-auth properly working.
|
;; until we have o-auth properly working.
|
||||||
(and user (= username password))
|
(and user (= username password))
|
||||||
(assoc (response/found redirect-to) :session (assoc session :user username))
|
(assoc
|
||||||
user
|
(response/found redirect-to)
|
||||||
|
:session (assoc session :user user :roles (layout/get-user-roles user)))
|
||||||
|
username
|
||||||
(layout/render
|
(layout/render
|
||||||
"login.html"
|
"login.html"
|
||||||
|
session
|
||||||
{:title (str "User " username " is unknown") :redirect-to redirect-to})
|
{:title (str "User " username " is unknown") :redirect-to redirect-to})
|
||||||
true
|
true
|
||||||
(layout/render
|
(layout/render
|
||||||
"login.html"
|
"login.html"
|
||||||
|
session
|
||||||
{:title "Please log in"
|
{:title "Please log in"
|
||||||
:redirect-to redirect-to
|
:redirect-to redirect-to
|
||||||
:authorities (db-core/list-authorities db-core/*db*)}))))
|
:authorities (db-core/list-authorities db-core/*db*)}))))
|
||||||
|
@ -127,7 +130,7 @@
|
||||||
(POST "/call-me" request (call-me-page request))
|
(POST "/call-me" request (call-me-page request))
|
||||||
(GET "/auth" request (login-page request))
|
(GET "/auth" request (login-page request))
|
||||||
(POST "/auth" request (login-page request))
|
(POST "/auth" request (login-page request))
|
||||||
(GET "/notyet" [] (layout/render "notyet.html"
|
(GET "/notyet" [] (layout/render "notyet.html" {}
|
||||||
{:title "Can we persuade you?"}))
|
{:title "Can we persuade you?"}))
|
||||||
(GET "/supporter" [] (layout/render "supporter.html"
|
(GET "/supporter" [] (layout/render "supporter.html" {}
|
||||||
{:title "Have you signed up as a canvasser yet?"})))
|
{:title "Have you signed up as a canvasser yet?"})))
|
||||||
|
|
|
@ -42,8 +42,8 @@
|
||||||
"Get current issues. No arguments expected."
|
"Get current issues. No arguments expected."
|
||||||
[request])
|
[request])
|
||||||
|
|
||||||
(defroutes rest-routes
|
;; (defroutes rest-routes
|
||||||
(GET "/rest/get-local-data" request (route/restricted (get-local-data request)))
|
;; (GET "/rest/get-local-data" request (route/restricted (get-local-data request)))
|
||||||
(GET "/rest/get-issues" request (route/restricted (get-issues request)))
|
;; (GET "/rest/get-issues" request (route/restricted (get-issues request)))
|
||||||
(GET "/rest/set-intention" request (route/restricted (set-intention request)))
|
;; (GET "/rest/set-intention" request (route/restricted (set-intention request)))
|
||||||
(GET "/rest/request-followup" request (route/restricted (request-followup request))))
|
;; (GET "/rest/request-followup" request (route/restricted (request-followup request))))
|
||||||
|
|
|
@ -361,10 +361,10 @@
|
||||||
<prompt prompt="elector_id" locale="en-GB"/>
|
<prompt prompt="elector_id" locale="en-GB"/>
|
||||||
</property>
|
</property>
|
||||||
<property required="true" type="entity" name="address_id" column="address_id"
|
<property required="true" type="entity" name="address_id" column="address_id"
|
||||||
entity="addresses" farkey="id">
|
entity="addresses" farkey="id" distinct="user">
|
||||||
<prompt prompt="address_id" locale="en-GB"/>
|
<prompt prompt="address_id" locale="en-GB"/>
|
||||||
</property>
|
</property>
|
||||||
<property type="string" name="phone" column="phone" size="16">
|
<property type="string" name="phone" column="phone" size="16" distinct="user">
|
||||||
<prompt prompt="phone" locale="en-GB"/>
|
<prompt prompt="phone" locale="en-GB"/>
|
||||||
</property>
|
</property>
|
||||||
<property type="string" name="email" column="email" size="128" distinct="user">
|
<property type="string" name="email" column="email" size="128" distinct="user">
|
||||||
|
|
Loading…
Reference in a new issue