Mercurial > dive4elements > river
diff artifacts/doc/conf/meta-data.xml @ 9625:07f02019065e
Nachtrag Pos. 20: infrastructure query added, calculation updated for extended access class
author | mschaefer |
---|---|
date | Mon, 14 Oct 2019 08:14:58 +0200 |
parents | 02ca823ec9c6 |
children | ad852be69900 |
line wrap: on
line diff
--- a/artifacts/doc/conf/meta-data.xml Fri Oct 11 18:30:36 2019 +0200 +++ b/artifacts/doc/conf/meta-data.xml Mon Oct 14 08:14:58 2019 +0200 @@ -1418,23 +1418,84 @@ <dc:macro name="predefined_infrastructures"> <infrastructures TODO="i10n"> <dc:context connection="system"> - <dc:statement> - SELECT * - FROM infrastructure - WHERE river_id = ${river_id} - </dc:statement> - <dc:group expr="$group_id"> - <infrastructure_group description="{dc:group-key()}"> - <dc:for-each> - <!-- name="{$annotation_type_id}" --> - <!-- not necessary: target_out="{$out}" --> - <infrastructure_type description="{$FILENAME}" factory="FAKE_FACTORY" group_label="{$group_id}" group_id="{$group_id}" type_id="{$annotation_type_id}" type_label="{$annotation_type_id}" /> - </dc:for-each> - </infrastructure_group> - </dc:group> + <!--dc:choose> + <dc:when test="dc:contains($riverside, 'left')"> + <dc:call-macro name="infrastructures_leftside_statement" /> + <dc:call-macro name="infrastructures_groups_fill" /> + </dc:when> + <dc:when test="dc:contains($riverside, 'right')"> + <dc:call-macro name="infrastructures_rightside_statement" /> + <dc:call-macro name="infrastructures_groups_fill" /> + </dc:when> + <dc:otherwise> + <dc:call-macro name="infrastructures_bothsides_statement" /> + <dc:call-macro name="infrastructures_groups_fill" /> + </dc:otherwise> + </dc:choose--> + <dc:call-macro name="infrastructures_bothsides_statement" /> + <dc:call-macro name="infrastructures_groups_fill" /> </dc:context> </infrastructures> </dc:macro> + + <dc:macro name="infrastructures_groups_fill"> + <dc:group expr="$group_label"> + <infrastructure_group name="{dc:group-key()}" description="{dc:group-key()}"> + <dc:for-each> + <!-- name="{$annotation_type_id}" --> + <!-- not necessary: target_out="{$out}" --> + <infrastructure_type name="{$type_label}" description="{$filename}" factory="FAKE_FACTORY" group_label="{$group_label}" group_id="{$group_id}" type_id="{$type_id}" type_label="{$type_label}" /> + </dc:for-each> + </infrastructure_group> + </dc:group> + </dc:macro> + + <dc:macro name="infrastructures_leftside_statement"> + <dc:statement> + SELECT s.id, MIN(s.filename) AS filename, MIN(s.group_id) AS group_id, MIN(g.name) AS group_label, + MIN(s.annotation_type_id) AS type_id, MIN(t.name) AS type_label + FROM (((infrastructure AS s INNER JOIN infrastructure_values AS v ON v.infrastructure_id = s.id) + INNER JOIN annotation_types AS g ON s.group_id = g.id) + INNER JOIN annotation_types AS t ON s.annotation_type_id = t.id) + INNER JOIN attributes AS rs ON v.attribute_id = rs.id + WHERE (s.river_id = ${river_id}) + AND (v.station BETWEEN ${fromkm}-0.0001 AND ${tokm}+0.0001) + AND (lower(rs.value) = 'links') + GROUP BY s.id + ORDER BY MIN(g.name), MIN(t.name) + </dc:statement> + </dc:macro> + + <dc:macro name="infrastructures_rightside_statement"> + <dc:statement> + SELECT s.id, MIN(s.filename) AS filename, MIN(s.group_id) AS group_id, MIN(g.name) AS group_label, + MIN(s.annotation_type_id) AS type_id, MIN(t.name) AS type_label + FROM (((infrastructure AS s INNER JOIN infrastructure_values AS v ON v.infrastructure_id = s.id) + INNER JOIN annotation_types AS g ON s.group_id = g.id) + INNER JOIN annotation_types AS t ON s.annotation_type_id = t.id) + INNER JOIN attributes AS rs ON v.attribute_id = rs.id + WHERE (s.river_id = ${river_id}) + AND (v.station BETWEEN ${fromkm}-0.0001 AND ${tokm}+0.0001) + AND (lower(rs.value) = 'rechts') + GROUP BY s.id + ORDER BY MIN(g.name), MIN(t.name) + </dc:statement> + </dc:macro> + + <dc:macro name="infrastructures_bothsides_statement"> + <dc:statement> + SELECT s.id, MIN(s.filename) AS filename, MIN(s.group_id) AS group_id, MIN(g.name) AS group_label, + MIN(s.annotation_type_id) AS type_id, MIN(t.name) AS type_label + FROM (((infrastructure AS s INNER JOIN infrastructure_values AS v ON v.infrastructure_id = s.id) + INNER JOIN annotation_types AS g ON s.group_id = g.id) + INNER JOIN annotation_types AS t ON s.annotation_type_id = t.id) + INNER JOIN attributes AS rs ON v.attribute_id = rs.id + WHERE (s.river_id = ${river_id}) + AND (v.station BETWEEN ${fromkm}-0.0001 AND ${tokm}+0.0001) + GROUP BY s.id + ORDER BY MIN(g.name), MIN(t.name) + </dc:statement> + </dc:macro> <!-- wst-data -->