From 542ce9f56d767f58ae0ccc6dd0d23a89ad6bbc6b Mon Sep 17 00:00:00 2001
From: Simon Brooke <simon@journeyman.cc>
Date: Wed, 18 Jul 2018 23:01:52 +0100
Subject: [PATCH] I think I'm ready for public alpha.

---
 resources/public/css/yyy-common.css  |   4 +-
 resources/sql/youyesyet.postgres.sql | 402 +++++++++++++--------------
 src/clj/youyesyet/routes/roles.clj   |   4 +-
 youyesyet.adl.xml                    | 102 ++-----
 youyesyet.canonical.adl.xml          |  98 ++-----
 5 files changed, 244 insertions(+), 366 deletions(-)

diff --git a/resources/public/css/yyy-common.css b/resources/public/css/yyy-common.css
index 4e739b0..b46e8cb 100644
--- a/resources/public/css/yyy-common.css
+++ b/resources/public/css/yyy-common.css
@@ -42,7 +42,7 @@ del {
 }
 
 div.content, form, p, pre, h1, h2, h3, h4, h5 {
-  padding: 0.25em 5%;
+  padding: 0.25em 2.5%;
 }
 
 dl, menu, ol, table, ul {
@@ -346,7 +346,7 @@ th {
 /* desktops and laptops, primarily. Adapted to mouse; targets may be small */
 @media all and (min-device-width: 1025px) {
   #content {
-    width: 80%;
+    width: 90%;
     float: right;
     padding-bottom: 5em;
   }
diff --git a/resources/sql/youyesyet.postgres.sql b/resources/sql/youyesyet.postgres.sql
index 8ae3567..e6e4bc4 100644
--- a/resources/sql/youyesyet.postgres.sql
+++ b/resources/sql/youyesyet.postgres.sql
@@ -1,12 +1,12 @@
 ------------------------------------------------------------------------
---	Database definition for application
---
---	youyesyet version 0.1.1
---
---	auto-generated by [Application Description Language framework]
---
---	(https://github.com/simon-brooke/adl) at 20180717T075810.523Z
---
+--	Database definition for application 
+--	
+--	youyesyet version 0.1.1 
+--	
+--	auto-generated by [Application Description Language framework] 
+--	
+--	(https://github.com/simon-brooke/adl) at 20180718T215811.044Z 
+--	
 --	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
@@ -17,56 +17,56 @@
 --	  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.
+--	  address particular electors' queries. 
 ------------------------------------------------------------------------
 
 ------------------------------------------------------------------------
---	security group admin
+--	security group admin 
 ------------------------------------------------------------------------
 
 CREATE GROUP admin;
 
 ------------------------------------------------------------------------
---	security group analysts
+--	security group analysts 
 ------------------------------------------------------------------------
 
 CREATE GROUP analysts;
 
 ------------------------------------------------------------------------
---	security group canvassers
+--	security group canvassers 
 ------------------------------------------------------------------------
 
 CREATE GROUP canvassers;
 
 ------------------------------------------------------------------------
---	security group issueeditors
+--	security group issueeditors 
 ------------------------------------------------------------------------
 
 CREATE GROUP issueeditors;
 
 ------------------------------------------------------------------------
---	security group issueexperts
+--	security group issueexperts 
 ------------------------------------------------------------------------
 
 CREATE GROUP issueexperts;
 
 ------------------------------------------------------------------------
---	security group public
+--	security group public 
 ------------------------------------------------------------------------
 
 CREATE GROUP public;
 
 ------------------------------------------------------------------------
---	security group teamorganisers
+--	security group teamorganisers 
 ------------------------------------------------------------------------
 
 CREATE GROUP teamorganisers;
 
 ------------------------------------------------------------------------
---	primary table addresses for entity addresses
---
+--	primary table addresses for entity addresses 
+--	
 --	Addresses of all buildings which contain
---	    dwellings.
+--	    dwellings. 
 ------------------------------------------------------------------------
 CREATE TABLE addresses
 (
@@ -90,10 +90,10 @@ GRANT UPDATE ON addresses TO admin ;
 GRANT DELETE ON addresses TO admin ;
 
 ------------------------------------------------------------------------
---	primary table authorities for entity authorities
---
+--	primary table authorities for entity authorities 
+--	
 --	Authorities which may authenticate canvassers to
---	    the system.
+--	    the system. 
 ------------------------------------------------------------------------
 CREATE TABLE authorities
 (
@@ -115,10 +115,10 @@ GRANT UPDATE ON authorities TO admin ;
 GRANT DELETE ON authorities TO admin ;
 
 ------------------------------------------------------------------------
---	primary table canvassers for entity canvassers
---
+--	primary table canvassers for entity canvassers 
+--	
 --	Primary users of the system: those actually
---	    interviewing electors.
+--	    interviewing electors. 
 ------------------------------------------------------------------------
 CREATE TABLE canvassers
 (
@@ -149,11 +149,11 @@ GRANT UPDATE ON canvassers TO admin,
 GRANT DELETE ON canvassers TO admin ;
 
 ------------------------------------------------------------------------
---	primary table districts for entity districts
---
+--	primary table districts for entity districts 
+--	
 --	Electoral districts: TODO: Shape (polygon)
 --	    information will need to be added, for use in
---	    maps.
+--	    maps. 
 ------------------------------------------------------------------------
 CREATE TABLE districts
 (
@@ -172,14 +172,14 @@ GRANT UPDATE ON districts TO admin ;
 GRANT DELETE ON districts TO admin ;
 
 ------------------------------------------------------------------------
---	primary table dwellings for entity dwellings
---
+--	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.
 --	    Every address should have at least one dwelling; essentially,
 --	    an address maps onto a street door and dwellings map onto
 --	    what's behind that door. So a tenement or a block of flats
---	    would be one address with many dwellings.
+--	    would be one address with many dwellings. 
 ------------------------------------------------------------------------
 CREATE TABLE dwellings
 (
@@ -198,11 +198,11 @@ GRANT UPDATE ON dwellings TO admin ;
 GRANT DELETE ON dwellings TO admin ;
 
 ------------------------------------------------------------------------
---	primary table electors for entity electors
---
+--	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.
+--	    campaign. 
 ------------------------------------------------------------------------
 CREATE TABLE electors
 (
@@ -225,14 +225,14 @@ GRANT UPDATE ON electors TO admin ;
 GRANT DELETE ON electors TO admin ;
 
 ------------------------------------------------------------------------
---	primary table events for entity events
---
---
---	      An event to which a team or teams are invited. Typically created
+--	primary table events for entity events 
+--	
+--	
+--	      An event to which a team or teams are invited. Typically created 
 --	by the team organiser(s).
---	      May be a training event, a social event or a canvassing
+--	      May be a training event, a social event or a canvassing 
 --	session.
---
+--	 
 ------------------------------------------------------------------------
 CREATE TABLE events
 (
@@ -256,10 +256,10 @@ GRANT UPDATE ON events TO admin,
 GRANT DELETE ON events TO admin ;
 
 ------------------------------------------------------------------------
---	primary table followupactions for entity followupactions
---
+--	primary table followupactions for entity followupactions 
+--	
 --	Actions taken on followup
---	    requests.
+--	    requests. 
 ------------------------------------------------------------------------
 CREATE TABLE followupactions
 (
@@ -281,10 +281,10 @@ GRANT UPDATE ON followupactions TO admin ;
 GRANT DELETE ON followupactions TO admin ;
 
 ------------------------------------------------------------------------
---	primary table followupmethods for entity followupmethods
---
---	Methods which may be used to follow up a followup request. Reference
---	data.
+--	primary table followupmethods for entity followupmethods 
+--	
+--	Methods which may be used to follow up a followup request. Reference 
+--	data. 
 ------------------------------------------------------------------------
 CREATE TABLE followupmethods
 (
@@ -301,10 +301,10 @@ GRANT UPDATE ON followupmethods TO admin ;
 GRANT DELETE ON followupmethods TO admin ;
 
 ------------------------------------------------------------------------
---	primary table followuprequests for entity followuprequests
---
+--	primary table followuprequests for entity followuprequests 
+--	
 --	Requests for a followup with an issue
---	    expert
+--	    expert 
 ------------------------------------------------------------------------
 CREATE TABLE followuprequests
 (
@@ -326,10 +326,10 @@ GRANT INSERT ON followuprequests TO admin,
 
 
 ------------------------------------------------------------------------
---	primary table genders for entity genders
---
+--	primary table genders for entity genders 
+--	
 --	All genders which may be assigned to
---	    electors.
+--	    electors. 
 ------------------------------------------------------------------------
 CREATE TABLE genders
 (
@@ -346,10 +346,10 @@ GRANT UPDATE ON genders TO admin ;
 GRANT DELETE ON genders TO admin ;
 
 ------------------------------------------------------------------------
---	primary table intentions for entity intentions
---
+--	primary table intentions for entity intentions 
+--	
 --	Intentions of electors to vote for options
---	    elicited in visits.
+--	    elicited in visits. 
 ------------------------------------------------------------------------
 CREATE TABLE intentions
 (
@@ -368,10 +368,10 @@ GRANT INSERT ON intentions TO admin,
 
 
 ------------------------------------------------------------------------
---	primary table issues for entity issues
---
+--	primary table issues for entity issues 
+--	
 --	Issues believed to be of interest to electors,
---	    about which they may have questions.
+--	    about which they may have questions. 
 ------------------------------------------------------------------------
 CREATE TABLE issues
 (
@@ -393,10 +393,10 @@ GRANT UPDATE ON issues TO admin,
 GRANT DELETE ON issues TO admin ;
 
 ------------------------------------------------------------------------
---	primary table options for entity options
---
+--	primary table options for entity options 
+--	
 --	Options in the election or referendum being
---	    canvassed on
+--	    canvassed on 
 ------------------------------------------------------------------------
 CREATE TABLE options
 (
@@ -413,11 +413,11 @@ GRANT UPDATE ON options TO admin ;
 GRANT DELETE ON options TO admin ;
 
 ------------------------------------------------------------------------
---	primary table roles for entity roles
---
+--	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.
+--	    may be a member. 
 ------------------------------------------------------------------------
 CREATE TABLE roles
 (
@@ -435,7 +435,7 @@ GRANT UPDATE ON roles TO admin ;
 GRANT DELETE ON roles TO admin ;
 
 ------------------------------------------------------------------------
---	primary table teams for entity teams
+--	primary table teams for entity teams 
 ------------------------------------------------------------------------
 CREATE TABLE teams
 (
@@ -458,10 +458,10 @@ GRANT UPDATE ON teams TO admin,
 GRANT DELETE ON teams TO admin ;
 
 ------------------------------------------------------------------------
---	primary table visits for entity visits
---
+--	primary table visits for entity visits 
+--	
 --	All visits made by canvassers to dwellings in
---	    which opinions were recorded.
+--	    which opinions were recorded. 
 ------------------------------------------------------------------------
 CREATE TABLE visits
 (
@@ -483,7 +483,7 @@ GRANT UPDATE ON visits TO admin ;
 GRANT DELETE ON visits TO admin ;
 
 ------------------------------------------------------------------------
---	convenience view lv_addresses of entity addresses for lists, et cetera
+--	convenience view lv_addresses of entity addresses for lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_addresses AS
 SELECT addresses.address,
@@ -506,8 +506,8 @@ GRANT SELECT ON lv_addresses TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_authorities of entity authorities for lists, et
---	cetera
+--	convenience view lv_authorities of entity authorities for lists, et 
+--	cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_authorities AS
 SELECT authorities.request_token_uri,
@@ -526,8 +526,8 @@ GRANT SELECT ON lv_authorities TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_canvassers of entity canvassers for lists, et
---	cetera
+--	convenience view lv_canvassers of entity canvassers for lists, et 
+--	cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_canvassers AS
 SELECT canvassers.username,
@@ -557,7 +557,7 @@ GRANT SELECT ON lv_canvassers TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_districts of entity districts for lists, et cetera
+--	convenience view lv_districts of entity districts for lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_districts AS
 SELECT districts.name,
@@ -573,7 +573,7 @@ GRANT SELECT ON lv_districts TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_dwellings of entity dwellings for lists, et cetera
+--	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,
@@ -591,7 +591,7 @@ GRANT SELECT ON lv_dwellings TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_electors of entity electors for lists, et cetera
+--	convenience view lv_electors of entity electors for lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_electors AS
 SELECT electors.name,
@@ -615,7 +615,7 @@ GRANT SELECT ON lv_electors TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_events of entity events for lists, et cetera
+--	convenience view lv_events of entity events for lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_events AS
 SELECT events.name,
@@ -634,8 +634,8 @@ GRANT SELECT ON lv_events TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_followupactions of entity followupactions for
---	lists, et cetera
+--	convenience view lv_followupactions of entity followupactions for 
+--	lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_followupactions AS
 SELECT electors.name ||', '|| addresses.address ||', '|| addresses.postcode ||', '|| visits.date ||', '|| issues.id AS request_id_expanded,
@@ -657,8 +657,8 @@ GRANT SELECT ON lv_followupactions TO admin,
 	issueexperts ;
 
 ------------------------------------------------------------------------
---	convenience view lv_followupmethods of entity followupmethods for
---	lists, et cetera
+--	convenience view lv_followupmethods of entity followupmethods for 
+--	lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_followupmethods AS
 SELECT followupmethods.id
@@ -672,8 +672,8 @@ GRANT SELECT ON lv_followupmethods TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_followuprequests of entity followuprequests for
---	lists, et cetera
+--	convenience view lv_followuprequests of entity followuprequests for 
+--	lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_followuprequests AS
 SELECT electors.name AS elector_id_expanded,
@@ -699,7 +699,7 @@ GRANT SELECT ON lv_followuprequests TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_genders of entity genders for lists, et cetera
+--	convenience view lv_genders of entity genders for lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_genders AS
 SELECT genders.id
@@ -713,8 +713,8 @@ GRANT SELECT ON lv_genders TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_intentions of entity intentions for lists, et
---	cetera
+--	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,
@@ -735,7 +735,7 @@ GRANT SELECT ON lv_intentions TO admin,
 	canvassers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_issues of entity issues for lists, et cetera
+--	convenience view lv_issues of entity issues for lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_issues AS
 SELECT issues.url,
@@ -752,7 +752,7 @@ GRANT SELECT ON lv_issues TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_options of entity options for lists, et cetera
+--	convenience view lv_options of entity options for lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_options AS
 SELECT options.id
@@ -766,7 +766,7 @@ GRANT SELECT ON lv_options TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_roles of entity roles for lists, et cetera
+--	convenience view lv_roles of entity roles for lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_roles AS
 SELECT roles.name,
@@ -781,7 +781,7 @@ GRANT SELECT ON lv_roles TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_teams of entity teams for lists, et cetera
+--	convenience view lv_teams of entity teams for lists, et cetera 
 ------------------------------------------------------------------------
 CREATE VIEW lv_teams AS
 SELECT teams.name,
@@ -801,12 +801,12 @@ GRANT SELECT ON lv_teams TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	convenience view lv_visits of entity visits for lists, et cetera
+--	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.phone ||', '|| canvassers.email AS canvasser_id_expanded,
+	canvassers.username ||', '|| canvassers.fullname ||', '|| addresses.address ||', '|| addresses.postcode ||', '|| canvassers.phone ||', '|| canvassers.email AS canvasser_id_expanded,
 	visits.canvasser_id,
 	visits.date,
 	visits.id
@@ -822,106 +822,106 @@ GRANT SELECT ON lv_visits TO admin,
 	teamorganisers ;
 
 ------------------------------------------------------------------------
---	referential integrity links for primary tables
+--	referential integrity links for primary tables 
 ------------------------------------------------------------------------
 
-ALTER TABLE addresses ADD CONSTRAINT ri_addresses_districts_district_id
-	FOREIGN KEY( district_id )
-	REFERENCES districts(id)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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)
+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 issues
+--	link table joining canvassers with issues 
 ------------------------------------------------------------------------
 CREATE TABLE ln_expertise_canvassers_issues
 (
@@ -942,18 +942,18 @@ GRANT UPDATE ON ln_expertise_canvassers_issues TO admin,
 	teamorganisers ;
 GRANT DELETE ON ln_expertise_canvassers_issues TO admin ;
 
-ALTER TABLE ln_expertise_canvassers_issues ADD CONSTRAINT ri_ln_expertise_canvassers_issues_canvassers_canvasser_id
-	FOREIGN KEY( canvasser_id )
-	REFERENCES canvassers(id)
+ALTER TABLE ln_expertise_canvassers_issues ADD CONSTRAINT ri_ln_expertise_canvassers_issues_canvassers_canvasser_id 
+	FOREIGN KEY( canvasser_id ) 
+	REFERENCES canvassers(id) 
 	ON DELETE NO ACTION ;
 
-ALTER TABLE ln_expertise_canvassers_issues ADD CONSTRAINT ri_ln_expertise_canvassers_issues_issues_issue_id
-	FOREIGN KEY( issue_id )
-	REFERENCES issues(id)
+ALTER TABLE ln_expertise_canvassers_issues ADD CONSTRAINT ri_ln_expertise_canvassers_issues_issues_issue_id 
+	FOREIGN KEY( issue_id ) 
+	REFERENCES issues(id) 
 	ON DELETE NO ACTION ;
 
 ------------------------------------------------------------------------
---	link table joining canvassers with roles
+--	link table joining canvassers with roles 
 ------------------------------------------------------------------------
 CREATE TABLE ln_roles_canvassers_roles
 (
@@ -974,18 +974,18 @@ GRANT UPDATE ON ln_roles_canvassers_roles TO admin,
 	teamorganisers ;
 GRANT DELETE ON ln_roles_canvassers_roles TO admin ;
 
-ALTER TABLE ln_roles_canvassers_roles ADD CONSTRAINT ri_ln_roles_canvassers_roles_canvassers_canvasser_id
-	FOREIGN KEY( canvasser_id )
-	REFERENCES canvassers(id)
+ALTER TABLE ln_roles_canvassers_roles ADD CONSTRAINT ri_ln_roles_canvassers_roles_canvassers_canvasser_id 
+	FOREIGN KEY( canvasser_id ) 
+	REFERENCES canvassers(id) 
 	ON DELETE NO ACTION ;
 
-ALTER TABLE ln_roles_canvassers_roles ADD CONSTRAINT ri_ln_roles_canvassers_roles_roles_role_id
-	FOREIGN KEY( role_id )
-	REFERENCES roles(id)
+ALTER TABLE ln_roles_canvassers_roles ADD CONSTRAINT ri_ln_roles_canvassers_roles_roles_role_id 
+	FOREIGN KEY( role_id ) 
+	REFERENCES roles(id) 
 	ON DELETE NO ACTION ;
 
 ------------------------------------------------------------------------
---	link table joining events with teams
+--	link table joining events with teams 
 ------------------------------------------------------------------------
 CREATE TABLE ln_teams_events_teams
 (
@@ -1004,18 +1004,18 @@ GRANT UPDATE ON ln_teams_events_teams TO admin,
 	teamorganisers ;
 GRANT DELETE ON ln_teams_events_teams TO admin ;
 
-ALTER TABLE ln_teams_events_teams ADD CONSTRAINT ri_ln_teams_events_teams_events_event_id
-	FOREIGN KEY( event_id )
-	REFERENCES events(id)
+ALTER TABLE ln_teams_events_teams ADD CONSTRAINT ri_ln_teams_events_teams_events_event_id 
+	FOREIGN KEY( event_id ) 
+	REFERENCES events(id) 
 	ON DELETE NO ACTION ;
 
-ALTER TABLE ln_teams_events_teams ADD CONSTRAINT ri_ln_teams_events_teams_teams_team_id
-	FOREIGN KEY( team_id )
-	REFERENCES teams(id)
+ALTER TABLE ln_teams_events_teams ADD CONSTRAINT ri_ln_teams_events_teams_teams_team_id 
+	FOREIGN KEY( team_id ) 
+	REFERENCES teams(id) 
 	ON DELETE NO ACTION ;
 
 ------------------------------------------------------------------------
---	link table joining issues with canvassers
+--	link table joining issues with canvassers 
 ------------------------------------------------------------------------
 CREATE TABLE ln_experts_issues_canvassers
 (
@@ -1034,18 +1034,18 @@ GRANT UPDATE ON ln_experts_issues_canvassers TO admin,
 	issueeditors ;
 GRANT DELETE ON ln_experts_issues_canvassers TO admin ;
 
-ALTER TABLE ln_experts_issues_canvassers ADD CONSTRAINT ri_ln_experts_issues_canvassers_canvassers_canvasser_id
-	FOREIGN KEY( canvasser_id )
-	REFERENCES canvassers(id)
+ALTER TABLE ln_experts_issues_canvassers ADD CONSTRAINT ri_ln_experts_issues_canvassers_canvassers_canvasser_id 
+	FOREIGN KEY( canvasser_id ) 
+	REFERENCES canvassers(id) 
 	ON DELETE NO ACTION ;
 
-ALTER TABLE ln_experts_issues_canvassers ADD CONSTRAINT ri_ln_experts_issues_canvassers_issues_issue_id
-	FOREIGN KEY( issue_id )
-	REFERENCES issues(id)
+ALTER TABLE ln_experts_issues_canvassers ADD CONSTRAINT ri_ln_experts_issues_canvassers_issues_issue_id 
+	FOREIGN KEY( issue_id ) 
+	REFERENCES issues(id) 
 	ON DELETE NO ACTION ;
 
 ------------------------------------------------------------------------
---	link table joining roles with canvassers
+--	link table joining roles with canvassers 
 ------------------------------------------------------------------------
 CREATE TABLE ln_members_roles_canvassers
 (
@@ -1062,18 +1062,18 @@ GRANT INSERT ON ln_members_roles_canvassers TO admin ;
 GRANT UPDATE ON ln_members_roles_canvassers TO admin ;
 GRANT DELETE ON ln_members_roles_canvassers TO admin ;
 
-ALTER TABLE ln_members_roles_canvassers ADD CONSTRAINT ri_ln_members_roles_canvassers_canvassers_canvasser_id
-	FOREIGN KEY( canvasser_id )
-	REFERENCES canvassers(id)
+ALTER TABLE ln_members_roles_canvassers ADD CONSTRAINT ri_ln_members_roles_canvassers_canvassers_canvasser_id 
+	FOREIGN KEY( canvasser_id ) 
+	REFERENCES canvassers(id) 
 	ON DELETE NO ACTION ;
 
-ALTER TABLE ln_members_roles_canvassers ADD CONSTRAINT ri_ln_members_roles_canvassers_roles_role_id
-	FOREIGN KEY( role_id )
-	REFERENCES roles(id)
+ALTER TABLE ln_members_roles_canvassers ADD CONSTRAINT ri_ln_members_roles_canvassers_roles_role_id 
+	FOREIGN KEY( role_id ) 
+	REFERENCES roles(id) 
 	ON DELETE NO ACTION ;
 
 ------------------------------------------------------------------------
---	link table joining teams with canvassers
+--	link table joining teams with canvassers 
 ------------------------------------------------------------------------
 CREATE TABLE ln_members_teams_canvassers
 (
@@ -1092,18 +1092,18 @@ GRANT UPDATE ON ln_members_teams_canvassers TO admin,
 	teamorganisers ;
 GRANT DELETE ON ln_members_teams_canvassers TO admin ;
 
-ALTER TABLE ln_members_teams_canvassers ADD CONSTRAINT ri_ln_members_teams_canvassers_canvassers_canvasser_id
-	FOREIGN KEY( canvasser_id )
-	REFERENCES canvassers(id)
+ALTER TABLE ln_members_teams_canvassers ADD CONSTRAINT ri_ln_members_teams_canvassers_canvassers_canvasser_id 
+	FOREIGN KEY( canvasser_id ) 
+	REFERENCES canvassers(id) 
 	ON DELETE NO ACTION ;
 
-ALTER TABLE ln_members_teams_canvassers ADD CONSTRAINT ri_ln_members_teams_canvassers_teams_team_id
-	FOREIGN KEY( team_id )
-	REFERENCES teams(id)
+ALTER TABLE ln_members_teams_canvassers ADD CONSTRAINT ri_ln_members_teams_canvassers_teams_team_id 
+	FOREIGN KEY( team_id ) 
+	REFERENCES teams(id) 
 	ON DELETE NO ACTION ;
 
 ------------------------------------------------------------------------
---	link table joining teams with canvassers
+--	link table joining teams with canvassers 
 ------------------------------------------------------------------------
 CREATE TABLE ln_organisers_teams_canvassers
 (
@@ -1122,12 +1122,12 @@ GRANT UPDATE ON ln_organisers_teams_canvassers TO admin,
 	teamorganisers ;
 GRANT DELETE ON ln_organisers_teams_canvassers TO admin ;
 
-ALTER TABLE ln_organisers_teams_canvassers ADD CONSTRAINT ri_ln_organisers_teams_canvassers_canvassers_canvasser_id
-	FOREIGN KEY( canvasser_id )
-	REFERENCES canvassers(id)
+ALTER TABLE ln_organisers_teams_canvassers ADD CONSTRAINT ri_ln_organisers_teams_canvassers_canvassers_canvasser_id 
+	FOREIGN KEY( canvasser_id ) 
+	REFERENCES canvassers(id) 
 	ON DELETE NO ACTION ;
 
-ALTER TABLE ln_organisers_teams_canvassers ADD CONSTRAINT ri_ln_organisers_teams_canvassers_teams_team_id
-	FOREIGN KEY( team_id )
-	REFERENCES teams(id)
-	ON DELETE NO ACTION ;
+ALTER TABLE ln_organisers_teams_canvassers ADD CONSTRAINT ri_ln_organisers_teams_canvassers_teams_team_id 
+	FOREIGN KEY( team_id ) 
+	REFERENCES teams(id) 
+	ON DELETE NO ACTION ;
\ No newline at end of file
diff --git a/src/clj/youyesyet/routes/roles.clj b/src/clj/youyesyet/routes/roles.clj
index d8133bb..e2cae2b 100644
--- a/src/clj/youyesyet/routes/roles.clj
+++ b/src/clj/youyesyet/routes/roles.clj
@@ -67,8 +67,8 @@
   (GET "/roles/admin" request (route/restricted (admins-page request)))
   (GET "/roles/analysts" request (route/restricted (analysts-page request)))
   (GET "/roles/canvassers" request (route/restricted (canvassers-page request)))
-  (GET "/roles/issue_editors" request (route/restricted (auto/list-issues-Issues request)))
-  (GET "/roles/issue_experts" request (route/restricted (expert/list-page request)))
+  (GET "/roles/issueeditors" request (route/restricted (auto/list-issues-Issues request)))
+  (GET "/roles/issueexperts" request (route/restricted (expert/list-page request)))
   (GET "/roles/team_organisers" request (route/restricted (auto/list-teams-Teams request)))
   (GET "/roles" request (route/restricted (roles-page request))))
 
diff --git a/youyesyet.adl.xml b/youyesyet.adl.xml
index 97fd345..dd16842 100644
--- a/youyesyet.adl.xml
+++ b/youyesyet.adl.xml
@@ -99,24 +99,12 @@ version="0.1.1">
       Null if they have not.</documentation>
     </property>
     <list properties="listed" name="Electors">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="name">
         <prompt prompt="Name" locale="en_GB.UTF-8"/>
       </field>
       <field property="dwelling_id">
         <prompt prompt="Home" locale="en_GB.UTF-8"/>
       </field>
-      <field property="phone">
-        <prompt prompt="Phone" locale="en_GB.UTF-8"/>
-      </field>
-      <field property="email">
-        <prompt prompt="eMail" locale="en_GB.UTF-8"/>
-      </field>
-      <field property="gender">
-        <prompt prompt="Gender" locale="en_GB.UTF-8"/>
-      </field>
     </list>
     <form properties="listed" name="Elector">
       <field property="id">
@@ -203,9 +191,6 @@ version="0.1.1">
       </documentation>
     </property>
     <list properties="listed" name="Dwellings">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="address_id">
         <prompt prompt="Building Address" locale="en_GB.UTF-8"/>
       </field>
@@ -214,9 +199,6 @@ version="0.1.1">
       </field>
     </list>
     <form properties="listed" name="Dwelling">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="address_id">
         <prompt prompt="Building Address" locale="en_GB.UTF-8"/>
       </field>
@@ -277,27 +259,15 @@ version="0.1.1">
       users.</documentation>
     </property>
     <list properties="listed" name="Addresses">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="address">
         <prompt prompt="Address" locale="en_GB.UTF-8"/>
       </field>
       <field property="postcode">
         <prompt prompt="Postcode" locale="en_GB.UTF-8"/>
       </field>
-      <field property="phone">
-        <prompt prompt="Phone" locale="en_GB.UTF-8"/>
-      </field>
       <field property="district_id">
         <prompt prompt="District" locale="en_GB.UTF-8"/>
       </field>
-      <field property="latitude">
-        <prompt prompt="Latitude" locale="en_GB.UTF-8"/>
-      </field>
-      <field property="longitude">
-        <prompt prompt="Longitude" locale="en_GB.UTF-8"/>
-      </field>
     </list>
     <form properties="listed" name="Address">
       <field property="id">
@@ -369,9 +339,6 @@ version="0.1.1">
     <permission group="issueeditors" permission="read"/>
     <permission group="admin" permission="noedit"/>
     <list properties="listed" name="Visits">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="address_id">
         <prompt prompt="Address" locale="en_GB.UTF-8"/>
       </field>
@@ -428,12 +395,10 @@ version="0.1.1">
     <property name="consumer-secret" type="string" size="256"
     required="true"/>
     <list name="Authorities" properties="listed">
-    <field property="id">
-      <prompt prompt="id" locale="en_GB.UTF-8"/>
-    </field>#
-    <field property="request-token-uri"/>
-    <field property="access-token-uri"/>
-    <field property="authorize-uri"/></list>
+      <field property="id">
+        <prompt prompt="id" locale="en_GB.UTF-8"/>
+      </field>
+    </list>
     <form properties="listed" name="Authority">
       <field property="id">
         <prompt prompt="id" locale="en_GB.UTF-8"/>
@@ -550,13 +515,13 @@ version="0.1.1">
     <permission group="admin" permission="noedit"/>
     <list properties="listed" name="Intentions">
       <field property="visit_id">
-        <prompt prompt="visit_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="visit" locale="en_GB.UTF-8"/>
       </field>
       <field property="elector_id">
-        <prompt prompt="elector_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="elector" locale="en_GB.UTF-8"/>
       </field>
       <field property="option_id">
-        <prompt prompt="option_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="option" locale="en_GB.UTF-8"/>
       </field>
       <field property="locality">
         <documentation>The locality at which the intention was
@@ -654,21 +619,15 @@ version="0.1.1">
       <documentation>All canvassers</documentation>
     </permission>
     <list properties="listed" name="Canvassers">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="username">
         <prompt prompt="username" locale="en_GB.UTF-8"/>
       </field>
       <field property="fullname">
-        <prompt prompt="fullname" locale="en_GB.UTF-8"/>
+        <prompt prompt="full name" locale="en_GB.UTF-8"/>
       </field>
       <field property="address_id">
         <prompt prompt="address" locale="en_GB.UTF-8"/>
       </field>
-      <field property="authority_id">
-        <prompt prompt="authority_id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="authorised">
         <prompt prompt="authorised" locale="en_GB.UTF-8"/>
       </field>
@@ -746,20 +705,17 @@ version="0.1.1">
       <prompt prompt="method_id" locale="en_GB.UTF-8"/>
     </property>
     <list properties="listed" name="Followuprequests">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="elector_id">
-        <prompt prompt="elector_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="elector" locale="en_GB.UTF-8"/>
       </field>
       <field property="visit_id">
-        <prompt prompt="visit_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="visit" locale="en_GB.UTF-8"/>
       </field>
       <field property="issue_id">
-        <prompt prompt="issue_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="issue" locale="en_GB.UTF-8"/>
       </field>
       <field property="method_id">
-        <prompt prompt="method_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="method" locale="en_GB.UTF-8"/>
       </field>
     </list>
     <form properties="listed" name="Followuprequest">
@@ -805,9 +761,6 @@ version="0.1.1">
       <prompt prompt="Members" locale="en_GB.UTF-8"/>
     </property>
     <list properties="listed" name="Roles">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="name">
         <prompt prompt="name" locale="en_GB.UTF-8"/>
       </field>
@@ -869,21 +822,12 @@ version="0.1.1">
       <documentation>All groups</documentation>
     </permission>
     <list properties="listed" name="Teams">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="name">
         <prompt prompt="name" locale="en_GB.UTF-8"/>
       </field>
       <field property="district_id">
         <prompt prompt="district_id" locale="en_GB.UTF-8"/>
       </field>
-      <field property="latitude">
-        <prompt prompt="latitude" locale="en_GB.UTF-8"/>
-      </field>
-      <field property="longitude">
-        <prompt prompt="longitude" locale="en_GB.UTF-8"/>
-      </field>
     </list>
     <form properties="listed" name="Team">
       <field property="id">
@@ -974,7 +918,12 @@ version="0.1.1">
     <permission permission="read" group="issueeditors"/>
     <permission permission="all" group="admin"/>
     <form properties="all" name="Events"/>
-    <list properties="all" name="Events"/>
+    <list properties="listed" name="Events">
+      <field property="name"><prompt prompt="name" locale="en_GB.UTF-8"/></field>
+      <field property="date"/>
+      <field property="time"/>
+      <field property="cancelled"/>
+    </list>
   </entity>
   <entity table="districts" name="districts" magnitude="4"
   volatility="7">
@@ -994,17 +943,11 @@ version="0.1.1">
     <permission group="public" permission="read"/>
     <permission group="admin" permission="all"/>
     <list properties="listed" name="Districts">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="name">
         <prompt prompt="name" locale="en_GB.UTF-8"/>
       </field>
     </list>
     <form properties="listed" name="District">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="name">
         <prompt prompt="name" locale="en_GB.UTF-8"/>
       </field>
@@ -1048,11 +991,8 @@ version="0.1.1">
       <prompt prompt="closed" locale="en_GB.UTF-8"/>
     </property>
     <list properties="listed" name="Followupactions">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="request_id">
-        <prompt prompt="request_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="Request" locale="en_GB.UTF-8"/>
       </field>
       <field property="actor">
         <prompt prompt="actor" locale="en_GB.UTF-8"/>
@@ -1094,9 +1034,7 @@ version="0.1.1">
     <permission group="issueeditors" permission="read"/>
     <permission group="admin" permission="all"/>
   </entity>
-  <!--
-    entity options already has a key - not generating one
-    -->
+
   <entity table="options" name="options" magnitude="1"
   volatility="7">
     <documentation>Options in the election or referendum being
diff --git a/youyesyet.canonical.adl.xml b/youyesyet.canonical.adl.xml
index d7cba35..26f3e9f 100644
--- a/youyesyet.canonical.adl.xml
+++ b/youyesyet.canonical.adl.xml
@@ -102,24 +102,12 @@
       Null if they have not.</documentation>
     </property>
     <list properties="listed" name="Electors">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="name">
         <prompt prompt="Name" locale="en_GB.UTF-8"/>
       </field>
       <field property="dwelling_id">
         <prompt prompt="Home" locale="en_GB.UTF-8"/>
       </field>
-      <field property="phone">
-        <prompt prompt="Phone" locale="en_GB.UTF-8"/>
-      </field>
-      <field property="email">
-        <prompt prompt="eMail" locale="en_GB.UTF-8"/>
-      </field>
-      <field property="gender">
-        <prompt prompt="Gender" locale="en_GB.UTF-8"/>
-      </field>
     </list>
     <form properties="listed" name="Elector">
       <field property="id">
@@ -202,9 +190,6 @@
       </documentation>
     </property>
     <list properties="listed" name="Dwellings">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="address_id">
         <prompt prompt="Building Address" locale="en_GB.UTF-8"/>
       </field>
@@ -213,9 +198,6 @@
       </field>
     </list>
     <form properties="listed" name="Dwelling">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="address_id">
         <prompt prompt="Building Address" locale="en_GB.UTF-8"/>
       </field>
@@ -273,27 +255,15 @@
       users.</documentation>
     </property>
     <list properties="listed" name="Addresses">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="address">
         <prompt prompt="Address" locale="en_GB.UTF-8"/>
       </field>
       <field property="postcode">
         <prompt prompt="Postcode" locale="en_GB.UTF-8"/>
       </field>
-      <field property="phone">
-        <prompt prompt="Phone" locale="en_GB.UTF-8"/>
-      </field>
       <field property="district_id">
         <prompt prompt="District" locale="en_GB.UTF-8"/>
       </field>
-      <field property="latitude">
-        <prompt prompt="Latitude" locale="en_GB.UTF-8"/>
-      </field>
-      <field property="longitude">
-        <prompt prompt="Longitude" locale="en_GB.UTF-8"/>
-      </field>
     </list>
     <form properties="listed" name="Address">
       <field property="id">
@@ -359,9 +329,6 @@
     <permission group="issueeditors" permission="read"/>
     <permission group="admin" permission="noedit"/>
     <list properties="listed" name="Visits">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="address_id">
         <prompt prompt="Address" locale="en_GB.UTF-8"/>
       </field>
@@ -411,12 +378,10 @@
     <property name="consumer-key" type="string" size="32" required="true" default="youyesyet"/>
     <property name="consumer-secret" type="string" size="256" required="true"/>
     <list name="Authorities" properties="listed">
-    <field property="id">
-      <prompt prompt="id" locale="en_GB.UTF-8"/>
-    </field>#
-    <field property="request-token-uri"/>
-    <field property="access-token-uri"/>
-    <field property="authorize-uri"/></list>
+      <field property="id">
+        <prompt prompt="id" locale="en_GB.UTF-8"/>
+      </field>
+    </list>
     <form properties="listed" name="Authority">
       <field property="id">
         <prompt prompt="id" locale="en_GB.UTF-8"/>
@@ -531,13 +496,13 @@
     <permission group="admin" permission="noedit"/>
     <list properties="listed" name="Intentions">
       <field property="visit_id">
-        <prompt prompt="visit_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="visit" locale="en_GB.UTF-8"/>
       </field>
       <field property="elector_id">
-        <prompt prompt="elector_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="elector" locale="en_GB.UTF-8"/>
       </field>
       <field property="option_id">
-        <prompt prompt="option_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="option" locale="en_GB.UTF-8"/>
       </field>
       <field property="locality">
         <documentation>The locality at which the intention was
@@ -626,21 +591,15 @@
       <documentation>All canvassers</documentation>
     </permission>
     <list properties="listed" name="Canvassers">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="username">
         <prompt prompt="username" locale="en_GB.UTF-8"/>
       </field>
       <field property="fullname">
-        <prompt prompt="fullname" locale="en_GB.UTF-8"/>
+        <prompt prompt="full name" locale="en_GB.UTF-8"/>
       </field>
       <field property="address_id">
         <prompt prompt="address" locale="en_GB.UTF-8"/>
       </field>
-      <field property="authority_id">
-        <prompt prompt="authority_id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="authorised">
         <prompt prompt="authorised" locale="en_GB.UTF-8"/>
       </field>
@@ -713,20 +672,17 @@
       <prompt prompt="method_id" locale="en_GB.UTF-8"/>
     </property>
     <list properties="listed" name="Followuprequests">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="elector_id">
-        <prompt prompt="elector_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="elector" locale="en_GB.UTF-8"/>
       </field>
       <field property="visit_id">
-        <prompt prompt="visit_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="visit" locale="en_GB.UTF-8"/>
       </field>
       <field property="issue_id">
-        <prompt prompt="issue_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="issue" locale="en_GB.UTF-8"/>
       </field>
       <field property="method_id">
-        <prompt prompt="method_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="method" locale="en_GB.UTF-8"/>
       </field>
     </list>
     <form properties="listed" name="Followuprequest">
@@ -772,9 +728,6 @@
       <prompt prompt="Members" locale="en_GB.UTF-8"/>
     </property>
     <list properties="listed" name="Roles">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="name">
         <prompt prompt="name" locale="en_GB.UTF-8"/>
       </field>
@@ -835,21 +788,12 @@
       <documentation>All groups</documentation>
     </permission>
     <list properties="listed" name="Teams">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="name">
         <prompt prompt="name" locale="en_GB.UTF-8"/>
       </field>
       <field property="district_id">
         <prompt prompt="district_id" locale="en_GB.UTF-8"/>
       </field>
-      <field property="latitude">
-        <prompt prompt="latitude" locale="en_GB.UTF-8"/>
-      </field>
-      <field property="longitude">
-        <prompt prompt="longitude" locale="en_GB.UTF-8"/>
-      </field>
     </list>
     <form properties="listed" name="Team">
       <field property="id">
@@ -941,7 +885,12 @@
     <permission permission="read" group="issueeditors"/>
     <permission permission="all" group="admin"/>
     <form properties="listed" name="Events"><field property="id"><generator action="native"/></field><field property="name"><prompt prompt="name" locale="en_GB.UTF-8"/></field><field property="teams"/><field property="date"/><field property="time"/><field property="decription"/><field property="cancelled"/></form>
-    <list properties="listed" name="Events"><field property="id"><generator action="native"/></field><field property="name"><prompt prompt="name" locale="en_GB.UTF-8"/></field><field property="date"/><field property="time"/><field property="decription"/><field property="cancelled"/></list>
+    <list properties="listed" name="Events">
+      <field property="name"><prompt prompt="name" locale="en_GB.UTF-8"/></field>
+      <field property="date"/>
+      <field property="time"/>
+      <field property="cancelled"/>
+    </list>
   </entity>
   <!--
     entity districts already has a key - not generating one
@@ -961,17 +910,11 @@
     <permission group="public" permission="read"/>
     <permission group="admin" permission="all"/>
     <list properties="listed" name="Districts">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="name">
         <prompt prompt="name" locale="en_GB.UTF-8"/>
       </field>
     </list>
     <form properties="listed" name="District">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="name">
         <prompt prompt="name" locale="en_GB.UTF-8"/>
       </field>
@@ -1010,11 +953,8 @@
       <prompt prompt="closed" locale="en_GB.UTF-8"/>
     </property>
     <list properties="listed" name="Followupactions">
-      <field property="id">
-        <prompt prompt="id" locale="en_GB.UTF-8"/>
-      </field>
       <field property="request_id">
-        <prompt prompt="request_id" locale="en_GB.UTF-8"/>
+        <prompt prompt="Request" locale="en_GB.UTF-8"/>
       </field>
       <field property="actor">
         <prompt prompt="actor" locale="en_GB.UTF-8"/>