changeset 212:229f385448fa

Make map extent mandatory The extent of the countries responsibility area seems a reasonable default.
author Tom Gottfried <tom@intevation.de>
date Mon, 23 Jul 2018 17:41:31 +0200
parents e7826710d9c4
children 2fad2931a5a6
files schema/demo-data/users.sql schema/gemma.sql schema/manage_users.sql
diffstat 3 files changed, 12 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/schema/demo-data/users.sql	Mon Jul 23 16:45:27 2018 +0200
+++ b/schema/demo-data/users.sql	Mon Jul 23 17:41:31 2018 +0200
@@ -5,12 +5,12 @@
 -- responsibility areas from responsibility_areas.sql are imported
 
 -- Fill in Profiles
-COPY users.user_profiles (username, country, email_adress) FROM stdin;
-sophie	AT	sophie@example.com
-lucian	RO	lucian@example.com
-oana	RO	oana@example.com
-penka	BG	penka@example.com
-vanja	BG	vanja@example.com
+COPY users.user_profiles (username, country, email_adress, map_extent) FROM stdin;
+sophie	AT	sophie@example.com	BOX(9.52115482500011 46.3786430870001,17.1483378500001 49.0097744750001)
+lucian	RO	lucian@example.com	BOX(20.2428259690001 43.6500499480001,29.6995548840001 48.2748322560001)
+oana	RO	oana@example.com	BOX(20.2428259690001 43.6500499480001,29.6995548840001 48.2748322560001)
+penka	BG	penka@example.com	BOX(22.3450232340001 41.238104147,28.6035262380001 44.228434539)
+vanja	BG	vanja@example.com	BOX(22.3450232340001 41.238104147,28.6035262380001 44.228434539)
 \.
 
 COMMIT;
--- a/schema/gemma.sql	Mon Jul 23 16:45:27 2018 +0200
+++ b/schema/gemma.sql	Mon Jul 23 17:41:31 2018 +0200
@@ -136,7 +136,7 @@
     CREATE TABLE user_profiles (
         username varchar PRIMARY KEY,
         country char(2) NOT NULL REFERENCES responsibility_areas,
-        map_extent box2d,
+        map_extent box2d NOT NULL,
         email_adress varchar NOT NULL UNIQUE
     )
 
--- a/schema/manage_users.sql	Mon Jul 23 16:45:27 2018 +0200
+++ b/schema/manage_users.sql	Mon Jul 23 17:41:31 2018 +0200
@@ -14,6 +14,11 @@
     RETURNS void
 AS $$
 BEGIN
+    IF map_extent IS NULL
+    THEN
+        map_extent = ST_Extent(area) FROM users.responsibility_areas ra
+            WHERE ra.country = create_user.country;
+    END IF;
     INSERT INTO users.user_profiles VALUES (
         username, country, map_extent, email_adress);
     EXECUTE format(