Much progress, nothing yet works.
This commit is contained in:
parent
284509fa7b
commit
acfaf985fa
|
@ -3,7 +3,8 @@
|
|||
:description "Canvassing tool for referenda"
|
||||
:url "https://github.com/simon-brooke/youyesyet"
|
||||
|
||||
:dependencies [[bouncer "1.0.1"]
|
||||
:dependencies [[adl-support "0.1.0-SNAPSHOT"]
|
||||
[bouncer "1.0.1"]
|
||||
[ch.qos.logback/logback-classic "1.2.2"]
|
||||
[clj-oauth "1.5.5"]
|
||||
[cljsjs/react-leaflet "0.12.3-4"]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
------------------------------------------------------------------------
|
||||
-- File queries.sql
|
||||
--
|
||||
-- autogenerated by adl.to-hugsql-queries at 2018-06-17T11:05:53.294Z
|
||||
-- autogenerated by adl.to-hugsql-queries at 2018-06-19T18:51:50.013Z
|
||||
--
|
||||
-- See [Application Description
|
||||
-- Language](https://github.com/simon-brooke/adl).
|
||||
|
@ -60,9 +60,9 @@ returning id
|
|||
-- :name create-dwelling! :! :n
|
||||
-- :doc creates a new dwelling record
|
||||
INSERT INTO dwellings (address_id,
|
||||
sub-address)
|
||||
sub_address)
|
||||
VALUES (:address_id,
|
||||
:sub-address)
|
||||
:sub_address)
|
||||
returning id
|
||||
|
||||
-- :name create-elector! :! :n
|
||||
|
@ -294,7 +294,7 @@ ORDER BY districts.name,
|
|||
SELECT * FROM dwellings
|
||||
WHERE dwellings.id = :id
|
||||
ORDER BY dwellings.address_id,
|
||||
dwellings.sub-address,
|
||||
dwellings.sub_address,
|
||||
dwellings.id
|
||||
|
||||
-- :name get-elector :? :1
|
||||
|
@ -469,7 +469,7 @@ ORDER BY lv_districts.name,
|
|||
-- :doc lists all existing dwelling records
|
||||
SELECT * FROM lv_dwellings
|
||||
ORDER BY lv_dwellings.address_id,
|
||||
lv_dwellings.sub-address,
|
||||
lv_dwellings.sub_address,
|
||||
lv_dwellings.id
|
||||
--~ (if (:offset params) "OFFSET :offset ")
|
||||
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
||||
|
@ -481,7 +481,7 @@ FROM lv_dwellings, dwellings
|
|||
WHERE lv_dwellings.id = dwellings.id
|
||||
AND dwellings.address_id = :id
|
||||
ORDER BY lv_dwellings.address_id,
|
||||
lv_dwellings.sub-address,
|
||||
lv_dwellings.sub_address,
|
||||
lv_dwellings.id
|
||||
|
||||
-- :name list-electors :? :*
|
||||
|
@ -730,7 +730,13 @@ ORDER BY lv_visits.address_id,
|
|||
SELECT * FROM lv_addresses
|
||||
WHERE
|
||||
address LIKE '%params.address%'
|
||||
OR postcode = params.postcode
|
||||
OR phone LIKE '%params.phone%'
|
||||
OR district_id = params.district_id
|
||||
OR latitude = params.latitude
|
||||
OR longitude = params.longitude
|
||||
OR locality = params.locality
|
||||
OR id = params.id
|
||||
ORDER BY lv_addresses.address,
|
||||
lv_addresses.postcode,
|
||||
lv_addresses.id
|
||||
|
@ -751,8 +757,13 @@ SELECT * FROM lv_canvassers
|
|||
WHERE
|
||||
username LIKE '%params.username%'
|
||||
OR fullname LIKE '%params.fullname%'
|
||||
OR elector_id = params.elector_id
|
||||
OR address_id = params.address_id
|
||||
OR phone LIKE '%params.phone%'
|
||||
OR email LIKE '%params.email%'
|
||||
OR authority_id = params.authority_id
|
||||
OR authorised = params.authorised
|
||||
OR id = params.id
|
||||
ORDER BY lv_canvassers.username,
|
||||
lv_canvassers.fullname,
|
||||
lv_canvassers.email,
|
||||
|
@ -765,6 +776,7 @@ ORDER BY lv_canvassers.username,
|
|||
SELECT * FROM lv_districts
|
||||
WHERE
|
||||
name LIKE '%params.name%'
|
||||
OR id = params.id
|
||||
ORDER BY lv_districts.name,
|
||||
lv_districts.id
|
||||
--~ (if (:offset params) "OFFSET :offset ")
|
||||
|
@ -774,9 +786,11 @@ ORDER BY lv_districts.name,
|
|||
-- :doc selects existing dwelling records having any string field matching the parameter of the same name by substring match
|
||||
SELECT * FROM lv_dwellings
|
||||
WHERE
|
||||
sub-address LIKE '%params.sub-address%'
|
||||
address_id = params.address_id
|
||||
OR sub_address LIKE '%params.sub-address%'
|
||||
OR id = params.id
|
||||
ORDER BY lv_dwellings.address_id,
|
||||
lv_dwellings.sub-address,
|
||||
lv_dwellings.sub_address,
|
||||
lv_dwellings.id
|
||||
--~ (if (:offset params) "OFFSET :offset ")
|
||||
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
||||
|
@ -786,8 +800,11 @@ ORDER BY lv_dwellings.address_id,
|
|||
SELECT * FROM lv_electors
|
||||
WHERE
|
||||
name LIKE '%params.name%'
|
||||
OR dwelling_id = params.dwelling_id
|
||||
OR phone LIKE '%params.phone%'
|
||||
OR email LIKE '%params.email%'
|
||||
OR gender = params.gender
|
||||
OR id = params.id
|
||||
ORDER BY lv_electors.name,
|
||||
lv_electors.phone,
|
||||
lv_electors.email,
|
||||
|
@ -800,7 +817,12 @@ ORDER BY lv_electors.name,
|
|||
-- :doc selects existing followupaction records having any string field matching the parameter of the same name by substring match
|
||||
SELECT * FROM lv_followupactions
|
||||
WHERE
|
||||
notes LIKE '%params.notes%'
|
||||
request_id = params.request_id
|
||||
OR actor = params.actor
|
||||
OR date = 'params.date'
|
||||
OR notes LIKE '%params.notes%'
|
||||
OR closed = params.closed
|
||||
OR id = params.id
|
||||
ORDER BY lv_followupactions.date,
|
||||
lv_followupactions.notes,
|
||||
lv_followupactions.id
|
||||
|
@ -819,6 +841,11 @@ id LIKE '%params.id%'
|
|||
-- :doc selects existing followuprequest records having any string field matching the parameter of the same name by substring match
|
||||
SELECT * FROM lv_followuprequests
|
||||
WHERE
|
||||
elector_id = params.elector_id
|
||||
OR visit_id = params.visit_id
|
||||
OR issue_id = params.issue_id
|
||||
OR method_id = params.method_id
|
||||
OR id = params.id
|
||||
ORDER BY lv_followuprequests.elector_id,
|
||||
lv_followuprequests.visit_id,
|
||||
lv_followuprequests.issue_id,
|
||||
|
@ -838,6 +865,10 @@ id LIKE '%params.id%'
|
|||
-- :doc selects existing intention records having any string field matching the parameter of the same name by substring match
|
||||
SELECT * FROM lv_intentions
|
||||
WHERE
|
||||
visit_id = params.visit_id
|
||||
OR elector_id = params.elector_id
|
||||
OR option_id = params.option_id
|
||||
OR Id = params.Id
|
||||
--~ (if (:offset params) "OFFSET :offset ")
|
||||
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
||||
|
||||
|
@ -846,6 +877,7 @@ WHERE
|
|||
SELECT * FROM lv_issues
|
||||
WHERE
|
||||
url LIKE '%params.url%'
|
||||
OR current = params.current
|
||||
OR id LIKE '%params.id%'
|
||||
--~ (if (:offset params) "OFFSET :offset ")
|
||||
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
||||
|
@ -863,6 +895,7 @@ id LIKE '%params.id%'
|
|||
SELECT * FROM lv_roles
|
||||
WHERE
|
||||
name LIKE '%params.name%'
|
||||
OR id = params.id
|
||||
ORDER BY lv_roles.name,
|
||||
lv_roles.id
|
||||
--~ (if (:offset params) "OFFSET :offset ")
|
||||
|
@ -873,6 +906,10 @@ ORDER BY lv_roles.name,
|
|||
SELECT * FROM lv_teams
|
||||
WHERE
|
||||
name LIKE '%params.name%'
|
||||
OR district_id = params.district_id
|
||||
OR latitude = params.latitude
|
||||
OR longitude = params.longitude
|
||||
OR id = params.id
|
||||
ORDER BY lv_teams.name,
|
||||
lv_teams.id
|
||||
--~ (if (:offset params) "OFFSET :offset ")
|
||||
|
@ -882,6 +919,10 @@ ORDER BY lv_teams.name,
|
|||
-- :doc selects existing visit records having any string field matching the parameter of the same name by substring match
|
||||
SELECT * FROM lv_visits
|
||||
WHERE
|
||||
address_id = params.address_id
|
||||
OR canvasser_id = params.canvasser_id
|
||||
OR date = 'params.date'
|
||||
OR id = params.id
|
||||
ORDER BY lv_visits.address_id,
|
||||
lv_visits.date,
|
||||
lv_visits.id
|
||||
|
@ -923,7 +964,7 @@ WHERE districts.id = :id
|
|||
-- :doc updates an existing dwelling record
|
||||
UPDATE dwellings
|
||||
SET address_id = :address_id,
|
||||
sub-address = :sub-address
|
||||
sub_address = :sub-address
|
||||
WHERE dwellings.id = :id
|
||||
|
||||
-- :name update-elector! :! :n
|
||||
|
|
902
resources/sql/youyesyet.postgres.sql
Normal file
902
resources/sql/youyesyet.postgres.sql
Normal file
|
@ -0,0 +1,902 @@
|
|||
------------------------------------------------------------------------
|
||||
-- Database definition for application
|
||||
--
|
||||
-- youyesyet version 0.1.1
|
||||
--
|
||||
-- auto-generated by [Application Description Language framework]
|
||||
--
|
||||
-- (https://github.com/simon-brooke/adl) at 20180619T185151.055Z
|
||||
--
|
||||
--
|
||||
-- A web-app intended to be used by canvassers campaigning for a
|
||||
-- 'Yes' vote in the second independence referendum.
|
||||
--
|
||||
-- The web-app will be delivered to canvassers out knocking doors
|
||||
-- primarily through an HTML5/React single-page app designed to work on a
|
||||
-- mobile phone; it's possible that someone else may do an Android of
|
||||
-- iPhone native app to address the same back end but at present I have
|
||||
-- no plans for this.
|
||||
--
|
||||
-- There must also be an administrative interface through which
|
||||
-- privileged users can set the system up and authorise canvassers, and a
|
||||
-- 'followup' interface through which issue-expert specialist canvassers
|
||||
-- can address particular electors' queries.
|
||||
--
|
||||
------------------------------------------------------------------------
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- security group admin
|
||||
------------------------------------------------------------------------
|
||||
|
||||
CREATE GROUP admin;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- security group analysts
|
||||
------------------------------------------------------------------------
|
||||
|
||||
CREATE GROUP analysts;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- security group canvassers
|
||||
------------------------------------------------------------------------
|
||||
|
||||
CREATE GROUP canvassers;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- security group issueeditors
|
||||
------------------------------------------------------------------------
|
||||
|
||||
CREATE GROUP issueeditors;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- security group issueexperts
|
||||
------------------------------------------------------------------------
|
||||
|
||||
CREATE GROUP issueexperts;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- security group public
|
||||
------------------------------------------------------------------------
|
||||
|
||||
CREATE GROUP public;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- security group teamorganisers
|
||||
------------------------------------------------------------------------
|
||||
|
||||
CREATE GROUP teamorganisers;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table addresses for entity addresses
|
||||
--
|
||||
-- Addresses of all buildings which contain dwellings.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE addresses
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
address VARCHAR(256) NOT NULL,
|
||||
postcode VARCHAR(16) CONSTRAINT pattern_1 CHECK (postcode ~* '^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z]))))[0-9][A-Za-z]{2})$'),
|
||||
phone VARCHAR(16),
|
||||
district_id INTEGER,
|
||||
latitude DOUBLE PRECISION,
|
||||
longitude DOUBLE PRECISION,
|
||||
locality INTEGER
|
||||
);
|
||||
GRANT SELECT ON addresses TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON addresses TO admin ;
|
||||
GRANT UPDATE ON addresses TO admin ;
|
||||
GRANT DELETE ON addresses TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table authorities for entity authorities
|
||||
--
|
||||
-- Authorities which may authenticate canvassers to the system.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE authorities
|
||||
(
|
||||
id VARCHAR(32) NOT NULL PRIMARY KEY
|
||||
);
|
||||
GRANT SELECT ON authorities TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON authorities TO admin ;
|
||||
GRANT UPDATE ON authorities TO admin ;
|
||||
GRANT DELETE ON authorities TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table canvassers for entity canvassers
|
||||
--
|
||||
-- Primary users of the system: those actually interviewing electors.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE canvassers
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
username VARCHAR(32) NOT NULL,
|
||||
fullname VARCHAR(64) NOT NULL,
|
||||
elector_id INTEGER,
|
||||
address_id INTEGER NOT NULL,
|
||||
phone VARCHAR(16),
|
||||
email VARCHAR(128),
|
||||
authority_id VARCHAR(32) NOT NULL,
|
||||
authorised BOOLEAN
|
||||
);
|
||||
GRANT SELECT ON canvassers TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON canvassers TO admin,
|
||||
canvassers,
|
||||
teamorganisers ;
|
||||
GRANT UPDATE ON canvassers TO admin,
|
||||
canvassers,
|
||||
teamorganisers ;
|
||||
GRANT DELETE ON canvassers TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table districts for entity districts
|
||||
--
|
||||
-- Electoral districts: TODO: Shape (polygon) information will need to be
|
||||
-- added, for use in maps.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE districts
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
name VARCHAR(64) NOT NULL
|
||||
);
|
||||
GRANT SELECT ON districts TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
public,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON districts TO admin ;
|
||||
GRANT UPDATE ON districts TO admin ;
|
||||
GRANT DELETE ON districts TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table dwellings for entity dwellings
|
||||
--
|
||||
-- All dwellings within addresses in the system; a dwelling is a house,
|
||||
-- flat or appartment in which electors live.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE dwellings
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
address_id INTEGER NOT NULL,
|
||||
sub_address VARCHAR(32)
|
||||
);
|
||||
GRANT SELECT ON dwellings TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON dwellings TO admin ;
|
||||
GRANT UPDATE ON dwellings TO admin ;
|
||||
GRANT DELETE ON dwellings TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table electors for entity electors
|
||||
--
|
||||
-- All electors known to the system; electors are people believed to be
|
||||
-- entitled to vote in the current campaign.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE electors
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
name VARCHAR(64) NOT NULL,
|
||||
dwelling_id INTEGER NOT NULL,
|
||||
phone VARCHAR(16),
|
||||
email VARCHAR(128),
|
||||
gender VARCHAR(32) DEFAULT 'Unknown'
|
||||
);
|
||||
GRANT SELECT ON electors TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON electors TO admin ;
|
||||
GRANT UPDATE ON electors TO admin ;
|
||||
GRANT DELETE ON electors TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table followupactions for entity followupactions
|
||||
--
|
||||
-- Actions taken on followup requests.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE followupactions
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
request_id INTEGER NOT NULL,
|
||||
actor INTEGER NOT NULL,
|
||||
date TIMESTAMP DEFAULT 'now()' NOT NULL,
|
||||
notes TEXT,
|
||||
closed BOOLEAN DEFAULT false
|
||||
);
|
||||
GRANT SELECT ON followupactions TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts ;
|
||||
GRANT INSERT ON followupactions TO admin,
|
||||
issueexperts ;
|
||||
GRANT UPDATE ON followupactions TO admin ;
|
||||
GRANT DELETE ON followupactions TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table followupmethods for entity followupmethods
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE followupmethods
|
||||
(
|
||||
id VARCHAR(32) NOT NULL PRIMARY KEY
|
||||
);
|
||||
GRANT SELECT ON followupmethods TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON followupmethods TO admin ;
|
||||
GRANT UPDATE ON followupmethods TO admin ;
|
||||
GRANT DELETE ON followupmethods TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table followuprequests for entity followuprequests
|
||||
--
|
||||
-- Requests for a followup with an issue expert
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE followuprequests
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
elector_id INTEGER NOT NULL,
|
||||
visit_id INTEGER NOT NULL,
|
||||
issue_id VARCHAR(32) NOT NULL,
|
||||
method_id VARCHAR(32) NOT NULL
|
||||
);
|
||||
GRANT SELECT ON followuprequests TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON followuprequests TO admin,
|
||||
canvassers ;
|
||||
GRANT UPDATE ON followuprequests TO admin ;
|
||||
GRANT DELETE ON followuprequests TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table genders for entity genders
|
||||
--
|
||||
-- All genders which may be assigned to electors.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE genders
|
||||
(
|
||||
id VARCHAR(32) NOT NULL PRIMARY KEY
|
||||
);
|
||||
GRANT SELECT ON genders TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON genders TO admin ;
|
||||
GRANT UPDATE ON genders TO admin ;
|
||||
GRANT DELETE ON genders TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table intentions for entity intentions
|
||||
--
|
||||
-- Link table.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE intentions
|
||||
(
|
||||
Id SERIAL NOT NULL PRIMARY KEY,
|
||||
visit_id INTEGER NOT NULL,
|
||||
elector_id INTEGER NOT NULL,
|
||||
option_id VARCHAR(32) NOT NULL
|
||||
);
|
||||
GRANT SELECT ON intentions TO admin,
|
||||
analysts,
|
||||
canvassers ;
|
||||
GRANT INSERT ON intentions TO admin,
|
||||
canvassers ;
|
||||
GRANT UPDATE ON intentions TO admin ;
|
||||
GRANT DELETE ON intentions TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table issues for entity issues
|
||||
--
|
||||
-- Issues believed to be of interest to electors, about which they may
|
||||
-- have questions.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE issues
|
||||
(
|
||||
id VARCHAR(32) NOT NULL PRIMARY KEY,
|
||||
url VARCHAR(256),
|
||||
current BOOLEAN DEFAULT true
|
||||
);
|
||||
GRANT SELECT ON issues TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON issues TO admin,
|
||||
issueeditors ;
|
||||
GRANT UPDATE ON issues TO admin,
|
||||
issueeditors ;
|
||||
GRANT DELETE ON issues TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table options for entity options
|
||||
--
|
||||
-- Options in the election or referendum being canvassed on
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE options
|
||||
(
|
||||
id VARCHAR(32) NOT NULL PRIMARY KEY
|
||||
);
|
||||
GRANT SELECT ON options TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON options TO admin ;
|
||||
GRANT UPDATE ON options TO admin ;
|
||||
GRANT DELETE ON options TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table roles for entity roles
|
||||
--
|
||||
-- A role (essentially, the same as a group, but application layer rather
|
||||
-- than database layer) of which a user may be a member.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE roles
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
name VARCHAR(64) NOT NULL
|
||||
);
|
||||
GRANT SELECT ON roles TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON roles TO admin ;
|
||||
GRANT UPDATE ON roles TO admin ;
|
||||
GRANT DELETE ON roles TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table teams for entity teams
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE teams
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
name VARCHAR(64) NOT NULL,
|
||||
district_id INTEGER NOT NULL,
|
||||
latitude DOUBLE PRECISION,
|
||||
longitude DOUBLE PRECISION
|
||||
);
|
||||
GRANT SELECT ON teams TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON teams TO admin,
|
||||
teamorganisers ;
|
||||
GRANT UPDATE ON teams TO admin,
|
||||
teamorganisers ;
|
||||
GRANT DELETE ON teams TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- primary table visits for entity visits
|
||||
--
|
||||
-- All visits made by canvassers to dwellings in which opinions were
|
||||
-- recorded.
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE visits
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
address_id INTEGER NOT NULL,
|
||||
canvasser_id INTEGER NOT NULL,
|
||||
date TIMESTAMP DEFAULT 'now()' NOT NULL
|
||||
);
|
||||
GRANT SELECT ON visits TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON visits TO admin,
|
||||
canvassers,
|
||||
teamorganisers ;
|
||||
GRANT UPDATE ON visits TO admin ;
|
||||
GRANT DELETE ON visits TO admin ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_addresses of entity addresses for lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_addresses AS
|
||||
SELECT addresses.address,
|
||||
addresses.postcode,
|
||||
addresses.phone,
|
||||
districts.name AS district_id_expanded,
|
||||
addresses.district_id,
|
||||
addresses.latitude,
|
||||
addresses.longitude,
|
||||
addresses.locality,
|
||||
addresses.id
|
||||
FROM addresses, districts
|
||||
WHERE addresses.district_id = districts.id
|
||||
;
|
||||
GRANT SELECT ON lv_addresses TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_authorities of entity authorities for lists, et
|
||||
-- cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_authorities AS
|
||||
SELECT authorities.id
|
||||
FROM authorities
|
||||
;
|
||||
GRANT SELECT ON lv_authorities TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_canvassers of entity canvassers for lists, et
|
||||
-- cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_canvassers AS
|
||||
SELECT canvassers.username,
|
||||
canvassers.fullname,
|
||||
electors.name ||', '|| electors.phone ||', '|| electors.email ||', '|| genders.id AS elector_id_expanded,
|
||||
canvassers.elector_id,
|
||||
addresses.address ||', '|| addresses.postcode AS address_id_expanded,
|
||||
canvassers.address_id,
|
||||
canvassers.phone,
|
||||
canvassers.email,
|
||||
authorities.id AS authority_id_expanded,
|
||||
canvassers.authority_id,
|
||||
canvassers.authorised,
|
||||
canvassers.id
|
||||
FROM canvassers, authorities, addresses, genders, electors
|
||||
WHERE canvassers.elector_id = electors.id
|
||||
AND canvassers.address_id = addresses.id
|
||||
AND canvassers.authority_id = authorities.id
|
||||
;
|
||||
GRANT SELECT ON lv_canvassers TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_districts of entity districts for lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_districts AS
|
||||
SELECT districts.name,
|
||||
districts.id
|
||||
FROM districts
|
||||
;
|
||||
GRANT SELECT ON lv_districts TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
public,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_dwellings of entity dwellings for lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_dwellings AS
|
||||
SELECT addresses.address ||', '|| addresses.postcode AS address_id_expanded,
|
||||
dwellings.address_id,
|
||||
dwellings.sub_address,
|
||||
dwellings.id
|
||||
FROM dwellings, addresses
|
||||
WHERE dwellings.address_id = addresses.id
|
||||
;
|
||||
GRANT SELECT ON lv_dwellings TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_electors of entity electors for lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_electors AS
|
||||
SELECT electors.name,
|
||||
addresses.address ||', '|| addresses.postcode ||', '|| dwellings.sub_address AS dwelling_id_expanded,
|
||||
electors.dwelling_id,
|
||||
electors.phone,
|
||||
electors.email,
|
||||
genders.id AS gender_expanded,
|
||||
electors.gender,
|
||||
electors.id
|
||||
FROM dwellings, addresses, genders, electors
|
||||
WHERE electors.dwelling_id = dwellings.id
|
||||
AND electors.gender = genders.id
|
||||
;
|
||||
GRANT SELECT ON lv_electors TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_followupactions of entity followupactions for
|
||||
-- lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_followupactions AS
|
||||
SELECT electors.name ||', '|| electors.phone ||', '|| electors.email ||', '|| genders.id ||', '|| addresses.address ||', '|| addresses.postcode ||', '|| visits.date ||', '|| issues.id AS request_id_expanded,
|
||||
followupactions.request_id,
|
||||
canvassers.username ||', '|| canvassers.fullname ||', '|| canvassers.email AS actor_expanded,
|
||||
followupactions.actor,
|
||||
followupactions.date,
|
||||
followupactions.notes,
|
||||
followupactions.closed,
|
||||
followupactions.id
|
||||
FROM followuprequests, visits, canvassers, addresses, followupactions, genders, issues, electors
|
||||
WHERE followupactions.request_id = followuprequests.id
|
||||
AND followupactions.actor = canvassers.id
|
||||
;
|
||||
GRANT SELECT ON lv_followupactions TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_followupmethods of entity followupmethods for
|
||||
-- lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_followupmethods AS
|
||||
SELECT followupmethods.id
|
||||
FROM followupmethods
|
||||
;
|
||||
GRANT SELECT ON lv_followupmethods TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_followuprequests of entity followuprequests for
|
||||
-- lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_followuprequests AS
|
||||
SELECT electors.name ||', '|| electors.phone ||', '|| electors.email ||', '|| genders.id AS elector_id_expanded,
|
||||
followuprequests.elector_id,
|
||||
addresses.address ||', '|| addresses.postcode ||', '|| visits.date AS visit_id_expanded,
|
||||
followuprequests.visit_id,
|
||||
issues.id AS issue_id_expanded,
|
||||
followuprequests.issue_id,
|
||||
followupmethods.id AS method_id_expanded,
|
||||
followuprequests.method_id,
|
||||
followuprequests.id
|
||||
FROM followuprequests, visits, addresses, genders, issues, electors, followupmethods
|
||||
WHERE followuprequests.elector_id = electors.id
|
||||
AND followuprequests.visit_id = visits.id
|
||||
AND followuprequests.issue_id = issues.id
|
||||
AND followuprequests.method_id = followupmethods.id
|
||||
;
|
||||
GRANT SELECT ON lv_followuprequests TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_genders of entity genders for lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_genders AS
|
||||
SELECT genders.id
|
||||
FROM genders
|
||||
;
|
||||
GRANT SELECT ON lv_genders TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_intentions of entity intentions for lists, et
|
||||
-- cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_intentions AS
|
||||
SELECT addresses.address ||', '|| addresses.postcode ||', '|| visits.date AS visit_id_expanded,
|
||||
intentions.visit_id,
|
||||
electors.name ||', '|| electors.phone ||', '|| electors.email ||', '|| genders.id AS elector_id_expanded,
|
||||
intentions.elector_id,
|
||||
options.id AS option_id_expanded,
|
||||
intentions.option_id,
|
||||
intentions.Id
|
||||
FROM visits, intentions, addresses, genders, electors, options
|
||||
WHERE intentions.visit_id = visits.id
|
||||
AND intentions.elector_id = electors.id
|
||||
AND intentions.option_id = options.id
|
||||
;
|
||||
GRANT SELECT ON lv_intentions TO admin,
|
||||
analysts,
|
||||
canvassers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_issues of entity issues for lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_issues AS
|
||||
SELECT issues.url,
|
||||
issues.current,
|
||||
issues.id
|
||||
FROM issues
|
||||
;
|
||||
GRANT SELECT ON lv_issues TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_options of entity options for lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_options AS
|
||||
SELECT options.id
|
||||
FROM options
|
||||
;
|
||||
GRANT SELECT ON lv_options TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_roles of entity roles for lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_roles AS
|
||||
SELECT roles.name,
|
||||
roles.id
|
||||
FROM roles
|
||||
;
|
||||
GRANT SELECT ON lv_roles TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_teams of entity teams for lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_teams AS
|
||||
SELECT teams.name,
|
||||
districts.name AS district_id_expanded,
|
||||
teams.district_id,
|
||||
teams.latitude,
|
||||
teams.longitude,
|
||||
teams.id
|
||||
FROM teams, districts
|
||||
WHERE teams.district_id = districts.id
|
||||
;
|
||||
GRANT SELECT ON lv_teams TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- convenience view lv_visits of entity visits for lists, et cetera
|
||||
------------------------------------------------------------------------
|
||||
CREATE VIEW lv_visits AS
|
||||
SELECT addresses.address ||', '|| addresses.postcode AS address_id_expanded,
|
||||
visits.address_id,
|
||||
canvassers.username ||', '|| canvassers.fullname ||', '|| canvassers.email AS canvasser_id_expanded,
|
||||
visits.canvasser_id,
|
||||
visits.date,
|
||||
visits.id
|
||||
FROM visits, canvassers, addresses
|
||||
WHERE visits.address_id = addresses.id
|
||||
AND visits.canvasser_id = canvassers.id
|
||||
;
|
||||
GRANT SELECT ON lv_visits TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- referential integrity links for primary tables
|
||||
------------------------------------------------------------------------
|
||||
|
||||
ALTER TABLE addresses ADD CONSTRAINT ri_addresses_districts_district_id
|
||||
FOREIGN KEY( district_id )
|
||||
REFERENCES districts(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE canvassers ADD CONSTRAINT ri_canvassers_addresses_address_id
|
||||
FOREIGN KEY( address_id )
|
||||
REFERENCES addresses(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE canvassers ADD CONSTRAINT ri_canvassers_authorities_authority_id
|
||||
FOREIGN KEY( authority_id )
|
||||
REFERENCES authorities(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE canvassers ADD CONSTRAINT ri_canvassers_electors_elector_id
|
||||
FOREIGN KEY( elector_id )
|
||||
REFERENCES electors(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE dwellings ADD CONSTRAINT ri_dwellings_addresses_address_id
|
||||
FOREIGN KEY( address_id )
|
||||
REFERENCES addresses(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE electors ADD CONSTRAINT ri_electors_dwellings_dwelling_id
|
||||
FOREIGN KEY( dwelling_id )
|
||||
REFERENCES dwellings(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE electors ADD CONSTRAINT ri_electors_genders_gender
|
||||
FOREIGN KEY( gender )
|
||||
REFERENCES genders(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE followupactions ADD CONSTRAINT ri_followupactions_canvassers_actor
|
||||
FOREIGN KEY( actor )
|
||||
REFERENCES canvassers(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE followupactions ADD CONSTRAINT ri_followupactions_followuprequests_request_id
|
||||
FOREIGN KEY( request_id )
|
||||
REFERENCES followuprequests(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE followuprequests ADD CONSTRAINT ri_followuprequests_electors_elector_id
|
||||
FOREIGN KEY( elector_id )
|
||||
REFERENCES electors(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE followuprequests ADD CONSTRAINT ri_followuprequests_issues_issue_id
|
||||
FOREIGN KEY( issue_id )
|
||||
REFERENCES issues(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE followuprequests ADD CONSTRAINT ri_followuprequests_followupmethods_method_id
|
||||
FOREIGN KEY( method_id )
|
||||
REFERENCES followupmethods(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE followuprequests ADD CONSTRAINT ri_followuprequests_visits_visit_id
|
||||
FOREIGN KEY( visit_id )
|
||||
REFERENCES visits(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE intentions ADD CONSTRAINT ri_intentions_electors_elector_id
|
||||
FOREIGN KEY( elector_id )
|
||||
REFERENCES electors(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE intentions ADD CONSTRAINT ri_intentions_options_option_id
|
||||
FOREIGN KEY( option_id )
|
||||
REFERENCES options(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE intentions ADD CONSTRAINT ri_intentions_visits_visit_id
|
||||
FOREIGN KEY( visit_id )
|
||||
REFERENCES visits(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE teams ADD CONSTRAINT ri_teams_districts_district_id
|
||||
FOREIGN KEY( district_id )
|
||||
REFERENCES districts(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE visits ADD CONSTRAINT ri_visits_addresses_address_id
|
||||
FOREIGN KEY( address_id )
|
||||
REFERENCES addresses(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE visits ADD CONSTRAINT ri_visits_canvassers_canvasser_id
|
||||
FOREIGN KEY( canvasser_id )
|
||||
REFERENCES canvassers(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- link table joining canvassers with roles
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE ln_canvassers_roles
|
||||
(
|
||||
canvassers_id INTEGER,
|
||||
roles_id INTEGER
|
||||
);
|
||||
GRANT SELECT ON ln_canvassers_roles TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON ln_canvassers_roles TO admin,
|
||||
canvassers,
|
||||
teamorganisers ;
|
||||
GRANT UPDATE ON ln_canvassers_roles TO admin,
|
||||
canvassers,
|
||||
teamorganisers ;
|
||||
GRANT DELETE ON ln_canvassers_roles TO admin ;
|
||||
|
||||
ALTER TABLE ln_canvassers_roles ADD CONSTRAINT ri_ln_canvassers_roles_canvassers_canvassers_id
|
||||
FOREIGN KEY( canvassers_id )
|
||||
REFERENCES canvassers(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE ln_canvassers_roles ADD CONSTRAINT ri_ln_canvassers_roles_roles_roles_id
|
||||
FOREIGN KEY( roles_id )
|
||||
REFERENCES roles(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- link table joining teams with canvassers
|
||||
------------------------------------------------------------------------
|
||||
CREATE TABLE ln_canvassers_teams
|
||||
(
|
||||
teams_id INTEGER,
|
||||
canvassers_id INTEGER
|
||||
);
|
||||
GRANT SELECT ON ln_canvassers_teams TO admin,
|
||||
analysts,
|
||||
canvassers,
|
||||
issueeditors,
|
||||
issueexperts,
|
||||
teamorganisers ;
|
||||
GRANT INSERT ON ln_canvassers_teams TO admin,
|
||||
teamorganisers ;
|
||||
GRANT UPDATE ON ln_canvassers_teams TO admin,
|
||||
teamorganisers ;
|
||||
GRANT DELETE ON ln_canvassers_teams TO admin ;
|
||||
|
||||
ALTER TABLE ln_canvassers_teams ADD CONSTRAINT ri_ln_canvassers_teams_canvassers_canvassers_id
|
||||
FOREIGN KEY( canvassers_id )
|
||||
REFERENCES canvassers(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
||||
ALTER TABLE ln_canvassers_teams ADD CONSTRAINT ri_ln_canvassers_teams_teams_teams_id
|
||||
FOREIGN KEY( teams_id )
|
||||
REFERENCES teams(id)
|
||||
ON DELETE NO ACTION ;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File application-index.html generated 2018-06-18T10:08:09.799Z by adl.to-selmer-templates.
|
||||
<!-- File application-index.html generated 2018-06-19T18:51:51.700Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-addresses-Address.html generated 2018-06-18T10:08:09.773Z by adl.to-selmer-templates.
|
||||
<!-- File form-addresses-Address.html generated 2018-06-19T18:51:51.676Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-addresses-Address' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='id' name='id' type='hidden' value='{{record.id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
|
@ -36,6 +35,10 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of addresses
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -50,6 +53,10 @@ address
|
|||
<span id='address' name='address' class='pseudo-widget disabled'>
|
||||
{{record.address}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='address' name='address' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view address of addresses
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -64,6 +71,10 @@ postcode
|
|||
<span id='postcode' name='postcode' class='pseudo-widget disabled'>
|
||||
{{record.postcode}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='postcode' name='postcode' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view postcode of addresses
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -78,6 +89,10 @@ phone
|
|||
<span id='phone' name='phone' class='pseudo-widget disabled'>
|
||||
{{record.phone}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='phone' name='phone' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view phone of addresses
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -97,108 +112,9 @@ district_id
|
|||
<span id='district_id' name='district_id' class='pseudo-widget disabled'>
|
||||
{{record.district_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='latitude'>
|
||||
latitude
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='latitude' name='latitude' type='number' value='{{record.latitude}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='latitude' name='latitude' class='pseudo-widget disabled'>
|
||||
{{record.latitude}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='longitude'>
|
||||
longitude
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='longitude' name='longitude' type='number' value='{{record.longitude}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='longitude' name='longitude' class='pseudo-widget disabled'>
|
||||
{{record.longitude}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='address'>
|
||||
address
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='address' name='address' type='text' value='{{record.address}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='address' name='address' class='pseudo-widget disabled'>
|
||||
{{record.address}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='postcode'>
|
||||
postcode
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='postcode' name='postcode' type='text' value='{{record.postcode}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='postcode' name='postcode' class='pseudo-widget disabled'>
|
||||
{{record.postcode}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='phone'>
|
||||
phone
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='phone' name='phone' type='text' value='{{record.phone}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='phone' name='phone' class='pseudo-widget disabled'>
|
||||
{{record.phone}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='district_id'>
|
||||
district_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='districts' found='true'>
|
||||
<input name='district_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='district_id' name='district_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in districts %}<option value='{{record.id}}'>{{record.name}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='district_id' name='district_id' class='pseudo-widget disabled'>
|
||||
{{record.district_id}}
|
||||
<span id='district_id' name='district_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view district_id of addresses
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -214,6 +130,10 @@ latitude
|
|||
<span id='latitude' name='latitude' class='pseudo-widget disabled'>
|
||||
{{record.latitude}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='latitude' name='latitude' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view latitude of addresses
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -228,6 +148,10 @@ longitude
|
|||
<span id='longitude' name='longitude' class='pseudo-widget disabled'>
|
||||
{{record.longitude}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='longitude' name='longitude' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view longitude of addresses
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -235,13 +159,13 @@ longitude
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this addresses record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this addresses record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-authorities-Authority.html generated 2018-06-18T10:08:09.818Z by adl.to-selmer-templates.
|
||||
<!-- File form-authorities-Authority.html generated 2018-06-19T18:51:51.716Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -35,33 +35,9 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of authorities
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -70,13 +46,13 @@ id
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this authorities record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this authorities record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-canvassers-Canvasser.html generated 2018-06-18T10:08:09.823Z by adl.to-selmer-templates.
|
||||
<!-- File form-canvassers-Canvasser.html generated 2018-06-19T18:51:51.720Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-canvassers-Canvasser' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='id' name='id' type='hidden' value='{{record.id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
|
@ -36,6 +35,10 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -50,6 +53,10 @@ username
|
|||
<span id='username' name='username' class='pseudo-widget disabled'>
|
||||
{{record.username}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='username' name='username' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view username of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -64,6 +71,10 @@ fullname
|
|||
<span id='fullname' name='fullname' class='pseudo-widget disabled'>
|
||||
{{record.fullname}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='fullname' name='fullname' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view fullname of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -83,146 +94,9 @@ elector_id
|
|||
<span id='elector_id' name='elector_id' class='pseudo-widget disabled'>
|
||||
{{record.elector_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='address_id'>
|
||||
address_id
|
||||
</label>
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<div class='select-box' farside='addresses' found='true'>
|
||||
<input name='address_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='address_id' name='address_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in addresses %}<option value='{{record.id}}'>{{record.address}} {{record.postcode}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='address_id' name='address_id' class='pseudo-widget disabled'>
|
||||
{{record.address_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='phone'>
|
||||
phone
|
||||
</label>
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<input id='phone' name='phone' type='text' value='{{record.phone}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='phone' name='phone' class='pseudo-widget disabled'>
|
||||
{{record.phone}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='email'>
|
||||
email
|
||||
</label>
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<input id='email' name='email' type='text' value='{{record.email}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='email' name='email' class='pseudo-widget disabled'>
|
||||
{{record.email}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='authority_id'>
|
||||
authority_id
|
||||
</label>
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<div class='select-box' farside='authorities' found='true'>
|
||||
<input name='authority_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='authority_id' name='authority_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in authorities %}<option value='{{record.id}}'>{{record.id}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='authority_id' name='authority_id' class='pseudo-widget disabled'>
|
||||
{{record.authority_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='authorised'>
|
||||
authorised
|
||||
</label>
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<input id='authorised' name='authorised' type='checkbox' value='{{record.authorised}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='authorised' name='authorised' class='pseudo-widget disabled'>
|
||||
{{record.authorised}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='username'>
|
||||
username
|
||||
</label>
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<input id='username' name='username' type='text' value='{{record.username}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='username' name='username' class='pseudo-widget disabled'>
|
||||
{{record.username}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='fullname'>
|
||||
fullname
|
||||
</label>
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<input id='fullname' name='fullname' type='text' value='{{record.fullname}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='fullname' name='fullname' class='pseudo-widget disabled'>
|
||||
{{record.fullname}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='elector_id'>
|
||||
elector_id
|
||||
</label>
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers admin %}
|
||||
<div class='select-box' farside='electors' found='true'>
|
||||
<input name='elector_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='elector_id' name='elector_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in electors %}<option value='{{record.id}}'>{{record.name}} {{record.phone}} {{record.email}} {{record.gender}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='elector_id' name='elector_id' class='pseudo-widget disabled'>
|
||||
{{record.elector_id}}
|
||||
<span id='elector_id' name='elector_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view elector_id of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -243,6 +117,10 @@ address_id
|
|||
<span id='address_id' name='address_id' class='pseudo-widget disabled'>
|
||||
{{record.address_id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='address_id' name='address_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view address_id of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -257,6 +135,10 @@ phone
|
|||
<span id='phone' name='phone' class='pseudo-widget disabled'>
|
||||
{{record.phone}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='phone' name='phone' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view phone of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -271,6 +153,10 @@ email
|
|||
<span id='email' name='email' class='pseudo-widget disabled'>
|
||||
{{record.email}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='email' name='email' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view email of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -290,6 +176,10 @@ authority_id
|
|||
<span id='authority_id' name='authority_id' class='pseudo-widget disabled'>
|
||||
{{record.authority_id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='authority_id' name='authority_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view authority_id of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -304,6 +194,10 @@ authorised
|
|||
<span id='authorised' name='authorised' class='pseudo-widget disabled'>
|
||||
{{record.authorised}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='authorised' name='authorised' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view authorised of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -322,6 +216,10 @@ roles
|
|||
<span id='roles' name='roles' class='pseudo-widget disabled'>
|
||||
{{record.roles}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='roles' name='roles' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view roles of canvassers
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -329,13 +227,13 @@ roles
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this canvassers record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this canvassers record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-districts-District.html generated 2018-06-18T10:08:09.756Z by adl.to-selmer-templates.
|
||||
<!-- File form-districts-District.html generated 2018-06-19T18:51:51.662Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-districts-District' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='id' name='id' type='hidden' value='{{record.id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
|
@ -36,6 +35,10 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of districts
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -50,33 +53,9 @@ name
|
|||
<span id='name' name='name' class='pseudo-widget disabled'>
|
||||
{{record.name}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof public admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='name'>
|
||||
name
|
||||
</label>
|
||||
{% ifmemberof admin admin %}
|
||||
<input id='name' name='name' type='text' value='{{record.name}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof public admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='name' name='name' class='pseudo-widget disabled'>
|
||||
{{record.name}}
|
||||
<span id='name' name='name' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view name of districts
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -85,13 +64,13 @@ name
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this districts record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this districts record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-dwellings-Dwelling.html generated 2018-06-18T10:08:09.847Z by adl.to-selmer-templates.
|
||||
<!-- File form-dwellings-Dwelling.html generated 2018-06-19T18:51:51.739Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-dwellings-Dwelling' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='id' name='id' type='hidden' value='{{record.id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
|
@ -36,6 +35,10 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of dwellings
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -55,52 +58,9 @@ address_id
|
|||
<span id='address_id' name='address_id' class='pseudo-widget disabled'>
|
||||
{{record.address_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='sub-address'>
|
||||
sub-address
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='sub-address' name='sub-address' type='text' value='{{record.sub-address}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='sub-address' name='sub-address' class='pseudo-widget disabled'>
|
||||
{{record.sub-address}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='address_id'>
|
||||
address_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='addresses' found='true'>
|
||||
<input name='address_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='address_id' name='address_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in addresses %}<option value='{{record.id}}'>{{record.address}} {{record.postcode}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='address_id' name='address_id' class='pseudo-widget disabled'>
|
||||
{{record.address_id}}
|
||||
<span id='address_id' name='address_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view address_id of dwellings
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -116,6 +76,10 @@ sub-address
|
|||
<span id='sub-address' name='sub-address' class='pseudo-widget disabled'>
|
||||
{{record.sub-address}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='sub-address' name='sub-address' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view sub-address of dwellings
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -123,13 +87,13 @@ sub-address
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this dwellings record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this dwellings record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-electors-Elector.html generated 2018-06-18T10:08:09.808Z by adl.to-selmer-templates.
|
||||
<!-- File form-electors-Elector.html generated 2018-06-19T18:51:51.709Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-electors-Elector' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='id' name='id' type='hidden' value='{{record.id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
|
@ -36,6 +35,10 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of electors
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -50,6 +53,10 @@ name
|
|||
<span id='name' name='name' class='pseudo-widget disabled'>
|
||||
{{record.name}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='name' name='name' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view name of electors
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -69,6 +76,10 @@ dwelling_id
|
|||
<span id='dwelling_id' name='dwelling_id' class='pseudo-widget disabled'>
|
||||
{{record.dwelling_id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='dwelling_id' name='dwelling_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view dwelling_id of electors
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -83,6 +94,10 @@ phone
|
|||
<span id='phone' name='phone' class='pseudo-widget disabled'>
|
||||
{{record.phone}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='phone' name='phone' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view phone of electors
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -97,6 +112,10 @@ email
|
|||
<span id='email' name='email' class='pseudo-widget disabled'>
|
||||
{{record.email}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='email' name='email' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view email of electors
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -115,98 +134,9 @@ gender
|
|||
<span id='gender' name='gender' class='pseudo-widget disabled'>
|
||||
{{record.gender}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='name'>
|
||||
name
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='name' name='name' type='text' value='{{record.name}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='name' name='name' class='pseudo-widget disabled'>
|
||||
{{record.name}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='dwelling_id'>
|
||||
dwelling_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='dwellings' found='true'>
|
||||
<input name='dwelling_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='dwelling_id' name='dwelling_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in dwellings %}<option value='{{record.id}}'>{{record.address_id}} {{record.sub-address}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='dwelling_id' name='dwelling_id' class='pseudo-widget disabled'>
|
||||
{{record.dwelling_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='phone'>
|
||||
phone
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='phone' name='phone' type='text' value='{{record.phone}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='phone' name='phone' class='pseudo-widget disabled'>
|
||||
{{record.phone}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='email'>
|
||||
email
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='email' name='email' type='text' value='{{record.email}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='email' name='email' class='pseudo-widget disabled'>
|
||||
{{record.email}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='gender'>
|
||||
gender
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='genders' found='true'>
|
||||
<select id='gender' name='gender'>
|
||||
{% for record in genders %}<option value='{{record.id}}'>{{record.id}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='gender' name='gender' class='pseudo-widget disabled'>
|
||||
{{record.gender}}
|
||||
<span id='gender' name='gender' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view gender of electors
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -215,13 +145,13 @@ gender
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this electors record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this electors record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-followupactions-Followupaction.html generated 2018-06-18T10:08:09.853Z by adl.to-selmer-templates.
|
||||
<!-- File form-followupactions-Followupaction.html generated 2018-06-19T18:51:51.743Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-followupactions-Followupaction' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='id' name='id' type='hidden' value='{{record.id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
|
@ -36,6 +35,10 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of followupactions
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -55,99 +58,9 @@ request_id
|
|||
<span id='request_id' name='request_id' class='pseudo-widget disabled'>
|
||||
{{record.request_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='actor'>
|
||||
actor
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='canvassers' found='true'>
|
||||
<input name='actor-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='actor' name='actor' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in canvassers %}<option value='{{record.id}}'>{{record.username}} {{record.fullname}} {{record.email}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof issueexperts canvassers analysts issueeditors admin %}
|
||||
<span id='actor' name='actor' class='pseudo-widget disabled'>
|
||||
{{record.actor}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='date'>
|
||||
date
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='date' name='date' type='text' value='{{record.date}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof issueexperts canvassers analysts issueeditors admin %}
|
||||
<span id='date' name='date' class='pseudo-widget disabled'>
|
||||
{{record.date}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='notes'>
|
||||
notes
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='notes' name='notes' type='text' value='{{record.notes}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof issueexperts canvassers analysts issueeditors admin %}
|
||||
<span id='notes' name='notes' class='pseudo-widget disabled'>
|
||||
{{record.notes}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='closed'>
|
||||
closed
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='closed' name='closed' type='checkbox' value='{{record.closed}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof issueexperts canvassers analysts issueeditors admin %}
|
||||
<span id='closed' name='closed' class='pseudo-widget disabled'>
|
||||
{{record.closed}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof issueexperts canvassers analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='request_id'>
|
||||
request_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='followuprequests' found='true'>
|
||||
<input name='request_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='request_id' name='request_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in followuprequests %}<option value='{{record.id}}'>{{record.elector_id}} {{record.visit_id}} {{record.issue_id}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof issueexperts canvassers analysts issueeditors admin %}
|
||||
<span id='request_id' name='request_id' class='pseudo-widget disabled'>
|
||||
{{record.request_id}}
|
||||
<span id='request_id' name='request_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view request_id of followupactions
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -168,6 +81,10 @@ actor
|
|||
<span id='actor' name='actor' class='pseudo-widget disabled'>
|
||||
{{record.actor}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='actor' name='actor' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view actor of followupactions
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -182,6 +99,10 @@ date
|
|||
<span id='date' name='date' class='pseudo-widget disabled'>
|
||||
{{record.date}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='date' name='date' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view date of followupactions
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -196,6 +117,10 @@ notes
|
|||
<span id='notes' name='notes' class='pseudo-widget disabled'>
|
||||
{{record.notes}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='notes' name='notes' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view notes of followupactions
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -210,6 +135,10 @@ closed
|
|||
<span id='closed' name='closed' class='pseudo-widget disabled'>
|
||||
{{record.closed}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='closed' name='closed' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view closed of followupactions
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -217,13 +146,13 @@ closed
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this followupactions record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this followupactions record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-followupmethods-Followupmethod.html generated 2018-06-18T10:08:09.859Z by adl.to-selmer-templates.
|
||||
<!-- File form-followupmethods-Followupmethod.html generated 2018-06-19T18:51:51.746Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -35,33 +35,9 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of followupmethods
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -70,13 +46,13 @@ id
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this followupmethods record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this followupmethods record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-followuprequests-Followuprequest.html generated 2018-06-18T10:08:09.760Z by adl.to-selmer-templates.
|
||||
<!-- File form-followuprequests-Followuprequest.html generated 2018-06-19T18:51:51.667Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-followuprequests-Followuprequest' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='id' name='id' type='hidden' value='{{record.id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
|
@ -36,6 +35,10 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of followuprequests
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -55,93 +58,9 @@ elector_id
|
|||
<span id='elector_id' name='elector_id' class='pseudo-widget disabled'>
|
||||
{{record.elector_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='visit_id'>
|
||||
visit_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='visits' found='true'>
|
||||
<input name='visit_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='visit_id' name='visit_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in visits %}<option value='{{record.id}}'>{{record.address_id}} {{record.date}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='visit_id' name='visit_id' class='pseudo-widget disabled'>
|
||||
{{record.visit_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='issue_id'>
|
||||
issue_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='issues' found='true'>
|
||||
<select id='issue_id' name='issue_id'>
|
||||
{% for record in issues %}<option value='{{record.id}}'>{{record.id}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='issue_id' name='issue_id' class='pseudo-widget disabled'>
|
||||
{{record.issue_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='method_id'>
|
||||
method_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='followupmethods' found='true'>
|
||||
<select id='method_id' name='method_id'>
|
||||
{% for record in followupmethods %}<option value='{{record.id}}'>{{record.id}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='method_id' name='method_id' class='pseudo-widget disabled'>
|
||||
{{record.method_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='elector_id'>
|
||||
elector_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='electors' found='true'>
|
||||
<input name='elector_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='elector_id' name='elector_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in electors %}<option value='{{record.id}}'>{{record.name}} {{record.phone}} {{record.email}} {{record.gender}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='elector_id' name='elector_id' class='pseudo-widget disabled'>
|
||||
{{record.elector_id}}
|
||||
<span id='elector_id' name='elector_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view elector_id of followuprequests
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -162,6 +81,10 @@ visit_id
|
|||
<span id='visit_id' name='visit_id' class='pseudo-widget disabled'>
|
||||
{{record.visit_id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='visit_id' name='visit_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view visit_id of followuprequests
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -180,6 +103,10 @@ issue_id
|
|||
<span id='issue_id' name='issue_id' class='pseudo-widget disabled'>
|
||||
{{record.issue_id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='issue_id' name='issue_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view issue_id of followuprequests
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -198,6 +125,10 @@ method_id
|
|||
<span id='method_id' name='method_id' class='pseudo-widget disabled'>
|
||||
{{record.method_id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='method_id' name='method_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view method_id of followuprequests
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -205,13 +136,13 @@ method_id
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this followuprequests record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this followuprequests record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-genders-Gender.html generated 2018-06-18T10:08:09.742Z by adl.to-selmer-templates.
|
||||
<!-- File form-genders-Gender.html generated 2018-06-19T18:51:51.652Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -35,33 +35,9 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of genders
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -70,13 +46,13 @@ id
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this genders record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this genders record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-intentions-Intention.html generated 2018-06-18T10:08:09.837Z by adl.to-selmer-templates.
|
||||
<!-- File form-intentions-Intention.html generated 2018-06-19T18:51:51.734Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-intentions-Intention' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='Id' name='Id' type='hidden' value='{{record.Id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='visit_id'>
|
||||
visit_id
|
||||
|
@ -41,6 +40,10 @@ visit_id
|
|||
<span id='visit_id' name='visit_id' class='pseudo-widget disabled'>
|
||||
{{record.visit_id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='visit_id' name='visit_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view visit_id of intentions
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -60,61 +63,9 @@ elector_id
|
|||
<span id='elector_id' name='elector_id' class='pseudo-widget disabled'>
|
||||
{{record.elector_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='option_id'>
|
||||
option_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='options' found='true'>
|
||||
<select id='option_id' name='option_id'>
|
||||
{% for record in options %}<option value='{{record.id}}'>{{record.id}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers analysts admin %}
|
||||
<span id='option_id' name='option_id' class='pseudo-widget disabled'>
|
||||
{{record.option_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='visit_id'>
|
||||
visit_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='visits' found='true'>
|
||||
<input name='visit_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='visit_id' name='visit_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in visits %}<option value='{{record.id}}'>{{record.address_id}} {{record.date}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers analysts admin %}
|
||||
<span id='visit_id' name='visit_id' class='pseudo-widget disabled'>
|
||||
{{record.visit_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='elector_id'>
|
||||
elector_id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<div class='select-box' farside='electors' found='true'>
|
||||
<input name='elector_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='elector_id' name='elector_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in electors %}<option value='{{record.id}}'>{{record.name}} {{record.phone}} {{record.email}} {{record.gender}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers analysts admin %}
|
||||
<span id='elector_id' name='elector_id' class='pseudo-widget disabled'>
|
||||
{{record.elector_id}}
|
||||
<span id='elector_id' name='elector_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view elector_id of intentions
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -134,6 +85,10 @@ option_id
|
|||
<span id='option_id' name='option_id' class='pseudo-widget disabled'>
|
||||
{{record.option_id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='option_id' name='option_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view option_id of intentions
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -141,13 +96,13 @@ option_id
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this intentions record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this intentions record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-issues-Issue.html generated 2018-06-18T10:08:09.783Z by adl.to-selmer-templates.
|
||||
<!-- File form-issues-Issue.html generated 2018-06-19T18:51:51.684Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -35,19 +35,9 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof issueeditors admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of issues
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -63,47 +53,9 @@ url
|
|||
<span id='url' name='url' class='pseudo-widget disabled'>
|
||||
{{record.url}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='current'>
|
||||
current
|
||||
</label>
|
||||
{% ifmemberof issueeditors admin %}
|
||||
<input id='current' name='current' type='checkbox' value='{{record.current}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='current' name='current' class='pseudo-widget disabled'>
|
||||
{{record.current}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof issueeditors admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='url'>
|
||||
url
|
||||
</label>
|
||||
{% ifmemberof issueeditors admin %}
|
||||
<input id='url' name='url' type='text' value='{{record.url}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='url' name='url' class='pseudo-widget disabled'>
|
||||
{{record.url}}
|
||||
<span id='url' name='url' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view url of issues
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -119,6 +71,10 @@ current
|
|||
<span id='current' name='current' class='pseudo-widget disabled'>
|
||||
{{record.current}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='current' name='current' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view current of issues
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -126,13 +82,13 @@ current
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this issues record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this issues record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-options-Option.html generated 2018-06-18T10:08:09.835Z by adl.to-selmer-templates.
|
||||
<!-- File form-options-Option.html generated 2018-06-19T18:51:51.733Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -35,33 +35,9 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of options
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -70,13 +46,13 @@ id
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this options record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this options record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-roles-Role.html generated 2018-06-18T10:08:09.788Z by adl.to-selmer-templates.
|
||||
<!-- File form-roles-Role.html generated 2018-06-19T18:51:51.687Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-roles-Role' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='id' name='id' type='hidden' value='{{record.id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
|
@ -36,6 +35,10 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of roles
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -50,33 +53,9 @@ name
|
|||
<span id='name' name='name' class='pseudo-widget disabled'>
|
||||
{{record.name}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='name'>
|
||||
name
|
||||
</label>
|
||||
{% ifmemberof admin %}
|
||||
<input id='name' name='name' type='text' value='{{record.name}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='name' name='name' class='pseudo-widget disabled'>
|
||||
{{record.name}}
|
||||
<span id='name' name='name' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view name of roles
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -97,6 +76,10 @@ members
|
|||
<span id='members' name='members' class='pseudo-widget disabled'>
|
||||
{{record.members}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='members' name='members' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view members of roles
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -104,13 +87,13 @@ members
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this roles record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this roles record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-teams-Team.html generated 2018-06-18T10:08:09.801Z by adl.to-selmer-templates.
|
||||
<!-- File form-teams-Team.html generated 2018-06-19T18:51:51.702Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-teams-Team' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='id' name='id' type='hidden' value='{{record.id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
|
@ -36,6 +35,10 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of teams
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -50,6 +53,10 @@ name
|
|||
<span id='name' name='name' class='pseudo-widget disabled'>
|
||||
{{record.name}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='name' name='name' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view name of teams
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -69,80 +76,9 @@ district_id
|
|||
<span id='district_id' name='district_id' class='pseudo-widget disabled'>
|
||||
{{record.district_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='latitude'>
|
||||
latitude
|
||||
</label>
|
||||
{% ifmemberof teamorganisers admin %}
|
||||
<input id='latitude' name='latitude' type='number' value='{{record.latitude}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='latitude' name='latitude' class='pseudo-widget disabled'>
|
||||
{{record.latitude}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='longitude'>
|
||||
longitude
|
||||
</label>
|
||||
{% ifmemberof teamorganisers admin %}
|
||||
<input id='longitude' name='longitude' type='number' value='{{record.longitude}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='longitude' name='longitude' class='pseudo-widget disabled'>
|
||||
{{record.longitude}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof teamorganisers admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='name'>
|
||||
name
|
||||
</label>
|
||||
{% ifmemberof teamorganisers admin %}
|
||||
<input id='name' name='name' type='text' value='{{record.name}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='name' name='name' class='pseudo-widget disabled'>
|
||||
{{record.name}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='district_id'>
|
||||
district_id
|
||||
</label>
|
||||
{% ifmemberof teamorganisers admin %}
|
||||
<div class='select-box' farside='districts' found='true'>
|
||||
<input name='district_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='district_id' name='district_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in districts %}<option value='{{record.id}}'>{{record.name}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='district_id' name='district_id' class='pseudo-widget disabled'>
|
||||
{{record.district_id}}
|
||||
<span id='district_id' name='district_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view district_id of teams
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -158,6 +94,10 @@ latitude
|
|||
<span id='latitude' name='latitude' class='pseudo-widget disabled'>
|
||||
{{record.latitude}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='latitude' name='latitude' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view latitude of teams
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -177,6 +117,10 @@ members
|
|||
<span id='members' name='members' class='pseudo-widget disabled'>
|
||||
{{record.members}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='members' name='members' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view members of teams
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -196,6 +140,10 @@ organisers
|
|||
<span id='organisers' name='organisers' class='pseudo-widget disabled'>
|
||||
{{record.organisers}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='organisers' name='organisers' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view organisers of teams
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -210,6 +158,10 @@ longitude
|
|||
<span id='longitude' name='longitude' class='pseudo-widget disabled'>
|
||||
{{record.longitude}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='longitude' name='longitude' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view longitude of teams
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -217,13 +169,13 @@ longitude
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this teams record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this teams record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File form-visits-Visit.html generated 2018-06-18T10:08:09.795Z by adl.to-selmer-templates.
|
||||
<!-- File form-visits-Visit.html generated 2018-06-19T18:51:51.695Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
@ -24,7 +24,6 @@ See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
|||
<div id='content' class='edit'>
|
||||
<form action='{{servlet-context}}/form-visits-Visit' method='POST'>
|
||||
{% csrf-field %}
|
||||
<input id='id' name='id' type='hidden' value='{{record.id}}'/>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
|
@ -36,6 +35,10 @@ id
|
|||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='id' name='id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view id of visits
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -55,71 +58,9 @@ address_id
|
|||
<span id='address_id' name='address_id' class='pseudo-widget disabled'>
|
||||
{{record.address_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='canvasser_id'>
|
||||
canvasser_id
|
||||
</label>
|
||||
{% ifmemberof admin admin %}
|
||||
<div class='select-box' farside='canvassers' found='true'>
|
||||
<input name='canvasser_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='canvasser_id' name='canvasser_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in canvassers %}<option value='{{record.id}}'>{{record.username}} {{record.fullname}} {{record.email}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='canvasser_id' name='canvasser_id' class='pseudo-widget disabled'>
|
||||
{{record.canvasser_id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='date'>
|
||||
date
|
||||
</label>
|
||||
{% ifmemberof admin admin %}
|
||||
<input id='date' name='date' type='text' value='{{record.date}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='date' name='date' class='pseudo-widget disabled'>
|
||||
{{record.date}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='id'>
|
||||
id
|
||||
</label>
|
||||
{% ifmemberof admin admin %}
|
||||
<input id='id' name='id' type='text' value='{{record.id}}'/>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='id' name='id' class='pseudo-widget disabled'>
|
||||
{{record.id}}
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
<p class='widget'>
|
||||
<label for='address_id'>
|
||||
address_id
|
||||
</label>
|
||||
{% ifmemberof admin admin %}
|
||||
<div class='select-box' farside='addresses' found='true'>
|
||||
<input name='address_id-search-box' onchange='/* javascript to repopulate the select widget */'/>
|
||||
<select id='address_id' name='address_id' comment='JavaScript stuff to fix up aynchronous loading'>
|
||||
{% for record in addresses %}<option value='{{record.id}}'>{{record.address}} {{record.postcode}}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin canvassers teamorganisers issueexperts analysts issueeditors admin %}
|
||||
<span id='address_id' name='address_id' class='pseudo-widget disabled'>
|
||||
{{record.address_id}}
|
||||
<span id='address_id' name='address_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view address_id of visits
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
|
@ -140,6 +81,10 @@ canvasser_id
|
|||
<span id='canvasser_id' name='canvasser_id' class='pseudo-widget disabled'>
|
||||
{{record.canvasser_id}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='canvasser_id' name='canvasser_id' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view canvasser_id of visits
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -154,6 +99,10 @@ date
|
|||
<span id='date' name='date' class='pseudo-widget disabled'>
|
||||
{{record.date}}
|
||||
</span>
|
||||
{% else %}
|
||||
<span id='date' name='date' class='pseudo-widget not-authorised'>
|
||||
You are not permitted to view date of visits
|
||||
</span>
|
||||
{% endifmemberof %}
|
||||
{% endifmemberof %}
|
||||
</p>
|
||||
|
@ -161,13 +110,13 @@ date
|
|||
<label for='save-button' class='action-safe'>
|
||||
To save this visits record
|
||||
</label>
|
||||
<input id='save-button' name='save-button' class='action-safe' type=':submit' value='Save!'/>
|
||||
<input id='save-button' name='save-button' class='action-safe' type='submit' value='Save!'/>
|
||||
</p>
|
||||
<p class='widget action-dangerous'>
|
||||
<label for='delete-button' class='action-dangerous'>
|
||||
To delete this visits record
|
||||
</label>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type=':submit' value='Delete!'/>
|
||||
<input id='delete-button' name='delete-button' class='action-dangerous' type='submit' value='Delete!'/>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-addresses-Addresses.html generated 2018-06-18T10:08:09.820Z by adl.to-selmer-templates.
|
||||
<!-- File list-addresses-Addresses.html generated 2018-06-19T18:51:51.718Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-authorities-Authorities.html generated 2018-06-18T10:08:09.758Z by adl.to-selmer-templates.
|
||||
<!-- File list-authorities-Authorities.html generated 2018-06-19T18:51:51.665Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-canvassers-Canvassers.html generated 2018-06-18T10:08:09.844Z by adl.to-selmer-templates.
|
||||
<!-- File list-canvassers-Canvassers.html generated 2018-06-19T18:51:51.737Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-districts-Districts.html generated 2018-06-18T10:08:09.831Z by adl.to-selmer-templates.
|
||||
<!-- File list-districts-Districts.html generated 2018-06-19T18:51:51.729Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-dwellings-Dwellings.html generated 2018-06-18T10:08:09.815Z by adl.to-selmer-templates.
|
||||
<!-- File list-dwellings-Dwellings.html generated 2018-06-19T18:51:51.714Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-electors-Electors.html generated 2018-06-18T10:08:09.780Z by adl.to-selmer-templates.
|
||||
<!-- File list-electors-Electors.html generated 2018-06-19T18:51:51.682Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-followupactions-Followupactions.html generated 2018-06-18T10:08:09.842Z by adl.to-selmer-templates.
|
||||
<!-- File list-followupactions-Followupactions.html generated 2018-06-19T18:51:51.736Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-followupmethods-Followupmethods.html generated 2018-06-18T10:08:09.793Z by adl.to-selmer-templates.
|
||||
<!-- File list-followupmethods-Followupmethods.html generated 2018-06-19T18:51:51.693Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-followuprequests-Followuprequests.html generated 2018-06-18T10:08:09.751Z by adl.to-selmer-templates.
|
||||
<!-- File list-followuprequests-Followuprequests.html generated 2018-06-19T18:51:51.657Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-genders-Genders.html generated 2018-06-18T10:08:09.734Z by adl.to-selmer-templates.
|
||||
<!-- File list-genders-Genders.html generated 2018-06-19T18:51:51.642Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-intentions-Intentions.html generated 2018-06-18T10:08:09.851Z by adl.to-selmer-templates.
|
||||
<!-- File list-intentions-Intentions.html generated 2018-06-19T18:51:51.741Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-issues-Issues.html generated 2018-06-18T10:08:09.833Z by adl.to-selmer-templates.
|
||||
<!-- File list-issues-Issues.html generated 2018-06-19T18:51:51.731Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-options-Options.html generated 2018-06-18T10:08:09.753Z by adl.to-selmer-templates.
|
||||
<!-- File list-options-Options.html generated 2018-06-19T18:51:51.660Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-roles-Roles.html generated 2018-06-18T10:08:09.791Z by adl.to-selmer-templates.
|
||||
<!-- File list-roles-Roles.html generated 2018-06-19T18:51:51.691Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-teams-Teams.html generated 2018-06-18T10:08:09.740Z by adl.to-selmer-templates.
|
||||
<!-- File list-teams-Teams.html generated 2018-06-19T18:51:51.649Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
<!-- File list-visits-Visits.html generated 2018-06-18T10:08:09.738Z by adl.to-selmer-templates.
|
||||
<!-- File list-visits-Visits.html generated 2018-06-19T18:51:51.646Z by adl.to-selmer-templates.
|
||||
See [Application Description Language](https://github.com/simon-brooke/adl).-->
|
||||
{% block head %}
|
||||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
Timestamp
|
||||
PreparedStatement]))
|
||||
|
||||
;; (def ^:dynamic *db* {:name "java:comp/env/jdbc/EmployeeDB"})
|
||||
(defstate ^:dynamic *db*
|
||||
:start (conman/connect! {:jdbc-url-env (env :database-url)
|
||||
:jdbc-url "jdbc:postgresql://127.0.0.1/youyesyet_dev?user=youyesyet&password=thisisnotsecure"
|
||||
|
|
|
@ -1,42 +1,31 @@
|
|||
(ns^{:doc "Render web pages using Selmer templating markup."
|
||||
(ns^{:doc "Render web pages using Selmer templating markup."
|
||||
:author "Simon Brooke"}
|
||||
youyesyet.layout
|
||||
(:require [selmer.parser :as parser]
|
||||
[selmer.filters :as filters]
|
||||
(:require [adl-support.tags :as tags]
|
||||
[markdown.core :refer [md-to-html-string]]
|
||||
[noir.session :as session]
|
||||
[ring.util.http-response :refer [content-type ok]]
|
||||
[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.filters :as filters]
|
||||
))
|
||||
|
||||
|
||||
|
||||
(declare ^:dynamic *app-context*)
|
||||
(parser/set-resource-path! (clojure.java.io/resource "templates"))
|
||||
(parser/add-tag! :csrf-field (fn [_ _] (anti-forgery-field)))
|
||||
(filters/add-filter! :markdown (fn [content] [:safe (md-to-html-string content)]))
|
||||
(declare ^:dynamic *app-context*)
|
||||
(parser/set-resource-path! (clojure.java.io/resource "templates"))
|
||||
(parser/add-tag! :csrf-field (fn [_ _] (anti-forgery-field)))
|
||||
(filters/add-filter! :markdown (fn [content] [:safe (md-to-html-string content)]))
|
||||
|
||||
|
||||
(parser/add-tag! :ifmemberof
|
||||
(fn [args context content]
|
||||
(let [permitted (if args (some (:user-groups context) args) false)]
|
||||
(if permitted
|
||||
(get-in content [:ifreadable :content]))))
|
||||
:else
|
||||
(fn [args context content]
|
||||
(let [permitted (if args (some (:user-groups context) args) false)]
|
||||
(if (not permitted)
|
||||
(get-in content [:else :content]))))
|
||||
:ifmemberof)
|
||||
|
||||
|
||||
(defn raw-get-user-roles [_]
|
||||
(defn raw-get-user-roles [_]
|
||||
#{"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"
|
||||
[template & [params]]
|
||||
(let [user (try session/get :user)]
|
||||
|
@ -48,17 +37,16 @@
|
|||
:page template
|
||||
:csrf-token *anti-forgery-token*
|
||||
:user user
|
||||
:user-roles [get-user-roles user]
|
||||
:user-roles (get-user-roles user)
|
||||
:version (System/getProperty "youyesyet.version"))))
|
||||
"text/html; charset=utf-8")))
|
||||
|
||||
|
||||
(defn error-page
|
||||
(defn error-page
|
||||
"error-details should be a map containing the following keys:
|
||||
:status - error status
|
||||
:title - error title (optional)
|
||||
:message - detailed error message (optional)
|
||||
|
||||
returns a response map with the error page as the body
|
||||
and the status specified by the status key"
|
||||
[error-details]
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
(ns
|
||||
youyesyet.routes.auto
|
||||
"User interface routes for Youyesyet auto-generated by [Application Description Language framework](https://github.com/simon-brooke/adl) at 20180617T110557.025Z"
|
||||
"User interface routes for Youyesyet auto-generated by [Application Description Language framework](https://github.com/simon-brooke/adl) at 20180619T185151.309Z"
|
||||
(:require
|
||||
[adl-support.core :as support]
|
||||
[clojure.java.io :as io]
|
||||
[compojure.core :refer [defroutes GET POST]]
|
||||
[hugsql.core :as hugsql]
|
||||
|
@ -13,119 +14,20 @@
|
|||
[youyesyet.routes.manual :as m]))
|
||||
|
||||
(defn
|
||||
raw-resolve-template
|
||||
[n]
|
||||
(if
|
||||
(.exists (io/as-file (str "resources/templates/" n)))
|
||||
n
|
||||
(str "auto/" n)))
|
||||
|
||||
(def resolve-template (memoize raw-resolve-template))
|
||||
|
||||
(defn
|
||||
index
|
||||
admin
|
||||
[r]
|
||||
(l/render
|
||||
(resolve-template "application-index.html")
|
||||
(support/resolve-template "application-index.html")
|
||||
{:title "Administrative menu"}))
|
||||
|
||||
(defn
|
||||
list-electors-Electors
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "list-electors-Electors.html")
|
||||
{:title "Electors",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-elector db/*db* p)
|
||||
(db/list-electors db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-electors-Elector
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "form-electors-Elector.html")
|
||||
{:title "Elector",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-elector db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-genders-Genders
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "list-genders-Genders.html")
|
||||
{:title "Genders",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-gender db/*db* p)
|
||||
(db/list-genders db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-genders-Gender
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "form-genders-Gender.html")
|
||||
{:title "Gender",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-gender db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-dwellings-Dwellings
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "list-dwellings-Dwellings.html")
|
||||
{:title "Dwellings",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-dwelling db/*db* p)
|
||||
(db/list-dwellings db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-dwellings-Dwelling
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "form-dwellings-Dwelling.html")
|
||||
{:title "Dwelling",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-dwelling db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-addresses-Addresses
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "list-addresses-Addresses.html")
|
||||
(support/resolve-template "list-addresses-Addresses.html")
|
||||
{:title "Addresses",
|
||||
:params p,
|
||||
:records
|
||||
|
@ -138,51 +40,24 @@
|
|||
form-addresses-Address
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "form-addresses-Address.html")
|
||||
(support/resolve-template "form-addresses-Address.html")
|
||||
{:title "Address",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-address db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-visits-Visits
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "list-visits-Visits.html")
|
||||
{:title "Visits",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-visit db/*db* p)
|
||||
(db/list-visits db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-visits-Visit
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "form-visits-Visit.html")
|
||||
{:title "Visit",
|
||||
:params p,
|
||||
:record
|
||||
(if (empty? (remove nil? (vals p))) [] (db/get-visit db/*db* p))})))
|
||||
(if (empty? (remove nil? (vals p))) [] (db/get-address db/*db* p)),
|
||||
:districts (db/list-districts db/*db*)})))
|
||||
|
||||
(defn
|
||||
list-authorities-Authorities
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "list-authorities-Authorities.html")
|
||||
(support/resolve-template "list-authorities-Authorities.html")
|
||||
{:title "Authorities",
|
||||
:params p,
|
||||
:records
|
||||
|
@ -195,9 +70,10 @@
|
|||
form-authorities-Authority
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "form-authorities-Authority.html")
|
||||
(support/resolve-template "form-authorities-Authority.html")
|
||||
{:title "Authority",
|
||||
:params p,
|
||||
:record
|
||||
|
@ -206,70 +82,14 @@
|
|||
[]
|
||||
(db/get-authority db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-issues-Issues
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "list-issues-Issues.html")
|
||||
{:title "Issues",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-issue db/*db* p)
|
||||
(db/list-issues db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-issues-Issue
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "form-issues-Issue.html")
|
||||
{:title "Issue",
|
||||
:params p,
|
||||
:record
|
||||
(if (empty? (remove nil? (vals p))) [] (db/get-issue db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-intentions-Intentions
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "list-intentions-Intentions.html")
|
||||
{:title "Intentions",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-intention db/*db* p)
|
||||
(db/list-intentions db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-intentions-Intention
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "form-intentions-Intention.html")
|
||||
{:title "Intention",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-intention db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-canvassers-Canvassers
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "list-canvassers-Canvassers.html")
|
||||
(support/resolve-template "list-canvassers-Canvassers.html")
|
||||
{:title "Canvassers",
|
||||
:params p,
|
||||
:records
|
||||
|
@ -282,108 +102,29 @@
|
|||
form-canvassers-Canvasser
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "form-canvassers-Canvasser.html")
|
||||
(support/resolve-template "form-canvassers-Canvasser.html")
|
||||
{:title "Canvasser",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-canvasser db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-followuprequests-Followuprequests
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "list-followuprequests-Followuprequests.html")
|
||||
{:title "Followuprequests",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-followuprequest db/*db* p)
|
||||
(db/list-followuprequests db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-followuprequests-Followuprequest
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "form-followuprequests-Followuprequest.html")
|
||||
{:title "Followuprequest",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-followuprequest db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-roles-Roles
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "list-roles-Roles.html")
|
||||
{:title "Roles",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-role db/*db* p)
|
||||
(db/list-roles db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-roles-Role
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "form-roles-Role.html")
|
||||
{:title "Role",
|
||||
:params p,
|
||||
:record
|
||||
(if (empty? (remove nil? (vals p))) [] (db/get-role db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-teams-Teams
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "list-teams-Teams.html")
|
||||
{:title "Teams",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-team db/*db* p)
|
||||
(db/list-teams db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-teams-Team
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "form-teams-Team.html")
|
||||
{:title "Team",
|
||||
:params p,
|
||||
:record
|
||||
(if (empty? (remove nil? (vals p))) [] (db/get-team db/*db* p))})))
|
||||
(db/get-canvasser db/*db* p)),
|
||||
:electors (db/list-electors db/*db*),
|
||||
:addresses (db/list-addresses db/*db*),
|
||||
:authorities (db/list-authorities db/*db*)})))
|
||||
|
||||
(defn
|
||||
list-districts-Districts
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "list-districts-Districts.html")
|
||||
(support/resolve-template "list-districts-Districts.html")
|
||||
{:title "Districts",
|
||||
:params p,
|
||||
:records
|
||||
|
@ -396,9 +137,10 @@
|
|||
form-districts-District
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "form-districts-District.html")
|
||||
(support/resolve-template "form-districts-District.html")
|
||||
{:title "District",
|
||||
:params p,
|
||||
:record
|
||||
|
@ -407,13 +149,79 @@
|
|||
[]
|
||||
(db/get-district db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-dwellings-Dwellings
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "list-dwellings-Dwellings.html")
|
||||
{:title "Dwellings",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-dwelling db/*db* p)
|
||||
(db/list-dwellings db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-dwellings-Dwelling
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "form-dwellings-Dwelling.html")
|
||||
{:title "Dwelling",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-dwelling db/*db* p)),
|
||||
:addresses (db/list-addresses db/*db*)})))
|
||||
|
||||
(defn
|
||||
list-electors-Electors
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "list-electors-Electors.html")
|
||||
{:title "Electors",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-elector db/*db* p)
|
||||
(db/list-electors db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-electors-Elector
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "form-electors-Elector.html")
|
||||
{:title "Elector",
|
||||
:params p,
|
||||
:record
|
||||
(if (empty? (remove nil? (vals p))) [] (db/get-elector db/*db* p)),
|
||||
:dwellings (db/list-dwellings db/*db*),
|
||||
:genders (db/list-genders db/*db*)})))
|
||||
|
||||
(defn
|
||||
list-followupactions-Followupactions
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "list-followupactions-Followupactions.html")
|
||||
(support/resolve-template
|
||||
"list-followupactions-Followupactions.html")
|
||||
{:title "Followupactions",
|
||||
:params p,
|
||||
:records
|
||||
|
@ -426,54 +234,30 @@
|
|||
form-followupactions-Followupaction
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "form-followupactions-Followupaction.html")
|
||||
(support/resolve-template
|
||||
"form-followupactions-Followupaction.html")
|
||||
{:title "Followupaction",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-followupaction db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-options-Options
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "list-options-Options.html")
|
||||
{:title "Options",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-option db/*db* p)
|
||||
(db/list-options db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-options-Option
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
(l/render
|
||||
(resolve-template "form-options-Option.html")
|
||||
{:title "Option",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-option db/*db* p))})))
|
||||
(db/get-followupaction db/*db* p)),
|
||||
:followuprequests (db/list-followuprequests db/*db*),
|
||||
:canvassers (db/list-canvassers db/*db*)})))
|
||||
|
||||
(defn
|
||||
list-followupmethods-Followupmethods
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "list-followupmethods-Followupmethods.html")
|
||||
(support/resolve-template
|
||||
"list-followupmethods-Followupmethods.html")
|
||||
{:title "Followupmethods",
|
||||
:params p,
|
||||
:records
|
||||
|
@ -486,9 +270,11 @@
|
|||
form-followupmethods-Followupmethod
|
||||
[r]
|
||||
(let
|
||||
[p (:params r)]
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(resolve-template "form-followupmethods-Followupmethod.html")
|
||||
(support/resolve-template
|
||||
"form-followupmethods-Followupmethod.html")
|
||||
{:title "Followupmethod",
|
||||
:params p,
|
||||
:record
|
||||
|
@ -497,6 +283,262 @@
|
|||
[]
|
||||
(db/get-followupmethod db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-followuprequests-Followuprequests
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template
|
||||
"list-followuprequests-Followuprequests.html")
|
||||
{:title "Followuprequests",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-followuprequest db/*db* p)
|
||||
(db/list-followuprequests db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-followuprequests-Followuprequest
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template
|
||||
"form-followuprequests-Followuprequest.html")
|
||||
{:title "Followuprequest",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-followuprequest db/*db* p)),
|
||||
:electors (db/list-electors db/*db*),
|
||||
:visits (db/list-visits db/*db*),
|
||||
:issues (db/list-issues db/*db*),
|
||||
:followupmethods (db/list-followupmethods db/*db*)})))
|
||||
|
||||
(defn
|
||||
list-genders-Genders
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "list-genders-Genders.html")
|
||||
{:title "Genders",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-gender db/*db* p)
|
||||
(db/list-genders db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-genders-Gender
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "form-genders-Gender.html")
|
||||
{:title "Gender",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-gender db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-intentions-Intentions
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "list-intentions-Intentions.html")
|
||||
{:title "Intentions",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-intention db/*db* p)
|
||||
(db/list-intentions db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-intentions-Intention
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "form-intentions-Intention.html")
|
||||
{:title "Intention",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-intention db/*db* p)),
|
||||
:visits (db/list-visits db/*db*),
|
||||
:electors (db/list-electors db/*db*),
|
||||
:options (db/list-options db/*db*)})))
|
||||
|
||||
(defn
|
||||
list-issues-Issues
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "list-issues-Issues.html")
|
||||
{:title "Issues",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-issue db/*db* p)
|
||||
(db/list-issues db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-issues-Issue
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "form-issues-Issue.html")
|
||||
{:title "Issue",
|
||||
:params p,
|
||||
:record
|
||||
(if (empty? (remove nil? (vals p))) [] (db/get-issue db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-options-Options
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "list-options-Options.html")
|
||||
{:title "Options",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-option db/*db* p)
|
||||
(db/list-options db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-options-Option
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "form-options-Option.html")
|
||||
{:title "Option",
|
||||
:params p,
|
||||
:record
|
||||
(if
|
||||
(empty? (remove nil? (vals p)))
|
||||
[]
|
||||
(db/get-option db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-roles-Roles
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "list-roles-Roles.html")
|
||||
{:title "Roles",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-role db/*db* p)
|
||||
(db/list-roles db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-roles-Role
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "form-roles-Role.html")
|
||||
{:title "Role",
|
||||
:params p,
|
||||
:record
|
||||
(if (empty? (remove nil? (vals p))) [] (db/get-role db/*db* p))})))
|
||||
|
||||
(defn
|
||||
list-teams-Teams
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "list-teams-Teams.html")
|
||||
{:title "Teams",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-team db/*db* p)
|
||||
(db/list-teams db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-teams-Team
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "form-teams-Team.html")
|
||||
{:title "Team",
|
||||
:params p,
|
||||
:record
|
||||
(if (empty? (remove nil? (vals p))) [] (db/get-team db/*db* p)),
|
||||
:districts (db/list-districts db/*db*)})))
|
||||
|
||||
(defn
|
||||
list-visits-Visits
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "list-visits-Visits.html")
|
||||
{:title "Visits",
|
||||
:params p,
|
||||
:records
|
||||
(if
|
||||
(not (empty? (remove nil? (vals p))))
|
||||
(db/search-strings-visit db/*db* p)
|
||||
(db/list-visits db/*db* {}))})))
|
||||
|
||||
(defn
|
||||
form-visits-Visit
|
||||
[r]
|
||||
(let
|
||||
[p
|
||||
(merge (support/query-string-to-map (:query-string r)) (:params r))]
|
||||
(l/render
|
||||
(support/resolve-template "form-visits-Visit.html")
|
||||
{:title "Visit",
|
||||
:params p,
|
||||
:record
|
||||
(if (empty? (remove nil? (vals p))) [] (db/get-visit db/*db* p)),
|
||||
:addresses (db/list-addresses db/*db*),
|
||||
:canvassers (db/list-canvassers db/*db*)})))
|
||||
|
||||
(defn
|
||||
raw-resolve-handler
|
||||
"Prefer the manually-written version of the handler with name `n`, if it exists, to the automatically generated one"
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
(ns
|
||||
youyesyet.routes.auto-json
|
||||
"JSON routes for youyesyet auto-generated by [Application Description Language framework](https://github.com/simon-brooke/adl) at 20180617T110553.546Z"
|
||||
"JSON routes for youyesyet auto-generated by [Application Description Language framework](https://github.com/simon-brooke/adl) at 20180619T185150.149Z"
|
||||
(:require
|
||||
[adl-support.core :as support]
|
||||
[clojure.java.io :as io]
|
||||
[compojure.core :refer [defroutes GET POST]]
|
||||
[hugsql.core :as hugsql]
|
||||
|
|
Loading…
Reference in a new issue