← Back to team overview

dhis2-devs team mailing list archive

Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 1739: Fixed bug <Data browser does not use period names>

 

Just use the formatPeriod method. That will also provide the
localization. We should NOT use formatDate, we want the name of the
period..

2010/4/6, Hieu Dang Duy <hieu.hispvietnam@xxxxxxxxx>:
> Reverted reversion to Rev 1738
>
> On Tue, Apr 6, 2010 at 5:09 PM, <noreply@xxxxxxxxxxxxx> wrote:
>
>> ------------------------------------------------------------
>> revno: 1739
>> committer: hieu <hieu.hispvietnam@xxxxxxxxx>
>> branch nick: trunk
>> timestamp: Tue 2010-04-06 17:05:28 +0700
>> message:
>>  Fixed bug <Data browser does not use period names>
>>  - Added new resource bundle key 'format.date.custome' which is used for
>> defined the format date in data browser output.
>>  Fixed bug <Data browser drilldown>
>>  - Working on process and still have a long discussion with Jason about
>> re-solving this one
>> modified:
>>  dhis-2/dhis-api/src/main/java/org/hisp/dhis/i18n/I18nFormat.java
>>
>>
>> dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java
>>
>>
>> dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java
>>
>> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties
>>
>>
>> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties
>>
>>
>> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties
>>
>>
>> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties
>>
>>
>> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm
>>
>>
>> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/databrowser/SearchAction.java
>>
>>
>> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserResult.vm
>>
>>
>> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/org/hisp/dhis/dd/i18n_module.properties
>>
>>
>> --
>> lp:dhis2
>> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk<https://code.launchpad.net/%7Edhis2-devs-core/dhis2/trunk>
>>
>> Your team DHIS 2 developers is subscribed to branch lp:dhis2.
>> To unsubscribe from this branch go to
>> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription<https://code.launchpad.net/%7Edhis2-devs-core/dhis2/trunk/+edit-subscription>
>>
>> === modified file
>> 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/i18n/I18nFormat.java'
>> --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/i18n/I18nFormat.java
>>  2009-03-03 16:46:36 +0000
>> +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/i18n/I18nFormat.java
>>  2010-04-06 10:05:28 +0000
>> @@ -51,13 +51,13 @@
>>     }
>>
>>     /**
>> -     * Constructor should only be used for testing purposes. Use
>> +     * Constructor should only be used for testing purposes. Use
>>      * I18nManager.getI18nFormat for normal use.
>>      */
>>     public I18nFormat()
>> -    {
>> +    {
>>     }
>> -
>> +
>>     //
>> -------------------------------------------------------------------------
>>     // Init
>>     //
>> -------------------------------------------------------------------------
>> @@ -141,6 +141,16 @@
>>         return commonFormatting( date, resourceBundle.getString(
>> "format.date" ) );
>>     }
>>
>> +    public String formatDateByCustome( Date date )
>> +    {
>> +        if ( date == null )
>> +        {
>> +            return null;
>> +        }
>> +
>> +        return commonFormatting( date, resourceBundle.getString(
>> "format.date.custome" ) );
>> +    }
>> +
>>     public String formatTime( Date date )
>>     {
>>         if ( date == null )
>>
>> === modified file
>> 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java'
>> ---
>> dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java
>> 2009-08-24 13:55:25 +0000
>> +++
>> dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java
>> 2010-04-06 10:05:28 +0000
>> @@ -15,6 +15,8 @@
>>  /**
>>  * @author joakibj, martinwa, briane, eivinhb
>>  * @version $Id$
>> + * @modifier Dang Duy Hieu
>> + * @since 2010-04-06
>>  */
>>  public class StatementManagerDataBrowserStore
>>     implements DataBrowserStore
>> @@ -22,7 +24,7 @@
>>     //
>> -------------------------------------------------------------------------
>>     // Dependencies
>>     //
>> -------------------------------------------------------------------------
>> -
>> +
>>     private StatementManager statementManager;
>>
>>     public void setStatementManager( StatementManager statementManager )
>> @@ -33,7 +35,7 @@
>>     //
>> -------------------------------------------------------------------------
>>     // DataBrowserStore implementation
>>     //
>> -------------------------------------------------------------------------
>> -
>> +
>>     public DataBrowserTable getDataSetsBetweenPeriods( List<Integer>
>> betweenPeriodIds )
>>     {
>>         StatementHolder holder = statementManager.getHolder();
>> @@ -46,13 +48,13 @@
>>         try
>>         {
>>             StringBuffer sqlsb = new StringBuffer();
>> -            sqlsb.append( "SELECT d.datasetid AS ID, d.name AS DataSet,
>> count(*) AS Count " );
>> +            sqlsb.append( "(SELECT d.datasetid AS ID, d.name AS DataSet,
>> count(*) AS Counts_of_aggregated_values " );
>>             sqlsb.append( "FROM datavalue dv " );
>>             sqlsb.append( "JOIN datasetmembers dsm ON (dv.dataelementid =
>> dsm.dataelementid) " );
>>             sqlsb.append( "JOIN dataset d ON (d.datasetid = dsm.datasetid)
>> " );
>>             sqlsb.append( "WHERE dv.periodid IN " + splitListHelper(
>> betweenPeriodIds ) + " " );
>>             sqlsb.append( "GROUP BY d.datasetid, d.name " );
>> -            sqlsb.append( "ORDER BY Count DESC" );
>> +            sqlsb.append( "ORDER BY Counts_of_aggregated_values DESC)" );
>>
>>             String sql = sqlsb.toString();
>>
>> @@ -78,9 +80,9 @@
>>         {
>>             holder.close();
>>         }
>> -
>> +
>>         return table;
>> -    }
>> +    }
>>
>>     public DataBrowserTable getDataElementGroupsBetweenPeriods(
>> List<Integer> betweenPeriodIds )
>>     {
>> @@ -91,13 +93,14 @@
>>         try
>>         {
>>             StringBuffer sqlsb = new StringBuffer();
>> -            sqlsb.append( "SELECT d.dataelementgroupid AS ID, d.name AS
>> DataElementGroup, count(*) AS Count " );
>> +            sqlsb
>> +                .append( "(SELECT d.dataelementgroupid AS ID, d.name AS
>> DataElementGroup, count(*) AS Counts_of_aggregated_values " );
>>             sqlsb.append( "FROM datavalue dv " );
>> -            sqlsb
>> -                .append( "JOIN dataelementgroupmembers degm ON
>> (dv.dataelementid = degm.dataelementid) JOIN dataelementgroup d ON
>> (d.dataelementgroupid = degm.dataelementgroupid) " );
>> +            sqlsb.append( "JOIN dataelementgroupmembers degm ON
>> (dv.dataelementid = degm.dataelementid)" );
>> +            sqlsb.append( "JOIN dataelementgroup d ON
>> (d.dataelementgroupid = degm.dataelementgroupid) " );
>>             sqlsb.append( "WHERE dv.periodid IN " + splitListHelper(
>> betweenPeriodIds ) + " " );
>>             sqlsb.append( "GROUP BY d.dataelementgroupid, d.name " );
>> -            sqlsb.append( "ORDER BY Count DESC;" );
>> +            sqlsb.append( "ORDER BY Count DESC)" );
>>
>>             String sql = sqlsb.toString();
>>
>> @@ -122,7 +125,7 @@
>>         {
>>             holder.close();
>>         }
>> -
>> +
>>         return table;
>>     }
>>
>> @@ -132,18 +135,18 @@
>>
>>         DataBrowserTable table = null;
>>         String sql = "";
>> -
>> +
>>         try
>>         {
>>             StringBuffer sqlsb = new StringBuffer();
>>
>> -            sqlsb.append( "SELECT oug.orgunitgroupid, oug.name, Count(*)
>> as ant " );
>> -            sqlsb.append( "FROM orgunitgroup oug  " );
>> -            sqlsb.append( "Join orgunitgroupmembers ougm ON
>> oug.orgunitgroupid = ougm.orgunitgroupid " );
>> -            sqlsb.append( "Join organisationunit ou ON
>>  ougm.organisationunitid = ou.organisationunitid " );
>> -            sqlsb.append( "Join datavalue dv ON ou.organisationunitid =
>> dv.sourceid " );
>> +            sqlsb.append( "(SELECT oug.orgunitgroupid, oug.name, Count(*)
>> as Counts_of_aggregated_values " );
>> +            sqlsb.append( "FROM orgunitgroup oug " );
>> +            sqlsb.append( "JOIN orgunitgroupmembers ougm ON
>> oug.orgunitgroupid = ougm.orgunitgroupid " );
>> +            sqlsb.append( "JOIN organisationunit ou ON
>>  ougm.organisationunitid = ou.organisationunitid " );
>> +            sqlsb.append( "JOIN datavalue dv ON ou.organisationunitid =
>> dv.sourceid " );
>>             sqlsb.append( "WHERE dv.periodid IN " + splitListHelper(
>> betweenPeriodIds ) + " " );
>> -            sqlsb.append( "GROUP BY oug.orgunitgroupid, oug.name ORDER BY
>> ant desc " );
>> +            sqlsb.append( "GROUP BY oug.orgunitgroupid, oug.name ORDER BY
>> Counts_of_aggregated_values DESC) " );
>>
>>             sql = sqlsb.toString();
>>
>> @@ -168,7 +171,7 @@
>>         {
>>             holder.close();
>>         }
>> -
>> +
>>         return table;
>>     }
>>
>> @@ -180,13 +183,13 @@
>>         try
>>         {
>>             StringBuffer sqlsb = new StringBuffer();
>> -            sqlsb.append( "SELECT de.dataelementid, de.name AS Name " );
>> +            sqlsb.append( "(SELECT de.dataelementid, de.name AS Name " );
>>             sqlsb.append( "FROM dataelement de JOIN datavalue dv ON
>> (de.dataelementid = dv.dataelementid) " );
>>             sqlsb.append( "JOIN datasetmembers dsm ON (de.dataelementid =
>> dsm.dataelementid) " );
>> -            sqlsb.append( "WHERE dsm.datasetid = " + dataSetId + " AND
>> dv.periodid IN "
>> -                + splitListHelper( betweenPeriods ) + " " );
>> +            sqlsb.append( "WHERE dsm.datasetid = '" + dataSetId + "' " );
>> +            sqlsb.append( "AND dv.periodid IN " + splitListHelper(
>> betweenPeriods ) + " " );
>>             sqlsb.append( "GROUP BY de.dataelementid, de.name " );
>> -            sqlsb.append( "ORDER BY de.name " );
>> +            sqlsb.append( "ORDER BY de.name) " );
>>
>>             String sql = sqlsb.toString();
>>
>> @@ -215,20 +218,20 @@
>>         StatementHolder holder = statementManager.getHolder();
>>
>>         StringBuffer sqlsb = new StringBuffer();
>> -        String sql = "";
>> -
>> +        String sql = "";
>> +
>>         try
>>         {
>> -            sqlsb.append( "SELECT deg.dataelementgroupid, deg.name AS
>> DataElementGroup " );
>> +            sqlsb.append( "(SELECT deg.dataelementgroupid, deg.name AS
>> DataElementGroup " );
>>             sqlsb.append( "FROM dataelementgroup deg " );
>> -            sqlsb.append( "Join dataelementgroupmembers degm ON
>> deg.dataelementgroupid = degm.dataelementgroupid " );
>> -            sqlsb.append( "Join datavalue dv ON degm.dataelementid =
>> dv.dataelementid " );
>> -            sqlsb.append( "Join organisationunit ou ON dv.sourceid =
>> ou.organisationunitid " );
>> -            sqlsb.append( "Join orgunitgroupmembers ougm ON
>> ou.organisationunitid = ougm.organisationunitid " );
>> -            sqlsb.append( "WHERE ougm.orgunitgroupid =  '" +
>> orgUnitGroupId + "' AND dv.periodid IN "
>> -                + splitListHelper( betweenPeriods ) + " " );
>> +            sqlsb.append( "JOIN dataelementgroupmembers degm ON
>> deg.dataelementgroupid = degm.dataelementgroupid " );
>> +            sqlsb.append( "JOIN datavalue dv ON degm.dataelementid =
>> dv.dataelementid " );
>> +            sqlsb.append( "JOIN organisationunit ou ON dv.sourceid =
>> ou.organisationunitid " );
>> +            sqlsb.append( "JOIN orgunitgroupmembers ougm ON
>> ou.organisationunitid = ougm.organisationunitid " );
>> +            sqlsb.append( "WHERE ougm.orgunitgroupid = '" +
>> orgUnitGroupId
>> + "' " );
>> +            sqlsb.append( "AND dv.periodid IN " + splitListHelper(
>> betweenPeriods ) + " " );
>>             sqlsb.append( "GROUP BY deg.dataelementgroupid, deg.name " );
>> -            sqlsb.append( "ORDER BY deg.name ASC " );
>> +            sqlsb.append( "ORDER BY deg.name ASC) " );
>>
>>             sql = sqlsb.toString();
>>
>> @@ -259,13 +262,13 @@
>>         try
>>         {
>>             StringBuffer sqlsb = new StringBuffer();
>> -            sqlsb.append( "SELECT de.dataelementid, de.name AS Name " );
>> +            sqlsb.append( "(SELECT de.dataelementid, de.name AS Name " );
>>             sqlsb.append( "FROM dataelement de JOIN datavalue dv ON
>> (de.dataelementid = dv.dataelementid) " );
>>             sqlsb.append( "JOIN dataelementgroupmembers degm ON
>> (de.dataelementid = degm.dataelementid) " );
>> -            sqlsb.append( "WHERE degm.dataelementgroupid = " +
>> dataElementGroupId + " AND dv.periodid IN "
>> -                + splitListHelper( betweenPeriods ) + " " );
>> +            sqlsb.append( "WHERE degm.dataelementgroupid = '" +
>> dataElementGroupId + "' " );
>> +            sqlsb.append( "AND dv.periodid IN " + splitListHelper(
>> betweenPeriods ) + " " );
>>             sqlsb.append( "GROUP BY de.dataelementid, de.name " );
>> -            sqlsb.append( "ORDER BY de.name " );
>> +            sqlsb.append( "ORDER BY de.name) " );
>>
>>             String sql = sqlsb.toString();
>>
>> @@ -289,6 +292,7 @@
>>         }
>>     }
>>
>> +    // THE PROBLEM IS HERE >>> STILL WORKING
>>     public void setStructureForOrgUnitBetweenPeriods( DataBrowserTable
>> table, Integer orgUnitParent,
>>         List<Integer> betweenPeriods )
>>     {
>> @@ -297,9 +301,13 @@
>>         try
>>         {
>>             StringBuffer sqlsb = new StringBuffer();
>> -            sqlsb.append( "SELECT o.organisationunitid, o.name AS
>> OrganisationUnit " );
>> +            sqlsb.append( "(SELECT o.organisationunitid, o.name AS
>> OrganisationUnit " );
>>             sqlsb.append( "FROM organisationunit o " );
>> -            sqlsb.append( "WHERE o.parentid = " + orgUnitParent + "" );
>> +            sqlsb.append( "JOIN datavalue as dv ON (o.organisationunitid
>> =
>> dv.sourceid) " );
>> +            sqlsb.append( "WHERE o.parentid = '" + orgUnitParent + "' "
>> );
>> +            sqlsb.append( "AND dv.periodid IN " + splitListHelper(
>> betweenPeriods ) + " " );
>> +            sqlsb.append( "GROUP BY o.organisationunitid, o.name " );
>> +            sqlsb.append( "ORDER BY o.name)" );
>>
>>             String sql = sqlsb.toString();
>>
>> @@ -324,21 +332,26 @@
>>         }
>>     }
>>
>> -    public void setDataElementStructureForOrgUnitBetweenPeriods(
>> DataBrowserTable table, Integer orgUnitId, List<Integer> betweenPeriods)
>> +    public void setDataElementStructureForOrgUnitBetweenPeriods(
>> DataBrowserTable table, Integer orgUnitId,
>> +        List<Integer> betweenPeriods )
>>     {
>> +        // Please do not delete this testing ...
>> +        System.out.println( "\n\n\n TESTING IN
>> [setDataElementStructureForOrgUnitBetweenPeriods] :: " );
>> +
>>         StatementHolder holder = statementManager.getHolder();
>> -
>> +
>>         try
>>         {
>>             StringBuffer sqlsb = new StringBuffer();
>> -            sqlsb.append( "SELECT de.dataelementid, de.name AS
>> DataElementGroup " );
>> +            sqlsb.append( "(SELECT de.dataelementid, de.name AS
>> DataElement " );
>>             sqlsb.append( "FROM dataelement AS de " );
>> -            sqlsb.append( "Inner Join datavalue AS dv ON
>> (de.dataelementid
>> = dv.dataelementid) " );
>> -            sqlsb.append( "Inner Join datasetmembers AS dsm ON
>> (de.dataelementid = dsm.dataelementid) " );
>> -            sqlsb.append( "Inner Join organisationunit ON dv.sourceid =
>> organisationunit.organisationunitid " );
>> -            sqlsb.append( "WHERE organisationunit.organisationunitid = "
>> +
>> orgUnitId + " " );
>> +            sqlsb.append( "INNER JOIN datavalue AS dv ON
>> (de.dataelementid
>> = dv.dataelementid) " );
>> +            sqlsb.append( "INNER JOIN datasetmembers AS dsm ON
>> (de.dataelementid = dsm.dataelementid) " );
>> +            sqlsb.append( "INNER JOIN organisationunit AS o ON
>> (dv.sourceid = o.organisationunitid) " );
>> +            sqlsb.append( "WHERE o.organisationunitid = '" + orgUnitId +
>> "' " );
>> +            sqlsb.append( "AND dv.periodid IN " + splitListHelper(
>> betweenPeriods ) + " " );
>>             sqlsb.append( "GROUP BY de.dataelementid, de.name " );
>> -            sqlsb.append( "ORDER BY de.name " );
>> +            sqlsb.append( "ORDER BY de.name) " );
>>
>>             String sql = sqlsb.toString();
>>
>> @@ -348,8 +361,12 @@
>>             TimeUtils.stop();
>>
>>             table.incrementQueryCount();
>> -            table.addColumnName("DataElement");
>> +            table.addColumnName( "DataElement" );
>>             table.createStructure( resultSet );
>> +
>> +            // TEST TABLE
>> +            // Please do not delete this testing ...
>> +            System.out.println( "\nTABLE For OrgUnit option:= " + table
>> );
>>         }
>>         catch ( SQLException e )
>>         {
>> @@ -360,11 +377,12 @@
>>             holder.close();
>>         }
>>     }
>> -
>> -    public Integer setCountDataElementsForDataSetBetweenPeriods(
>> DataBrowserTable table, Integer dataSetId, List<Integer> betweenPeriodIds)
>> +
>> +    public Integer setCountDataElementsForDataSetBetweenPeriods(
>> DataBrowserTable table, Integer dataSetId,
>> +        List<Integer> betweenPeriodIds )
>>     {
>>         StatementHolder holder = statementManager.getHolder();
>> -
>> +
>>         // Here we uses a for loop to create one big sql statement using
>> UNION.
>>         // This is done because the count and GROUP BY parts of this query
>> can't
>>         // be done in another way. The alternative to this method is to
>> actually
>> @@ -375,23 +393,24 @@
>>         StringBuffer sqlsb = new StringBuffer();
>>
>>         int i = 0;
>> -        for ( Integer periodid : betweenPeriodIds )
>> +        for ( Integer periodId : betweenPeriodIds )
>>         {
>>             i++;
>>
>> -            sqlsb.append( "(SELECT de.dataelementid, de.name AS
>> DataElement, count(*) AS Count, p.periodid AS PeriodId, p.startDate AS
>> ColumnHeader " );
>> +            sqlsb
>> +                .append( "(SELECT de.dataelementid, de.name AS
>> DataElement, Count(dv.value) AS Counts_of_aggregated_values, p.periodid AS
>> PeriodId, p.startDate AS ColumnHeader " );
>>             sqlsb.append( "FROM dataelement de JOIN datavalue dv ON
>> (de.dataelementid = dv.dataelementid) " );
>>             sqlsb.append( "JOIN datasetmembers dsm ON (de.dataelementid =
>> dsm.dataelementid) " );
>>             sqlsb.append( "JOIN period p ON (dv.periodid = p.periodid) "
>> );
>> -            sqlsb.append( "WHERE dsm.datasetid = " + dataSetId + " AND
>> dv.periodid = " + periodid + " " );
>> -            sqlsb.append( "GROUP BY de.dataelementid, de.name,
>> p.periodid, p.startDate )" );
>> +            sqlsb.append( "WHERE dsm.datasetid = '" + dataSetId + "' AND
>> dv.periodid = '" + periodId + "' " );
>> +            sqlsb.append( "GROUP BY de.dataelementid, de.name,
>> p.periodid, p.startDate)" );
>>
>>             if ( i == betweenPeriodIds.size() )
>> -               sqlsb.append( "ORDER BY PeriodId ");
>> +                sqlsb.append( "ORDER BY PeriodId " );
>>             else
>> -               sqlsb.append( " UNION ");
>> +                sqlsb.append( " UNION " );
>>         }
>> -
>> +
>>         try
>>         {
>>             TimeUtils.start();
>> @@ -401,7 +420,7 @@
>>
>>             table.incrementQueryCount();
>>
>> -            numResults = table.addColumnToAllRows( resultSet );
>> +            numResults = table.addColumnToAllRows( resultSet );
>>         }
>>         catch ( SQLException e )
>>         {
>> @@ -427,16 +446,16 @@
>>         for ( Integer periodid : betweenPeriodIds )
>>         {
>>             i++;
>> -
>> +
>>             sqlsb
>> -                .append( "(SELECT de.dataelementid, de.name AS
>> DataElement, count(*) AS Count, p.periodid AS PeriodId, p.startDate AS
>> ColumnHeader " );
>> +                .append( "(SELECT de.dataelementid, de.name AS
>> DataElement, count(dv.value) AS Counts_of_aggregated_values, p.periodid AS
>> PeriodId, p.startDate AS ColumnHeader " );
>>             sqlsb.append( "FROM dataelement de JOIN datavalue dv ON
>> (de.dataelementid = dv.dataelementid) " );
>>             sqlsb.append( "JOIN dataelementgroupmembers degm ON
>> (de.dataelementid = degm.dataelementid) " );
>>             sqlsb.append( "JOIN period p ON (dv.periodid = p.periodid) "
>> );
>> -            sqlsb.append( "WHERE degm.dataelementgroupid = " +
>> dataElementGroupId + " AND dv.periodid = " + periodid
>> -                + " " );
>> +            sqlsb.append( "WHERE degm.dataelementgroupid = '" +
>> dataElementGroupId + "' " );
>> +            sqlsb.append( "AND dv.periodid = '" + periodid + "' " );
>>             sqlsb.append( "GROUP BY de.dataelementid, de.name, p.periodid,
>> p.startDate) " );
>> -
>> +
>>             if ( i == betweenPeriodIds.size() )
>>                 sqlsb.append( "ORDER BY PeriodId " );
>>             else
>> @@ -465,7 +484,7 @@
>>
>>         return numResults;
>>     }
>> -
>> +
>>     public Integer setCountDataElementGroupsForOrgUnitGroupBetweenPeriods(
>> DataBrowserTable table,
>>         Integer orgUnitGroupId, List<Integer> betweenPeriodIds )
>>     {
>> @@ -473,21 +492,21 @@
>>
>>         Integer numResults = 0;
>>         StringBuffer sqlsb = new StringBuffer();
>> -
>> +
>>         int i = 0;
>>         for ( Integer periodid : betweenPeriodIds )
>>         {
>>             i++;
>>
>>             sqlsb
>> -                .append( " (SELECT deg.dataelementgroupid, deg.name,
>> Count(*) AS Count, p.periodid AS PeriodId, p.startdate AS ColumnHeader "
>> );
>> +                .append( " (SELECT deg.dataelementgroupid, deg.name,
>> Count(dv.value) AS Counts_of_aggregated_values, p.periodid AS PeriodId,
>> p.startdate AS ColumnHeader " );
>>             sqlsb.append( "FROM dataelementgroup AS deg " );
>>             sqlsb
>> -                .append( "Inner Join dataelementgroupmembers AS degm ON
>> deg.dataelementgroupid = degm.dataelementgroupid " );
>> -            sqlsb.append( "Inner Join datavalue AS dv ON
>> degm.dataelementid = dv.dataelementid " );
>> -            sqlsb.append( "Inner Join period AS p ON dv.periodid =
>> p.periodid " );
>> -            sqlsb.append( "Inner Join organisationunit AS ou ON
>> dv.sourceid = ou.organisationunitid " );
>> -            sqlsb.append( "Inner Join orgunitgroupmembers AS ougm ON
>> ou.organisationunitid = ougm.organisationunitid " );
>> +                .append( "INNER JOIN dataelementgroupmembers AS degm ON
>> deg.dataelementgroupid = degm.dataelementgroupid " );
>> +            sqlsb.append( "INNER JOIN datavalue AS dv ON
>> degm.dataelementid = dv.dataelementid " );
>> +            sqlsb.append( "INNER JOIN period AS p ON dv.periodid =
>> p.periodid " );
>> +            sqlsb.append( "INNER JOIN organisationunit AS ou ON
>> dv.sourceid = ou.organisationunitid " );
>> +            sqlsb.append( "INNER JOIN orgunitgroupmembers AS ougm ON
>> ou.organisationunitid = ougm.organisationunitid " );
>>             sqlsb
>>                 .append( "WHERE p.periodid =  '" + periodid + "' AND
>> ougm.orgunitgroupid =  '" + orgUnitGroupId + "' " );
>>             sqlsb.append( "GROUP BY
>> deg.dataelementgroupid,deg.name,p.periodid,p.startdate)
>> " );
>> @@ -534,14 +553,14 @@
>>         for ( Integer periodid : betweenPeriodIds )
>>         {
>>             i++;
>> -
>> +
>>             sqlsb
>> -                .append( "(SELECT o.organisationunitid, o.name AS
>> OrganisationUnit, count(*) AS Count, p.periodid AS PeriodId, p.startDate
>> AS
>> ColumnHeader " );
>> +                .append( "(SELECT o.organisationunitid, o.name AS
>> OrganisationUnit, Count(dv.value) AS Counts_of_aggregated_values,
>> p.periodid
>> AS PeriodId, p.startDate AS ColumnHeader " );
>>             sqlsb.append( "FROM organisationunit o JOIN datavalue dv ON
>> (o.organisationunitid = dv.sourceid) " );
>>             sqlsb.append( "JOIN period p ON (dv.periodid = p.periodid) "
>> );
>> -            sqlsb.append( "WHERE o.parentid = " + orgUnitParent + " AND
>> dv.periodid = " + periodid + " " );
>> -            sqlsb.append( "GROUP BY o.organisationunitid, o.name,
>> p.periodid, p.startDate ) " );
>> -
>> +            sqlsb.append( "WHERE o.parentid = '" + orgUnitParent + "' AND
>> dv.periodid = '" + periodid + "' " );
>> +            sqlsb.append( "GROUP BY o.organisationunitid, o.name,
>> p.periodid, p.startDate) " );
>> +
>>             if ( i == betweenPeriodIds.size() )
>>                 sqlsb.append( "ORDER BY PeriodId " );
>>             else
>> @@ -570,32 +589,35 @@
>>         }
>>
>>         return numResults;
>> -    }
>> +    }
>>
>>     public Integer setCountDataElementsForOrgUnitBetweenPeriods(
>> DataBrowserTable table, Integer orgUnitId,
>>         List<Integer> betweenPeriodIds )
>>     {
>> +        // Please do not delete this testing ...
>> +        System.out.println( "\n\n\n TESTING IN
>> [setCountDataElementsForOrgUnitBetweenPeriods] :: " );
>> +
>>         StatementHolder holder = statementManager.getHolder();
>>
>>         Integer numResults = 0;
>>         StringBuffer sqlsb = new StringBuffer();
>>
>>         int i = 0;
>> -        for ( Integer periodid : betweenPeriodIds )
>> +        for ( Integer periodId : betweenPeriodIds )
>>         {
>>             i++;
>> -
>> +
>>             sqlsb
>> -                .append( "(SELECT de.dataelementid, de.name AS
>> DataElementGroup, count(*) AS Count, p.periodid AS PeriodId, p.startDate
>> AS
>> ColumnHeader " );
>> +                .append( "(SELECT de.dataelementid, de.name AS
>> DataElementGroup, Count(dv.value) AS Counts_of_aggregated_values,
>> p.periodid
>> AS PeriodId, p.startDate AS ColumnHeader " );
>>             sqlsb.append( "FROM dataelement AS de " );
>> -            sqlsb.append( "Inner Join datavalue AS dv ON
>> (de.dataelementid
>> = dv.dataelementid) " );
>> -            sqlsb.append( "Inner Join datasetmembers AS dsm ON
>> (de.dataelementid = dsm.dataelementid) " );
>> -            sqlsb.append( "Inner Join organisationunit ON dv.sourceid =
>> organisationunit.organisationunitid " );
>> +            sqlsb.append( "INNER JOIN datavalue AS dv ON
>> (de.dataelementid
>> = dv.dataelementid) " );
>> +            sqlsb.append( "INNER JOIN datasetmembers AS dsm ON
>> (de.dataelementid = dsm.dataelementid) " );
>> +            sqlsb.append( "INNER JOIN organisationunit As o ON
>> (dv.sourceid = o.organisationunitid) " );
>>             sqlsb.append( "JOIN period p ON (dv.periodid = p.periodid) "
>> );
>> -            sqlsb.append( "WHERE organisationunit.organisationunitid = "
>> +
>> orgUnitId + " AND " );
>> -            sqlsb.append( "dv.periodid = " + periodid + " " );
>> -            sqlsb.append( "GROUP BY de.dataelementid, de.name,
>> p.periodid, p.startDate ) " );
>> -
>> +            sqlsb.append( "WHERE o.organisationunitid = '" + orgUnitId +
>> "' " );
>> +            sqlsb.append( "AND dv.periodid = '" + periodId + "' " );
>> +            sqlsb.append( "GROUP BY de.dataelementid, de.name,
>> p.periodid, p.startDate)" );
>> +
>>             if ( i == betweenPeriodIds.size() )
>>                 sqlsb.append( "ORDER BY PeriodId " );
>>             else
>> @@ -623,18 +645,18 @@
>>         }
>>
>>         return numResults;
>> -    }
>> -
>> +    }
>> +
>>     //
>> -------------------------------------------------------------------------
>>     // Supportive methods
>>     //
>> -------------------------------------------------------------------------
>>
>>     /**
>> -     * Splits a list of integers by by comma. Use this method if you have
>> a
>> -     * list that will be used in f.ins. a WHERE xxx IN (list) clause in
>> SQL.
>> +     * Splits a list of integers by by comma. Use this method if you have
>> a list
>> +     * that will be used in f.ins. a WHERE xxx IN (list) clause in SQL.
>>      *
>> -     * @param List<Integer> list of Integers
>> -     * @return the list as a string splitted by a comma.
>> +     * @param List<Integer> list of Integers
>> +     * @return the list as a string splitted by a comma.
>>      */
>>     private String splitListHelper( List<Integer> list )
>>     {
>>
>> === modified file
>> 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java'
>> ---
>> dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java
>>      2010-02-08 10:56:08 +0000
>> +++
>> dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java
>>      2010-04-06 10:05:28 +0000
>> @@ -33,6 +33,7 @@
>>  import java.util.Date;
>>
>>  import org.apache.commons.validator.DateValidator;
>> +import org.hisp.dhis.i18n.I18nFormat;
>>  import org.joda.time.DateTime;
>>  import org.joda.time.Days;
>>
>> @@ -351,6 +352,35 @@
>>     }
>>
>>     /**
>> +     * This method converts a string from the date format "yyyy-MM-dd" to
>> +     * "MMM-yy" of any format which belongs to each locale.
>> +     *
>> +     * @param date is the string to be converted.
>> +     * @return converted string if the date is valid, else the original
>> string
>> +     *         is returned
>> +     */
>> +    public static String convertDate( String dateString, I18nFormat
>> i18nFormat )
>> +    {
>> +        if ( !dateIsValid( dateString ) )
>> +        {
>> +            return dateString;
>> +        }
>> +
>> +        SimpleDateFormat dateFormat = new SimpleDateFormat(
>> DEFAULT_DATE_FORMAT );
>> +
>> +        try
>> +        {
>> +            Date date = dateFormat.parse( dateString );
>> +
>> +            return i18nFormat.formatDateByCustome( date );
>> +        }
>> +        catch ( ParseException pe )
>> +        {
>> +            throw new RuntimeException( "Date string could not be parsed:
>> " + dateString );
>> +        }
>> +    }
>> +
>> +    /**
>>      * This method adds days to a date
>>      *
>>      * @param date the date.
>>
>> === modified file
>> 'dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties'
>> ---
>> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties
>>  2010-04-01 09:31:33 +0000
>> +++
>> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties
>>  2010-04-06 10:05:28 +0000
>> @@ -1,13 +1,14 @@
>>
>>  #-- Date Formats
>> --------------------------------------------------------------#
>>
>> -format.date = yyyy-MM-dd
>> -format.date.label = yyyy-mm-dd
>> -format.time = HH:mm
>> -format.time.label = hh:mm
>> -format.datetime = yyyy-MM-dd HH:mm
>> -format.datetime.label = yyyy-mm-dd hh:mm
>> -format.date.label.jquery = yy-mm-dd
>> +format.date                                    = yyyy-MM-dd
>> +format.date.label                      = yyyy-mm-dd
>> +format.date.custome            = MMM-yy
>> +format.time                            = HH:mm
>> +format.time.label                      = hh:mm
>> +format.datetime                        = yyyy-MM-dd HH:mm
>> +format.datetime.label          = yyyy-mm-dd hh:mm
>> +format.date.label.jquery       = yy-mm-dd
>>
>>  #-- dhis-wp
>> -------------------------------------------------------------------#
>>
>>
>> === modified file
>> 'dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties'
>> ---
>> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties
>>    2010-04-01 09:31:33 +0000
>> +++
>> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties
>>    2010-04-06 10:05:28 +0000
>> @@ -2,6 +2,7 @@
>>
>>  format.date                                    = dd-MM-yyyy
>>  format.date.label                              = dd-mm-yyyy
>> +format.date.custome                    = MMM-yy
>>  format.time                                    = HH:mm
>>  format.time.label                              = hh:mm
>>  format.datetime                                = dd-MM-yyyy HH:mm
>>
>> === modified file
>> 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties'
>> ---
>> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties
>>        2010-03-25 08:15:35 +0000
>> +++
>> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties
>>        2010-04-06 10:05:28 +0000
>> @@ -200,7 +200,6 @@
>>  use_only_letters_numbers_dot_only = Please enter Letters, Numbers for
>> file's name and Dot for extension only
>>  cell_exist                                     = Exist one cell same
>> sheet, row and column with this.
>>  update_successful           = Updating is success !
>> -cell_exist                                     = Exist one cell same
>> sheet, row and column with this.
>>  download                                       = Download
>>  upload_file_null                       = Upload file null
>>  file_type_not_supported                = File type not supported
>> @@ -217,4 +216,4 @@
>>  translation_translate          = Translate
>>  template_using              = File is using
>>  template_pending            = File is pending
>> -expression_not_well_formed     = Expression is not well formed
>> \ No newline at end of file
>> +expression_not_well_formed     = Expression is not well-formed
>> \ No newline at end of file
>>
>> === modified file
>> 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties'
>> ---
>> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties
>>  2010-03-24 02:56:06 +0000
>> +++
>> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties
>>  2010-04-06 10:05:28 +0000
>> @@ -202,12 +202,13 @@
>>  cell_exist                                     = \u0110\u00e3 t\u1ed3n
>> t\u1ea1i m\u1ed9t excel item c\u00f3 c\u00f9ng d\u00f2ng, c\u1ed9t v\u00e0
>> sheet.
>>  update_successful           = C\u1eadp nh\u1eadt th\u00e0nh c\u00f4ng !
>>  download                                       = T\u1ea3i v\u1ec1
>> -override_confirm                       = File template n\u00e0y
>> \u0111\u00e3 t\u1ed3n t\u1ea1i. B\u1ea1n c\u00f3 mu\u1ed1n ghi
>> \u0111\u00e8
>> hay ko ?
>> -template_using                         = \u0110ANG s\u1eed d\u1ee5ng
>> t\u1eadp tin n\u00e0y
>> -template_pending               = CH\u01afA s\u1eed d\u1ee5ng t\u1eadp tin
>> n\u00e0y
>> +override_confirm                       = B\u1ea1n c\u00f3 mu\u1ed1n ghi
>> \u0111\u00e8 t\u1eadp tin m\u1eabu n\u00e0y kh\u00f4ng?
>> +template_using                         = \u0110ANG s\u1eed d\u1ee5ng
>> +template_pending               = CH\u01afA s\u1eed d\u1ee5ng
>>  intro_configuration         = Thi\u1ebft l\u1eadp \u0111\u01b0\u1eddng
>> d\u1eabn ch\u1ec9 t\u1edbi thu m\u1ee5c l\u01b0u tr\u1eef c\u00e1c
>> t\u1eadp
>> tin excel m\u1eabu. V\u00ed d\u1ee5: C:\\ABC
>>  intro_reports               = T\u1ea1o m\u1edbi, c\u1eadp nh\u1eadt, xem
>> v\u00e0 x\u00f3a c\u00e1c B\u00e1o c\u00e1o excel. M\u1ed9t b\u00e1o
>> c\u00e1o excel ch\u1ee9a nhi\u1ec1u ph\u1ea7n t\u1eed excel. B\u00e1o
>> c\u00e1o excel c\u00f3 th\u1ec3 thu\u1ed9c nhi\u1ec1u lo\u1ea1i b\u00e1o
>> c\u00e1o kh\u00e1c nhau. Cho ph\u00e9p g\u00e1n b\u00e1o c\u00e1o excel
>> cho
>> m\u1ed9t hay nhi\u1ec1u \u0111\u01a1n v\u1ecb ho\u1eb7c nh\u00f3m
>> \u0111\u01a1n v\u1ecb v\u00e0 m\u1ed9t s\u1ed1 t\u00f9y ch\u1ecdn
>> kh\u00e1c.
>>  intro_data_status           = Ch\u1ee9c n\u0103ng n\u00e0y d\u00f9ng
>> \u0111\u1ec3 xem tr\u1ea1ng th\u00e1i nh\u1eadp d\u1eef li\u1ec7u (D\u1eef
>> li\u1ec7u \u0111\u01b0\u1ee3c nh\u1eadp xong hay ch\u01b0a ho\u1eb7c
>> s\u1ed1
>> li\u1ec7u n\u00e0o c\u00f2n thi\u1ebfu v.v...).
>>  intro_clean_up              = Ch\u1ee9c n\u0103ng n\u00e0y cho ph\u00e9p
>> ng\u01b0\u1eddi d\u00f9ng x\u00f3a c\u00e1c t\u1eadp tin t\u1ea1m sinh ra
>> trong qu\u00e1 tr\u00ecnh sinh b\u00e1o c\u00e1o ho\u1eb7c xem
>> tr\u01b0\u1edbc b\u00e1o c\u00e1o.
>>  intro_excel_item            = T\u1ea1o m\u1edbi, c\u1eadp nh\u1eadt, xem
>> v\u00e0o x\u00f3a c\u00e1c ph\u1ea7n t\u1eed excel cho qu\u00e1 tr\u00ecnh
>> import d\u1eef li\u1ec7u t\u1eeb t\u1eadp tin excel. Ph\u1ea7n t\u1eed
>> excel
>> n\u00e0y c\u00f3 ch\u1ee9c n\u0103ng g\u1ea7n gi\u1ed1ng v\u1edbi
>> ph\u1ea7n
>> t\u1eed excel trong m\u1ed9t b\u00e1o c\u00e1o excel.
>> -intro_excel_template_management = T\u1ea3i ,\u0111\u1ed5i t\u00ean,
>> t\u00ecm ki\u1ebfm, t\u1ea3i v\u1ec1 v\u00e0 x\u00f3a c\u00e1c t\u1eadp
>> tin
>> c\u00f3 \u0111u\u00f4i m\u1edf r\u1ed9ng .xls ho\u1eb7c .xlsx.
>> Ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 nh\u1eadn bi\u1ebft t\u1eadp
>> tin
>> n\u00e0o \u0111ang \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng v\u00e0 t\u1eadp
>> tin n\u00e0o ch\u01b0a d\u00f9ng \u0111\u1ebfn. Cho ph\u00e9p t\u1ef1
>> \u0111\u1ed9ng c\u1eadp nh\u1eadt l\u1ea1i h\u1ec7 th\u1ed1ng b\u00e1o
>> c\u00e1o excel khi t\u00ean t\u1eadp tin \u0111ang s\u1eed d\u1ee5ng thay
>> \u0111\u1ed5i.
>> \ No newline at end of file
>> +intro_excel_template_management = T\u1ea3i ,\u0111\u1ed5i t\u00ean,
>> t\u00ecm ki\u1ebfm, t\u1ea3i v\u1ec1 v\u00e0 x\u00f3a c\u00e1c t\u1eadp
>> tin
>> c\u00f3 \u0111u\u00f4i m\u1edf r\u1ed9ng .xls ho\u1eb7c .xlsx.
>> Ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 nh\u1eadn bi\u1ebft t\u1eadp
>> tin
>> n\u00e0o \u0111ang \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng v\u00e0 t\u1eadp
>> tin n\u00e0o ch\u01b0a d\u00f9ng \u0111\u1ebfn. Cho ph\u00e9p t\u1ef1
>> \u0111\u1ed9ng c\u1eadp nh\u1eadt l\u1ea1i h\u1ec7 th\u1ed1ng b\u00e1o
>> c\u00e1o excel khi t\u00ean t\u1eadp tin \u0111ang s\u1eed d\u1ee5ng thay
>> \u0111\u1ed5i.
>> +expression_not_well_formed  = Bi\u1ec3u th\u1ee9c kh\u00f4ng
>> \u0111\u00fang/ch\u01b0a h\u1ee3p l\u1ec7
>> \ No newline at end of file
>>
>> === modified file
>> 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm'
>> ---
>> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm
>>      2010-03-10 10:28:44 +0000
>> +++
>> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm
>>      2010-04-06 10:05:28 +0000
>> @@ -45,11 +45,12 @@
>>                                #end
>>                        </td>
>>                        <td align="left">
>> +                               <a href="javascript:mode = 'edit';
>> openEditExcelTemplate( '$templateFileName' );" title="$i18n.getString(
>> 'edit' )"><img src="../images/edit.png" alt="$i18n.getString( 'edit'
>> )"></a>
>> +                               <a
>> href="downloadExcelTemplate.action?fileName=$templateFileName"
>> title="$i18n.getString( 'download' )"><img src="images/download.png"
>> alt="$i18n.getString( 'download' )"></a>
>>                                #if( $encoder.htmlEncode( $value ) ==
>> 'false' )
>>                                <a
>> href="javascript:deleteExcelTemplate('$templateFileName');"
>> title="$i18n.getString( 'remove' )"><img src="../images/delete.png"
>> alt="$i18n.getString( 'remove' )"></a>
>>                                #end
>> -                               <a href="javascript:mode = 'edit';
>> openEditExcelTemplate( '$templateFileName' );" title="$i18n.getString(
>> 'edit' )"><img src="../images/edit.png" alt="$i18n.getString( 'edit'
>> )"></a>
>> -                               <a
>> href="downloadExcelTemplate.action?fileName=$templateFileName"
>> title="$i18n.getString( 'download' )"><img src="images/download.png"
>> alt="$i18n.getString( 'download' )"></a>
>> +
>>                        </td>
>>                </tr>
>>        #end
>>
>> === modified file
>> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/databrowser/SearchAction.java'
>> ---
>> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/databrowser/SearchAction.java
>>      2010-04-03 09:35:43 +0000
>> +++
>> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/databrowser/SearchAction.java
>>      2010-04-06 10:05:28 +0000
>> @@ -52,6 +52,7 @@
>>  import org.hisp.dhis.period.Period;
>>  import org.hisp.dhis.period.PeriodService;
>>  import org.hisp.dhis.period.PeriodType;
>> +import org.hisp.dhis.period.comparator.AscendingPeriodComparator;
>>  import org.hisp.dhis.system.util.DateUtils;
>>  import org.hisp.dhis.util.SessionUtils;
>>
>> @@ -62,6 +63,8 @@
>>  /**
>>  * @author espenjac, joakibj, briane, eivinhb
>>  * @version $Id$
>> + * @modifier Dang Duy Hieu
>> + * @since 2010-04-06
>>  */
>>  public class SearchAction
>>     implements Action
>> @@ -78,7 +81,7 @@
>>
>>     private static final String KEY_DATABROWSERTABLE =
>> "dataBrowserTableResults";
>>
>> -    private static final String HYPHEN = " - ";
>> +    private static final String DASH = " - ";
>>
>>     //
>> -------------------------------------------------------------------------
>>     // Dependencies
>> @@ -462,7 +465,6 @@
>>             }
>>             else
>>             {
>> -
>>                 dataBrowserTable =
>> dataBrowserService.getDataElementGroupsInPeriod( fromDate, toDate,
>> periodType );
>>             }
>>         }
>> @@ -503,7 +505,8 @@
>>         // Set DataBrowserTable variable for PDF export
>>         setExportPDFVariables();
>>
>> -        // Get format standard for periods which appropriate with from
>> date, to date and period type
>> +        // Get format standard for periods which appropriate with from
>> date, to
>> +        // date and period type
>>         fromToDate = getFromToDateFormat( periodType, fromDate, toDate );
>>
>>         if ( fromToDate == null )
>> @@ -577,7 +580,8 @@
>>
>>         for ( MetaValue col : allColumnsConverted )
>>         {
>> -            col.setName( DateUtils.convertDate( col.getName() ) );
>> +            //col.setName( DateUtils.convertDate( col.getName() ) );
>> +            col.setName( DateUtils.convertDate( col.getName(), format )
>> );
>>         }
>>     }
>>
>> @@ -605,6 +609,9 @@
>>             List<Period> periods = new ArrayList<Period>(
>> periodService.getPeriodsBetweenDates( periodType, date1,
>>                 date2 ) );
>>
>> +            // Please do not delete this testing ...
>> +            System.out.println( "\n\nFIRST Periods:: " + periods );
>> +
>>             if ( periods.isEmpty() )
>>             {
>>                 CalendarPeriodType calendarPeriodType =
>> (CalendarPeriodType) periodType;
>> @@ -613,6 +620,11 @@
>>                 periods.add( calendarPeriodType.createPeriod( date2 ) );
>>             }
>>
>> +            Collections.sort( periods, new AscendingPeriodComparator() );
>> +
>> +            // Please do not delete this testing ...
>> +            System.out.println( "\n\nTHEN Periods:: " + periods );
>> +
>>             return periods;
>>         }
>>         catch ( ParseException e )
>> @@ -630,10 +642,10 @@
>>         for ( Period period : periods )
>>         {
>>             String sTemp = format.formatPeriod( period );
>> -
>> +
>>             if ( !stringFormatDate.contains( sTemp ) )
>>             {
>> -                stringFormatDate += HYPHEN + sTemp;
>> +                stringFormatDate += DASH + sTemp;
>>             }
>>         }
>>
>>
>> === modified file
>> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserResult.vm'
>> ---
>> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserResult.vm
>>     2010-03-17 06:07:42 +0000
>> +++
>> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserResult.vm
>>     2010-04-06 10:05:28 +0000
>> @@ -119,6 +119,7 @@
>>            <strong>$i18n.getString( "period_type" ):</strong>
>> $periodTypeId
>>        #elseif ( $fromToDate != "" )
>>            <strong>$i18n.getString( "from_date" ):</strong> $fromToDate
>> +               <br/>
>>                <strong>$i18n.getString( "period_type" ):</strong>
>> $periodTypeId
>>        #else
>>            <strong>$i18n.getString( "from_date" ):</strong> $fromDate
>>
>> === modified file
>> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/org/hisp/dhis/dd/i18n_module.properties'
>> ---
>> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/org/hisp/dhis/dd/i18n_module.properties
>> 2010-03-30 04:36:31 +0000
>> +++
>> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/org/hisp/dhis/dd/i18n_module.properties
>> 2010-04-06 10:05:28 +0000
>> @@ -303,7 +303,7 @@
>>  select_indicator
>>     = Please select indicator
>>  annualized
>>             = Annualized
>>  could_not_save
>>     = Could not save
>> -object_not_deleted_associated_by_objects               = Object not
>> deleted becuause it is associated by objects of type
>> +object_not_deleted_associated_by_objects               = Object not
>> deleted because it is associated by objects of type
>>  hide_warning
>>     = Hide warning
>>  please_enter_name
>>      = Please enter name !
>>  group_ready_exist
>>      = Group ready exist
>>
>>
>> _______________________________________________
>> Mailing list:
>> https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs>
>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe :
>> https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs>
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
>
> --
> Hieu.HISPVietnam
> Good Health !
>

-- 
Sendt fra min mobile enhet



References