Mercurial > dive4elements > river
changeset 8120:b57f4bcd0f6f
Remove code duplications in sedimentload datacage.
author | "Tom Gottfried <tom@intevation.de>" |
---|---|
date | Fri, 22 Aug 2014 13:19:02 +0200 |
parents | a9a6414b3563 |
children | 82af749d5ab3 |
files | artifacts/doc/conf/meta-data.xml |
diffstat | 1 files changed, 78 insertions(+), 126 deletions(-) [+] |
line wrap: on
line diff
--- a/artifacts/doc/conf/meta-data.xml Fri Aug 22 08:04:43 2014 +0200 +++ b/artifacts/doc/conf/meta-data.xml Fri Aug 22 13:19:02 2014 +0200 @@ -1354,7 +1354,7 @@ d.lower AS depth_lower, d.upper AS depth_upper, p.description || '<BR>' || - 'Tiefe: ' || d.lower || ' - ' || d.upper + 'Tiefe: ' || d.lower || ' - ' || d.upper || ' cm <BR>' || 'Zeitraum: ' AS info, t.start_time AS syear, @@ -1409,42 +1409,20 @@ </densities> </dc:macro> - <dc:macro name="one-load"> - <dc:variable name="syear" type="string" expr="dc:date-format('yyyy', $year)"/> - <year description="{$syear}" - factory="sedimentload" - target_out="{$out}" - info="{$description}" - ids="{$syid};{$fraction};{$syear}" /> - </dc:macro> - - <dc:macro name="epoch-load"> - <dc:variable name="syear" type="string" expr="dc:date-format('yyyy', $startyear)"/> - <dc:variable name="eyear" type="string" expr="dc:date-format('yyyy', $endyear)"/> - <year description="{$syear}-{$eyear}" + <dc:macro name="load"> + <year description="{$timespan}" factory="sedimentload" target_out="{$out}" info="{$description}" - ids="{$syid};{$fraction};{$syear}-{$eyear}" /> + ids="{$syid};{$fraction};{$timespan}" /> </dc:macro> - <dc:macro name="one-load_ls"> - <dc:variable name="syear" type="string" expr="dc:date-format('yyyy', $year)"/> - <year description="{$syear}" + <dc:macro name="load_ls"> + <year description="{$timespan}" factory="sedimentload_ls" target_out="{$out}" info="{$description}" - ids="{$syid};{$syear}" /> - </dc:macro> - - <dc:macro name="epoch-load_ls"> - <dc:variable name="syear" type="string" expr="dc:date-format('yyyy', $startyear)"/> - <dc:variable name="eyear" type="string" expr="dc:date-format('yyyy', $endyear)"/> - <year description="{$syear}-{$eyear}" - factory="sedimentload_ls" - target_out="{$out}" - info="{$description}" - ids="{$syid};{$syear}-{$eyear}" /> + ids="{$syid};{$timespan}" /> </dc:macro> <dc:macro name="loads"> @@ -1453,13 +1431,37 @@ <dc:variable name="fraction_name" expr="concat('\${', dc:group-key(), '}')"/> <fraction description="{$fraction_name}"> <dc:for-each> - <dc:macro-body/> + <dc:choose> + <dc:when test="string-length(dc:get('endyear')) = 0"> + <dc:variable name="timespan" type="string" + expr="dc:date-format('yyyy', $startyear)"/> + </dc:when> + <dc:otherwise> + <dc:variable name="timespan" type="string" + expr="concat(dc:date-format('yyyy', $startyear), + '-', dc:date-format('yyyy', $endyear))"/> + </dc:otherwise> + </dc:choose> + <dc:macro-body/> </dc:for-each> </fraction> </dc:group> </dc:if> </dc:macro> + <dc:macro name="sedimentloads-filter"> + <years> + <dc:filter expr="string-length(dc:get('endyear')) = 0" > + <dc:macro-body/> + </dc:filter> + </years> + <epochs> + <dc:filter expr="string-length(dc:get('endyear')) > 0" > + <dc:macro-body/> + </dc:filter> + </epochs> + </dc:macro> + <dc:macro name="sedimentloads"> <dc:comment> This is the macro for static datacage "Sedimentloads". @@ -1468,108 +1470,58 @@ <sedimentloads> <dc:call-macro name="annotations_sediment_load_ls"/> <measurement_stations> - <years> - <dc:context> - <dc:statement> - SELECT DISTINCT - sy.id AS syid, - sy.description AS description, - ti.start_time AS year, - gf.name AS fraction - FROM sediment_load sy - JOIN sediment_load_values syv - ON sy.id = syv.sediment_load_id - JOIN measurement_station ms - ON ms.id = syv.measurement_station_id - JOIN rivers r ON ms.river_id = r.id - JOIN time_intervals ti ON sy.time_interval_id = ti.id - JOIN grain_fraction gf ON gf.id = sy.grain_fraction_id - WHERE r.id = ${river_id} - AND ti.stop_time IS NULL - AND ms.station BETWEEN ${fromkm} AND ${tokm} - ORDER BY fraction, year DESC - </dc:statement> + <dc:context> + <dc:statement> + SELECT DISTINCT + sy.id AS syid, + sy.description AS description, + ti.start_time AS startyear, + ti.stop_time AS endyear, + gf.name AS fraction + FROM sediment_load sy + JOIN sediment_load_values syv + ON sy.id = syv.sediment_load_id + JOIN measurement_station ms + ON ms.id = syv.measurement_station_id + JOIN rivers r ON ms.river_id = r.id + JOIN time_intervals ti ON sy.time_interval_id = ti.id + JOIN grain_fraction gf ON gf.id = sy.grain_fraction_id + WHERE r.id = ${river_id} + AND ms.station BETWEEN ${fromkm} AND ${tokm} + ORDER BY fraction, startyear DESC, endyear DESC + </dc:statement> + <dc:call-macro name="sedimentloads-filter"> <dc:call-macro name="loads"> - <dc:call-macro name="one-load"/> + <dc:call-macro name="load"/> </dc:call-macro> - </dc:context> - </years> - <epochs> - <dc:context> - <dc:statement> - SELECT DISTINCT - sy.id AS syid, - sy.description AS description, - ti.start_time AS startyear, - ti.stop_time AS endyear, - gf.name AS fraction - FROM sediment_load sy - JOIN sediment_load_values syv - ON sy.id = syv.sediment_load_id - JOIN measurement_station ms - ON ms.id = syv.measurement_station_id - JOIN rivers r ON ms.river_id = r.id - JOIN time_intervals ti ON sy.time_interval_id = ti.id - JOIN grain_fraction gf ON gf.id = sy.grain_fraction_id - WHERE r.id = ${river_id} - AND ti.stop_time IS NOT NULL - AND ms.station BETWEEN ${fromkm} AND ${tokm} - ORDER BY fraction, startyear DESC, endyear DESC - </dc:statement> - <dc:call-macro name="loads"> - <dc:call-macro name="epoch-load"/> - </dc:call-macro> - </dc:context> - </epochs> + </dc:call-macro> + </dc:context> </measurement_stations> <sediment_load_ls> - <years> - <dc:context> - <dc:statement> - SELECT DISTINCT - sy.id AS syid, - sy.description AS description, - ti.start_time AS year, - gf.name AS fraction - FROM sediment_load_ls sy - JOIN rivers r ON sy.river_id = r.id - JOIN sediment_load_ls_values syv ON sy.id = syv.sediment_load_ls_id - JOIN time_intervals ti ON sy.time_interval_id = ti.id - JOIN grain_fraction gf ON gf.id = sy.grain_fraction_id - WHERE r.id = ${river_id} - AND ti.stop_time IS NULL - AND syv.station BETWEEN ${fromkm} AND ${tokm} - ORDER BY fraction, year DESC - </dc:statement> + <dc:context> + <dc:statement> + SELECT DISTINCT + sy.id AS syid, + sy.description AS description, + ti.start_time AS startyear, + ti.stop_time AS endyear, + gf.name AS fraction + FROM sediment_load_ls sy + JOIN rivers r ON sy.river_id = r.id + JOIN sediment_load_ls_values syv + ON sy.id = syv.sediment_load_ls_id + JOIN time_intervals ti ON sy.time_interval_id = ti.id + JOIN grain_fraction gf ON gf.id = sy.grain_fraction_id + WHERE r.id = ${river_id} + AND syv.station BETWEEN ${fromkm} AND ${tokm} + ORDER BY fraction, startyear DESC, endyear DESC + </dc:statement> + <dc:call-macro name="sedimentloads-filter"> <dc:call-macro name="loads"> - <dc:call-macro name="one-load_ls"/> + <dc:call-macro name="load_ls"/> </dc:call-macro> - </dc:context> - </years> - <epochs> - <dc:context> - <dc:statement> - SELECT DISTINCT - sy.id AS syid, - sy.description AS description, - ti.start_time AS startyear, - ti.stop_time AS endyear, - gf.name AS fraction - FROM sediment_load_ls sy - JOIN rivers r ON sy.river_id = r.id - JOIN sediment_load_ls_values syv ON sy.id = syv.sediment_load_ls_id - JOIN time_intervals ti ON sy.time_interval_id = ti.id - JOIN grain_fraction gf ON gf.id = sy.grain_fraction_id - WHERE r.id = ${river_id} - AND ti.stop_time IS NOT NULL - AND syv.station BETWEEN ${fromkm} AND ${tokm} - ORDER BY fraction, startyear DESC, endyear DESC - </dc:statement> - <dc:call-macro name="loads"> - <dc:call-macro name="epoch-load_ls"/> - </dc:call-macro> - </dc:context> - </epochs> + </dc:call-macro> + </dc:context> </sediment_load_ls> </sedimentloads> </dc:macro>