dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #21557
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 10225: Sort fixed periods chronologically; only allow to select multiple values in filter fields with op...
------------------------------------------------------------
revno: 10225
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2013-03-14 22:42:22 +0700
message:
Sort fixed periods chronologically; only allow to select multiple values in filter fields with operator IN in tabular report.
modified:
dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java
dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateAggregateReportAction.java
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js
--
lp:dhis2
https://code.launchpad.net/~dhis2-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
=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java 2013-03-14 13:30:46 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java 2013-03-14 15:42:22 +0000
@@ -674,7 +674,7 @@
sql = getAggregateReportSQL8( programStage, orgunitIds, facilityLB, filterSQL, deGroupBy, periods
.iterator().next(), aggregateType, limit, useCompletedEvents, format );
}
-
+System.out.println("\n\n " + sql );
if ( !sql.isEmpty() )
{
SqlRowSet rowSet = jdbcTemplate.queryForRowSet( sql );
@@ -1289,11 +1289,11 @@
sql += " psi_1.executiondate >= '" + startDate + "' AND ";
sql += " psi_1.executiondate <= '" + endDate + "' ";
sql += filterSQL + " LIMIT 1 ) as " + aggregateType + ") ";
- sql += " UNION ";
+ sql += " UNION ALL ";
}
}
- sql = sql.substring( 0, sql.length() - 6 );
+ sql = sql.substring( 0, sql.length() - 10 );
if ( limit != null )
{
sql += " LIMIT " + limit;
@@ -1466,11 +1466,11 @@
}
sql += "GROUP BY dataelementid ";
- sql += ") UNION ";
+ sql += ") UNION ALL ";
}
- sql = sql.substring( 0, sql.length() - 6 );
+ sql = sql.substring( 0, sql.length() - 10 );
if ( limit != null )
{
@@ -1543,10 +1543,10 @@
}
sql += "GROUP BY dataelementid ";
- sql += ") UNION ";
+ sql += ") UNION ALL ";
}
- sql = sql.substring( 0, sql.length() - 6 );
+ sql = sql.substring( 0, sql.length() - 10 );
if ( limit != null )
{
sql += " LIMIT " + limit;
@@ -1823,12 +1823,12 @@
sql += ") as \"" + periodName + "\",";
}
sql = sql.substring( 0, sql.length() - 1 );
- sql += " ) UNION ";
+ sql += " ) UNION ALL ";
}
if ( !sql.isEmpty() )
{
- sql = sql.substring( 0, sql.length() - 6 );
+ sql = sql.substring( 0, sql.length() - 10 );
if ( periods.size() == 1 )
{
sql += "ORDER BY \"" + firstPeriodName + "\" desc ";
@@ -2163,7 +2163,7 @@
{
if ( rowSet.getMetaData().getColumnType( j + 2 ) != Types.VARCHAR )
{
- total += (Double) columnValues.get( i ).get( j );
+ total += (Long) columnValues.get( i ).get( j );
}
}
if ( total == (int) total )
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateAggregateReportAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateAggregateReportAction.java 2013-02-22 04:49:30 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateAggregateReportAction.java 2013-03-14 15:42:22 +0000
@@ -29,6 +29,7 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -43,6 +44,7 @@
import org.hisp.dhis.period.PeriodService;
import org.hisp.dhis.period.PeriodType;
import org.hisp.dhis.period.RelativePeriods;
+import org.hisp.dhis.period.comparator.AscendingPeriodComparator;
import org.hisp.dhis.program.ProgramStage;
import org.hisp.dhis.program.ProgramStageInstanceService;
import org.hisp.dhis.program.ProgramStageService;
@@ -294,14 +296,18 @@
}
// Fixed periods
+ List<Period> fixedPeriodList = new ArrayList<Period>();
for ( String periodId : fixedPeriods )
{
- periods.add( PeriodType.getPeriodFromIsoString( periodId ) );
+ Period p = PeriodType.getPeriodFromIsoString( periodId );
+ fixedPeriodList.add( p );
}
-
+ Collections.sort( fixedPeriodList, new AscendingPeriodComparator() );
+ periods.addAll( fixedPeriodList );
+
// Relative periods
periods.addAll( getRelativePeriod() );
-
+
// ---------------------------------------------------------------------
// Generate report
// ---------------------------------------------------------------------
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js 2013-03-14 13:30:46 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js 2013-03-14 15:42:22 +0000
@@ -476,6 +476,7 @@
fields: ['value','name'],
data: [ ['=','='],['in',TR.i18n.in] ]
});
+ params.value = 'in';
}
else
{
@@ -483,6 +484,7 @@
fields: ['value','name'],
data: [ ['=','='],['like',TR.i18n.like],['in',TR.i18n.in] ]
});
+ params.value = 'in';
}
}
else if( valueType == 'trueOnly' || valueType == 'bool' ){
@@ -504,6 +506,20 @@
});
}
+ params.listeners={};
+ params.listeners.select = function(cb) {
+ var opt = cb.getValue();
+ if(opt == 'in')
+ {
+ Ext.getCmp('filter_' + id).multiSelect = true;
+ }
+ else
+ {
+ Ext.getCmp('filter_' + id).clearValue();
+ Ext.getCmp('filter_' + id).multiSelect = false;
+ }
+ }
+
return params;
},
createFilterField: function( valueType, id ){
@@ -533,8 +549,9 @@
params.editable = false;
if( fixedId=='fixedAttr_gender')
{
+ params.multiSelect = true;
+ params.delimiter = ';';
params.forceSelection = true;
- params.multiSelect = true;
params.store = new Ext.data.ArrayStore({
fields: ['value', 'name'],
data: [['', TR.i18n.please_select],
@@ -546,8 +563,9 @@
else if( fixedId=='fixedAttr_dobType')
{
params.forceSelection = true;
+ params.multiSelect = true;
+ params.delimiter = ';';
params.editable = false;
- params.multiSelect = true;
params.store = new Ext.data.ArrayStore({
fields: ['value', 'name'],
data: [['', TR.i18n.please_select],
@@ -567,8 +585,7 @@
});
}
}
- else if( valueType == 'trueOnly')
- {
+ else if( valueType == 'trueOnly'){
params.queryMode = 'local';
params.valueField = 'value';
params.displayField = 'name';
@@ -583,6 +600,7 @@
params.valueField = 'u';
params.displayField = 'u';
params.multiSelect = true;
+ params.delimiter = ';';
params.store = Ext.create('Ext.data.Store', {
fields: ['u'],
data:[],