Ignore:
Timestamp:
04/07/17 00:32:11 (3 years ago)
Author:
Garth Braithwaite
Message:

db, java, xslt - cleaned up the dims to iv sql. Based inserts on actual IVV records because had duplicates. Also based on active records which does not quite line up with production NM data but it appears to check out.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ibisph-view/src/main/webapp/xslt/html/indicator/profile/interactive/Interactive.xslt

    r13513 r13530  
    4545                -->
    4646
     47                <xsl:variable name="seriesTitle">
     48                        <xsl:choose>
     49                                <xsl:when test="0 != string-length($indicatorView/SUBSTITUTE_SERIES_TITLE)">
     50                                        <xsl:value-of select="SUBSTITUTE_SERIES_TITLE"/>
     51                                </xsl:when>
     52                                <xsl:otherwise>
     53                                        <xsl:call-template name="Interactive.csvDimensionsTitleList">
     54                                                <xsl:with-param name="dimensions" select="$indicatorView/DIMENSIONS/DIMENSION[USAGE='series']"/>
     55                                        </xsl:call-template>
     56                                </xsl:otherwise>
     57                        </xsl:choose>
     58                </xsl:variable>
     59                <xsl:variable name="categoryTitle">
     60                        <xsl:choose>
     61                                <xsl:when test="0 != string-length($indicatorView/SUBSTITUTE_SERIES_TITLE)">
     62                                        <xsl:value-of select="SUBSTITUTE_CATEGORY_TITLE"/>
     63                                </xsl:when>
     64                                <xsl:otherwise>
     65                                        <xsl:call-template name="Interactive.csvDimensionsTitleList">
     66                                                <xsl:with-param name="dimensions" select="$indicatorView/DIMENSIONS/DIMENSION[USAGE='category']"/>
     67                                        </xsl:call-template>
     68                                </xsl:otherwise>
     69                        </xsl:choose>
     70                </xsl:variable>
     71
     72                <xsl:variable name="datasetRecords" select="$indicator/DATASETS/DATASET[NAME = $indicatorView/DATASET_NAMES/DATASET_NAME]/RECORDS/RECORD"/>
    4773
    4874                <xsl:variable name="datasetRecords" select="$indicator/DATASETS/DATASET[NAME = $indicatorView/DATASET_NAMES/DATASET_NAME]/RECORDS/RECORD"/>
     
    180206
    181207                                        <xsl:with-param name="title"                select="ibis:getCompleteIndicatorViewTitle($indicatorView)"/>
    182                                         <xsl:with-param name="seriesTitle"          select="$indicatorView/DATASET_SERIES/TITLE"/>
    183                                         <xsl:with-param name="categoryTitle"        select="$indicatorView/DATASET_CATEGORY/LABEL"/>
     208                                        <xsl:with-param name="seriesTitle"          select="$seriesTitle"/>
     209                                        <xsl:with-param name="categoryTitle"        select="$categoryTitle"/>
    184210                                        <xsl:with-param name="valueTitle"           select="$indicatorView/MEASURE/TITLE"/>
    185211
     
    266292                <xsl:variable name="measureName"        select="$indicatorView/MEASURE/NAME"/>
    267293
     294<!--
     295<xsl:message select="count($seriesDimensions/VALUES/VALUE)"/>
     296<xsl:message select="'series dims: '"/>
     297<xsl:message select="'cat dims: '"/>
     298<xsl:message select="$categoryDimensions"/>
     299-->
     300
    268301<xsl:text>[</xsl:text>
    269302                <xsl:for-each select="$seriesDimensions">
     
    271304                        <xsl:sort select="NAME"       order="ascending" data-type="text"/>
    272305                        <xsl:variable name="seriesDimension" select="."/>
     306                        <xsl:variable name="seriesPosition"  select="position()"/>
    273307
    274308                        <xsl:for-each select="$seriesDimension/VALUES/VALUE">
     
    281315                                        <xsl:sort select="NAME"       order="ascending" data-type="text"/>
    282316                                        <xsl:variable name="categoryDimension" select="."/>
     317                                        <xsl:variable name="categoryPosition"  select="position()"/>
    283318
    284319                                        <xsl:for-each select="$categoryDimension/VALUES/VALUE">
     
    289324                                                <xsl:variable name="record" select="
    290325                                                        $datasetRecords[
    291                                                                 ((DIMENSIONS/DIMENSION/NAME  = $seriesDimension/NAME)
     326                                                                (DIMENSIONS/DIMENSION/NAME  = $seriesDimension/NAME)
    292327                                                                        and
    293                                                                  (DIMENSIONS/DIMENSION/VALUE = $seriesDimensionValue/VALUE))
    294                                                                 and
    295                                                                 ((DIMENSIONS/DIMENSION/NAME  = $categoryDimension/NAME)
     328                                                                 (DIMENSIONS/DIMENSION/VALUE = $seriesDimensionValue/VALUE)
     329                                                                ][
     330                                                                (DIMENSIONS/DIMENSION/NAME  = $categoryDimension/NAME)
    296331                                                                        and
    297                                                                  (DIMENSIONS/DIMENSION/VALUE = $categoryDimensionValue/VALUE))
    298                                                         ]"
     332                                                                 (DIMENSIONS/DIMENSION/VALUE = $categoryDimensionValue/VALUE)
     333                                                                ]"
    299334                                                />
    300335
    301 <xsl:if test="($seriesValuePosition != 1) or ($categoryValuePosition != 1)">,</xsl:if>
     336<!--
     337<xsl:message select="'seriesDimension:'"/>
     338<xsl:message select="$seriesDimension"/>
     339
     340<xsl:message select="concat('current series: ', $seriesDimension/NAME,    ':', $seriesDimensionValue/VALUE[1], ' value position: ', $seriesValuePosition)"/>
     341<xsl:message select="concat('current cat: ',    $categoryDimension/NAME,  ':', $categoryDimensionValue/VALUE, ', category value position: ', $categoryValuePosition)"/>
     342<xsl:message select="$seriesDimensionValue"/>
     343<xsl:message select="."/>
     344<xsl:message select="'end'"/>
     345<xsl:message select="count($record)"/>
     346
     347<xsl:message select="concat('series value position: ', $seriesValuePosition, ', category value position: ', position())"/>
     348
     349<xsl:message select="$datasetRecords[1]/DIMENSIONS/DIMENSION/NAME"/>
     350<xsl:message select="$datasetRecords[1]/DIMENSIONS/DIMENSION/VALUE"/>
     351<xsl:message select="$datasetRecords[1]/VALUE"/>
     352<xsl:message select="$record"/>
     353-->
     354
     355<xsl:if test="($categoryValuePosition != 1) or ($categoryPosition != 1) or ($seriesValuePosition != 1) or ($seriesPosition != 1)">,</xsl:if>
    302356{
    303357        rowID:<xsl:value-of select="concat($seriesValuePosition, '.', $categoryValuePosition)"/>
     
    329383        </xsl:template>
    330384
     385
     386        <xsl:template name="Interactive.csvDimensionsTitleList"
     387                ibis:doc="Internal template which builds a comma separated values
     388                        (CSV) list of dimension titles. 
     389                "
     390        >
     391                <xsl:param name="dimensions" ibis:doc="dimensions to look up value titles from."/>
     392
     393                <xsl:for-each select="distinct-values($dimensions/TITLE)">
     394                        <xsl:if test="position() != 1">, </xsl:if>
     395                        <xsl:value-of select="current()"/>
     396                </xsl:for-each>
     397        </xsl:template>
     398
    331399</xsl:stylesheet>
    332400<!-- ============================= End of File ============================= -->
Note: See TracChangeset for help on using the changeset viewer.