[Dive4elements-commits] [PATCH 3 of 3] Simplify and fix range filtering for server data
Wald Commits
scm-commit at wald.intevation.org
Tue Jun 4 16:05:05 CEST 2013
# HG changeset patch
# User Andre Heinecke <aheinecke at intevation.de>
# Date 1370354648 -7200
# Node ID 3f8f212253a09769c5ad37a1d890d0e58675f0a6
# Parent 95257f28bb3f7c1e9ffc9023937dd78da950d180
Simplify and fix range filtering for server data.
We did not use the user id in the user range and the ld_* values
are provided as parameters for the datacage no need of that artifact
database access.
This also fixes Location awareness for DGMs
diff -r 95257f28bb3f -r 3f8f212253a0 artifacts/doc/conf/meta-data.xml
--- a/artifacts/doc/conf/meta-data.xml Tue Jun 04 16:02:17 2013 +0200
+++ b/artifacts/doc/conf/meta-data.xml Tue Jun 04 16:04:08 2013 +0200
@@ -5,8 +5,12 @@
<dc:comment>
User specific part
------------------
+ This is a hack because we currently have no way to supress empty
+ folders (either in the client or in the datacage).
</dc:comment>
- <dc:if test="dc:contains($parameters, 'user-id') and not(dc:contains($artifact-outs, 'floodmap-hws'))">
+ <dc:if test="dc:contains($parameters, 'user-id') and
+ not(dc:contains($artifact-outs, 'floodmap-hws')) and
+ not($current-state-id = 'state.winfo.uesk.dgm')">
<dc:call-macro name="load-user"/>
</dc:if>
@@ -32,7 +36,7 @@
</dc:macro>
<dc:macro name="generate-system-content">
- <dc:call-macro name="user-range">
+ <dc:call-macro name="artifact-range">
<dc:call-macro name="km-filtered-wsts">
<dc:choose>
<dc:when test="dc:contains($parameters, 'recommended')">
@@ -272,7 +276,7 @@
</dc:macro>
<dc:macro name="generate-user-content">
- <dc:call-macro name="user-range">
+ <dc:call-macro name="artifact-range">
<dc:call-macro name="all-user-artifacts">
<dc:call-macro name="km-filtered-user-artifacts">
<dc:choose>
@@ -1442,21 +1446,22 @@
d.name AS name,
t.start_time AS start_time,
t.stop_time AS stop_time,
- 'Projektion: ' || d.projection || '$' ||
- 'Rasterweite: ' || d.resolution || 'm$' ||
- 'Format: ' || d.format || '$' ||
+ 'Projektion: ' || d.projection || '<BR>' ||
+ 'Rasterweite: ' || d.resolution || 'm<BR>' ||
+ 'Format: ' || d.format || '<BR>' ||
'Zeitraum: '
AS info
FROM dem d
JOIN ranges r ON d.range_id = r.id
LEFT JOIN time_intervals t ON d.time_interval_id = t.id
- WHERE d.river_id = ${river_id}
- </dc:statement>
- <dc:for-each>
+ WHERE d.river_id = ${river_id}
+ AND NOT((${tokm} < r.a) or (${fromkm} > r.b))
+ </dc:statement>
+ <dc:for-each>
<dem factory="demfactory" target_out="{$out}"
ids="{$dem_id}"
name="{$name}"
- info="{dc:replace($info, '$', '<BR>')}{dc:date-format('yyyy', $start_time)} - {dc:date-format('yyyy', $stop_time)}"/>
+ info="{$info}{dc:date-format('yyyy', $start_time)} - {dc:date-format('yyyy', $stop_time)}"/>
</dc:for-each>
</dc:context>
</dems>
@@ -2397,31 +2402,10 @@
</dc:filter>
</dc:macro>
- <dc:macro name="user-range">
- <dc:choose>
- <dc:when test="dc:contains($parameters, 'user-id')">
- <dc:context connection="user">
- <dc:statement>
- SELECT COALESCE(ld_mode, '') AS ldm,
- COALESCE(ld_locations, '') AS ldl,
- COALESCE(ld_from, '') AS ldf,
- COALESCE(ld_to, '') AS ldt
- FROM master_artifacts_range
- WHERE gid = CAST(${artifact-id} AS uuid)
- </dc:statement>
- <dc:for-each>
- <dc:variable name="fromkm" type="number" expr="dc:fromValue($ldm, $ldl, $ldf)"/>
- <dc:variable name="tokm" type="number" expr="dc:toValue($ldm, $ldl, $ldt)"/>
- <dc:macro-body/>
- </dc:for-each>
- </dc:context>
- </dc:when>
- <dc:otherwise>
- <dc:variable name="fromkm" type="number" expr="dc:fromValue('', '', '')"/>
- <dc:variable name="tokm" type="number" expr="dc:toValue('', '', '')"/>
- <dc:macro-body/>
- </dc:otherwise>
- </dc:choose>
+ <dc:macro name="artifact-range">
+ <dc:variable name="fromkm" type="number" expr="dc:fromValue(dc:get('ld_mode'), dc:get('ld_locations'), dc:get('ld_from'))"/>
+ <dc:variable name="tokm" type="number" expr="dc:toValue(dc:get('ld_mode'), dc:get('ld_locations'), dc:get('ld_to'))"/>
+ <dc:macro-body/>
</dc:macro>
</datacage>
More information about the Dive4elements-commits
mailing list