#17: progress, not complete.

This commit is contained in:
Simon Brooke 2018-07-09 22:00:39 +01:00
parent 0026218993
commit 9c3af4c936
58 changed files with 1896 additions and 463 deletions

View file

@ -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

View file

@ -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

View file

@ -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
------------------------------------------------------------------------